КА 20. Как дописать правила обмена, чтобы номенклатура схлопывалась
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) мы делали в приемнике доработку в расширении
В большинстве случаев товары заменяются на "Товар", кроме топлива, и некоторых других моментах. Оставили возможность создавать документы без свёртки в "Товар", позиции, которые не превращаются в товары.
У нас односторонний обмен УНФ - БП (бухгалтерия на аутсорсе, а номенклатуры много разной, база БП используется для учёта НДС. Прибыль по итогу считается одним большим котлом, без разбивок по номенклатурным группам.
В большинстве случаев товары заменяются на "Товар", кроме топлива, и некоторых других моментах. Оставили возможность создавать документы без свёртки в "Товар", позиции, которые не превращаются в товары.
У нас односторонний обмен УНФ - БП (бухгалтерия на аутсорсе, а номенклатуры много разной, база БП используется для учёта НДС. Прибыль по итогу считается одним большим котлом, без разбивок по номенклатурным группам.
Ещё сделали интересную доработку в УНФ - для каждого документа интеркампани создаётся и проводится два документа счета-фактуры - входящий и исходящий. Это позволило использовать полностью типовую синхронизацию УНФ - БП
(6) Аля алгоритм
Алгоритм |
---|
ТЗ = Объект[ИмяТабЧасти].Выгрузить();
Попытка
ТЗ.Свернуть("СтавкаНДС", "Сумма, Количество, СуммаНДС, Себестоимость");
Исключение
ТЗ.Свернуть("СтавкаНДС", "Сумма, Количество, СуммаНДС");
КонецПопытки;
Объект[ИмяТабЧасти].Загрузить(ТЗ);
Для Каждого СтрокаТовары Из Объект[ИмяТабЧасти] Цикл
Если СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
СтавкаНДССтрокой = "10%";
ВидСтавкиНДС = Перечисления.ВидыСтавокНДС.Пониженная;
ИначеЕсли СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
СтавкаНДССтрокой = "20%";
ВидСтавкиНДС = Перечисления.ВидыСтавокНДС.Общая;
Иначе
СтавкаНДССтрокой = "Без НДС";
ВидСтавкиНДС = Перечисления.ВидыСтавокНДС.БезНДС;
КонецЕсли;
Наименование = "Товар (" + СтавкаНДССтрокой + ")";
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Наименование);
Если Не ЗначениеЗаполнено(Номенклатура) Тогда
НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
НоваяНоменклатура.Наименование = Наименование;
НоваяНоменклатура.ВидСтавкиНДС = ВидСтавкиНДС;
НоваяНоменклатура.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товары");
НоваяНоменклатура.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
НоваяНоменклатура.НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Основная номенклатурная группа");
НоваяНоменклатура.Записать();
Номенклатура = НоваяНоменклатура.Ссылка;
КонецЕсли;
СтрокаТовары.Номенклатура = Номенклатура;
СтрокаТовары.Цена = ?(СтрокаТовары.Количество = 0,0, СтрокаТовары.Сумма / СтрокаТовары.Количество);
СтрокаТовары.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;
КонецЦикла; Показать |
Запрос по табличной части свернет все в 2 строки
"ВЫБРАТЬ
| СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
| РеализацияТоваровУслугТовары.СтавкаНДС,
| СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма,
| СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС,
| РеализацияТоваровУслугТовары.ЕдиницаИзмерения
|ПОМЕСТИТЬ вт
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслугТовары.СтавкаНДС,
| РеализацияТоваровУслугТовары.ЕдиницаИзмерения
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| вт.Количество,
| вт.СтавкаНДС,
| вт.Сумма,
| вт.СуммаНДС,
| 1 КАК Коэффициент,
| вт.Сумма / вт.Количество КАК Цена,
| ВЫБОР
| КОГДА вт.СтавкаНДС.Наименование = ""БезНДС""
| ТОГДА &НомБез
| ИНАЧЕ &НомС
| КОНЕЦ КАК Номенклатура
|ИЗ
| вт КАК вт";
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот