Имя: Пароль:
1C
1С v8
Вспомогательные данные разработчика
0 lero84
 
18.01.18
11:10
Добрый день!
Имеем 1С 8.3.
Для работы нужно создать какой-нибудь вспомогательный справочник или регистр для хранения дополнительной, вспомогательной информации.
В частности сейчас нужно хранить дату конкретного изменения в конфигурации для начала работы такого изменения. Далее возможно для подстановки значений или еще для каких-нибудь целей.
хочется сделать что-нибудь просто и универсальное.
Подскажите как лучше?
Справочник с реквизитом - значение (все ссылки на справочники, документы, перечисления, строка, число, дата).
И дальше, например, вводить предопределенные элементы справочника для быстрого поиска.
Либо регистр сведений - с измерением строка, и ресурс - Значение.
Что быстрее  будет работать, что меньше будет грузить процессы.
Или не париться и просто проверять на дату прям в коде
1 Волшебник
 
модератор
18.01.18
11:10
проверять на дату прям в коде
2 lodger
 
18.01.18
11:12
(1) но это не отвечает на вопрос о централизации и универсальности для каждого чиха.
кстати, за это в любом случае придется заплатить вычислительным временем.
3 vicof
 
18.01.18
11:17
Константа + ФО.
4 vicof
 
18.01.18
11:17
Или просто функция, возвращающая дату действия начала такого-то механизма
5 Волшебник
 
модератор
18.01.18
11:19
(4) Лучше использовать не дату, а константу типа "Номер версии".
6 lero84
 
18.01.18
11:20
Всем огромное спасибо!!
Пока буду проверять на дату прям в коде, т.к. обращения будут достаточно частые.
Дальше будем решать по мере поступления задач)
7 lodger
 
18.01.18
11:22
(5) например, вот версия новая от 2018, а для документа 2017го года хочется поведение версии 2017го года.

можно так:

АлгоритмПроведения = МойМодуль.АлгоритмПроведения(ЭтотОбъект.Метаданные,ЭтотОбъект.Дата);

Если АлгоритмПроведения = 1 тогда
//код1
ИначеЕсли АлгоритмПроведения = 2 Тогда
//код2
Иначе
//код0
конецесли
8 lero84
 
18.01.18
11:24
(5) про ведение версий - это мысль!
9 ildary
 
18.01.18
11:35
(7) а почему кусок
Если АлгоритмПроведения = 1 тогда
//код1
ИначеЕсли АлгоритмПроведения = 2 Тогда
//код2
Иначе
//код0
конецесли

нельзя поместить прямо в МойМодуль.АлгоритмПроведения() - чтобы не бегать между двумя модулями? Тогда открыв МойМодуль можно увидеть все изменения в одном месте.
10 lodger
 
18.01.18
11:37
(9) это уже оптимизация и рефакторинг. можно и так, можно и сяк.
11 FIXXXL
 
18.01.18
11:50
Если алгоритм затрагивает несколько документов?

У нас сделан справочник "Название-ДатаНачалаДействия", добавляются ПРЕДОПРЕДЕЛЕННЫЕ элементы при необходимости. "Да-Нет" о работе алгоритма возвращается из общего модуля ПовторногоИспользования.
Иначе был бы зоопарк из констант :)

Еще есть параметры учетной политики, через РС и ПланВидовХарактеристик. Там можно черта лысого хранить, при желании. Так через ПовтИсп получаем значения параметров по имени предопределенного элемента Плана.
12 ILM
 
гуру
18.01.18
14:06
А чем регистр сведений не устраивает? Сделали ссылку на тип объекта, сделали условия, хранилище структуры параметров и если нужно даже кода. Хотя все уже было изобретено до нас. Смотрите монитор ввода данных и правила ввода данных.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.