Как бы данная тема на мой взгляд относится к моей проблеме и поиск по форуму и гугле не дал результатов, напишу здесь вопрос. Надеюсь, что я не ошибся касательно обсждаемого здеь вопроса.
Подскажите пожалуйста.
Имеется внешняя обработка работающая на "1С 8.2 Бухгалтерия для Украины (типовая)", добавил в нее два элемента типа ТаблицаЗначений, в которые пользователь будет заполнять вручную - это своего рода элементы настройки обработки (Список периодов с - по) и (Список цен от - до), которые участвуют в работе внешней обработки.
Дабы упростить жизнь пользователям решил организовать сохранение/загрузку содержимого данных таблиц значений соответственно по процедурам ПриЗакрытии и ПриОткрытии.
Изначально решил использовать методы ЗначениеВФайл(ИмяФайла,Объект,Формат) и ЗначениеИзФайла(ИмяФайла,Объект,Формат) и сохранять данные в файл в каталоге откуда запускается обработка, но так и не смог программно определить "Каталог".
Получить путь к Каталогу пробовал так
ПолноеИмяФайла = ЭтотОбъект.ИспользуемоеИмяФайла;
ИмяКаталога = "";
ИмяФайлаОбработки = "";
ХранилищеДополнительнойИнформации.ПолучитьКаталогИИмяФайла(ПолноеИмяФайла, ИмяКаталога, ИмяФайлаОбработки);
Но выдает ошибку переменная неопределена для "ЭтотОбъект" так и для "ИспользуемоеИмяФайла".
Потом пришла мысль, может уже имеються стандартные методы для этой цели, поиск привел к сохранению так сказать настроек в хранилище, но и тут не совсем все просто в понимании оказалось. Тут и применение вроде как к Обработке в конфигурации, а не ВнешнейОбработке. И сного всплывает "Объект", который также запутал меня как и ЭтотОбъект.
ЭтотОбъект - Возвращает сам объект. Предназначено для получения объекта в модуле объекта или модуле формы. т.е. получается он какбы уже предопределен в 1С, я думаю по аналогии как ЭлементыФормы и т.п. (просто такие у меня ассоциации обрисовываються)
&НаСервере
Процедура СохранитьНастройки()
КлючНастроек = "Обработка.ЗадачаПоУТ_11_шаблон";
Настройки = Новый Соответствие;
Настройки.Вставить("ТаблицаЗначений", Объект.Свойства.Выгрузить());
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Обработка.ЗадачаПоУТ_11_шаблон", КлючНастроек, Настройки);
КонецПроцедуры
...
Целый день уже убил, на вроде бы как элементарную вещь, но все еще безрезультатно.
Подскажите пожалуйста в чем мои заблуждения.
С Уважением, Дмитрий.
! | Правила, п.3, 6 (отделено) |
Решил не мудрить и сделал все таки через файлы
Процедура ПриОткрытии()
КаталогИБ = НСтр(СтрокаСоединенияИнформационнойБазы(), "File"); //Получаю каталог ИБ
ФайлНастроек_ТЗНастройкаЦен = СтрЗаменить(КаталогИБ, "AccountingUkr", "setting_1.txt "); // Получаю каталог "выше" и указываю имя файла
ФайлНастроек_ТЗПериоды = СтрЗаменить(КаталогИБ, "AccountingUkr", "setting_2.txt "); // аналогично
Попытка
ТЗНастройкаЦен = ЗначениеИзФайла(ФайлНастроек_ТЗНастройкаЦен); //читаю значения из файла
ТЗПериоды = ЗначениеИзФайла(ФайлНастроек_ТЗПериоды);
Исключение
Сообщить("Файлы настроек отсутсвуют");
КонецПопытки;
КонецПроцедуры
Процедура ПриЗакрытии()
КаталогИБ = НСтр(СтрокаСоединенияИнформационнойБазы(), "File");
Сообщить(КаталогИБ);
ФайлНастроек_ТЗНастройкаЦен = СтрЗаменить(КаталогИБ, "AccountingUkr", "setting_1.txt ");
ФайлНастроек_ТЗПериоды = СтрЗаменить(КаталогИБ, "AccountingUkr", "setting_2.txt ");
ЗначениеВФайл(ФайлНастроек_ТЗНастройкаЦен, ТЗНастройкаЦен); //записываю значения в файл
ЗначениеВФайл(ФайлНастроек_ТЗПериоды, ТЗПериоды);
КонецПроцедуры
Буду признателен за любую информацию по сохранению "настроек" средствами системы, так как мое решение не совсем универсальное, но в моем случае работает.
С Уважением, Дмитрий.