![]() |
|
Конвертация данных поле ЕдиницаПоКлассификатору-->ЕдиницаИзмерения,ЕдиницаПоКлассификатору | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
31.03.19
✎
09:06
|
Как это сделать? в конф.источнике единицы измерения в документах - это Ссылка.КлассификаторЕдиницИзмерения, а в конф.приемнике - составной тип,КлассификаторЕдиницИзмерения и ЕдиницаИзмерения
|
|||
1
Игорь_МММ
31.03.19
✎
09:18
|
(0)+ в источнике альтернативные единицы с коэффициентами заданы в тч Номенклатуры.
|
|||
2
PuhUfa
31.03.19
✎
09:18
|
И что тебя смущает?
|
|||
3
Игорь_МММ
31.03.19
✎
09:25
|
(2) нужно что-то вроде:
Если Единица(переданная из источника)<> Приемник.ЕдиницаИзмерения (тип=ЕдиницаПоКлассификатору) Тогда найти ЕдиницаИзмерения (тип=справочник.ЕдиницыИзмерения) по Владельцу и Наименованию вопрос в том где это (в каких обработчиках) организовать? |
|||
4
PuhUfa
31.03.19
✎
09:52
|
(3) А зачем? У тебя в источнике есть тип, в приемнике есть такой же тип... вот и выгружай тип в тип, зачем изобретать грабли?
|
|||
5
Игорь_МММ
31.03.19
✎
10:43
|
(4) в приемнике же в доках может стоять либо единица номенклатуры (базовая, она по классификатору) либо альтернативная из справочника ЕдиницыИзмерения. Там не должно быть произвольной единицы по классификатору
|
|||
6
Игорь_МММ
31.03.19
✎
10:45
|
(5)+ пока идея такая : Единицу передать в параметр и в ПослеЗагрузки обработать
|
|||
7
hhhh
31.03.19
✎
12:07
|
(5) ну сделай 2 правила.
|
|||
8
GreyK
31.03.19
✎
12:58
|
(6) Зачем в параметр передавать?
Если ЕдиницаИзмерения.Коэффициент = 1 Тогда ИмяПКО = "ЕдиницыПоКлассификатору"; Иначе ИмяПКО = "ЕдиницыИзмерения"; КонецЕсли; |
|||
9
Игорь_МММ
31.03.19
✎
15:26
|
(8) ну а что такое "ЕдиницаИзмерения.Коэффициент = 1"? Передается ЕдиницаПоКлассификатору, у нее нет коэф-та
|
|||
10
GreyK
31.03.19
✎
15:41
|
(9) Тогда я тебя не недопонимаю, у тебя везде коэффициент = 1, значит и выгружай как ЕдиницаПоКлассификатору. В чём вопрос в (0)!?
|
|||
11
Игорь_МММ
31.03.19
✎
16:16
|
(10) у СправочникСсылка.КлассификаторЕдиницИзмерения нет такого реквизита - Коэффициент.
|
|||
12
PuhUfa
31.03.19
✎
16:36
|
(5) какая разница, что может стоять в приемнике. Ты переносишь данные, в источнике это КлассификаторЕдиницИзмерения значит и в приемнике это должно быть КлассификаторЕдиницИзмерения
|
|||
13
GreyK
31.03.19
✎
17:10
|
(11) В документах реквизит ЕдиницаИзмерения не всегда нужно заполнять, нужно смотреть по конфигурации, в справочнике номенклатуры тоже не нужно, если единица измерения базовая.
|
|||
14
Игорь_МММ
31.03.19
✎
17:26
|
(12) (13) для конкретики - переношу в унф.
чисто логически: поступит 10 шт или 10 упаковок или 10 ... (чего?)- и разницы нет)? |
|||
15
GreyK
31.03.19
✎
17:30
|
(14) У номенклатуры есть базовая еденица по классификатору, что там указано, по тому и будет считать программа. В УНФ не проверял, сам попробуй, у меня на УНФ аллергия :)
|
|||
16
Игорь_МММ
31.03.19
✎
17:52
|
(15) я сейчас не могу посмотреть, но по базовой-то может и будет считать, только из источника-то выгружается не в базовой, там другая единица, у нее относительно базовой коэф.
|
|||
17
Игорь_МММ
31.03.19
✎
17:55
|
+ (16) буду завтра тестить в таком варианте:
В ПКС Единицу передаю в параметр и в ПослеЗагрузки: Если ПараметрыОбъекта <> Неопределено тогда ТаблицаПараметровТовары = ПараметрыОбъекта["ТоварыТабличнаяЧасть"]; Если ТаблицаПараметровТовары <> Неопределено Тогда Для Каждого СтрокаПараметров Из ТаблицаПараметровТовары Цикл Если Объект.ЕдиницаИзмерения <> СтрокаПараметров.ЕдИзм Тогда Отбор = Новый Структура; Отбор.Вставить ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("Наименование",СтрокаПараметров.ЕдиницаИзмерения,,Объект.Запасы[СтрокаПараметров.НомерСтроки].Номенклатура); Объект.Запасы[СтрокаПараметров.НомерСтроки].ЕдиницаИзмерения = ЕдиницаИзмерения; Иначе Объект.Запасы[СтрокаПараметров.НомерСтроки].ЕдиницаИзмерения = Объект.ЕдиницаИзмерения; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; |
|||
18
Игорь_МММ
31.03.19
✎
17:59
|
сорри)
вот так: // определение ЕдиницыИзмерения // Если ПараметрыОбъекта <> Неопределено тогда ТаблицаПараметровТовары = ПараметрыОбъекта["ТоварыТабличнаяЧасть"]; Если ТаблицаПараметровТовары <> Неопределено Тогда Для Каждого СтрокаПараметров Из ТаблицаПараметровТовары Цикл Если Объект.ЕдиницаИзмерения <> СтрокаПараметров.ЕдИзм Тогда ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СтрокаПараметров.ЕдиницаИзмерения.Наименование,Истина,,Объект.Запасы[СтрокаПараметров.НомерСтроки].Номенклатура); Объект.Запасы[СтрокаПараметров.НомерСтроки].ЕдиницаИзмерения = ЕдиницаИзмерения; Иначе Объект.Запасы[СтрокаПараметров.НомерСтроки].ЕдиницаИзмерения = Объект.ЕдиницаИзмерения; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; |
|||
19
Игорь_МММ
02.04.19
✎
17:36
|
может кому понадобится ...) (рабочий вариант):
// определение ЕдиницыИзмерения // Если ПараметрыОбъекта <> Неопределено тогда ТаблицаПараметровЗапасы = ПараметрыОбъекта["ЗапасыТабличнаяЧасть"]; Если ТаблицаПараметровЗапасы <> Неопределено Тогда Для Каждого СтрокаПараметров Из ТаблицаПараметровЗапасы Цикл ЕдиницаПоКлассификатору = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(СтрокаПараметров.ЕдИзм,Истина); Если Объект.Запасы[СтрокаПараметров.НомерСтроки].Номенклатура.ЕдиницаИзмерения <> ЕдиницаПоКлассификатору Тогда ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СтрокаПараметров.ЕдИзм,Истина,,Объект.Запасы[СтрокаПараметров.НомерСтроки].Номенклатура); Объект.Запасы[СтрокаПараметров.НомерСтроки].ЕдиницаИзмерения = ЕдиницаИзмерения; Иначе Объект.Запасы[СтрокаПараметров.НомерСтроки].ЕдиницаИзмерения = ЕдиницаПоКлассификатору; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |