Каталог решений - «Локализация» значений констант для пользователей в 1С:7.7

«Локализация» значений констант для пользователей в 1С:7.7

«Локализация» значений констант для пользователей в 1С:7.7

В наличии

Для каждого пользователя — свои значения констант. 🙂

Категория:

Описание

Пришла в голову оригинальная мысль, проверил — работает.

 // глобальный модуль, блок объявления переменных
Перем Константа;                       
Перем ТЗКонстанта Экспорт;  // (12.12.09) для локальных модулей                     

// глобальный модуль, блок операторов
Пер = СоздатьОбъект("Периодический"); 
ДопПериод = 0;

Константа = СоздатьОбъект("ТаблицаЗначений");
Константа.НоваяСтрока(); 

Для М1 = 1 По Метаданные.Константа() Цикл                 
  ИдКонстанты = Метаданные.Константа(М1).Идентификатор;
  Константа.НоваяКолонка(ИдКонстанты); 
Если Метаданные.Константа(М1).Периодический = 1 Тогда
// подключим эмуляцию методов периодических констант Получить() Установить()
// через СписокЗначений
СЗ = СоздатьОбъект("СписокЗначений");
Пер.ИспользоватьОбъект(ИДКонстанты);
Пер.ОбратныйПорядок(0);
Если Пер.ВыбратьЗначения() > 0 Тогда
Пер.ПолучитьЗначение();
                  ДатаНач = Пер.ДатаЗнач;
                  Пер.ОбратныйПорядок(1);
Пер.ВыбратьЗначения();
Пер.ПолучитьЗначение();
                  ДатаКон = Пер.ДатаЗнач + ДопПериод;
                  Для М2 = ДатаНач По ДатаКон Цикл
СЗ.Установить(М2,Пер.ЗначениеНаДату(М2));
КонецЦикла;
            КонецЕсли;
Константа.УстановитьЗначение(1,М1,СЗ);
Иначе 
Константа.УстановитьЗначение(1,М1,Const.ПолучитьАтрибут(ИдКонстанты));
КонецЕсли;
КонецЦикла
// локализуем значения для пользователя ;)
 Константа.ДатаЗапретаРедактирования = "Это дата запрета редактирования, однако.";
 ТЗКонстанта = Константа; // (12.12.09) для локальных модулей

Естественно,  после такого «надругательства» методы константы ПолучитьАтрибут() и УстановитьАтрибут() будут работать только в англоязычной версии.

 

Примечание (12.12.09). Эта подмена встроенного агрегатного типа на объявленную переменную может работать с обращением к ней только из текущего модуля, т.е.   локальном модуле ее потребуется заново переопределить

Перем Константа;        


Константа = ТЗКонстанта;              

has been added to your cart:
Оформление заказа