Стандартный механизм нумерации документов и справочников в конфигурациях от 1С (Заметки программиста)

24.03.17

Разработка - Механизмы типовых конфигураций

Написать статью подтолкнуло добавление в конфигурацию нового типа документа. И сделать его хотелось так, как будто он был в этой базе с поставки. Обработка содержит указания на подписки на события и код процедур для быстрого приведения документа / справочника к стандартному для конфигураций механизму нумерации.. Является шпаргалкой и помощником программиста при разработке. На обычных формах механизм проверен у документов и справочников в конфигурациях: УПП 1.3, БП 2.0, УПП 10.3, в последней, кстати, он кстати немного упрощён.

Скачать исходный код

Наименование Файл Версия Размер
Стандартный механизм нумерации документов и справочников в стандартных конфигурациях (Заметки программиста):
.epf 14,16Kb
2
.epf 14,16Kb 2 Скачать

По управлемым формам ещё собирается информация  (пока указаны только подписки на события),  изучаю механизм. Надеюсь, вскоре последует обновление статьи.

Код разнесён по формам  в зависимости от типа объекта и вида форм, в которых собраны все процедуры, участвующие в процессе нумерации.

Расмотрим на примере документа с обычными формами, необходимые монипуляции с конфигурацией:

//	1.
//	Длина номера объекта соответствует длине номеров большинства документов, учитываем ещё и префиксацию
//	платформа 1С стандартно ставит длину 9 символов, в стандартных конфигурациях 11 символов

//	2.
//	Установить в подписках на события
//	Общие -> Подписки на события -> ПриУстановкеНовогоНомераДокумента
//	В свойстве Источник отметить свой новый вид документов

//	3.
//	У поля ввода "Номер" на форме устанавливаем свойство "ТолькоПросмотр" в состояние Истина

//	4.
//	В свойствах формы объекта Поменять свойство "Автонумерация" с "Авто" на "Не использовать"

На панели свойств в группе событий создадим необходимые, затем вставим код:

Перем мТекущаяДатаДокумента;

Процедура ПриОткрытии()
	мТекущаяДатаДокумента = Дата;
	//ЭлементыФормы.ДействияФормы.Кнопки.Подменю
	//Это элемент подменю верхней панели в который будет добавлена коменда "Редактировать номер"
	МеханизмНумерацииОбъектов.ДобавитьВМенюДействияКнопкуРедактированияНомера(ЭлементыФормы.ДействияФормы.Кнопки.Подменю);
	МеханизмНумерацииОбъектов.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю,ЭлементыФормы.Номер);
КонецПроцедуры

Процедура ПослеЗаписи()
	МеханизмНумерацииОбъектов.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер);
КонецПроцедуры

//Эта процедура назначается коменде "Редактировать номер"
Процедура ДействияФормыРедактироватьНомер(Кнопка)
	МеханизмНумерацииОбъектов.ИзменениеВозможностиРедактированияНомера(ЭтотОбъект.Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер);
КонецПроцедуры



//Процедуры при изменении ведущих элементов

Процедура ДатаПриИзменении(Элемент)
	РаботаСДиалогами.ПроверитьНомерДокумента(ЭтотОбъект, мТекущаяДатаДокумента);
	МеханизмНумерацииОбъектов.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер);
	мТекущаяДатаДокумента = Дата; // запомним текущую дату документа для контроля номера документа
КонецПроцедуры

Процедура ОрганизацияПриИзменении(Элемент)
	Если Не ПустаяСтрока(Номер) Тогда
		МеханизмНумерацииОбъектов.СброситьУстановленныйКодНомерОбъекта(ЭтотОбъект, "Номер", ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер);
	КонецЕсли;
КонецПроцедуры

нумерация документов нумерация справочников нумерация объектов номерация документов номерация справочников номерация объектов

См. также

Ценовая власть. Выносим из цикла схему СКД

Механизмы типовых конфигураций Ценообразование, анализ цен Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    537    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    418    tango    5    

4

Ценовая власть. Второй сезон

Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Бесплатно (free)

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

08.04.2024    787    tango    0    

2

Ценовая власть (УТ 11.5) - 2

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

В прошлый раз специальной обработкой мы выбрали объекты УТ 1.5, группируя по подсистемам. Оказалось, что состав подсистем не вполне корректно отображает функциональную структуру, но зато мы нашли процедуру, которая, вроде бы, должна содержать в себе всё, что нас интересует. Обновление цен должно ведь следовать выбранной стратегии ценообразования, верно? Иначе что она обновляет...

06.04.2024    480    tango    1    

1

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    587    tango    12    

2

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2671    YA_418728146    11    

45

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1203    8    2ncom    6    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    5028    mrXoxot    11    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. K_A_O 539 24.03.17 15:09 Сейчас в теме
Нехорошо наверно залазить в типовую подписку.
2. agent00mouse 253 25.03.17 07:53 Сейчас в теме
Показал откуда ноги растут, а уже как реализовать... По уму, лучше свою подписку сделать с редиректом вызова стандартной. Тут ты прав.
3. Diego_Iv 34 05.04.17 14:11 Сейчас в теме
Когда добавляю новый документ, обычно делаю это копированием какого-нибудь типового и удаляю из модуля формы и модуля объекта все лишнее: счет на оплату например, у него не так много лишнего по сравнению с другими документами.

Кроме того, что Вы привели в тексте, еще полезно оставить код для подключения обработок табличных частей (если они есть в новом документе) и внешних печатных форм.
4. agent00mouse 253 05.04.17 19:02 Сейчас в теме
(3)
Вы привели в тексте, еще полезно оставить код для подключения обработок табличных частей (если они есть в новом документе) и внешних печатных форм.

+ Подключение торгового оборудования, и вот отличная идея для статьи. "Шаблон нового типа документов". Без сарказма. При наличии времени расширю формат статьи.
З.Ы. По управляемым на данный момент ни чего больше не нашёл.
5. Dmtr666 26.04.17 14:30 Сейчас в теме
(3)
Кроме того, что Вы привели в тексте, еще полезно оставить код для подключения обработок табличных частей (если они есть в новом документе) и внешних печатных форм.


Зачем? Документ не типовой, его можно править как угодно.
6. TODD22 18 26.04.17 14:35 Сейчас в теме
(5)
Зачем?

Затем что не каждый может обновления ставить по 25 раз в день на каждое изменение. Например у вас РИБ в 100 узлов в 15 городах. Приходят и просят поправить в документе печатную форму, добавить ещё одного подписанта.
И если есть универсальный(общепринятый) механизм то лучше использовать его чем "править как угодно".
7. Dmtr666 27.04.17 07:45 Сейчас в теме
(6)
Ситуация описанная тобой понята и принята к сведению.

Затем что не каждый может обновления ставить по 25 раз в день на каждое изменение

Для подавляющего большинства изменений-нет необходимости немедленно вносить их в рабочую конфигурацию. А для тех что горят, можно воспользоваться динамическим обновлением.

И если есть универсальный(общепринятый) механизм

Имхо-это универсальный механизм по созданию костылей. Он оправдан только если нельзя вносить изменения в объект, либо если изменения нужны не очень большому количеству пользователей.
8. TODD22 18 27.04.17 08:01 Сейчас в теме
(7)
Для подавляющего большинства изменений-нет необходимости немедленно вносить их в рабочую конфигурацию.

Ага... только ген дир так не считает. Будешь с ним спорить?
А для тех что горят, можно воспользоваться динамическим обновлением.

Исправлять последствия неудачного динамического обновления за чей счёт будем? Время работы программиста стоит денег. Статей про исправление после дин обновления написано много.
И хотелось бы увидеть за сколько будет исправлено в РИБе из 100 узлов. В которой простой может быть только 3 часа в сутки ночью.
Имхо-это универсальный механизм по созданию костылей.

А чем то можете кроме "ИМХО" аргументировать?
Он оправдан только если нельзя вносить изменения в объект, либо если изменения нужны не очень большому количеству пользователей.

Ну вот уже два исключения из правила... могу ещё таких с 10ок накидать.
Если у вас ларёк с 2мя пользователями это одно дело и совсем другое когда у вас база на 100 одновременно работающих пользователей простой которой вообще не допустим. Или у вас распределёнка. Узлы будете из за каждого изменения обновлять?
9. Dmtr666 27.04.17 09:09 Сейчас в теме
(8)
Ага... только ген дир так не считает. Будешь с ним спорить?

Сочувствую. Я даже не знаю как выглядит наш директор :-) Для споров есть начальник АСУ, который тоже программист одноэсник.

Исправлять последствия неудачного динамического обновления за чей счёт будем? Время работы программиста стоит денег. Статей про исправление после дин обновления написано много.
И хотелось бы увидеть за сколько будет исправлено в РИБе из 100 узлов

Я не призываю использовать динамическое обновление все время, но иногда это необходимо. С последствиями неудачного обновления сталкивался на собственном опыте, но использовать его наш отдел не перестал. Опыта работы с РИБ нет.

А чем то можете кроме "ИМХО" аргументировать?

Увы, моё недоверие к внешним обработкам вызвано разборками, после того как несколько человек правят одну и ту же обработку и независимо меняют ее. Такое не часто бывает, но все равно неприятно :-(
Оставьте свое сообщение