Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 мая 2024, 04:25

Конвертация документа

Автор Neksion, 28 июл 2011, 21:27

0 Пользователей и 1 гость просматривают эту тему.

Neksion

Возникла следующая проблема:
Есть 2 конфигурации Усн 7.7 и БГУ 8.2, необходимо из БГУ в УСН конвектировать документ АвансПодотчетномуЛицу.
Загвоздка в конвертации свойства Сотрудник: в БГУ он берется из справочника Сотрудники в УСН из контрагентов(тут ему подчинен справочник сотрудники).
Но так как в БГУ код сотрудника 10 значный (т.е. с нулями впереди), а в УСН он 2 или 3 значный, то в УСН выбирается значение не из контрагентов, а из подчиненного ему справочника сотрудники, где код как раз тоже десятизначный код. Как правильно сделать конвертацию? Где и как подменить 10 значный код на 2 или 3-х значный?(реквизит свойства Источник.Сотрудник.Код соответственно защищены от записи). 

Andy63

Ну во первых выбираются данные из другого справочника не потому что там код 3-значный, а потому что в правилах конвертации написано - выбирать из этого справочника. Поэтому в правилах конвертации надо выбрать в качестве приемника нужный справочник. Ну и соответственно настроить правила конвертации свойств.
Так же можно организовать поиск не по коду а по значению любого другого реквизита. (или по нескольким) все настраивается в ПКС.

п.с. Можно сократить код источника перед выгрузкой. Потом нужные данные записать в список значений, и выгрузить по правилу только нужную информацию. =)

Neksion

Вот вот интересует как раз как организовать "Потом нужные данные записать в список значений". Подскажите пож.
Ид=Источник.Сотрудник.Код
Как дальше Ид передать в запись?:)

Neksion

Цитата: Neksion от 29 июл 2011, 18:28
Вот вот интересует как раз как организовать "Потом нужные данные записать в список значений". Подскажите пож.
Ид=Источник.Сотрудник.Код
Как дальше Ид передать в запись?:)
Пардон Ид=Строка(Число(Источник.Сотрудник.Код))

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Строка(Число(Строка(Число(Строка(Число(Строка(Число(Строка(Число(Строка(Число(Источник.Сотрудник.Код)))))))))))); ----- Я бы лучше вот так написал  :D :D :D
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Andy63

Ну во первых тебе надо организовать выборку элементов справочника. Делать это лучше в обработчике "После загрузки данныХ", правила обмена данными.

создаешь список значений. -
Список = Новый СписокЗначений;

Даелаешь выборку данных.

И добавляещь нужные данные в список. Допустим нам надо передать код и наименование:

СписокСотрудников.Добавить(ЭлементСправочника.Код, "Код")
СписокСотрудников.Добавить(ЭлементСправочника.Наименование, "Наименование");


где ЭлементСправочника- текущий элемент выборки, еще важно чтобы данные передались - нужно чтобы представление("Код","Наименование") соответствовало наименованию реквизита справочника приемника)

далее пишем так

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


Это процедура передает наш список занчений в ПКО "ПравилоКонвертацииОбъекта", где ПравилоКонвертацииОбъекта - наименование нужного ПКО.

Т.к. у нас его нету создаем. Создаем новое ПКО источник оставляем пустым. А применик прописываем нужный нам справочник.

Дальше заходим в это ПКО. и в правилах конвертации свойств добавляем нужные реквизиты. Допустим добавляем код и наименование. Источника также оставляем пустым. и ставим нгалочку "Получить из входящих даннных"....  Входящие данные как раз и будут взяты из списка занчений Список(который мы передали). Далее для всех нужных реквизитов делаем что то подобное.




Andy63

Вборку элементов справочника тебе надо делать как обычную выборку:
ну то есть примерно так

Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
   ЭлементСправочника= Выборка.ПолучитьОбъект();
   

КонецЦикла

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск