Эта второй урок по настройке интегратора для 1Cv8 по теме интеграции Аксапты с 1С.
Интегратор для 1Cv8 основан на подходе, который был заложен в интеграторе для 1Cv7. Однако, в связи с новыми возможностями платформы 1Cv8, многие вещи удалось сделать проще и элегантнее. Например, интегратор для 1Cv8 не требует внешних компонент.
Чтобы приобрести полнофункциональную версию интегратора обращайтесь в компанию Работа на результат! Дополнительную информацию можно получить у Андрея Вахрина.
Андрей Вахрин (Dolter), dolter@rabota-na-rezultat.ru
Интеграция Axapta с 1Cv8.
Урок 2: Загрузка справочника номенклатуры
На первом уроке мы изучили, как создавать источники, объекты загрузки и простые соответствия. Для загрузки справочника Номенклатура нам понадобится табличное соответствие. Причем таблица может меняться, в зависимости от данных, находящихся в Axapta.
Итак, во-первых создадим источник для справочника НоменклатурныеГруппы.
Как видно из текста запроса, наименования групп можно устанавить самостоятельно. Объект для справочника НоменклатурныеГруппы будет очень прост, поэтому я не буду тут его описывать.
Далее создадим источник для определения неких групп номенклатуры в Аксапте и после этого сопоставим эти группы одинэсовским.
ВНИМАНИЕ: В источнике для соответствия поля (Наименование, Тип, Значение) обязательны!
Далее создаем необходимое нам соответствие на основании источника:
В данном случае поле Тип является информационным, для ввода строкового значения.
В поле значение мы поместим соответствующие наименования номенклатурных групп. Строки, где не будет внесено Значение, в дальнейшем создании окончательного запроса участвовать не будут.
Далее создадим источник непосредственно для элементов справочника номенклатуры. Вот текст запроса:
Недостаток демоверсий – нехватка «нормальных» данных. Поэтому приходится вставлять в код запроса замену неких типов. Для демоверсии Аксапты столы – продукция. Нам же приходится использовать их как товары, из-за отсутствия последних в выбранной версии Axapta.
Теперь посмотрим на конечную версию запроса, которая будет выполнятся после обработки нашего «метазапроса»:
select Код , Наименование , case when left(Наименование, 4) = 'Стол' then 'Товар' else НоменклатурнаяГруппа end НоменклатурнаяГруппа , ЕдиницаИзмерения from ( select a.itemid as Код, a.itemname as Наименование, a.itemgroupid as Родитель, 0 as ЭтоГруппа, a.itemname as ПолнНаименование, b.unitid as ЕдиницаИзмерения, b.priceSecCur_ru as Себестоимость, 1 ПорядокХраненияОтпускнойЦены, b.price as Цена, (select currencyCode from axdb..companyinfo as ci where ci.dataareaid = a.dataareaid) as Валюта, case a.itemgroupid when 'Готовые' then 'Продукция' when 'СтолыКухон' then 'Товар' when 'СтолыОбед' then 'Товар' when 'СтолыПисьм' then 'Товар' when 'Услуги' then 'Услуга' else '' end НоменклатурнаяГруппа, b.priceSecCur_ru as ПлановаяСебестоимость, -- необходимо уточнение a.itemId as ИдА from axdb..inventtable as a left outer join axdb..inventtablemodule as b on (a.itemid = b.itemid and 0 = b.moduletype and a.dataareaid = b.dataareaid) where a.dataareaid = 'dmo' ) s where НоменклатурнаяГруппа <> ''
Вот и видим каким же образом совершена подстановка для табличного соответствия. В селекте вставляется выбор по значению поля, описанного в соответствии, как Строка-значение по парам Наименование – Значение.
Далее для объекта вроде все понятно. Остановлюсь только на двух полях, в одном из которых будет выбираться значение перечисления, а во втором логическое значение.
По умолчанию выставляем НДС 18%.
Поле Услуга будет принимать значение Истина, если Номенклатурная группа данного товара Услуга.
Вот теперь точно все. Можно загружать:

Заключение
Интегратор позволяет передать данные из Microsoft Axapta в 1С. Чтобы приобрести полнофункциональную версию интегратора обращайтесь в компанию Работа на результат! Дополнительную информацию о полнофункциональной версии можно получить у Андрея Вахрина.
Андрей Вахрин (Dolter), dolter@rabota-na-rezultat.ru











