|
Установка префикса в справочнике | ☑ | ||
|---|---|---|---|---|
|
0
metalman
09.03.07
✎
14:15
|
Всем привет.
я слышал что в 1с7.7 был такой метод для справочников как установитьпрефикс, или что-то типа того. Его можно было вызвать при начале работы системы и на протяжении всего сеанса у справочников устанавливался этот бы префикс. Никто не встречался ли? |
|||
|
1
мордвин
09.03.07
✎
14:17
|
(0) поюзай процедуру ПриУстановкеНовогоКода()
|
|||
|
2
мордвин
09.03.07
✎
14:18
|
Установка префикса при формировании нового номера кода элемента имеет смысл только в том случае, если код элемента является строкой.
Для того чтобы при формировании нового кода (номера) устанавливать префикс, можно воспользоваться обработчиком события При установке нового кода. Это событие возникает в тот момент, когда начинается формирование нового кода, например нового кода элемента справочника. Синтаксис описания этого обработчика следующий: ПриУстановкеНовогоКода(<Стандартная обработка>, <Префикс>), где: <Стандартная обработка> - признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная генерация нового кода производиться не будет; <Префикс> - префикс, который будет использоваться для генерации кода. Рассмотрим следующий пример. Пусть есть конфигурация для распределенной информационной базы, в которой с помощью префиксов обеспечивается формирование уникальных кодов справочников в каждом из узлов. Формирование такого уникального кода можно сделать так: // Процедура обработчик события ПриУстановкеНовогоКода // Подменяет префикс кода на предопределенный для данной ИБ // Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс) Префикс = ПолучитьПрефиксНомера(); КонецПроцедуры // ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс) где "ПолучитьПрефиксНомера" - экспортируемая функция общего модуля, возвращающая значение некоторой константы. При этом значение константы для каждого из узлов должно быть свое: // Выдает префикс нового номера // // Возвращаемое значение: // Строка – Префикс нового номера // Функция ПолучитьПрефиксНомера() Экспорт Возврат Константы.ПрефиксНомеров.Получить(); КонецФункции // ПолучитьПрефиксНомера() Наряду с использованием обработчика события При установке нового кода можно использовать метод объекта справочника УстановитьНовыйКод(). В параметре метода может быть передан нужный префикс - в этом случае среди кодов, имеющих данный префикс, будет найден максимальный, и новый код будет установлен как следующий от найденного максимального. Если префикс опущен - будет найден имеющийся максимальный код и новый код будет получен за счет увеличения правой числовой части найденного максимального. Нечисловая часть будет оставлена без изменений. Следует учитывать, что если код элемента справочника является числом, префикс, возвращаемый из обработчика события При установке нового кода, использоваться не будет. |
|||
|
3
Леха Дум
09.03.07
✎
14:19
|
В модуле справочника в событии "ПриОткрытии()" ставишь проверку на то что это новый элемент и присваиваешь новый код через метод
УстановитьНовыйКод(<Префикс кода>). Все ищется в синтаксис-помощнике |
|||
|
4
Леха Дум
09.03.07
✎
14:20
|
у (2) событие правильное :), а я попутал...
|
|||
|
5
metalman
09.03.07
✎
14:28
|
ну что, не уж то никто не встречался?
|
|||
|
6
metalman
09.03.07
✎
14:30
|
это я знаю. а так чтобы одну на всех процедуру сделать. чтобы не каждый справочник лопатить
|
|||
|
7
RomaH
naïve
09.03.07
✎
14:31
|
в 8.1 есть что-то вроде
|
|||
|
8
RomaH
naïve
09.03.07
✎
14:32
|
подписка на события называется
|
|||
|
9
metalman
09.03.07
✎
14:40
|
значит в 8.0 это не реализуешь?
|
|||
|
10
Neco
09.03.07
✎
14:41
|
(6) Одна процедура для всех в общем модуле
|
|||
|
11
RomaH
naïve
09.03.07
✎
14:42
|
(10) тока её вызов надо быдет делать в каждом справочнике
|
|||
|
12
metalman
09.03.07
✎
14:45
|
ну так не интересно.
а что скажите про вот это Книга знаний: v8: Полный парсинг для глобальной обработки событий (ГОС) |
|||
|
13
metalman
09.03.07
✎
15:53
|
а мож как-нить через метаданные можно сделать?
в 7.7. есть метод ПрефиксКода. Бежишь по метаданным и проставляешь его |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |