Преобразование объекта ссылочного типа в строку "внутр" и обратно.
Преобразование уид объекта ссылочного типа в объект и обратно.
Сторно программно в несколько строк.
Очищение сохраненного значения пары "пользователь — переменная".
Перечень одноходовок
1. Внутр (ЗначениеВСтрокуВнутр и обратно)
2. СсылкаУИД (Получение текстовой ссылки на объект и обратно).
3. Сторно (Сторнируем любой документ программно корректировкой записей регистров)
4. Очистить значение (Очищаем значение переменной, сохраненное через СохранитьЗначение)
Детальное описание
1. Внутр
Вставляем в верхнее поле строковое значение, полученное из преобразования объекта ссылочного типа оператором «ЗначениеИзСтрокиВнутр», нажимаем кнопку вниз, получаем во втором поле сам объект.
Или, вставляем в нижнее поле объект ссылочного типа, нажимаем кнопку вверх, получаем его представление после преобразования оператором «ЗначениеВСтрокуВнутр».
В обработке не содержится абсолютно никаких фишек, просто два оператора и красивая форма со стрелками.
Область применения:
Например, обмен данными. В регистре сведений «СоответствиеОбъектовДляОбмена» содержатся те самые строковые значения «Внутр». То есть, при обмене УТ и БП, в соответствующем регистре сведений БП хранятся строковые соответствия объектов УТ. Копируем строковое значение, идем в УТ, открываем обработку, вставляем строковое значение, получаем объект. Таким образом можно решить вопрос, какое соответствие оставить при сведении дублей, какой объект в БП должен соответствовать объекту из УТ и т.д.
2. «СсылкаУИД».
Вставляем в верхнее поле строковое значение уникального идентификатора объекта, выбираем в нижнем поле тип метаданного для поиска, нажимаем кнопку вниз, получаем во втором поле сам объект.
Или, вставляем в нижнее поле объект ссылочного типа, нажимаем кнопку вверх, получаем его уникальный идентификатор.
А здесь кроме красивой формы со стрелками одна фишка таки есть, работа с метаданными и конструктором уникального идентификатора по строке:
Если Метаданные.Справочники.Содержит(ЗначениеПоСтроке.Метаданные()) И НЕ Отказ Тогда
ЗначениеПоСтроке = Справочники[ЗначениеПоСтроке.Метаданные().Имя].ПолучитьСсылку(Новый УникальныйИдентификатор(СтроковоеЗначение));
КонецЕсли;
Область применения: те же обмены данными, надо найти объект по УИД, содержащийся в xml-файле выгрузки. Тип объекта известен, но больше нет никаких других опознавательных признаков, вроде наименования и т.д.
3. Сторно
На самом деле строк тут несколько:
КЗР = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); КЗР.Дата = ДокументДляСторно.Дата; КЗР.ИспользоватьЗаполнениеДвижений = Истина; КЗР_ЗД = КЗР.ЗаполнениеДвижений.Добавить(); КЗР_ЗД.Действие = "Сторно движений документа"; КЗР_ЗД.Документ = ДокументДляСторно; ФормаКЗР = КЗР.ПолучитьФорму(); ФормаКЗР.ВыполнитьДействияДокумента(); КЗР.Записать(); Сообщить("Записан документ сторно " + Строка(КЗР));
Но фишка одна. Экспортная процедура формы документа при правильном заполнении формы заполняет объект документа.
Написано для возникшей необходимости программного сторнирования документа, выделено в отдельную обработку для красоты.
4. ОчиститьЗначение
Здесь всё совсем просто. Имеется сохраненная переменная под определенным пользователем, в ней — битое значение (например, «Объект не найден», получившийся после свертки дублей).
Чистка кэша в случае sql-ной базы не помогает. Чистим программно:
СохранитьЗначение(ИмяПеременной, Неопределено);
Найти бы еще способ прочитать все переменные, сохраненные под данным пользователем… Ну да ладно.
P.S. Можно скачать, можно написать, как душе угодно.
P.P.S. Еще пара простых утилит:
Простое сравнение двух документов или элементов справочников
Сенсэй, приветствую! А еще с помощью этих функций можно организовать Хранение в константе таблицы значений.
(1) varovinm, приветствую, Миша!
Да, я тоже часто использую эти функции «внутр» для хранения и передачи в строковых значениях структур и таблиц значений. Только просмотр содержимого таких строковых значений уже не совсем простая задача. Но есть над чем подумать, спасибо)
да, это круто!
[update 2015-10-13]: добавлено две новых одноходовки.