|
Конвертация данных - Справочник - Перечисление | ☑ | ||
---|---|---|---|---|
0
tabarigen
14.07.15
✎
15:33
|
Переношу справочник номенкратура, в реквизитах есть СтавкаНДС, которая тоже создает ПКО. На этом ПКО и зациклился.
Смотрел книжку Бояркина там обратный пример Перечисления - Справочник. ОбъектИсточник - СправочникСсылка.СтавкиНДС ОбъектПриемник - ПеречислениеСсылка.СтавкиНДС. Приемник имеет предопределенные значения НДС18, НДС18_118, НДС10, НДС10_110, НДС0, БезНДС. Источник же имеет реквизиты - НалоговаяГруппаФР, Наименование, Ставка, ПометкаНаУдаление, а также предопределенные значения: ОснованяСтавкаНДС и БезНДС. Так вот КД сама сопоставила предопределенное значение справочника БезНДС, соответствующему значению из перечисления. ОсноннаяСтатья соответсвует НДС10. А как быть с теми значениями в приемнике для которых нету предопределенных значений. Их надо устанавливать в обработчиках событий (каких? ПКО? ПКС я не настраиваю, а обработчиков у ПКЗ нету). Ясен пень, что их надо брать из Справочника.СтавкиНДС (содержит значения [10%, 18%, БезНДС]). Но как это сделать. |
|||
1
tabarigen
14.07.15
✎
15:34
|
https://yadi.sk/i/Ehwhk8tuhrfLq
скрин настроек ПКЗ |
|||
2
daniel63
14.07.15
✎
15:36
|
В демо базе есть пример, число в перечисление, тут тоже самое.
|
|||
3
ixijixi
14.07.15
✎
16:04
|
Обработчики "Правила конвертации свойств"
Перед выгрузкой Значение - Неопределено. Конвертируемое значение свойства. Если значение определить в теле обработчика, то стандартная процедура получения значения не будет происходить. |
|||
4
tabarigen
14.07.15
✎
16:09
|
Спасибо за наводку.
В демо базе действительно есть полностью идентичный пример. В ПКО СтавкиНДС в обработчике перед выгрузкой прописал. Приемник = Источник; После выгрузки: Если ПустоеЗначение(Источник) = 1 Тогда УзелСсылки = "НДС0"; ИначеЕсли Источник.Ставка = 0 Тогда УзелСсылки = "НДС0"; ИначеЕсли Источник.Ставка = 10 Тогда УзелСсылки = "НДС10"; ИначеЕсли Источник.Ставка = 9.09 тогда УзелСсылки = "НДС10_110"; ИначеЕсли Источник.Ставка = 18 тогда УзелСсылки = "НДС18"; ИначеЕсли Источник.Ставка = 15.25 тогда УзелСсылки = "НДС18_118"; ИначеЕсли Источник.Ставка = 20 тогда УзелСсылки = "НДС20"; ИначеЕсли Источник.Ставка = 16.67 тогда УзелСсылки = "НДС20_120"; ИначеЕсли Источник.Ставка < 5 тогда УзелСсылки = "НДС0"; ИначеЕсли Источник.Ставка < 14 тогда УзелСсылки = "НДС10"; ИначеЕсли Источник.Ставка < 19 тогда УзелСсылки = "НДС18"; Иначе УзелСсылки = "НДС20"; КонецЕсли; Отказ = 1; Вы выгрузке данных выдается ошибка Начало выгрузки: 14.07.2015 16:08:36 Ошибка в обработчике события ПослеВыгрузкиОбъекта ПКО = СтавкиНДС (Справочник: Ставки НДС) Объект = 10% (Ставки НДС) Обработчик = ПослеВыгрузкиОбъекта ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,6)}: Процедура или функция с указанным именем не определена (ПустоеЗначение) ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9659) КодСообщения = 43 Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1620)}: Ошибка в обработчике события ПослеВыгрузкиОбъекта ПКО = СтавкиНДС (Справочник: Ставки НДС) Объект = 10% (Ставки НДС) Обработчик = ПослеВыгрузкиОбъекта ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,6)}: Процедура или функция с указанным именем не определена (ПустоеЗначение) ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9659) КодСообщения = 43 p.s Как тут форматировать текст?? |
|||
5
MadJhey
14.07.15
✎
16:12
|
Процедура или функция с указанным именем не определена (ПустоеЗначение)
|
|||
6
MadJhey
14.07.15
✎
16:12
|
Куда засунул ПустоеЗначение?
|
|||
7
tabarigen
14.07.15
✎
16:15
|
в ПКО обработчик ПослеВыгрузки
|
|||
8
MadJhey
14.07.15
✎
16:23
|
Выгрузка из 7.7?
Если из 8 то не ЗначениеЗаполнено() а зачем городить такой огород не проще ли использовать в приВыгрузке Если ставка=18 Тогда Значение = "НДС18" иначе .... |
|||
9
tabarigen
14.07.15
✎
16:27
|
Выгрузка из 8.
Управление Аптекой -> Управление Аптечной сетью |
|||
10
MadJhey
14.07.15
✎
16:29
|
Нет в 8.2 функции - ПустоеЗначение, это 7.7
|
|||
11
Naumov
14.07.15
✎
16:31
|
(9) Демопример для 8.0 еще написан. с 8.1 ПустоеЗначение меняли на "не ЗначениеЗаполнено()"
|
|||
12
tabarigen
14.07.15
✎
17:22
|
Уфф... Только что Номенкоатура переносилась иерархически, и вдруг перестала. Что трогал не помню, но вроде в настройках порядок.
Скрин с настройками ниже https://yadi.sk/i/10435D4ohrq7n. Что за крестик у ПКО номенклатура? |
|||
13
VikingKosmo
14.07.15
✎
17:26
|
Крестик означает, что поиск будет идти не только по ссылке, а и по полям поиска ЕМНИП
|
|||
14
tabarigen
14.07.15
✎
17:27
|
а почему не переходят группы?? Галочка напротив этогрупа и родитель стоят.
|
|||
15
VikingKosmo
14.07.15
✎
17:29
|
(14) ну ты спросил... Я ж понятия не имею, что там в правилах нарисовано то
|
|||
16
tabarigen
14.07.15
✎
19:59
|
https://yadi.sk/i/10435D4ohrq7n
ссылку дал ведь с настройками. |
|||
17
tabarigen
15.07.15
✎
13:38
|
В общем дела такие парни. Запарился я с вашей Конвертацией)) плюнул бы на все если бы не имел привычку доводить дело до конца.
В ПКО Перед выгрузкой пишу: Приемник = Источник; В ПКО После выгрузки пишу: Если Не ЗначениеЗаполнено(Источник) = 1 Тогда УзелСсылки = "НДС0"; ИначеЕсли Источник.Ставка = 0 Тогда УзелСсылки = "НДС0"; ИначеЕсли Источник.Ставка = 10 Тогда УзелСсылки = "НДС10"; ИначеЕсли Источник.Ставка = 9.09 тогда УзелСсылки = "НДС10_110"; ИначеЕсли Источник.Ставка = 18 тогда УзелСсылки = "НДС18"; ИначеЕсли Источник.Ставка = 15.25 тогда УзелСсылки = "НДС18_118"; ИначеЕсли Источник.Ставка = 20 тогда УзелСсылки = "НДС20"; ИначеЕсли Источник.Ставка = 16.67 тогда УзелСсылки = "НДС20_120"; ИначеЕсли Источник.Ставка < 5 тогда УзелСсылки = "НДС0"; ИначеЕсли Источник.Ставка < 14 тогда УзелСсылки = "НДС10"; ИначеЕсли Источник.Ставка < 19 тогда УзелСсылки = "НДС18"; ИначеЕсли Источник.Ставка = Неопределено тогда УзелСсылки = "БезНДС"; Иначе УзелСсылки = "НДС20"; КонецЕсли; Отказ = 1; В итоге у меня переносятся только НДС18%. Та номенклатура у которой в базе источника стоит БезНДС принимает значение 0%. НДС10% вообще не переносится. Единственное отличие в базе источника НДС 10% и 18% в том что 18% предопределенное значение. Куда бы копнуть еще? Истина то рядом. |
|||
18
MadJhey
15.07.15
✎
13:56
|
А ты настойчивый :).
Отлаживать планы обмены умеешь? На http://www.youtube.com/watch?v=8uhKPaTEk90 Хотя косяк и так видно: У безндс в источнике какая ставка? |
|||
19
MadJhey
15.07.15
✎
13:57
|
планы обмена
|
|||
20
tabarigen
15.07.15
✎
14:14
|
А нет никакой ставки у БезНДС. Пусто.
|
|||
21
tabarigen
15.07.15
✎
16:29
|
Пробую отладчиком перехватить обработчик ПКО.
В формируемом отладчиком модуле приемника нет моего кода обработчика ПКО, для того чтоб поставить точку останова. В формируемом отладчиком модуле источника такой код есть, но там событие не перехватывается ибо событие это после выгрузки. Как быть то? |
|||
22
Абыр
15.07.15
✎
17:49
|
(21) В ПКО для ставок в обработчике "Перед выгрузкой" задавай в Приемник строковый идентификатор значения перечисления в базе-приемнике.
|
|||
23
tabarigen
16.07.15
✎
09:02
|
(22) че нить полегче для моего мозга сказали бы что ле)
|
|||
24
MrKartez
16.07.15
✎
10:59
|
У тебя каждый раз условие попадает в ЕСЛИ
Смотри, будет ставка 0, оно у тебя войдет во все ЕСЛИ, 0 же будет и меньше 5 и меньше 19 одновременно. Следовательно, будет возвращено последнее значение при <19. Самое простое что приходит на ум, сделать двойное условие. 5<СтавкаНДС и СтавкаНДС<19. |
|||
25
tabarigen
16.07.15
✎
14:11
|
Так и не удалось правильно прописать условие ((((
В итоге всей номенклатуре установил НДС10. Благо ставка ндс одинаковая у всех. |
|||
26
tabarigen
16.07.15
✎
15:22
|
Если кому интеречно как все решилось. То надо было галочку поставить не запоимнать выгруженные. Хз как но это помогло.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |