Кроме примеров, описанных выше, данные из внешних источников могут использоваться также и в прикладных целях. Например, во время разработки и тестирования каких-то новых механизмов учета разработчику требуется подстраховать себя. То есть нужно «незаметно» для пользователя продублировать данные, введенные им во внешнюю таблицу, в какую-то структуру хранения данных «1С:Предприятия», чтобы потом проанализировать эти данные.
Например, чтобы не заставлять пользователя дважды вводить данные о посещении клиентами спа-салона и выполненных им процедурах, «приспособим» для этого внешнюю необъектную таблицу visits внешнего источника данных Спа. Дадим таблице синоним – Визиты, а ее полям client_id, spa_treatment_id и number дадим соответственно синонимы Клиент, Спа-процедура и Количество. Для поля number установим также свойство Значение заполнения в значение 1 (рис. 2.40).
Рис. 2.40. Свойства таблицы «visits»
Ранее, при настройке таблицы visits в конфигураторе, мы установили, что у этой таблицы два ссылочных поля: поле client_id ссылается на таблицу clients и поле spa_treatment_id ссылается на таблицу spa_treatments. А у этих двух объектных таблиц (clients, spa_treatments) полями представления являются соответственно name и description.
Запустим «1С:Предприятие». Таблица visits теперь имеет привычный вид. Вместо ключевых полей пользователь увидит фамилии клиентов и наименования косметических процедур, которые были им выполнены. Кроме того, у самой таблицы и у ее полей теперь вполне понятные названия, и у пользователя может возникнуть ощущение, что он работает с привычным регистром сведений, например (рис. 2.41).
Рис. 2.41. Ввод данных о посещениях клиентами спа-салона во внешнюю таблицу «visits»
На самом деле пользователь будет вводить данные непосредственно во внешнюю таблицу, а мы добавим в нашу конфигурацию «служебный» регистр сведений, которого не будет видеть пользователь. Но при интерактивной записи данных во внешнюю таблицу соответствующая информация также будет программно сохраняться и в этом регистре сведений. На основе этого регистра можно затем построить различные отчеты и проверить полученную информацию.
Итак, добавим в конфигурацию периодический регистр сведений ВизитыВСпа и снимем у него флажок Использовать стандартные команды. Создадим у регистра два измерения: измерение Клиент, имеющее тип ссылки на таблицу clients внешнего источника данных Спа, и измерение Процедура, имеющее тип ссылки на таблицу spa_treatments. А также создадим ресурс Количество числового типа (рис. 2.42).
Рис. 2.42. Структура регистра «ВизитыВСпа»
Теперь создадим форму записи таблицы visits. Затем создадим обработчик события формы ПриЗаписиНаСервере() и заполним его следующим образом (листинг 2.9).
Листинг 2.9. Обработчик события формы «ПриЗаписиНаСервере»
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// Подготовить менеджер записи.
ЗаписьРегистра = РегистрыСведений.ВизитыВСпа.СоздатьМенеджерЗаписи();
// Установить ключевые поля менеджера записи.
ЗаписьРегистра.Период = ТекущаяДата();
ЗаписьРегистра.Клиент = Запись.client_id;
ЗаписьРегистра.Процедура = Запись.spa_treatment_id;
ЗаписьРегистра.Количество = Запись.number;
ЗаписьРегистра.Записать();
КонецПроцедуры
В этом обработчике мы с помощью менеджера записи добавляем запись в регистр сведений ВизитыВСпа. Поле Период заполняем текущей датой, поле измерения Клиент заполняем ссылкой на клиента, поле измерения Процедура – ссылкой на процедуру, а поле ресурса Количество – количеством выполненных клиенту процедур.
В результате регистр сведений может иметь следующее содержимое (рис. 2.43).
Рис. 2.43. Содержимое регистра сведений «ВизитыВСпа»
Поясним еще раз, что содержимое регистра, показанное на рис. 2.43, приведено просто для ознакомления. В интерфейсе приложения регистр не будет виден.
На основе информации, содержащейся в регистре, можно сформировать, например, следующий журнал посещений спа-салона (рис. 2.44).
Рис. 2.44. Журнал посещений спа-салона