Обойти проблему совпадения названия измерения в регистре
Коллеги, добрый день!
Подскажите, пожалуйста, советом как решить текущую проблему в КД 2.1:
Конвертирую регистр сведений у которого одно из измерений называется "Значение", в базе-приемнике оно тоже имеет название "Значение".
Из-за того, что имя измерения совпадает с служебным словом "Значение" - значения не выгружаются, соответственно, не перезагружаются в базу-приемник.
Подскажите, пожалуйста, советом как решить текущую проблему в КД 2.1:
Конвертирую регистр сведений у которого одно из измерений называется "Значение", в базе-приемнике оно тоже имеет название "Значение".
Из-за того, что имя измерения совпадает с служебным словом "Значение" - значения не выгружаются, соответственно, не перезагружаются в базу-приемник.
По теме из базы знаний
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Cannot insert duplicate key. Кто виноват и что делать
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Универсальная загрузка данных формата Excel
Найденные решения
(3) попробуйте
- в таблице конвертации свойств отключайте выгрузку поля "Значение"
- в таблице конвертации свойств добавляете новое поле без выбора поля источнника
- в диалоге ставите точку "передавать данные в параметр"
- в этом же диалоге задаете уникальное имя поля-параметра, например "ЗначениеПараметр"
- в этом же диалоге в обработчке "ПриВыгрузке" пишите строку кода:
Значение = Источник.Значение;
таким образом, содержимое поля "Значение" источника сядет в поле-параметр "ЗначениеПараметр"
Посмотрите файл выгрузки с фильтром на одну запись и убедитесь, что поле "приехало" в файл.
далее, в ПКО вашего регистра в обработчике "ПослеЗагрузки" достатете это поле-параметр
и записиваете его содержимое в поле приемника.
Последнее самое "скользкое", т.к. там набор записей. В отладке можно разобраться.
- в таблице конвертации свойств отключайте выгрузку поля "Значение"
- в таблице конвертации свойств добавляете новое поле без выбора поля источнника
- в диалоге ставите точку "передавать данные в параметр"
- в этом же диалоге задаете уникальное имя поля-параметра, например "ЗначениеПараметр"
- в этом же диалоге в обработчке "ПриВыгрузке" пишите строку кода:
Значение = Источник.Значение;
таким образом, содержимое поля "Значение" источника сядет в поле-параметр "ЗначениеПараметр"
Посмотрите файл выгрузки с фильтром на одну запись и убедитесь, что поле "приехало" в файл.
далее, в ПКО вашего регистра в обработчике "ПослеЗагрузки" достатете это поле-параметр
и записиваете его содержимое в поле приемника.
Последнее самое "скользкое", т.к. там набор записей. В отладке можно разобраться.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Радикальное решение: изменить проблемное название измерения, чтобы никогда в будущем больше не спотыкаться об эту кочку.
имя измерения совпадает с служебным словом "Значение" - значения не выгружаются
Разовое решение: продублировать (обработкой) измерение или весь регистр с другим названием измерения и конвертировать уже его.
Радикальное решение: изменить проблемное название измерения, чтобы никогда в будущем больше не спотыкаться об эту кочку.
(3)
В таком случае лично я вообще не изгалялся бы с заполнением этого реквизита в КД, а отдельной простенькой обработкой выгружал бы его в файл из базы-источника, а после конвертации - другой обработкой заполнял из этого файла в базе-приемнике.
Ну, или одной обработкой подключался бы из приемника к источнику через СОМ и переносил данные - не знаю, как вам проще.
это типовая конфа и много таких клиентов
А я думал - всего один... как стартмани. ;-)
В таком случае лично я вообще не изгалялся бы с заполнением этого реквизита в КД, а отдельной простенькой обработкой выгружал бы его в файл из базы-источника, а после конвертации - другой обработкой заполнял из этого файла в базе-приемнике.
Ну, или одной обработкой подключался бы из приемника к источнику через СОМ и переносил данные - не знаю, как вам проще.
(3) попробуйте
- в таблице конвертации свойств отключайте выгрузку поля "Значение"
- в таблице конвертации свойств добавляете новое поле без выбора поля источнника
- в диалоге ставите точку "передавать данные в параметр"
- в этом же диалоге задаете уникальное имя поля-параметра, например "ЗначениеПараметр"
- в этом же диалоге в обработчке "ПриВыгрузке" пишите строку кода:
Значение = Источник.Значение;
таким образом, содержимое поля "Значение" источника сядет в поле-параметр "ЗначениеПараметр"
Посмотрите файл выгрузки с фильтром на одну запись и убедитесь, что поле "приехало" в файл.
далее, в ПКО вашего регистра в обработчике "ПослеЗагрузки" достатете это поле-параметр
и записиваете его содержимое в поле приемника.
Последнее самое "скользкое", т.к. там набор записей. В отладке можно разобраться.
- в таблице конвертации свойств отключайте выгрузку поля "Значение"
- в таблице конвертации свойств добавляете новое поле без выбора поля источнника
- в диалоге ставите точку "передавать данные в параметр"
- в этом же диалоге задаете уникальное имя поля-параметра, например "ЗначениеПараметр"
- в этом же диалоге в обработчке "ПриВыгрузке" пишите строку кода:
Значение = Источник.Значение;
таким образом, содержимое поля "Значение" источника сядет в поле-параметр "ЗначениеПараметр"
Посмотрите файл выгрузки с фильтром на одну запись и убедитесь, что поле "приехало" в файл.
далее, в ПКО вашего регистра в обработчике "ПослеЗагрузки" достатете это поле-параметр
и записиваете его содержимое в поле приемника.
Последнее самое "скользкое", т.к. там набор записей. В отладке можно разобраться.
(5) Спасибо, так и сделал.
1. ПВД - указал объект выгрузки, произвольный алгоритм, запросом выбрал то, что нужно, переименовал колонку "Значение" в "ЗначениеРег"
2. В ПКО в "ПослеЗагрузки"
3. В ПКС Источник - пустой, ПередаватьВПараметр = ИСТИНА, параметр назвал "ЗначениеРег"
Здесь же
1. ПВД - указал объект выгрузки, произвольный алгоритм, запросом выбрал то, что нужно, переименовал колонку "Значение" в "ЗначениеРег"
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Автомобили.Период КАК Период,
| Автомобили.Автомобиль КАК Автомобиль,
| Автомобили.ВидЗначения КАК ВидЗначения,
| Автомобили.Значение КАК ЗначениеРег
|ИЗ
| РегистрСведений.Автомобили КАК Автомобили";
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Для Каждого Тек ИЗ ВыборкаДанных Цикл
ВыгрузитьПоПравилу(Тек,,,,"ХарактеристикиАвто2");
КонецЦикла;
Показать2. В ПКО в "ПослеЗагрузки"
Если ПараметрыОбъекта <> Неопределено Тогда
Объект.Значение = ПараметрыОбъекта["ЗначениеРег"];
КонецЕсли;
3. В ПКС Источник - пустой, ПередаватьВПараметр = ИСТИНА, параметр назвал "ЗначениеРег"
Здесь же
"ПриВыгрузке"
Если ТипЗнч(Источник.ЗначениеРег) = Тип("СправочникСсылка.Контрагенты") Тогда
ИмяПКО = "Контрагенты";
ИначеЕсли ТипЗнч(Источник.ЗначениеРег) = Тип("СправочникСсылка.ПодтверждающиеДокументы") Тогда
ИмяПКО = "ПодтверждающиеДокументы";
ИначеЕсли ТипЗнч(Источник.ЗначениеРег) = Тип("ПеречислениеСсылка.ВидАвтомобиля") Тогда
ИмяПКО = "ВидАвтомобиля";
КонецЕсли;
Значение = Источник.ЗначениеРег;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот