![]() |
|
v7: Конвертация данных Единицы измерения номенклатуры | ☑ | ||
---|---|---|---|---|
0
beaver1971
14.07.15
✎
08:32
|
Перенос из 7.7 в 8.2 Номенклатуры.
В Старом справочнике ЕдиницаИзмерения - Справочник В Новом справочнике есть БазоваяЕдиница (Из справочника КлассификаторЕдиницИзмерения) и ЕдиницыДляОстатков, ЕдиницыДляОтчетов, которые берутся из подчиненного справочника ЕдиницыИзмерений. Старый ЕдиницыИзмерений выгружается в КлассификаторЕдиницИзмерений. Для ПКО Номенклатура ПередВыгрузкой создается ТаблицаЗначений (Наименование, Владелец, ЕдиницаИзмерений) и выгружается по правилу в Справочник.ЕдиницыИзмерений. Всё прекрасно отрабатывает, но как теперь из правила выгрузки ЕдиницИзмерений получить ссылку на выгруженную и заполнить поля в Номенклатуре? PS. Наименование Номенклатуры меняется при выгрузке :( |
|||
1
yurii123
14.07.15
✎
09:51
|
Попробуй это сделать у ПКС номенклатуры, для каждой ед изм. ИсходящимиДанными передать эту ТЗ в ПКО Спр ед изм. Там ВходящиеДанные примут и создадут элемент справочника ед изм и вернет ссылку в номенклатуру.
|
|||
2
yurii123
14.07.15
✎
09:52
|
Ну не ТЗ конечно, а список значений.
|
|||
3
beaver1971
14.07.15
✎
10:54
|
(1) Откуда в ПКС взять данные для "Значение"?
Источник данных то не определен, из внешних не получаю. ПКС_ПриВыгрузке создаю ТаблицуЗначений, Выгрузить по правилу "ЕдиницыИзмерений", справочник ЕдиницИзмерений заполняется, но значение для ПКС ЕдиницыДляОстатков не определено :(( |
|||
4
Альбатрос
14.07.15
✎
10:57
|
(3)
Значение = СоздатьОбъект("СписокЗначений"); Значение.ДобавитьЗначение(Строка(Источник.БазоваяЕдиница), "Наименование"); Значение.ДобавитьЗначение(Источник.БазоваяЕдиница, "ЕдиницаПоКлассификатору"); Значение.ДобавитьЗначение(1, "Коэффициент"); Значение.ДобавитьЗначение(Источник, "Владелец"); |
|||
5
beaver1971
14.07.15
✎
11:13
|
(4) и?
ПКО Номенклатура (Источник:Справочник, Приемник:Справочник) ПКС ЕдиницаИзмеренийДляОтчетов (Источник:неопределен, Приемник:СправочникСсылка) В ПКС ПриВыгрузке создаю список значений и передаю его в Правило "ЕдиницыИзмерений", Правило успешно создает единицу измерений в справочнике ЕдиницыИзмерений, но в ПКС_ЕдиницаИзмеренийДляОтчетов_ПриВыгрузке ссылка на элемент справочника ЕдиницыИзмерений отсутствует, ибо неизвестна. |
|||
6
yurii123
14.07.15
✎
14:17
|
ПКС ЕдИзм
СпрЕдИзм = СоздатьОбъект(Справочник.ЕдИзм); СпрЕдИзм.....ПолучаешьСсылку и можешь ее запихать где нет ссылки. ИсходящиеДанные= СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.ДобавитьЗначение(Строка(Источник.БазоваяЕдиница), "Наименование"); ИсходящиеДанные.ДобавитьЗначение(Источник.БазоваяЕдиница, "ЕдиницаПоКлассификатору"); ИсходящиеДанные.ДобавитьЗначение(1, "Коэффициент"); ИсходящиеДанные.ДобавитьЗначение(Источник, "Владелец"); Значение = Приемник; В справочнике единиц измерения создается элемент справочника и во владельца идет твой Источник. ПКС для Наименование Значение = ВходящиеДанные.Получить("Наименование") ПКС для Владельца Значение = ВходящиеДанные.Получить("Владелец") И.т д |
|||
7
beaver1971
15.07.15
✎
08:39
|
ПКО Номенклатура
ПКС ЕдиницаХраненияОстатков ПКС ЕдиницаДляОтчетов ПКС ЕдиницаИзмеренияМест Во всех ПКС ПередВыгрузкой одинаково ИсходящиеДанные= СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.ДобавитьЗначение(Строка(Источник.ЕдиницаИзмерения), "Наименование"); ИсходящиеДанные.ДобавитьЗначение(Источник.ЕдиницаИзмерения, "ЕдиницаПоКлассификатору"); ИсходящиеДанные.ДобавитьЗначение(1, "Коэффициент"); ИсходящиеДанные.ДобавитьЗначение(Источник, "Владелец"); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"ЕдиницыИзмерения"); Значение = Приемник; В результате справочник ЕдиницыИзмерения заполняется, но в Номенклатуре соответствующие значения пустые. Если убрать строку "Значение = Приемник;", то при выгрузке ошибка. Если убрать строку "ВыгрузитьПоПравилу" (хотя правило и определено для каждого ПКС), то выгрузка единиц измерения не происходит. Как вариант пробовал для каждого ПКС изменять строку: ИсходящиеДанные.ДобавитьЗначение("Остаток: " + Строка(Источник.ЕдиницаИзмерения), "Наименование"); И так для каждого ПКС по своему. В итоге в справочнике единиц измерения для каждой номенклатуры 3 (три) значения единиц измерения, но соответствующие значения заполнены. PS. Если не "победю", то пусть так и будет.... Три единицы измерения.... Но не хотелось бы... |
|||
8
yurii123
15.07.15
✎
11:03
|
Посмотри этот код отладчиком, все станет ясно. Смотри Владельца, почему он у тебя пустым приходит.
Значение = Приемник, попробуй заменить Значение = 1. Так как источник у тебя пустой, эта строка запускает ПКС, иначе Отказ. ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"ЕдиницыИзмерения"), попробуй заменить на ИмяПКО ="ЕдиницыИзмерения"); |
|||
9
beaver1971
15.07.15
✎
18:47
|
(8) ПКО ЕдиницыИзмерения - Не запоминать выгруженные объекты
И всё отработало на ура..... Сейчас специально на чистой базе Приемник проверил... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |