Перенос номенклатуры и размещение характеристик в свойствах

1. scorp_23 10.02.14 18:14 Сейчас в теме
При переносе характеристики разместить в свойствах, для каждой характеристики создавать отдельную позицию номеклатуры. Есть ли у кого правила конвертации, аналогичные моему случаю? Никогда до этого не имел дела с конвертацией данных.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
35. Radkt 16.02.14 21:12 Сейчас в теме
Приложил пример, можно использовать как пример)) номенклатура выгружается по каждой характеристики из документа
Прикрепленные файлы:
упп-бп реализация.xml
melenaspb; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. arr 291 11.02.14 06:43 Сейчас в теме
(1) scorp_23, Я работал с конвертацией. В конфигурации "конвертация данных (демо)" были похожие примеры.
Если нужно решить эту проблему, обращайтесь.
4. tolyan_ekb 105 11.02.14 08:11 Сейчас в теме
(1) scorp_23, как это будет выглядетьв базе приемнике? Раньше были ботинки (белые, черные), а будут ботинки в свойствах белые, ботинки в свойствах черные?
5. scorp_23 11.02.14 09:15 Сейчас в теме
(4) tolyan_ekb, да, именно так! Я думаю сначала перенести все свойства характеристик из регистра сведений "значения свойств объектов"(УТ 10.3) в справочник "значения свойств объектов"(УТ 11.1) стандартными правилами без привязки к объекту(так как в УТ 11 этого нет), а затем как-то придётся при переносе делать столько позиций номенклатуры, сколько есть наборов характеристик, при этом подставлять нужные значения в свойства, поиском из уже перенесённых свойств.
6. scorp_23 11.02.14 09:55 Сейчас в теме
(5) scorp_23, неверно я думаю) нужно как-то сопоставить характеристику в ут 10.3 и свойство в ут 11
9. denis_aka_wolf 79 11.02.14 10:54 Сейчас в теме
Проясните пожалуйста конечную цель в переносе справочника.
(6)(8) Необходимо перенести номенклатуру как есть, с учетом характеристик? И вы не можете этого сделать?
(1) Или необходимо перенести номенклатуру если не ведется по ней учет по доп.характеристикам, а если ведется, тогда создать nn'ое количество элементов номенклатора с наименованием Наименование + СвойствоХарактеристики + ЗначениеХарактеристики? Пример: Блузка размер S

Могу предоставить решение как для одного варианта, так и для другого.
10. scorp_23 11.02.14 11:05 Сейчас в теме
(9) denis_aka_wolf, фирма хочет отказаться от использования ведения номенклатуры в разрезе характеристик. Сейчас работаем в УТ 10.3, планируется переход на УТ 11.1. Нужно перенести номенклатуру, для каждой характеристики создавать отдельную позицию номеклатуры, то есть второй вариант.
3. adva 45 11.02.14 07:35 Сейчас в теме
Если сам планируешь делать, то спрашивай, чего не понятно. Конкретно таких правил не попадалось, но их не сложно сделать.
Начни, задавай вопросы, думаю помогут. Первый вопрос, не очень понятен, если можно, пример приведи.

Навскидку думаю, что здесь в наименование номенклатуры надо добавить Характеристику и искать по Наименованию, а также не забыть указать КлючВыгружаемыхДанных (или как он там называется, с учетом измененных реквизитов синхронизации, а то номенклатура в одну выгрузится)
7. adva 45 11.02.14 10:18 Сейчас в теме
Если расскажешь, что в УТ 11 представляют из себя свойства, то наверное смогу подсказать, какие ПКО должны быть
8. scorp_23 11.02.14 10:29 Сейчас в теме
в УТ 11 есть справочник "значения свойств объектов", где представлены все возможные наборы Свойство - Значение, при создании номенклатуры, я выбираю вид номенклатуры, с указанным набором свойств и выбираю нужное значение для каждого свойства. То есть свойства и значения не имеют ссылки на владельца(номенклатуру), а хранятся как табличная часть
11. scorp_23 11.02.14 11:08 Сейчас в теме
правда желательно значения характеристик для каждого элемента занести в дополнительные реквизиты номенклатуры
13. denis_aka_wolf 79 11.02.14 11:49 Сейчас в теме
(11) В УТ11 дополнительные реквизиты и дополнительные сведения это и есть свойства и категории, просто другое название. Чтобы их использовать необходимо включить в настройках параметров учета "Использовать дополнительные реквизиты и сведения".

PS: отписался на электронную почту, жду ответа.
12. scorp_23 11.02.14 11:16 Сейчас в теме
буду признателен и крайне благодарен за предоставленные правила обмена
14. scorp_23 11.02.14 13:37 Сейчас в теме
вопрос всё ещё открыт
15. scorp_23 11.02.14 13:42 Сейчас в теме
Даже можно наименование оставлять такое, какое есть. Главное правильно перенести характеристики в дополнительные реквизиты.
16. scorp_23 11.02.14 17:09 Сейчас в теме
свойства и значения перенёс! дело за малым: научиться создавать номенклатуру из характеристик и подставлять нужные значения в дополнительные реквизиты
17. DimaSar 11.02.14 21:24 Сейчас в теме
готов помочь, но не совсем понимаю результат, для начала, есть источник, номенклатура "ботинки", у ней в свойствах указано "белые", тогда в базе приемник создается характеристика "ботинки белые", а номенклатура из чего будет создаваться из ботинок? или не так задам вопрос что в источнике является товаров, который должен стать товаров в приемнике?
18. DimaSar 11.02.14 21:28 Сейчас в теме
в целом думаю где то так
создаем ПКО из номенклатуры -> номенклатуру
создаем кпо свойство->характеристика, но у ПКС владелец, указываем в "перед выгрузкой" значение = источник.Объект, тогда получится что владельцем характеристики будет объект свойства, а он у нас номенклатура, вот так и получится связка.
19. DimaSar 11.02.14 21:43 Сейчас в теме
немного не так :)
ПКО номенклатура
ПКО характеристика из спр значение свойст, оно из структуры будет заполняться
ПКО регистр значение свойств в значение свойств
пкс "Объект" здесь делаем "Перед выгрузкой" делаем как:
ВладелецТЗ = создатьОбъект("ТаблицаЗначений");
ВладелецТЗ.НоваяКолонка("Владелец");
ВладелецТЗ.НоваяКолонка("Наименование");
ВладелецТЗ.НоваяКолонка("ПометкаУдаления");
ВладелецТЗ.НоваяСтрока();
ВладелецТЗ.Владелец = Источник.Объект;
ВладелецТЗ.Наименование = Источник.Свойство.Наименование;
ВладелецТЗ.ПометкаУдаления = Ложь;
Значение  = ВладелецТЗ;
Показать
20. adva 45 12.02.14 07:59 Сейчас в теме
Если еще актуально:

1) Делакешь ПКО с неуказанным источником и приемником Номенклатура
2) Делаешь ПВД в коде которого заполняешь нужным образом данные для ПКО из 1)
21. adva 45 12.02.14 08:32 Сейчас в теме
Допустим в ПКО "Номенклатура" у тебя получатся реквизиты:

Наименование
ДополнительныеРеквизиты(табличная часть)
-Свойство
-Значение

В ПВД для номенклатуры пишешь:

ТаблицаХарактеристик = Новый ТаблицаЗначений;
ТаблицаХарактеристик.Колонки.Добавить("Свойство");
ТаблицаХарактеристик.Колонки.Добавить("Значение");

Для Каждого Эл Из КоллекцияХарактеристик Цикл // КоллекцияХарактеристик - сам пожалуйста заполни
НоваяСтрока = КоллекцияОбъектов.Добавить();
НоваяСтрока.Наименование = Эл.Наименование; // с учетом наименования номенкалтуры и характеристики
НоваяСтрока.ДополнительныеРеквизиты = ТаблицаХарактеристик.Скопировать();
НоваяХарактеристика = НоваяСтрока.ДополнительныеРеквизиты.Добавить();
НоваяХарактеристика.Свойство = ...
НоваяХарактеристика.Значение = ...
КонецЦикла
22. scorp_23 12.02.14 10:25 Сейчас в теме
А как прописать в правилах создание отдельной номенклатуры для каждой характеристики и как быть в этом случае с кодом номенклатуры?
23. adva 45 12.02.14 11:27 Сейчас в теме
(22) одна строка в КоллекцияОБъектов это одна номенклатура, поэтому добавля столько строк, сколько характеристик, Код номенклатуры пусть автоматом генерится, синхронизируй по наименованию (в котором будет включено Наиименование номенклатуры, и характеристика), только следи, чтобы наименования были разные
24. adva 45 12.02.14 11:28 Сейчас в теме
Ошибся с наименование, вместо КоллекцияОбъектов правильно ВыборкаДанных (смотри обработчик для ПВД "ПередОбработкой")
25. Hot_Serg 6 12.02.14 12:45 Сейчас в теме
Не пробовали воспользоваться обработкой ЗагрузкаДанныхИзТабличногоДокумента.epf (на диске ИТС есть). Только предварительно нужно СОхранить справочник в xls, но это уже другая обработка.
26. scorp_23 12.02.14 16:01 Сейчас в теме
спасибо за помощь всем, уже вырисовывается по-тихоньку вся картина)
27. scorp_23 14.02.14 10:11 Сейчас в теме
что-то зашёл в тупик. пишу такой код в ПВД номенклатуры в обработчике "ПередОбработкой":

Запросы.ПроверкаНаличияХарактеристик.УстановитьПараметр("Владелец", Источник.Ссылка);
Выборка = Запрос.Выполнить().Выгрузить();
Если Выборка.Следующий() <> Ложь Тогда
Пока Выборка.Следующий() Цикл
ВыгрузитьПоПравилу(Выборка.Ссылка, , , ,"ХарактеристикиНоменклатуры");
КонецЦикла;
Иначе
ВыгрузитьПоПравилу(Источник, , , ,"Номенклатура");
КонецЕсли;

выдает ошибку при выгрузке данных:
Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
ПВД = Номенклатура
Обработчик = ПередОбработкойВыгрузкиДанных
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML(10245)
КодСообщения = 31
в чем может быть проблема?
28. Ziggurat 50 14.02.14 11:30 Сейчас в теме
(27) scorp_23,
Выборка = Запрос.Выполнить().Выгрузить();
Если Выборка.Следующий() <> Ложь Тогда
Пока Выборка.Следующий() Цикл 

После выполнения первой строки в переменной Выборка содержится таблица значений. У таблицы значений нет метода .Следующий() Исправьте строку "Запрос.Выполнить().Выгрузить();" на "Запрос.Выполнить().Выбрать();" И тогда в Выборка будет выборка запроса, а не таблица значений.
Вы принципиально хотите использовать правила конвертации? Если это единоразовая задача не проще ли сделать внешнюю обработку?
29. scorp_23 14.02.14 11:39 Сейчас в теме
(28) Ziggurat, спасибо, так всё же, думаю, будет быстрее. А параметр правильно устанавливаю в запросе у ПВД?
30. Ziggurat 50 14.02.14 12:05 Сейчас в теме
(29) scorp_23, Если Вы про это
Запросы.ПроверкаНаличияХарактеристик.УстановитьПараметр("Владелец", Источник.Ссылка); 
, то, полагаю, верно. Вообще использование правил конвертации мне кажется слишком сложным для разового использования, подробно с ними не разбирался, поэтому не знаю особенностей работы этого механизма, везде ограничивался внешней обработкой, com соединениями и excel.
31. adva 45 14.02.14 14:21 Сейчас в теме
что-то не понятно, судя по всему, запросом является Запросы.ПроверкаНаличияХарактеристик (именно для него устанавливаете параметр), значит и результат должен быть либо

ТЗ = Запросы.ПроверкаНаличияХарактеристик.Выполнить().Выгрузить();

либо

Выборка = Запросы.ПроверкаНаличияХарактеристик.Выполнить().Выбрать()

Для Выборка используете Пока Выборка.Следущий() Цикл

Для ТЗ - Для каждого Стр ИЗ ТЗ Цикл

Предварительно проверять условие ни в коем случае не надо (такая проверка тоже изменяет позицию выборки)
32. adva 45 14.02.14 14:23 Сейчас в теме
А что является приемником в ПКО "ХарактеристикиНоменклатуры" ? Номенклатура или характеристика?
34. scorp_23 14.02.14 17:02 Сейчас в теме
(32) adva, приёмник в ПКО - номенклатура
33. adva 45 14.02.14 14:24 Сейчас в теме
А проверку так реализуйте:

Результат = Запросы.ПроверкаНаличияХарактеристик.Выполнить();

Если Результат.Пустой() Тогда
// номенклатура

Иначе
// Характеристика номенклатуры

КонецЕсли;
35. Radkt 16.02.14 21:12 Сейчас в теме
Приложил пример, можно использовать как пример)) номенклатура выгружается по каждой характеристики из документа
Прикрепленные файлы:
упп-бп реализация.xml
melenaspb; +1 Ответить
36. scorp_23 17.02.14 09:27 Сейчас в теме
37. scorp_23 17.02.14 14:06 Сейчас в теме
Практически всё готово - содаётся такое количество позиций номенклатуры, сколько есть характеристик, есть выгруженные свойтва характеристик и их значения, осталось дело за малым - заполнить дополнительные реквизиты в базе приёмнике(по аналогии с заполненными характеристиками в базе источнике).
38. scorp_23 17.02.14 17:37 Сейчас в теме
Делаю отбор свойств и значений характеристики номенкларуры:
Запрос = Новый Запрос("
|ВЫБРАТЬ
|	ЗначенияСвойствОбъектов.Свойство КАК Свойство,
|	ЗначенияСвойствОбъектов.Значение КАК Значение
|ИЗ
|	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
|	ЗначенияСвойствОбъектов.Объект = &Объект
|");

Запрос.УстановитьПараметр("Объект", Источник.Ссылка);

КоллекцияОбъектов = Запрос.Выполнить().Выгрузить();
Показать


Как теперь этими значениями заполнить соотвествующие значения дополнительных реквизитов(имя свойства характеристи в базе-источнике соотвествует имени дополнительного реквизита в базе-приёмнике)?
39. scorp_23 18.02.14 10:53 Сейчас в теме
Всё, получилось! создал в конвертации свойств ХарактеристикНоменклатуры группу дополнительные реквизиты и в ПКГС в поле ПрередОбработкой вызвал запрос:
Выполнить(Алгоритмы.ПереносСвойств);

текст которого указан выше. Всё перенеслось, как я хотел! Всем спасибо за помощь!
Оставьте свое сообщение

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