Имя: Пароль:
1C
1С v8
Как программно закрыть заказ покупателя?
0 MAPATNK2
 
naïve
20.09.19
14:50
УПП 1.3.991
Всем доброго дня, хотела сделать ежедневное регламентное задание, которые будет закрывать параметры по определенным отборам. Но В итоге пришла в тупик, т.к. я просто не понимаю как программно создать документ "ЗАкрытие заказов покупателя". Не работает простейший код:

                        Закрытие = Документы.ЗакрытиеЗаказовПокупателей.СоздатьДокумент();
            Закрытие.Дата = ТекущаяДата();
            Закрытие.Организация = стр2.Орг;
            Закрытие.Комментарий = "Автоматическое закрытие заказов!!!";
            Закрытие.ВидОперации = Перечисления.ВидыОперацийЗакрытиеЗаказовПокупателей.ЗакрытиеЗаказов;
            Для каждого стр из Результат цикл
                ЗаказыЗакрывающиеся = Закрытие.Заказы.Добавить();
                ЗаказыЗакрывающиеся.ЗаказПокупателя = стр.ДокументРез;
                ЗаказыЗакрывающиеся.ПричинаЗакрытияЗаказа = Справочники.ПричиныЗакрытияЗаказов.НайтиПоНаименованию("Автоматическое закрытие и снятие резервов");
            КонецЦикла;
            Попытка
                Закрытие.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
            Исключение
                Закрытие.Записать();
            КонецПопытки;

Во первых документ создается пустым, т.е. без заказов. Хотя типЗначений ЗаказыЗакрывающиеся.ЗаказПокупателя  и стр.ДокументРез абсолютно идентичны.
Во вторых я вижу кучу полей в табличной части формы, но если обратиться программно к данной табличной части новго документа то я получаю всего 3 колонки. Заказ, который блин вообще не подставляется, причина закрытия и номер строки. Где все остальное и как это добавлять не понимаю.

Может есть ещё какой нибудь способ программно быстро закрывать заказы?
1 MAPATNK2
 
naïve
20.09.19
14:54
Зачем так усложнять этот документ...Я наверное что то не понимаю в этой жизни.
2 Креатив
 
20.09.19
15:14
(0)Отладчик нужен, однако.
И проверять значения после присвоения. Запросто может быть несоответствие типов.
А что при записи происходит?
3 MAPATNK2
 
naïve
20.09.19
15:16
(2)после прохождения
ЗаказыЗакрывающиеся.ЗаказПокупателя = стр.ДокументРез;
этого участка значение правой части не присваивается левой части. Т.е. ЗаказыЗакрывающиеся.ЗаказПокупателя остается пустым.
ТипЗначений я проверила, это ведь видно в отладчике.
4 Креатив
 
20.09.19
15:16
А ещё можно отладчиком посмотреть, что происходит при интерактивном создании документа.
5 MAPATNK2
 
naïve
20.09.19
15:16
тип везде ДокументСсылка.ЗаказПокупателя
6 MAPATNK2
 
naïve
20.09.19
15:17
(4) это где?
7 MAPATNK2
 
naïve
20.09.19
15:17
(4) Просто ручками в табличную часть все встает, а программно сразу пустое значение после прохождения строки присвоения.
8 ГдеСобака Зарыта
 
20.09.19
15:19
А Документ ЗакрытиеЗаказовПокупателей это типовой или сами придумали?
9 MAPATNK2
 
naïve
20.09.19
15:23
(8) Типовой
10 Креатив
 
20.09.19
15:25
Я бы попробовал вот эту строчку разбить.
ЗаказыЗакрывающиеся = Закрытие.Заказы.Добавить();
До цикла. Заказы = Закрытие.Заказы.
А внутри
ЗаказыЗакрывающиеся = Заказы.Добавить();
Вряд ли дело в этом, но так красивей.
11 Креатив
 
20.09.19
15:26
И что происходит в результате записи документа?
12 MAPATNK2
 
naïve
20.09.19
15:29
(10) спасибо помогло. Что то я намудрила, к табличной части в цикле обращалась....Хотя вроде бы всегда так делала или может переработала. Но разделение помогло, спасибо.
13 Креатив
 
20.09.19
15:40
(12)Рад за тебя и за свою интуицию. Строчка в глаза как-то бросалась.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой