субота, 21 грудня 2019 р.

Вибрати документи видаткова накладна, потім вибрати операції документів, лише товар

// ======================================================== 

Процедура ОтриматиТЗ() 

    тз = СоздатьОбъект("ТаблицаЗначений"); 
    тз.НоваяКолонка("ДокПриходу","Документ");
    тз.НоваяКолонка("ДокРеалізації","Документ");
    тз.НоваяКолонка("Покупець","Справочник.Контрагенты");      тз.НоваяКолонка("Постачальник","Справочник.Контрагенты"); тз.НоваяКолонка("ТМЦ","Справочник.ТМЦ"); тз.НоваяКолонка("ПартіяПриходу","Справочник.Партии"); тз.НоваяКолонка("ПрогнозованаТочкаДоставки","Справочник.ТочкиДоставкиТовару"); тз.НоваяКолонка("ЦінаПартіїПриходу","Число",15,2); 
 тз.НоваяКолонка("Кст","Число",15,3); 
 тз.НоваяКолонка("Сума","Число",15,2); 

док = СоздатьОбъект("Документ.РасходнаяНакладная"); док.ВыбратьДокументы(Дата1,Дата2); Пока док.ПолучитьДокумент() = 1 Цикл 

Если док.Проведен() = 0 Тогда 
    Продолжить; 
КонецЕсли; 
Если вДокументРеалізації.Выбран() = 1 
    Тогда Если док.ТекущийДокумент() <> вДокументРеалізації Тогда 
        Продолжить; 
    КонецЕсли; 
КонецЕсли; 
Если вПокупець.Выбран() = 1 Тогда 
    Если док.Контрагент <> вПокупець Тогда 
        Продолжить; 
    КонецЕсли; 
КонецЕсли; 

ОП = СоздатьОбъект("Операция"); ОП.ВыбратьОперации(док.ТекущийДокумент(),док.ТекущийДокумент()); Если ОП.ПолучитьОперацию() = 1 Тогда ОП.ВыбратьПроводки(); Пока ОП.ПолучитьПроводку() = 1 Цикл Если ОП.Кредит.Счет.Код = "281" Тогда Если вПостачальник.Выбран() = 1 Тогда Попытка Постачальник = ОП.Кредит.Партии.Док.Контрагент; Исключение Постачальник = ""; КонецПопытки; Если Постачальник <> вПостачальник Тогда Продолжить; КонецЕсли; КонецЕсли; Если вПрогнозованаТочкаДоставки.Выбран() = 1 Тогда Попытка ПрогнозованаТочкаДоставки = ОП.Кредит.Партии.Док.ПрогнозованаТочкаДоставкиТовару; Исключение ПрогнозованаТочкаДоставки = ""; КонецПопытки; Если ПрогнозованаТочкаДоставки <> вПрогнозованаТочкаДоставки Тогда Продолжить; КонецЕсли; КонецЕсли; Если вТМЦ.Выбран() = 1 Тогда ТМЦ = ОП.Кредит.ТМЦ; Если вТМЦ <> ТМЦ Тогда Продолжить; КонецЕсли; КонецЕсли; Если вДокументПриходу.Выбран() = 1 Тогда Если док.ТекущийДокумент() <> вДокументПриходу Тогда Продолжить; КонецЕсли; КонецЕсли; тз.НоваяСтрока(); тз.ДокПриходу = ОП.Кредит.Партии.Док; тз.ДокРеалізації = док.ТекущийДокумент(); Попытка тз.Постачальник = ОП.Кредит.Партии.Док.Контрагент; Исключение КонецПопытки; Попытка тз.ПрогнозованаТочкаДоставки = ОП.Кредит.Партии.Док.ПрогнозованаТочкаДоставкиТовару; Исключение КонецПопытки; тз.Покупець = док.Контрагент; тз.ПартіяПриходу = ОП.Кредит.Партии; тз.ЦінаПартіїПриходу = ОП.Кредит.Партии.Цена_Прих; тз.ТМЦ = ОП.Кредит.ТМЦ; тз.Кст = ОП.Количество; тз.Сума = ОП.Сумма КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; 

КонецПроцедуры

Немає коментарів:

Дописати коментар