helpf.pro
Регистрация

?: Получение кода предопределенного элемента

skyf
29.06.2012 13:58Прочитано: 10015
Скажите пожалуйста,
Каким образом можно получить код предопределенного элемента справочника или счета, код которого был изменен в конфигурации бухгалтерами вручную.
В 1С имеется команда ПолучитьИмяПредопределенного(), а нужно получить не имя а код.

В конечном итоге, код присвоенный в конфигурации необходимо вернуть на место в базе автоматически (так как таких вариантов более сотни).
Yandex
Возможно, вас также заинтересует
Реклама на портале
Anastasiy
29.06.2012 14:25Ответ № 1
Может, версионирование поможет?)))
Mokey
29.06.2012 15:17Ответ № 2
Код 1C v 8.х
 
Если Наша_Ссылка.Предопределенный Тогда
Имя_Предопределенного = ПолучитьИмяПредопределенного(Наша_Ссылка);
ПредопределенныйЭлемент = Справочники.Имя_Справочника.Имя_Предопределенного;
Код_ПредопределенногоЭлемента = ПредопределенныйЭлемент.Код;
КонецЕсли;


как-то так на вскидку
Изменено 29.06.12 15:18:29
E_Migachev
29.06.2012 15:39Ответ № 3
(0) skyf, пока получить Код невозможно, может позже разработчики платформы добавят такую возможность.

(2) Mokey, Так было бы хорошо), но
ПолучитьИмяПредопределенного(<Ссылка>)
Параметры: <Ссылка> (обязательный)
Тип: СправочникСсылка. Ссылка на элемент, имя которого требуется получить.Возвращаемое значение:
Тип: Строка.
Описание: Получает имя предопределенного элемента. Если данный элемент не является предопределенным, то возвращается пустая строка.

+ (0) skyf, в инете набрел на вариант:
Часто бывает, что пользователи в режиме 1С:Предприятия задают новые наименования и коды существующим предопределенным элементам справочников (ПЭС).
Причем иногда эти наименования совсем далеки от изначального функционального предназначения элементов. Иногда оказывается, что пользователи не заметили уже существующий с искомым наименованием ПЭС, и переименовывают какой-нибудь, по их мнению ненужный, ПЭС в желаемый, а потом видят их два с одним наименованием, и оба предопределенных, потом гадай и выясняй, ху из ху.
В общем, в определенный момент в базе начинается бардак. И бардак этот нужно приводить в порядок, особенно если перечень элементов в справочниках становится строго регламентирован по кодам и названиям. Для возвращения "истинного" имени и кода ПЭС и предназначена эта обработка.
Скачивать файлы может только зарегистрированный пользователь!
Принцип работы:
1. В конфигураторе для каждого/нужного справочника, имеющего предопределенные элементы вручную выгружается их список с сохранением в mxl-файл (колонки 1,2,3 соответственно: Имя, Код, Наименование).
2. Далее в 1С:Предприятии запускается эта обработка и для каждого выгруженного mxl-файла указывается путь и описание типа справочника. (и если нужно - номер строки в mxl-файле, с которой нужно перебирать список).
3. Можно доработать: руками сохранять mxl-файлы с определенным шаблоном имени в один каталог (либо придумать как это сделат не руками), а потом не для каждого отдельно выбирать определенное описание типа справчника, а из выбранного каталога обрабатывать все файлы по именам (по которым можно ориентироваться об описании типа справочника).
Mokey
29.06.2012 16:21Ответ № 4
(3) E_Migachev, А что конкретно не понравилось? Хотите сказать, что в нашем распоряжении нет ссылки на элемент справочника? или что? Поясните, пожалуйста.
А если написать так? Я не проверял.
Код 1C v 8.х
 
ПредопределенныйЭлемент = Справочники.Имя_Справочника[Имя_Предопределенного];

Изменено 29.06.12 16:24:23
Mokey
03.07.2012 17:42Ответ № 5
Так, понял, в таком варианте (ну, или близком к этому) получаем ссылку на предопределённый, но не сам элемент из конфигуратора. Тогда да, просто не получится.
skyf
11.07.2012 16:11Ответ № 6
Для тех кому интерено, очень просто выкрутился.
В конфигурации нужно скопировать справочник или план счетов с предопределенными элементами.
Затем написать процедуру которая бы осуществляла обход предопределенных элементов скопированного справочника или плана счетов.
Т.к. в новый скопированный справочник пользователь ручками никаких изменений в коды не вновил, то будут считываться именно предопределенные коды элементов, получая которые эта же процедура перезаписывает коды в базовом справочнике или плане счетов.
Таким образом удалось восстановить план счетов, над которым пользователи надругались.
skyf
11.07.2012 16:13Ответ № 7
Так что проблема решена нетривиальным способом.
Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.