УТ 11.5. Печать не тех позиций в чеке

1. N_s_s 2 15.03.22 20:30 Сейчас в теме
Доброго всем времени суток. При печати чека из ПКО в него попадают позиции из прошлых реализаций, по которым есть задолженность.
Хотелось бы понять насколько данные поведение системы логично.
К примеру было сделано 5 реализаций. после 5 реализации Делается приходник на 5-ую, с печатью чека ПКО.
В движениях ПКО, регистры "плановые оплаты клиентов" и "плановые оплаты по срокам" будет стоять 1-ая реализация.
и соответственно её же берет при печати чека. Сумма оплаты сохраняется из текущего чека.
Прикрепляюю скрин чека на всякий случай.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ishelper 15.03.22 22:44 Сейчас в теме
(1)
Хотелось бы понять насколько данные поведение системы логично.
ИМХО, абсолютно логично - вы осуществили предыдущие реализации в кредит (в долг), теперь после уплаты у вас идет "ОПЛАТА КРЕДИТА".
В движениях ПКО, регистры "плановые оплаты клиентов" и "плановые оплаты по срокам" будет стоять 1-ая реализация.
и соответственно её же берет при печати чека.
Пральна, а вы бы какую хотели? Третью? Или пятую, последнюю, а про предыдущие 4 - забыть?
3. N_s_s 2 16.03.22 02:09 Сейчас в теме
(2)
с логикой проведения я согласен, но печатать в чеке для 5 покупателя, товары из 1-го чека покупателя, думаю нет.
4. ishelper 16.03.22 02:27 Сейчас в теме
(3)
печатать в чеке для 5 покупателя, товары из 1-го чека покупателя, думаю нет
Так ведите раздельный учет по реальным покупателям (контрагентам), тогда все будет и проводиться, и печататься нормально, а то сейчас, судя по скриншоту, у вас все они свалены в одну кучу под названием "Частное лицо". И что вы после этого хотите? Чтобы программа сама разобралась, что "Частное лицо" в первой реализации - это совсем не то "Частное лицо", которое в пятой?

Или это всё не так?
5. N_s_s 2 16.03.22 03:04 Сейчас в теме
(4)
Рассуждение абсолютно верное, не понятно в данной ситуации только одно, почему в той же логике в УТ 11.4 до обновления всё работало. Проверил сейчас на копии (до перехода на 11.5), делаю три реализации, закрываю последнюю (4354) приходником с неё печатаю чек. Чек выходит на последнюю реализацию. В движениях в регистрах по "плановые оплаты клиентов" и "плановые оплаты по срокам" стоит документ план и расчетный документ 4352. Но чек печатается на 4254 (текущую, которая и стоит в документе основании), вот и вопрос где же правильно?
6. N_s_s 2 17.03.22 02:17 Сейчас в теме
Неужели я один с таким столкнулся?
7. Sova123 34 17.05.22 21:18 Сейчас в теме
(6) не один но как решить пока не ясно
8. polax 17.05.22 23:11 Сейчас в теме
(6) Заказ клиента не делаете? Если оплачивать заказ? Или все через РМК?
9. N_s_s 2 18.05.22 02:29 Сейчас в теме
(7)
(8)
вот сейчас к этому и пришли ,чуток доработал заказ под наши нужды, дописал обработки по снятию резервов и закрытию заказов.
На этой неделе тестируем работу с заказами. Следующий шаг будет формирование автоматических приходных ордеров при проведении реализации. Но это в нашем случае, потому что у нас подразумевается, что если реализацию отбили значит товар продан. Если будут формироваться автоматически ПКО, то и соответственно не будет копится задолженность и не будет печататься товар из предыдущих накладных
10. Sova123 34 18.05.22 08:58 Сейчас в теме
(9) я просто доработала передачу нужного документа в пробитие чека.
12. N_s_s 2 18.05.22 12:14 Сейчас в теме
(10) мы говорим именно про 11.5?
там же не документ передается, а данные берутся из расчетов с клиентами, формируется список и потом по суммам собирается чек.
14. Sova123 34 18.05.22 16:20 Сейчас в теме
(12)да. Я просто поменяла в обработке объекты расчетов. на конкретный документ.
15. N_s_s 2 18.05.22 18:02 Сейчас в теме
(14)
(14) куском кода киньте и модуль если не затруднит
11. polax 18.05.22 11:00 Сейчас в теме
(9) Еще как вариант можно попробовать убрать учет взаиморасчетов по договорам, оставить только по заказам, а заказ (раз не использовали) в настройках же - использовать только как счет. Теоретически может получиться. Правда, с 11.5 пока не знакомился даже, все по 11.4, может отличаться
13. N_s_s 2 18.05.22 12:19 Сейчас в теме
(11)
В теории можно, но не нужно убирать взаиморасчет по договорам. Если конкретно для данного покупателя, который у нас обезличенный сделать договор с расчетом по документам, то наверное тоже получится
17. MyNameNoName 13.01.24 20:43 Сейчас в теме
(13) Подскажите вам удалось решить данную проблему? Перешли с УТ 11.4 на 11.5.8. Абсолютно такая же проблема.
18. TagirK 27.02.24 16:47 Сейчас в теме
(17) Такаяже тема вышла после перехода ЕРП с 2.4 на 2.5, Вы как то решили задачу?)
19. N_s_s 2 28.02.24 04:11 Сейчас в теме
(18) Если мне не изменяет память, решил так, это общий модуль ВзаиморасчетыСервер:

&Вместо("ЗаполнитьТаблицуОстатковРасчетов")
Процедура УЛ_ЗаполнитьТаблицуОстатковРасчетов(Реквизиты, АдресПлатежейВХранилище, ТаблицаОстатковРасчетов, ДополнительныеОтборы = Неопределено) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ВалютаДокумента", Реквизиты.Валюта);
	Запрос.УстановитьПараметр("ПоВсемКонтрагентам", Не ЗначениеЗаполнено(Реквизиты.Контрагент));
	Запрос.УстановитьПараметр("Контрагент", Реквизиты.Контрагент);
	Запрос.УстановитьПараметр("ПоВсемПартнерам", Не ЗначениеЗаполнено(Реквизиты.Партнер));
	Запрос.УстановитьПараметр("Партнер", Реквизиты.Партнер);
	Запрос.УстановитьПараметр("ПартнерПрочиеОтношения", Реквизиты.ПартнерПрочиеОтношения);
	Запрос.УстановитьПараметр("Период", ?(Реквизиты.Дата <> '00010101',Реквизиты.Дата, ТекущаяДатаСеанса()));
	
	УчитыватьФилиалы = ?(Реквизиты.Свойство("УчитыватьФилиалы"), Реквизиты.УчитыватьФилиалы, Истина);
	
	Если УчитыватьФилиалы И ТипЗнч(Реквизиты.Организация) <> Тип("Массив") Тогда
		ГоловнаяОрганизация = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Реквизиты.Организация,"ГоловнаяОрганизация");
		Если ГоловнаяОрганизация = Реквизиты.Организация Тогда
			ГоловнаяОрганизация = Неопределено;
			ЭтоГоловнаяОрганизация = Истина;
		Иначе
			ЭтоГоловнаяОрганизация = Ложь;
		КонецЕсли;
	Иначе
		ЭтоГоловнаяОрганизация = Ложь;
		ГоловнаяОрганизация = Неопределено;
	КонецЕсли;
	
	Запрос.УстановитьПараметр("Организация", Реквизиты.Организация);
	Запрос.УстановитьПараметр("ЭтоГоловнаяОрганизация", ЭтоГоловнаяОрганизация);
	Запрос.УстановитьПараметр("ГоловнаяОрганизация", ГоловнаяОрганизация);
	
	Запрос.УстановитьПараметр("ДебиторскаяЗадолженность", Реквизиты.ПодборДебиторскойЗадолженности);
	Запрос.УстановитьПараметр("ТолькоБезусловнаяЗадолженность", Реквизиты.ПодборТолькоБезусловнойЗадолженности);
	
	Если Реквизиты.Свойство("ХозяйственнаяОперация") Тогда
		СтатьяДвиженияДенежныхСредств =
			Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(
			Реквизиты.ХозяйственнаяОперация);
	Иначе
		СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка();
	КонецЕсли;
	Запрос.УстановитьПараметр("СтатьяДвиженияДенежныхСредств", СтатьяДвиженияДенежныхСредств);
	
	УстановитьПривилегированныйРежим(Истина);
	
	ТекстЗапроса = "
	|ВЫБРАТЬ
	|	РасшифровкаПлатежа.ОбъектРасчетов КАК ОбъектРасчетов,
	|	РасшифровкаПлатежа.Партнер КАК Партнер,
	|	РасшифровкаПлатежа.ВалютаВзаиморасчетов КАК Валюта,
	|	РасшифровкаПлатежа.Сумма КАК Сумма
	|
	|ПОМЕСТИТЬ ТаблицаПлатежей
	|ИЗ
	|	&РасшифровкаПлатежа КАК РасшифровкаПлатежа
	|;
	|////////////////////////////////////////////////////////////­///////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	|	Филиалы.Ссылка КАК Ссылка
	|ПОМЕСТИТЬ ЦентрализованныеДоговоры
	|ИЗ
	|	Справочник.ДоговорыКонтрагентов.Филиалы КАК Филиалы
	|ГДЕ
	|	Филиалы.Организация = &Организация
	|;
	|////////////////////////////////////////////////////////////­///////////////////
	|ВЫБРАТЬ
	|	ОбъектыРасчетов.Ссылка КАК ОбъектРасчетов,
	|	ОбъектыРасчетов.Объект КАК Объект,
	|	ОбъектыРасчетов.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
	|ПОМЕСТИТЬ ОбъектыРасчетов
	|ИЗ
	|	Справочник.ОбъектыРасчетов КАК ОбъектыРасчетов
	|ГДЕ
	|	(ОбъектыРасчетов.Организация В (&Организация) 
	|	ИЛИ НЕ &ЭтоГоловнаяОрганизация 
	|		И ОбъектыРасчетов.Договор В (ВЫБРАТЬ Ссылка ИЗ ЦентрализованныеДоговоры)
	|		И (ОбъектыРасчетов.Организация = &ГоловнаяОрганизация
	|			ИЛИ ОбъектыРасчетов.Договор.РазрешаетсяПередачаОплатМеждуФилиалами)
	|	ИЛИ &ЭтоГоловнаяОрганизация
	|		И ОбъектыРасчетов.Организация.ГоловнаяОрганизация В (&Организация)
	|		И ОбъектыРасчетов.Организация.ДопускаютсяВзаиморасчетыЧерезГоловнуюОрганизацию)
	|	И (ОбъектыРасчетов.Партнер = &Партнер ИЛИ &ПоВсемПартнерам)
	|	И (ОбъектыРасчетов.Контрагент = &Контрагент ИЛИ &ПоВсемКонтрагентам)
	|	И (&ПартнерПрочиеОтношения И ОбъектыРасчетов.Партнер.ПрочиеОтношения
	|		ИЛИ НЕ &ПартнерПрочиеОтношения)
	|
	|	И (ОбъектыРасчетов.Ссылка <> Значение(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|	И ОбъектыРасчетов.Договор.Статус <> Значение(Перечисление.СтатусыДоговоровКонтрагентов.Закрыт))		
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ОбъектРасчетов
	|;
	|////////////////////////////////////////////////////////////­///////////////////
	|
	|ВЫБРАТЬ
	|	ОбъектыРасчетов.ОбъектРасчетов                                   КАК ОбъектРасчетов,
	|	ВалютыИКурсыДокументов.КурсЧислительВалютыВзаиморасчетов         КАК КурсЧислительВалютыВзаиморасчетов,
	|	ВалютыИКурсыДокументов.КурсЗнаменательВалютыВзаиморасчетов       КАК КурсЗнаменательВалютыВзаиморасчетов,
	|	ВалютыИКурсыДокументов.КурсЧислительВалютыУправленческогоУчета   КАК КурсЧислительВалютыУправленческогоУчета,
	|	ВалютыИКурсыДокументов.КурсЗнаменательВалютыУправленческогоУчета КАК КурсЗнаменательВалютыУправленческогоУчета,
	|	ВалютыИКурсыДокументов.КурсЧислительВалютыДокумента              КАК КурсЧислительВалютыДокумента,
	|	ВалютыИКурсыДокументов.КурсЗнаменательВалютыДокумента            КАК КурсЗнаменательВалютыДокумента,
	|	ВалютыИКурсыДокументов.ВалютаДокумента                           КАК ВалютаДокумента,
	|	ВалютыИКурсыДокументов.ВалютаВзаиморасчетов                      КАК ВалютаВзаиморасчетов,
	|	ОтносительныеКурсыВалютСрезПоследних.КурсЧислитель               КАК КурсЧислительПеременный,
	|	ОтносительныеКурсыВалютСрезПоследних.КурсЗнаменатель             КАК КурсЗнаменательПеременный
	|ИЗ
	|	ОбъектыРасчетов КАК ОбъектыРасчетов
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВалютыИКурсыДокументов КАК ВалютыИКурсыДокументов
	|		ПО ОбъектыРасчетов.Объект = ВалютыИКурсыДокументов.Документ,
	|	РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(
	|			&Период,
	|			Валюта = &ВалютаДокумента
	|				И БазоваяВалюта В
	|					(ВЫБРАТЬ
	|						Т.ВалютаРегламентированногоУчета
	|					ИЗ
	|						ОбъектыРасчетов КАК Т)) КАК ОтносительныеКурсыВалютСрезПоследних
	|
	|;
	|////////////////////////////////////////////////////////////­///////////////////
	|
	|ВЫБРАТЬ &ТекстЗапросаРасчеты
	|
	|УПОРЯДОЧИТЬ ПО
	|	Организация,
	|	Контрагент,
	|	Дата,
	|	Номер
	|";
	Если Реквизиты.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом Тогда
		ТекстЗапроса = СтрЗаменить(
			ТекстЗапроса,
			"ВЫБРАТЬ &ТекстЗапросаРасчеты",
			ТекстЗапросаПоОстаткамРасчетовСКлиентами());
	Иначе
		ТекстЗапроса = СтрЗаменить(
			ТекстЗапроса,
			"ВЫБРАТЬ &ТекстЗапросаРасчеты",
			ТекстЗапросаПоОстаткамРасчетовСПоставщиками());
	КонецЕсли;
	
	Запрос.Текст = ТекстЗапроса;
	
	Если ЗначениеЗаполнено(АдресПлатежейВХранилище) Тогда
		РасшифровкаПлатежа = ПолучитьИзВременногоХранилища(АдресПлатежейВХранилище);
		Если РасшифровкаПлатежа.Колонки.Найти("Партнер") = Неопределено Тогда
			РасшифровкаПлатежа.Колонки.Добавить("Партнер", Новый ОписаниеТипов("СправочникСсылка.Партнеры"));
			РасшифровкаПлатежа.ЗаполнитьЗначения(Реквизиты.Партнер, "Партнер");
		КонецЕсли;
	Иначе
		Если ТаблицаОстатковРасчетов = Неопределено Тогда
			РасшифровкаПлатежа = Новый ТаблицаЗначений;
			РасшифровкаПлатежа.Колонки.Добавить("ОбъектРасчетов", Новый ОписаниеТипов("СправочникСсылка.ОбъектыРасчетов"));
			РасшифровкаПлатежа.Колонки.Добавить("Партнер", Новый ОписаниеТипов("СправочникСсылка.Партнеры"));
			РасшифровкаПлатежа.Колонки.Добавить("ВалютаВзаиморасчетов", Новый ОписаниеТипов("СправочникСсылка.Валюты"));
			РасшифровкаПлатежа.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
		Иначе
			РасшифровкаПлатежа = ТаблицаОстатковРасчетов.Выгрузить(,).СкопироватьКолонки();
		КонецЕсли;
	КонецЕсли;
	РасшифровкаПлатежа.Свернуть("ОбъектРасчетов, Партнер, ВалютаВзаиморасчетов", "Сумма");
	
	Если РасшифровкаПлатежа.Количество() = 1 И Не ЗначениеЗаполнено(РасшифровкаПлатежа[0].ОбъектРасчетов) Тогда
		РасшифровкаПлатежа.Очистить();
	КонецЕсли;
	
	Запрос.УстановитьПараметр("РасшифровкаПлатежа", РасшифровкаПлатежа);
	
	Если ДополнительныеОтборы <> Неопределено Тогда
		
		СхемаЗапросаОстатков = Новый СхемаЗапроса;
		СхемаЗапросаОстатков.УстановитьТекстЗапроса(Запрос.Текст);
		Оператор = СхемаЗапросаОстатков.ПакетЗапросов[2].Операторы[0];
		
		сч = 0;
		Для Каждого КлючИЗначение Из ДополнительныеОтборы Цикл
			Отбор = "ЕСТЬNULL(ОбъектыРасчетов."+КлючИЗначение.Ключ+", Неопределено) = &Параметр"+Строка(сч);
			Запрос.УстановитьПараметр("Параметр"+Строка(сч), КлючИЗначение.Значение);
			Оператор.Отбор.Добавить(Отбор);
			сч= сч + 1;
		КонецЦикла;
		
		Запрос.Текст = СхемаЗапросаОстатков.ПолучитьТекстЗапроса();
		
	КонецЕсли;
	
	РезультатЗапроса = Запрос.ВыполнитьПакет();
	Если ТаблицаОстатковРасчетов = Неопределено Тогда
		ТаблицаОстатковРасчетов = РезультатЗапроса[4].Выгрузить();
	Иначе
		ТаблицаОстатковРасчетов.Загрузить(РезультатЗапроса[4].Выгрузить());
	КонецЕсли;
	
	Если РасшифровкаПлатежа.Количество() = 0 Тогда
		СуммаКРаспределению = Реквизиты.СуммаДокумента;
	Иначе
		СуммаКРаспределению = 0;
	КонецЕсли;
	
	СоответствиеКурсовВалют = Новый Соответствие;
	
	ВыборкаФиксКурса = РезультатЗапроса[3].Выбрать();
	ВалютаУправленческогоУчета = ЗначениеНастроекПовтИсп.ВалютаУправленческогоУчета();
	Пока ВыборкаФиксКурса.Следующий() Цикл
		Если Реквизиты.Валюта = ВыборкаФиксКурса.ВалютаВзаиморасчетов Тогда
			КоэффициентПересчета = 1;
		ИначеЕсли Реквизиты.Валюта = ВыборкаФиксКурса.ВалютаДокумента Тогда
			КоэффициентПересчета = ВыборкаФиксКурса.КурсЧислительВалютыДокумента * ВыборкаФиксКурса.КурсЗнаменательВалютыВзаиморасчетов 
			                       / (ВыборкаФиксКурса.КурсЗнаменательВалютыДокумента * ВыборкаФиксКурса.КурсЧислительВалютыВзаиморасчетов)
		ИначеЕсли Реквизиты.Валюта = ВалютаУправленческогоУчета Тогда
			КоэффициентПересчета = ВыборкаФиксКурса.КурсЧислительВалютыУправленческогоУчета * ВыборкаФиксКурса.КурсЗнаменательВалютыВзаиморасчетов 
			                       / (ВыборкаФиксКурса.КурсЗнаменательВалютыУправленческогоУчета * ВыборкаФиксКурса.КурсЧислительВалютыВзаиморасчетов)
		Иначе
			КоэффициентПересчета = ВыборкаФиксКурса.КурсЧислительПеременный * ВыборкаФиксКурса.КурсЗнаменательВалютыВзаиморасчетов 
			                       / (ВыборкаФиксКурса.КурсЗнаменательПеременный * ВыборкаФиксКурса.КурсЧислительВалютыВзаиморасчетов)
		КонецЕсли;
		Коэффициенты = Новый Структура("КоэффициентПересчетаВВалютуВзаиморасчетов", КоэффициентПересчета);
		СоответствиеКурсовВалют.Вставить(ВыборкаФиксКурса.ОбъектРасчетов, Коэффициенты);
	КонецЦикла;
	
	Для Каждого СтрокаТаблицы Из ТаблицаОстатковРасчетов Цикл
		
		Если Не СтрокаТаблицы.Выбран Тогда
				
			Если СтрокаТаблицы.ДолгПартнера <> 0 И Реквизиты.ПодборДебиторскойЗадолженности Тогда
				СтрокаТаблицы.Сумма = Мин(СтрокаТаблицы.ДолгПартнера, СтрокаТаблицы.КОплате);
			ИначеЕсли СтрокаТаблицы.НашДолг <> 0  И НЕ Реквизиты.ПодборДебиторскойЗадолженности Тогда
				СтрокаТаблицы.Сумма = Мин(СтрокаТаблицы.НашДолг,СтрокаТаблицы.КОплате);
			ИначеЕсли СтрокаТаблицы.КОплате <> 0 Тогда
				СтрокаТаблицы.Сумма = СтрокаТаблицы.КОплате;
			КонецЕсли;
			
			Если ЗначениеЗаполнено(Реквизиты.Валюта) И Реквизиты.Валюта <> СтрокаТаблицы.ВалютаВзаиморасчетов Тогда
				
				Если СтрокаТаблицы.ВариантКурсаДоговора = Перечисления.ВариантыКурсаДоговора.УстановленныйВДоговоре Тогда
					Коэффициенты = СоответствиеКурсовВалют.Получить(СтрокаТаблицы.Договор);
				ИначеЕсли СтрокаТаблицы.ВариантКурсаДоговора = Перечисления.ВариантыКурсаДоговора.ФиксированныйНаДатуОтгрузки Тогда
					Коэффициенты = СоответствиеКурсовВалют.Получить(СтрокаТаблицы.ОбъектРасчетов);
				Иначе
					Коэффициенты = СоответствиеКурсовВалют.Получить(СтрокаТаблицы.ВалютаВзаиморасчетов);
				КонецЕсли;
				Если Коэффициенты = Неопределено Тогда
					Коэффициенты = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
						Реквизиты.Валюта, 
						СтрокаТаблицы.ВалютаВзаиморасчетов,
						?(Реквизиты.Дата <> '00010101',Реквизиты.Дата, ТекущаяДатаСеанса()),
						СтрокаТаблицы.Организация,,,
						СтрокаТаблицы.ОбъектРасчетов);
					Если СтрокаТаблицы.ВариантКурсаДоговора = Перечисления.ВариантыКурсаДоговора.УстановленныйВДоговоре Тогда
						СоответствиеКурсовВалют.Вставить(СтрокаТаблицы.Договор, Коэффициенты);
					Иначе
						СоответствиеКурсовВалют.Вставить(СтрокаТаблицы.ВалютаВзаиморасчетов, Коэффициенты);
					КонецЕсли;
				КонецЕсли;
				
				СтрокаТаблицы.Сумма = ?(Коэффициенты.КоэффициентПересчетаВВалютуВзаиморасчетов <> 0, СтрокаТаблицы.Сумма / Коэффициенты.КоэффициентПересчетаВВалютуВзаиморасчетов, 0);
				
			КонецЕсли;
			
		КонецЕсли;
		
		Если СуммаКРаспределению > 0 Тогда
			
			СтрокаТаблицы.Выбран = Истина;
			Если СтрокаТаблицы.Сумма > СуммаКРаспределению Тогда
				СтрокаТаблицы.Сумма = СуммаКРаспределению;
			КонецЕсли;
			СуммаКРаспределению = СуммаКРаспределению - СтрокаТаблицы.Сумма;
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры


Показать
20. TagirK 28.02.24 08:54 Сейчас в теме
21. TagirK 28.02.24 16:19 Сейчас в теме
(19) короче просто чеки печатаем с документа Реализация, так я думаю и правильно
MyNameNoName; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот