Ошибка при вызове метода контекста выгрузить колонку

PashaBumebr

0 / 0 / 0

Регистрация: 23.05.2023

Сообщений: 2

1

Ошибка при вызове метода контекста (ВыгрузитьКолонку)

23.05.2023, 00:13. Показов 465. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.ОстаткиТоваровНаСкладах.Записывать = Истина;
    Для Каждого ТекСтрокаСпистокТоваров Из СпистокТоваров Цикл
        Движение = Движения.ОстаткиТоваровНаСкладах.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Склад = Склад;
        Движение.Количество = ТекСтрокаСпистокТоваров.Количество;
    КонецЦикла;
    Движения.Записать();
    
    // контроль остатков
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОстаткиТоваровНаСкладахОстатки.Товар КАК Товар,
        |   ОстаткиТоваровНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
        |ИЗ
        |   РегистрНакопления.ОстаткиТоваровНаСкладах.Остатки(
        |           ,
        |           Склад = &Склад
        |               И Товар В (&МассивТоваров)) КАК ОстаткиТоваровНаСкладахОстатки
        |ГДЕ
        |   ОстаткиТоваровНаСкладахОстатки.КоличествоОстаток < КоличествоОстаток";
    
    Запрос.УстановитьПараметр("Склад", Склад);
    Запрос.УстановитьПараметр("МассивТоваров", СпистокТоваров.ВыгрузитьКолонку("Товар"));
    
    РезультатЗапроса = Запрос.Выполнить();
    Если НЕ РезультатЗапроса.Пустой() Тогда
        Отказ = Истина;
        Выборка = РезультатЗапроса.Выбрать();
        Пока Выборка.Следующий() Цикл
            Сообщить("НаСкладе " + Склад + " не хватает " +
            Выборка.КоличествоОстаток*(-1) + " шт.товаров " + Выборка.Товар);
        КонецЦикла;   
    КонецЕсли;
    
КонецПроцедуры

И ВЫВОДИТ ОШИБКУ
» {Документ.ПродажаТоваров.МодульОбъекта(29)}: Ошибка при вызове метода контекста (ВыгрузитьКолонку)
Запрос.УстановитьПараметр(«МассивТоваров», СпистокТоваров.ВыгрузитьКолонку(«Товар»));
по причине:
Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)
Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)



0



1231 / 763 / 218

Регистрация: 22.04.2013

Сообщений: 5,589

Записей в блоге: 1

23.05.2023, 07:23

2

нунаписано же жёлтым по белому: колонка не принадлежит
нет у вас такой колонки
может товар1
может номенклатура
может ещошто



0



1965 / 1350 / 480

Регистрация: 16.01.2015

Сообщений: 5,853

23.05.2023, 08:49

3

Цитата
Сообщение от PashaBumebr
Посмотреть сообщение

СпистокТоваров.ВыгрузитьКолонку(«Товар»)

СписТок?



0



271 / 223 / 98

Регистрация: 07.04.2011

Сообщений: 1,373

23.05.2023, 14:13

4

списТокТоваров.Выгрузить().ВыгрузитьКолонку(«ИмяКолонки»)
Сначала выгрузка в таблицу значений,потом из ТЗ выгрузка колонки



0



0 / 0 / 0

Регистрация: 23.05.2023

Сообщений: 2

23.05.2023, 21:24

 [ТС]

5

OverDozero, OverDozero, OverDozero, OverDozero, Ответ, который не имеет ничего общего с моим вопросом. Я попросил выяснить причину ошибки



0



1231 / 763 / 218

Регистрация: 22.04.2013

Сообщений: 5,589

Записей в блоге: 1

23.05.2023, 22:01

6

PashaBumebr, а остальные ? верно решили Ваш ребус?



0



271 / 223 / 98

Регистрация: 07.04.2011

Сообщений: 1,373

24.05.2023, 06:34

7

Цитата
Сообщение от PashaBumebr
Посмотреть сообщение

Ответ, который не имеет ничего общего с моим вопросом. Я попросил выяснить причину ошибки

Да чего-то впарился).У ТЧ есть метод «ВыгрузитьКолонку».Сорян.

Ну значит дело в имени колонки. В табличной части нет колонки с наименованием «товар», как и написал Юлунга.



0



начнем с картинок: 1. (т.к. вылетает сабж — закомментировал проблему и делаю что мне нужно через…цикл, короче): 2. но вот тут видно, что колоночка-то «НомерСтроки» есть в табчасти: Товары — табчасть обработки; форму этой обработки вызывает форма документа, заполняет при этом табчасть Товары содержимым своей табчасти (до вызова Открыть). А в ПередОткрытием такая бяка происходит — почему?..

>Товары — табчасть обработки в которую НомерСтроки ты не добавил

номер строки… это такая специальная колонка, которая как бы не колонка. Попробуй перебрать колонки и посмотреть есть ли у тебя колонка с таким названием

как я понимаю, первая половина это ответ на . НомерСтроки не надо добавлять в табчасть — он там есть. И при попытке добавить новый реквизит с таким именем выдаст ошибку. В по второй ссылке как раз и видно, что есть такая колонка!

2 чувак, ты ведь сюда за ответами и советами пришел, а не чтобы спорить, верно? Я ведь не сказал тебе протереть глаза и еще раз посмотреть картинку. Я посоветовал перебрать колонки прогрммно

…ожидаемо, не правда ли?

не, в принципе, главное — результат. А через…цикл он получен, или метод с недокументированными особенностями — не особо важно. Просто — вот такая хрень, с НомерСтроки. Наверняка, еще не самая страшная….

ТабличнаяЧасть1.Выгрузить.ВыгрузитьКолонку(«НомерСтроки»)

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Ermak
11.10.2012 18:42 Прочитано: 5835

Добрый вечер! Создал Табличное поле, добавил три колонки (Флажок, Код, Имя), сделал запрос по заполнению Код 1C v 8.х

 Текст1 = Новый ТекстовыйДокумент;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Код,
| Организации.Наименование
|ИЗ
| Справочник.Организации КАК Организации
|
|СГРУППИРОВАТЬ ПО
| Организации.Код,
| Организации.Наименование";
Результат = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТабличноеПоле.Значение=Результат;
//ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
//ТЗ1=новый ТаблицаЗначений;
ТЗ1=ЭлементыФормы.ТабличноеПоле.Колонки.Код;
ТЗ2=ЭлементыФормы.ТабличноеПоле.Колонки.Имя;
ТЗ1=ТабличноеПоле.ВыгрузитьКолонку("Код");
ТЗ2=ТабличноеПоле.ВыгрузитьКолонку("Наименование");

Таблица заполнилась, только колонка Флажок пустая, Код заполнился, имя тоже пустое, в чем дело может быть?

Yandex
Возможно, вас также заинтересует

Реклама на портале

Ermak
11.10.2012 18:50 Ответ № 1

Исправил:Код 1C v 8.х

 Текст1 = Новый ТекстовыйДокумент;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Код,
| Организации.Наименование КАК Имя
|ИЗ
| Справочник.Организации КАК Организации
|
|СГРУППИРОВАТЬ ПО
| Организации.Код,
| Организации.Наименование";
Результат = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТабличноеПоле.Значение=Результат;
//ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
//ТЗ1=новый ТаблицаЗначений;
ТЗ1=ЭлементыФормы.ТабличноеПоле.Колонки.Код;
ТЗ2=ЭлементыФормы.ТабличноеПоле.Колонки.Имя;
ТЗ1=ТабличноеПоле.ВыгрузитьКолонку("Код");
ТЗ2=ТабличноеПоле.ВыгрузитьКолонку("Наименование");

Теперь заполняет колонку Имя, но выдает ошибку

{Форма.Форма.Форма(60)}: Ошибка при вызове метода контекста (ВыгрузитьКолонку)
ТЗ2=ТабличноеПоле.ВыгрузитьКолонку(«Наименование»);
по причине:
Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)

Ermak
11.10.2012 18:52 Ответ № 2

Разобрался с ошибкой, но еще не понятно почему колонка Флажок пустая?

E_Migachev
11.10.2012 23:42 Ответ № 3

(2) Ermak, так колонку флажок тоже нужно заполнить

Ermak
12.10.2012 16:32 Ответ № 4

(3) E_Migachev, В справочнике этой колонки нет я ее создаю сам, как мне ее заполнить? Еще пытался через запрос выполнить выгрузку моего Табличного поля так и не получилось, можете подсказать как.
P.S. Если справочник выгружать в файл через запрос это у меня получилось а как табличное поле обработки выгружать через запрос не знаю.

Ermak
12.10.2012 16:58 Ответ № 5

С колонкой я разобрался, спасибо, как теперь выгрузить?

E_Migachev
12.10.2012 23:10 Ответ № 6

(5) Ermak, выгрузить что? то что получилось в ТЗ?

Ermak
13.10.2012 00:18 Ответ № 7

да то что получится в ТЗ

Ermak
15.10.2012 16:49 Ответ № 8

Вопрос закрыт!

Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе.
помогите с поиском в ком объекте ☑ 0

rchervak

31.05.11

23:25

бп 2.0

делаю запрос на обращение к базе на сервере:

Запрос = connection.NewObject(«Запрос»);

   Запрос.Текст=

   «ВЫБРАТЬ

   |    ПТУ.Количество Как Количество,

   |    ПТУ.Номенклатура.представление Как Номенклатура

   |ИЗ

   |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПТУ

 
   Таб = Запрос.Выполнить().Выгрузить();

В итоге получаю comoобъект с таблицей значений.

таблица заполнилась.

далее пытаюсь найти в таблице строки с определенной номенклатурой

СтруктураПоиска.Вставить(«Номенклатура»,ТекСтрока.Номенклатура.Наименование);

Поиск= таб.найтистроки(СтруктураПоиска);

Получаю ошибку что метод объекта не обнаружен. Да действительно нет такого метода, но как то же можно отобрать? каким макаром прописать ?

1

rchervak

31.05.11

23:31

может кто подскажет какие ваще есть методы работы с ком объектами?

2

rchervak

31.05.11

23:31

или хотябы где почитать про это?

3

Anjo

31.05.11

23:32

а ты структуру как создал

4

rchervak

31.05.11

23:35

Для Каждого ТекСтрока Из Реализация.Товары Цикл

СтруктураПоиска.Вставить(«Номенклатура»,ТекСтрока.Номенклатура.Наименование);

5

Anjo

31.05.11

23:36

Не я понял, просто структуру тоже надо создавать через connection

6

ilkoder

31.05.11

23:37

А не проще отбор по номенклатуре прямо в запросе сделать?

7

Anjo

31.05.11

23:37

ОтборСотрудникаТабельЗУП = Соединение.NewObject(«Структура»);

   ОтборСотрудникаТабельЗУП.Вставить(«Сотрудник»,ТекСотрудникЗУП);

мас_ОтборТабельУчетаРВ = тч_ТабельУчетаРабочегоВремениОрганизации.FindRows(ОтборСотрудникаТабельЗУП);

8

rchervak

31.05.11

23:38

дело в том что структура создается в базе 2.0 — а конектится к старой базе 1.6.

Я пытаюсь подобрать все приходы из базы 1.6 — к документу реализации из 2.0.- и вывести все это в отчет

9

rchervak

31.05.11

23:43

если быть точным — вот весь текст

Запрос = connection.NewObject(«Запрос»);

   Запрос.Текст=

   «ВЫБРАТЬ

   |    ПТУ.Количество Как Количество,

   |    ПТУ.Номенклатура.представление Как Номенклатура,

   |    ПТУ.Ссылка.НомерВходящегоДокумента Как ВхНомер,

   |    ПТУ.Ссылка.Контрагент.наименование Как Поставщик,

   |    ПТУ.Ссылка.представление Как Ссылка,

   |    ПТУ.Ссылка.Дата Как Дата

   |ИЗ

   |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПТУ

   |Где ПТУ.Ссылка.Дата Между &ДатаНачала И &ДатаКонца «;

   Запрос.УстановитьПараметр(«ДатаНачала»,НачалоДня(ДатаНачала));

   Запрос.УстановитьПараметр(«ДатаКонца»,КонецДня(ДатаКонца));

   Таб = Запрос.Выполнить().Выгрузить();

   
   Таб.Сортировать(«Номенклатура возр,Дата Убыв»);

   СтруктураПоиска = Новый Структура;

   
       Для Каждого ТекСтрока Из Реализация.Товары Цикл

           
           СтруктураПоиска.Вставить(«Номенклатура»,ТекСтрока.Номенклатура.Наименование);

           Поиск= таб.найтистроки(СтруктураПоиска);

           
               КонецЦикла;

10

ilkoder

31.05.11

23:45

Повторюсь — а не проще список товаров выгрузить в массив и передать отбором в запрос?

11

rchervak

31.05.11

23:46

(6) — не получается отобрать.. я так понял что нельзя сравнивать запрос из одной базы с данными из другой..

хотя может я и не прав

12

Anjo

31.05.11

23:47

так и есть

13

ilkoder

31.05.11

23:47

Причем документы могут быть и не проведенные и удаленные. (11) — у тебя хоть какое-то соответствие между базами есть? Может коды одинаковые или наименования?

14

Anjo

31.05.11

23:48

у тебя должна быть связь по номенклатуре между двумя базами нпрмер через UUID

15

rchervak

31.05.11

23:50

(14) базы отличаются только версиями. в 1.6 — доки за 2010 год

в 2.0 начиная с 2011

16

ilkoder

31.05.11

23:51

(15) — ну так выгрузи массив с кодами номенклатуры — по ним и отбирай…

17

rchervak

31.05.11

23:52

(16) хм.. ща попробую.. спасибо

18

rchervak

01.06.11

00:08

в табличной части нет поля КОД :(

а как правильно к нему обратится?

делаю вот так:

СписТов = Реализация.Товары.ВыгрузитьКолонки(«Номенклатура.код»); — пишет нет такой колонки ((

19

Anjo

01.06.11

00:12

ВыгрузитьКолонку

20

Anjo

01.06.11

00:13

ВыгрузитьКолонки выгружает структуру колонок

21

Anjo

01.06.11

00:14

и не надо «Номенклатура.Код» по идее ВыгрузитьКолонку(«Код»)

22

ilkoder

01.06.11

00:14

Сделай маленький запросик с отбором кодов по документу — выгрузи его в тз и из него возьми нужную колонку.

23

rchervak

01.06.11

00:17

{Форма.Форма.Форма(26)}: Ошибка при вызове метода контекста (ВыгрузитьКолонку)

       СписТов = Реализация.Товары.ВыгрузитьКолонку(«Номенклатура.код»);

по причине:

Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)

24

Anjo

01.06.11

00:19

Ух не внимательно прочитал (18) делай через запрос

25

rchervak

01.06.11

00:19

понял.. не увидел ответа просто)

26

rchervak

01.06.11

00:35

попытался сл. образом:

запрос = новый запрос;

       запрос.Текст =  »

                    |ВЫБРАТЬ

                    |    РеализацияТоваровУслугТовары.Номенклатура.Код

                    |ИЗ

                    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

                    |ГДЕ

                    |    РеализацияТоваровУслугТовары.Ссылка = &Ссылка»;

       
        Запрос.УстановитьПараметр(«ссылка»,Реализация);

         выборка = запрос.Выполнить().Выгрузить();

далее

Запрос = connection.NewObject(«Запрос»);

   Запрос.Текст=

   «ВЫБРАТЬ

   |    ПТУ.Количество КАК Количество,

   |    ПТУ.Номенклатура.Представление КАК Номенклатура,

   |    ПТУ.Ссылка.НомерВходящегоДокумента КАК ВхНомер,

   |    ПТУ.Ссылка.Контрагент.Наименование КАК Поставщик,

   |    ПТУ.Ссылка.Представление КАК Ссылка,

   |    ПТУ.Ссылка.Дата КАК Дата,

   |    ПТУ.Номенклатура.Код  как код

   |ИЗ

   |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПТУ

   |ГДЕ

   |    ПТУ.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца И ПТУ.Номенклатура.Код В (&код)»;

   Запрос.УстановитьПараметр(«ДатаНачала»,НачалоДня(ДатаНачала));

   Запрос.УстановитьПараметр(«ДатаКонца»,КонецДня(ДатаКонца));

   Запрос.УстановитьПараметр(«код»,выборка);

   Таб = Запрос.Выполнить().Выгрузить();

выдает ошибку — неверный параметр

27

ilkoder

01.06.11

00:46

Запрос.УстановитьПараметр(«код»,выборка.выгрузитьколонку(«код»)); вроде как-то так

28

Stim213

01.06.11

00:49

Если ты делаешь структуру поиска, то юзай так же NewObject

Запрос = connection.NewObject(«Запрос»);

   Запрос.Текст=

   «ВЫБРАТЬ

   |    ПТУ.Количество Как Количество,

   |    ПТУ.Номенклатура.представление Как Номенклатура,

   |    ПТУ.Ссылка.НомерВходящегоДокумента Как ВхНомер,

   |    ПТУ.Ссылка.Контрагент.наименование Как Поставщик,

   |    ПТУ.Ссылка.представление Как Ссылка,

   |    ПТУ.Ссылка.Дата Как Дата

   |ИЗ

   |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПТУ

   |Где ПТУ.Ссылка.Дата Между &ДатаНачала И &ДатаКонца «;

   Запрос.УстановитьПараметр(«ДатаНачала»,НачалоДня(ДатаНачала));

   Запрос.УстановитьПараметр(«ДатаКонца»,КонецДня(ДатаКонца));

   Таб = Запрос.Выполнить().Выгрузить();

   
   Таб.Сортировать(«Номенклатура возр,Дата Убыв»);

   СтруктураПоиска = connection.NewObject(«Структура»);

   
       Для Каждого ТекСтрока Из Реализация.Товары Цикл

           
           СтруктураПоиска.Вставить(«Номенклатура»,ТекСтрока.Номенклатура.Наименование);

           Поиск= таб.найтистроки(СтруктураПоиска);

           
               КонецЦикла;

29

rchervak

01.06.11

00:52

(28) я структуру собираю в другой базе..

30

rchervak

01.06.11

00:56

{Форма.Форма.Форма(71)}: Ошибка при вызове метода контекста (Выполнить)

   Таб = Запрос.Выполнить().Выгрузить();

по причине:

Произошла исключительная ситуация: {(12, 23)}: Неверные параметры

ПТУ.Номенклатура.Код <<?>>В(&код)

31

rchervak

01.06.11

00:58

запрос = новый запрос;

       запрос.Текст =  »

                    |ВЫБРАТЬ

                    |    РеализацияТоваровУслугТовары.Номенклатура.Код  как код

                    |ИЗ

                    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

                    |ГДЕ

                    |    РеализацияТоваровУслугТовары.Ссылка = &Ссылка»;

       
        Запрос.УстановитьПараметр(«ссылка»,Реализация);

         выборка = запрос.Выполнить().Выгрузить();

далее пробую сверить с структурой

Запрос = connection.NewObject(«Запрос»);

   Запрос.Текст=

   «ВЫБРАТЬ

   |    ПТУ.Количество КАК Количество,

   |    ПТУ.Номенклатура.Представление КАК Номенклатура,

   |    ПТУ.Ссылка.НомерВходящегоДокумента КАК ВхНомер,

   |    ПТУ.Ссылка.Контрагент.Наименование КАК Поставщик,

   |    ПТУ.Ссылка.Представление КАК Ссылка,

   |    ПТУ.Ссылка.Дата КАК Дата,

   |    ПТУ.Номенклатура.Код  как код

   |ИЗ

   |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПТУ

   |ГДЕ

   | ПТУ.Номенклатура.Код В(&код)»;

   
   Запрос.УстановитьПараметр(«код»,выборка.выгрузитьколонку(«код»));

   Таб = Запрос.Выполнить().Выгрузить();

вылазит ошибка (30)

32

Stim213

01.06.11

00:59

блин, чувак

33

rchervak

01.06.11

01:00

(32) думаеш намудрил,  ага..

34

Stim213

01.06.11

01:00

если ты хочешь передать в параметры ком-запроса значение не примитивного типа(не число,строку, булево), то ты должен передавать это как ком объект.

connection.NewObject(«СписокЗначений»);

35

rchervak

01.06.11

01:28

(34)

вот код:

//в базе 2.0 выбираю реализацию и выгружаю колонку с номенклатурой.

СписТов = Реализация.Товары.ВыгрузитьКолонку(«Номенклатура»);

//далее подключаюсь к базе 1.6 по сом соединению

s1 = Новый ComОбъект(«v82.comconnector»);

   Попытка

       СтрокаПодключения = «Srvr=»+ПарСервер+»;Ref=»+ПарБаза+»;Usr=»+СокрЛП(Пользователь)+»;Pwd=»+СокрЛП(Пароль);

       
       connection = s1.Connect(СтрокаПодключения);

       сообщить(«база успешно открыта»);

   Исключение

       Предупреждение(«База данных не открыта!!!»);

       Возврат;

   КонецПопытки;

//после обращаюсь к базе 1.6

Запрос = connection.NewObject(«Запрос»);

   Запрос.Текст=

   «ВЫБРАТЬ

   |    ПТУ.Количество Как Количество,

   |    ПТУ.Номенклатура Как Номенклатура,

   |    ПТУ.Ссылка.НомерВходящегоДокумента Как ВхНомер,

   |    ПТУ.Ссылка.Контрагент Как Поставщик,

   |    ПТУ.Ссылка Как Ссылка,

   |    ПТУ.Ссылка.Дата Как Дата

   |ИЗ

   |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПТУ

   |Где ПТУ.Ссылка.Дата Между &ДатаНачала И &ДатаКонца И ПТУ.Ссылка.Проведен И (Не ПТУ.Ссылка.ПометкаУдаления) И ПТУ.Номенклатура В (&СписТовары) И ПТУ.Ссылка.Склад = &ВыбСклад

   |Объединить ВСЕ

   |ВЫБРАТЬ

   |    ПТУ.Количество Как Количество,

   |    ПТУ.Номенклатура Как Номенклатура,

   |    0 Как ВхНомер,

   |    ПТУ.Ссылка.СкладОтправитель Как Поставщик,

   |    ПТУ.Ссылка Как Ссылка,

   |    ПТУ.Ссылка.Дата Как Дата

   |ИЗ

   |    Документ.ПеремещениеТоваров.Товары КАК ПТУ

   |Где ПТУ.Ссылка.Дата Между &ДатаНачала И &ДатаКонца И ПТУ.Ссылка.Проведен И (Не ПТУ.Ссылка.ПометкаУдаления) И ПТУ.Номенклатура В (&СписТовары) И ПТУ.Ссылка.СкладПолучатель = &ВыбСклад»;

   Запрос.УстановитьПараметр(«ДатаНачала»,НачалоДня(ДатаНачала));

   Запрос.УстановитьПараметр(«ДатаКонца»,КонецДня(ДатаКонца));

   Запрос.УстановитьПараметр(«СписТовары»,СписТов);

   Запрос.УстановитьПараметр(«ВыбСклад»,Склад);

   Таб = Запрос.Выполнить().Выгрузить();

Таб.Сортировать(«Номенклатура возр,Дата Убыв»);

    СтруктураПоиска = connection.NewObject(«Структура»);

   

В итоге получаю ошибку:

{Форма.Форма.Форма(64)}: Ошибка при вызове метода контекста (Выполнить)

   Таб = Запрос.Выполнить().Выгрузить();

по причине:

Произошла исключительная ситуация: {(10, 162)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля

неограниченной длины и поля несовместимых типов.

Где ПТУ.Ссылка.Дата Между &ДатаНачала И &ДатаКонца И ПТУ.Ссылка.Проведен И (Не ПТУ.Ссылка.ПометкаУдаления) И ПТУ.Номенклатура

Не могу разобраться почему не выходит((

36

rchervak

01.06.11

01:29

Где ПТУ.Ссылка.Дата Между &ДатаНачала И &ДатаКонца И ПТУ.Ссылка.Проведен И (Не ПТУ.Ссылка.ПометкаУдаления) И ПТУ.Номенклатура В (&СписТовары) И ПТУ.Ссылка.Склад <<?>>= &ВыбСклад

последняя строчка не вставилась

37

Anjo

01.06.11

08:17

читай внимательно (34)

38

Anjo

01.06.11

08:22

СписокCOM.ЗагрузитьЗначения(СписокТвояБаза.ВыгрузитьЗначения()); но наверно не сработает по той же причине что и (34)

2-й способ при условии что твой список содержит строки перебрать циклом;

Для Инд=1 по СписокТвояБаза.Количество()-1 Цикл

СписокCOM.Добавить(СписокТвояБаза[Инд]).Значение;

КонецЦикла;

Автор ABES, 11 янв 2013, 12:36

0 Пользователей и 1 гость просматривают эту тему.

Добрый день !
Хочу поместить табличную часть из формы отбора с товарами, где количество>0, во временное хранилище. Делаю так:

&НаСервере
Процедура ЗаписатьПодборВХранилище();
Отбор = Новый Структура;
Отбор.Вставить("ВидСравнения", ВидСравнения.Больше);
Отбор.Вставить("Количество", 0);
    ОтборУсловие=Новый Структура("Отбор",Отбор);
ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
КонецПроцедуры

в итоге пишет

Ошибка при вызове метода контекста (Выгрузить)
ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
по причине:
Неизвестная колонка

А как правильно задать отбор ?


Удали сначала из таблицы все строки не соответствующие отбору и сохраняй всю таблицу во временное хранилище

Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!


Добрый день,

Синтакс-помощник пишет на метод «Выгрузить»:
Выгрузить(<ПараметрыОтбора>, <Колонки>)
Параметры:
<ПараметрыОтбора> (необязательный)

Тип: Структура.
Ключ структуры — идентификатор колонки, а значение структуры — значение отбора.

скорее всего в данном случае возможен отбор только по равенству значения. Кстати метод выгрузить возвращает тип «ТаблицаЗначений», а не «ТабличнаяЧасть». Как вариант можно объявить новую таблицу значений и при обходе добавлять в неё строки по условию.


ЦитироватьВариант синтаксиса: Выгрузить по отбору
Синтаксис:

Выгрузить(<ПараметрыОтбора>, <Колонки>)
Параметры:

<ПараметрыОтбора> (необязательный)
Тип: Структура.
Ключ структуры — идентификатор колонки, а значение структуры — значение отбора.

Тип=Структура, а не Отбор. Элементы структуры имеют только пару Ключ+Значение, то есть отбор можно наложить только конкретными значениями колонок.
Вы же пытаетесь наложить отбор на две колонки: «ВидСравнения» и «Количество», ествественно, ВидСравнения он не находит.

Тут могут быть несколько вариантов, например отобрать нужные строки отдельно, и только потом с ними работать, или удалить ненужные (как советовали выше, но имхо не очень хороший вариант — Вам же наверняка еще нужна будет сама таблица Товаров)

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать


Цитата: Dethmontt от 11 янв 2013, 12:52
Удали сначала из таблицы все строки не соответствующие отбору и сохраняй всю таблицу во временное хранилище

ОтборУсловие=Новый Структура(«Количество»,1);
   ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
проходит на ура. во временное хранилище попадают все записи, где кол-во=1, а как задать условие >0 ?

Добавлено: 11 янв 2013, 13:23


Цитата: Klyacksa от 11 янв 2013, 13:02ОтборУсловие=Новый Структура(«Количество»,1);
   ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);

ОтборУсловие=Новый Структура(«Количество»,1);
ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
Это то, что нужно. Помещает во ВХ все записи, где кол-во=1. Но как правильно установить условие отбора колво>0 ?


Никак.
ИЛИ ДО помещения в хранилище удалить все строки с 0, а потом оставшиеся кидать в хранилище
ИЛИ создать новую таблицу, перекидать в нее все нужные строки, и уже новую таблицу кидать в хранилище

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать


Понравилась статья? Поделить с друзьями:
  • Ошибка плагина честный знак
  • Ошибка получения лицензии 1с пинкод не укомплектован
  • Ошибка при вызове метода контекста вставить 1с
  • Ошибка получения криптографического контекста континент tls
  • Ошибка плагина криптопро яндекс браузер