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

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

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

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

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

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

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

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

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

четвер, 19 грудня 2019 р.

Друк ТЧ документа

Таб=СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("НазваТаблиці"); Таб.ВывестиСекцию("Шапка"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Таб.ВывестиСекцию("Рядок"); КонецЦикла; Таб.ВывестиСекцию("Всього"); Таб.ТолькоПросмотр(1); Таб.ПараметрыСтраницы(2,,,,,,,,,1,,); Таб.Показать();

середа, 18 грудня 2019 р.

Сортувати ТЧ документа по Індексу елементу

// ======================================== Процедура Сортувати() тз = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(тз); тз.НоваяКолонка("Індекс","Число",10,3); тз.ВыбратьСтроки(); Пока тз.ПолучитьСтроку() = 1 Цикл тз.Індекс = тз.ОзнакаДеревини.Індекс; КонецЦикла; тз.Сортировать("Індекс"); ЗагрузитьТабличнуюЧасть(тз); КонецПроцедуры

Меню вибору

Перем Рез; Рез = СоздатьОбъект("СписокЗначений"); Рез.ДобавитьЗначение(1,"Варіант 1"); Рез.ДобавитьЗначение(2,"Варіант 2"); Если Рез.ВыбратьЗначение(Рез,,,,2) <= 0 Тогда Возврат; КонецЕсли;

вівторок, 17 грудня 2019 р.

Вибрати документи, заповнити тз, завантажити в документ

// =============================== Процедура ЗаповнитиРоздрібЗаМісяць() Если КоличествоСтрок() > 0 Тогда Если Вопрос("Всі рядочки будуть видалені","ОК+Отмена") = "Отмена" Тогда Возврат; КонецЕсли; КонецЕсли; Дата1 = НачМесяца(ДатаДок); Дата2 = КонМесяца(ДатаДок); УдалитьСтроки(); тз = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(тз); док = СоздатьОбъект("Документ.РозничнаяНакладная"); док.ВыбратьДокументы(Дата1,Дата2); Пока док.ПолучитьДокумент() = 1 Цикл Если док.Проведен() = 0 Тогда Продолжить; КонецЕсли; док.ВыбратьСтроки(); Пока док.ПолучитьСтроку() = 1 Цикл тз.НоваяСтрока(); тз.ТМЦ = док.ТМЦ; тз.Кво = док.Кво; тз.Ед = док.Ед; тз.Коэффициент = док.Коэффициент; тз.СуммаСНДС = док.СуммаСНДС; тз.НДС = Окр(тз.СуммаСНДС/6,2,1); тз.СуммаБезНДС = тз.СуммаСНДС - тз.НДС; тз.СуммаБезСкидки = тз.СуммаСНДС - тз.НДС; КонецЦикла; КонецЦикла; тз.Свернуть("ТМЦ,Ед,Коэффициент,ЦенаБезНДС","СуммаБезСкидки,СуммаСНДС,НДС,СуммаБезНДС,Кво"); тз.ВыбратьСтроки(); Пока тз.ПолучитьСтроку() = 1 Цикл тз.ЦенаБезНДС = Окр(тз.СуммаБезНДС/тз.Кво,2,1); КонецЦикла; ЗагрузитьТабличнуюЧасть(тз); БазаНДС = тз.Итог("СуммаБезНДС"); СуммаНДС = тз.Итог("НДС"); КонецПроцедуры