|
|
Создание документов на основании ТЗ |
☑ |
|
0
Валидатор
10.01.14
✎
14:52
|
Есть таблица документов, в ней куча строк с другими документами (списание товаров), нужно сделать, чтобы для всех этих списаний создавалось 1 ПТИУ с количеством товаров из каждого списания из ТЗ. Как сделать такое условие? делал так:
Для каждого строка из ВремТаблица Цикл
Если ТипЗНЧ(Строка.ДокументПриемник) = Тип("ДокументСсылка.СписаниеТоваров") Тогда
ДокументПоступления = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Иначе
Продолжить;
КонецЕсли;
КонецЦикла;
Но ведь в таком случае на каждую строку будет новый документ создаваться
|
|
|
1
Валидатор
10.01.14
✎
14:53
|
А перед циклом тоже не создать документ, потому что мы сначала должны посмотреть какой тип в Строка.Документприменик
|
|
|
2
zladenuw
10.01.14
✎
14:54
|
ДокументПоступления = Неопределено;
Для каждого строка из ВремТаблица Цикл
Если ТипЗНЧ(Строка.ДокументПриемник) = Тип("ДокументСсылка.СписаниеТоваров") и ДокументПоступления = Неопределено Тогда
ДокументПоступления = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Иначе
//заполняем
КонецЕсли;
КонецЦикла;
|
|
|
3
МихаилМ
10.01.14
✎
14:55
|
офильтруйте в тз нужные данные и создайте ТЧ на основе отфильтрованной
|
|
|
4
Валидатор
10.01.14
✎
14:55
|
(2) на иначе нужно получать же документ будет так?
|
|
|
5
Валидатор
10.01.14
✎
14:58
|
а хотя нет, у нас же про неопределено есть условие
|
|
|
6
Валидатор
10.01.14
✎
15:00
|
и в ТЗ моей есть документы списания с датами документа, а поступление мне нужно создавать датой на день меньше, чем минимальная дата списания, вот тут как быть?
|
|
|
7
Валидатор
10.01.14
✎
15:18
|
и вот еще:
Для каждого строка из ВремТаблица Цикл
Если ТипЗНЧ(Строка.ДокументПриемник) = Тип("ДокументСсылка.ТребованиеНакладная") и ДокументПоступления = Неопределено Тогда
в таком случае цикл идет по 1 строке ВремТаблицы, создается документ, потом цикл заканчивается, и идет по второй строчке, тем самым пропуская заполнение данных из ТЧ первого документа
|
|
|
8
Валидатор
10.01.14
✎
15:18
|
ДокументПоступления = Неопределено;
Для каждого строка из ВремТаблица Цикл
Если ТипЗНЧ(Строка.ДокументПриемник) = Тип("ДокументСсылка.ТребованиеНакладная") и ДокументПоступления = Неопределено Тогда
ДокументПоступления = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокументПоступления.Дата = ТекущаяДата();
Иначе
Для каждого стр из строка.ДокументПриемник.Материалы Цикл
ТЧДокумента = ДокументПоступления.Товары.Добавить();
ТЧДокумента.Номенклатура = стр. Номенклатура;
ТЧДокумента.Количество = стр.Количество;
КонецЦикла;
КонецЕсли;
Попытка
ДокументПоступления.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
|
|
|
9
Валидатор
10.01.14
✎
15:40
|
ап
|
|
|
10
Zubek
10.01.14
✎
16:39
|
Если Нужен один документ ПТИУ, то создай его до цикла по ВремТаблице. А внутри цикла добавляй только новые строки в ТЧ. После выхода из цикла запиши документ
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший