По теме из базы знаний
- Расходная накладная, Приходная накладная, Акт об оприходовании запасов. УНФ 1.6, 3.0
- Счет-фактура (СФ) и Универсальный передаточный документ (УПД) (в т.ч. редакции Постановления Правительства РФ от 02.04.2021 г. № 534) из документов Расходная накладная и Счет-фактура (УНФ 1.6)
- Расходная накладная (по складам) из документа Расходная накладная (УНФ 1.6-3.0 Розница 2.3-3.0)
- Универсальный передаточный документ (УПД), Товарно-транспортная накладная, Транспортная накладная, Расходная накладная, Приходная накладная
- Групповое создание документов приема и передачи на комиссию на основании расходных накладных в УНФ 3.0
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
есть обработка внешнеяя анализ чеков по ккм, в этой обработке есть процедура "Расходная накладная" которая создает расходку с позициями сторно!
вот код процедуры
Как сделать чтобы всегда присваивался коэф. = 1.0
вот код процедуры
Процедура Расходка()
док = СоздатьОбъект("Документ.РасходнаяНакладная");
док.Новый();
док.ДатаДок = КонДата;
док.Клиент = ККМ.Клиент;
док.Фирма = Константа.ОсновнаяФирма;
док.Комментарий = "Сторно "+СокрЛП(ККМ.Наименование);
тт = СоздатьОбъект("таблицаЗначений");
тт.НоваяКолонка("НомерЧека");
тт.НоваяКолонка("ДатаЧека");
тт.НоваяКолонка("Время");
тт.НоваяКолонка("Товар");
тт.НоваяКолонка("Цена");
тт.НоваяКолонка("кол");
тт.НоваяКолонка("Сумма");
Отчет.ВыбратьСтроки();
НЧД = "";
Пока Отчет.ПолучитьСтроку() = 1 Цикл
Если СокрЛП(Отчет.Сторно) = "+" Тогда
Если тт.КоличествоСтрок() = 0 Тогда
тт.НоваяСтрока();
тт.НомерЧека = Отчет.НомерЧека;
тт.ДатаЧека = Отчет.Дата;
тт.Время = Отчет.Время;
тт.Товар = СокрЛП(Отчет.Товар);
тт.Цена = Отчет.Цена;
тт.кол = Отчет.Количество;
тт.Сумма = Отчет.Сумма;
Иначе
Если Отчет.НомерЧека = тт.ПолучитьЗначение(1,"НомерЧека") Тогда
тт.НоваяСтрока();
тт.НомерЧека = Отчет.НомерЧека;
тт.ДатаЧека = Отчет.Дата;
тт.Время = Отчет.Время;
тт.Товар = СокрЛП(Отчет.Товар);
тт.Цена = Отчет.Цена;
тт.кол = Отчет.Количество;
тт.Сумма = Отчет.Сумма;
КонецЕсли;
КонецЕсли;
Если Отчет.НомерЧека <> тт.ПолучитьЗначение(1,"НомерЧека") Тогда
Если тт.КоличествоСтрок() >= КСтр Тогда
кк = тт.КоличествоСтрок()-1;
тт.ВыбратьСтроки();
отсечкаСуммы = 0;
Пока тт.ПолучитьСтроку() = 1 Цикл
отсечкаСуммы = -1*тт.Сумма;
Если отсечкаСуммы > 2000 Тогда
Продолжить;
КонецЕсли;
док.НоваяСтрока();
ном = СоздатьОбъект("Справочник.Номенклатура");
Если ном.НайтиПоНаименованию(СокрЛП(тт.Товар),0,1) <> 0 Тогда
док.Товар = Ном.ТекущийЭлемент();
Иначе
Сообщить("Косяк");
КонецЕсли;
док.Цена = тт.Цена;
док.Сумма = -1*тт.Сумма;
док.Количество = -1*тт.Кол;
КонецЦикла;
тт.УдалитьСтроки();
тт.НоваяСтрока();
тт.НомерЧека = Отчет.НомерЧека;
тт.ДатаЧека = Отчет.Дата;
тт.Время = Отчет.Время;
тт.Товар = СокрЛП(Отчет.Товар);
тт.Цена = Отчет.Цена;
тт.кол = Отчет.Количество;
тт.Сумма = Отчет.Сумма;
Иначе
тт.УдалитьСтроки();
КонецЕсли;
Иначе
КонецЕсли;
КонецЕсли;
КонецЦикла;
док.Записать();
ОткрытьФорму(Док.ТекущийДокумент());
КонецПроцедуры
ПоказатьКак сделать чтобы всегда присваивался коэф. = 1.0
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот