8.х ОБМЕН Как реализовать в КД2?

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем tasshh, 22 окт 2010.

  1. TopicStarter Overlay
    tasshh
    Offline

    tasshh

    Регистрация:
    2 сен 2009
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Есть конфа Торговля и Склад, переписанная, и УПП. Нужно было перенести характеристики номенклатуры из ТиС в УПП.
    Я сделала 2 обработки: первая выгружает из 7-ки номенклатуру, характеристики и штрихкоды в dbf-файл. Вторая - загружает в 8-ку, в план видов характеристик Свойства объектов, в регистр сведений Значения свойств объектов. Вобщем все работает.

    Хочу сделать этот перенос в КД. Но совершенно не понимаю как это можно реализовать.

    из 7-ки выбираю данные обычным запросом

    Запрос = СоздатьОбъект("Запрос";
    ТекстЗапроса =
    "//{{ЗАПРОС(Выполнить)
    //|Период с ВыбНачПериода по ВыбКонПериода;
    //|Обрабатывать НеПомеченныеНаУдаление;
    |Владелец = Справочник.СвойстваНоменклатуры.Владелец;
    |ВидСвойства = Справочник.СвойстваНоменклатуры.ВидСвойства;
    |ЗначениеСвойства = Справочник.СвойстваНоменклатуры.ЗначениеСвойства.Наименование;
    |Размер = Справочник.СвойстваНоменклатуры.ЗначениеСвойства.Размер;
    |Рост = Справочник.СвойстваНоменклатуры.ЗначениеСвойства.Рост;
    |Группировка Владелец упорядочить по Владелец.Наименование без групп;
    |Группировка Размер;
    |Группировка Рост;
    |"//}}ЗАПРОС

    и далее выгружаю в dbf...

    в 8-ке написала следующее:

    БД.Первая();

    Номенклатура = Справочники.Номенклатура;

    Пока БД.Следующая() = Истина Цикл

    Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
    Характеристика.Владелец = Номенклатура.НайтиПоНаименованию(БД.ПолучитьЗначениеПоля("NOMN"));

    Размер = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Размер");
    Рост = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Рост");

    // размер
    ЗначениеРазмер = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(СокрЛП(БД.ПолучитьЗначениеПоля("RAZMER")),Истина,,Размер);

    БДРазмер = СокрЛП(БД.ПолучитьЗначениеПоля("RAZMER"));

    Если БДРазмер <> "" Тогда

    Если ЗначениеРазмер.Пустая() Тогда
    НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
    НовоеЗначение.Владелец = Размер.Ссылка;
    НовоеЗначение.Наименование = СокрЛП(БД.ПолучитьЗначениеПоля("RAZMER"));
    НовоеЗначение.Записать();
    ЗначениеРазмер = НовоеЗначение.Ссылка;
    КонецЕсли;

    Характеристика.Наименование = "Размер " + ЗначениеРазмер;

    КонецЕсли;

    // рост
    ЗначениеРост = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(СокрЛП(БД.ПолучитьЗначениеПоля("ROST")),Истина,,Рост);
    БДРост = СокрЛП(БД.ПолучитьЗначениеПоля("ROST"));

    Если БДРост <> "" Тогда

    Если ЗначениеРост.Пустая() Тогда
    НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
    НовоеЗначение.Владелец = Рост.Ссылка;
    НовоеЗначение.Наименование = БДРост;
    НовоеЗначение.Записать();
    ЗначениеРост = НовоеЗначение.Ссылка;
    КонецЕсли;

    Характеристика.Наименование = Характеристика.Наименование + ", Рост " + ЗначениеРост;

    КонецЕсли;


    Характеристика.Записать();



    ЗаписьРазмер=РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗаписьРост=РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    //Размер

    ЗаписьРазмер.Объект = Характеристика.Ссылка;
    ВидСвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Размер");
    ЗаписьРазмер.Свойство = ВидСвойства;
    ЗаписьРазмер.Значение = ЗначениеРазмер;
    ЗаписьРазмер.Записать();

    //Рост

    ЗаписьРост = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗаписьРост.Объект = Характеристика.Ссылка;
    ВидСвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Рост");
    ЗаписьРост.Свойство = ВидСвойства;
    ЗаписьРост.Значение = ЗначениеРост;
    ЗаписьРост.Записать();


    СвойстваХарактеристики = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
    СвойстваХарактеристики.Отбор.Объект.Значение = Характеристика.Ссылка;
    СвойстваХарактеристики.Отбор.Объект.Использование = Истина;
    Характеристика.СформироватьНаименование(СвойстваХарактеристики.Выгрузить());
    Характеристика.Записать();
    /////////////////////////////////////////////////////////////////////

    //добавляю штрихкод

    ШК = СокрЛП(БД.ПолучитьЗначениеПоля("SHKOD"));
    Если ШК <> "Без ШК" Тогда
    Штрих = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
    //Штрих.Отбор.Код.Установить();
    Штрих_элем = Штрих.Добавить();
    Штрих_элем.Штрихкод = ШК;
    Штрих_элем.Владелец = Номенклатура.НайтиПоНаименованию(БД.ПолучитьЗначениеПоля("NOMN"));
    Штрих_элем.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
    Штрих_элем.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.НайтиПоНаименованию("Внутренний");
    Штрих_элем.ХарактеристикаНоменклатуры = Характеристика.Ссылка;
    Штрих_элем.Качество = Справочники.Качество.НайтиПоНаименованию("Новый");

    Штрих.Записать(Ложь);
    КонецЕсли;



    КонецЦикла;
    БД.ЗакрытьФайл();

    Сообщить("Загрузка завершена!");


    Сообщить("Загрузка завершена!";

    Вот собственно эти куски кода можно использовать в правилах? Если можно, то где именно их вставлять? Или надо что-то переписывать? Или вообще по-другому правила нужно создать?
  2. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    Конечно же кусок с выборкой в 7.7 можно будет использовать в ПВД (правила выборки данных). Но я бы посоветовал всё таки почитать литературу по КД2.
    По тому как задан вопрос, я понимаю что с КД2 вы дела не имели. В то же время понимаю что судя по всему в структурах данных, метаданных, как 7.7 так и 8 вы разбираетесь. Думаю что с таким багажом вы вполне разберетесь. И хватит просто книжку почитать...
    Ну и рассказывать всё, начиная с азов - долго, нудно, и влом. Извините, бога ради. Вот если с книжкой в руках вам что-то всё равно непонятно будет, то растолкую с удовольствием.

    С уважением, Andy13.
  3. TopicStarter Overlay
    tasshh
    Offline

    tasshh

    Регистрация:
    2 сен 2009
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Господа знающие и понимающие! Ну помогите разобраться как переделать этот код под КД. Бояркина я читала, но там слишком простые примеры предложены. Ну хоть примерный алгоритм.
    1. Я не понимаю как можно из таблицы значений заполнить справочник. Смотрела кучу примеров, но там из таблицы заполняются табличные части документов.
    2. Для справочника ЗначенияСвойствОбъектов написала правила. Работают.
    3. Как из этой самой таблицы значений заполнить справочник ХарактеристикиНоменклатуры и регистр сведений ЗначенияСвойствОбъектов?
    Все что я пишу - не работает, потому как я не до конца понимаю как это правильно написать.
    Люди добрые, ну хотябы разверните в нужном направлении. :) Может у кого-то есть что-то почитать по этой теме, статейки там, примеры какие?
  4. Настройщик
    Offline

    Настройщик Опытный в 1С

    Регистрация:
    17 окт 2010
    Сообщения:
    204
    Симпатии:
    7
    Баллы:
    29
    Сайт, посвященный изучению КД http://www.mykod.info/2010-09-22-10-16-30/1cfiledownload. Внизу страницы есть методическое руководство Ольги Кузнецовой "Конвертация данных. Методика работы и примеры". Возможно Вам поможет.
Похожие темы
  1. Sova123
    Ответов:
    1
    Просмотров:
    486
  2. J-F
    Ответов:
    4
    Просмотров:
    841
  3. andryscha92
    Ответов:
    1
    Просмотров:
    352
Загрузка...

Поделиться этой страницей