В начало

ПКО «СтавкиНДС» из входящих данных

           

Нужно заполнить ПКО «СтавкиНДС» из входящих данных. При этом есть справочник «НоменклатураСНДС», в котором имеется реквизит «НДС», в котором указана ставка НДС, являющаяся перечислением «СтавкиНДС» (в БАЗЕ-ИСТОЧНИКЕ), но в БАЗЕ-ПРИЕМНИКЕ ставки НДС заносятся уже в справочник «СтавкиНДС». Вот такая вот загагулина.

Рис. Справочник «НоменклатураСНДС» в БАЗЕ-ИСТОЧНИКЕ

 

            В конфигурации «Конвертация данных» созданы ПКО «НоменклатураСНДС» для конвертации справочника и связанное с ним ПКО «СтавкиНДС» для конвертации перечисления в справочник.

            Далее приведено ПКО «СтавкиНДС» с ПКС, у которых нет источника, но установлены флаги/галочки «Получать из входящих данных». Это означает, что данные туда будут попадать из другого места.

Рис. ПКО «СтавкиНДС» с ПКС

 

            Данное ПКО нужно настроить, а именно установить галочку/флаг «Автоматически генерировать номер или код…», т.к. иначе реквизиту «Код» взяться больше неоткуда.

Рис. ПКО «СтавкиНДС», закладка «Настройки»

 

            Ниже приведено ПКО «НоменклатураСНДС», в одном из ПКС которого будут вормироваться исходящие данные, которые потом попадут во входящие данные в ПКО «СтавкиНДС».

Рис. ПКО «НоменклатураСНДС» и ПКС к нему

 

            Исходящие данные будем формировать в ПКС «НДС» в обработчике событий «Перед выгрузкой». В данном ПКС необходимо создать структуру, подобную той, что соответствует реквизитам ПКО «СтавкиНДС». По-идее достаточно одного реквизита «Наименование», т.к. реквизит «Код» формируется автоматически при конвертации перечисления «СтавкиНДС» в одноимённый справочник.

Рис. ПКС «НДС --> НДС», обработчик событий «Перед выгрузкой»

 

            Ниже, на всякий случай, приведён код обработчика «Перед выгрузкой» в текстовом виде.

 

Листинг. Код из обработчика «Перед выгрузкой»

ИсходящиеДанные = Новый Структура("Код, Наименование");

ИсходящиеДанные.Код = "";//Чисто формально

 

Если Источник.НДС = Перечисления.СтавкиНДС.БезНДС Тогда

            ИсходящиеДанные.Наименование = "Без НДС";

ИначеЕсли Источник.НДС = Перечисления.СтавкиНДС.НДС0 Тогда

            ИсходящиеДанные.Наименование = "0 %";

ИначеЕсли Источник.НДС = Перечисления.СтавкиНДС.НДС10 Тогда

            ИсходящиеДанные.Наименование = "10 %";

ИначеЕсли Источник.НДС = Перечисления.СтавкиНДС.НДС18 Тогда

            ИсходящиеДанные.Наименование = "18 %";

ИначеЕсли Источник.НДС = Перечисления.СтавкиНДС.НДС20 Тогда

            ИсходящиеДанные.Наименование = "20 %";

КонецЕсли;

 

            В коде обработчика создаем структуру с кодом и наименованием, которые соответствуют реквизитам справочника, в который конвертируется перечисление «СтавкиНДС», а также устанавливаем соответствие между значением перечисления и реквизитом справочника «СтавкиНДС».

            Далее идём по накатанной, сохраняем правила обмена.

            Переходим в БАЗУ-ИСТОЧНИК, выгружаем данные с помощью обработки «Универсальный обмен данными в формате…».

            Открываем БАЗУ-ПРИЕМНИК, загружаем данные при помощи обработки «V8Exchan83.epf».

            И окончательно, проверяем/смотрим справочники «СтавкиНДС» и «НоменклатураСНДС» в БАЗЕ-ПРИЕМНИКЕ.

 

Рис. Справочники «СтавкиНДС» и «НоменклатураСНДС»

в БАЗЕ-ПРИЕМНИКЕ

 

            Если сравнить справочник «НоменклатураСНДС» между источником и приемником, то вроде все тоже окейно.

            Таким образом, задание по получению данных в ПКО «СтавкиНДС» из входящих данных, переданных из ПКС «НДС» выполнена.