В типовой рознице у обработки РабочееМестоКассира имеется форма ФормаВыбораЧека. На форме имеется реквизит ТаблицаЧековККМ с типом ДинамическийСписок. У него установлено свойство ПроизвольныйЗапрос и указан следующий запрос:
ВЫБРАТЬ
"12345678901234567890" КАК Номер,
"12345678901234567890" КАК НомерККМ,
ДАТАВРЕМЯ(2001, 1, 1, 0, 0, 0) КАК Дата,
0 КАК СуммаДокумента,
ВЫРАЗИТЬ("" КАК Строка(1024)) КАК Комментарий
ИЗ
Справочник.НастройкиРабочегоМестаКассира КАК НастройкиРабочегоМестаКассираПереопределяемый
При вызове события ПриСозданииНаСервере, в зависимости от переданных параметров, запрос переопределяется. После этого, при активации события Выбор ТаблицыФормы мы получаем ссылку на документ с помощью свойства ТекущиеДанные и затем начинаем, к примеру, оформление возврата. При этом, ссылка отсутствует в списке колонок ТаблицыФормы.
Решил повторить подобное в расширении. Создал общую форму, реквизит формы с типом ДинамическийСписок и указал в нем этот же запрос, а затем переопределил его, для примера, следующим запросом:
ТекстЗапроса =
"ВЫБРАТЬ
| ЧекККМ.Ссылка КАК Ссылка,
| ЧекККМ.Дата КАК Дата,
| ЧекККМ.Номер КАК Номер
|ИЗ
| Документ.ЧекККМ КАК ЧекККМ
|ГДЕ
| НЕ ЧекККМ.ПометкаУдаления";
Показать
Суть проблемы в следующем: При активации события Выбор ТаблицыФормы в моем расширение в текущих данных отсутствует поле ссылка. Но если я скопирую реквизит ТаблицаЧековККМ с типовой формы и повторю те же самые действия, ссылка в текущих данных будет присутствовать.
Пробегал по всем свойствам, сравнивал формы через сравнение объектов, не могу найти, в чем отличия и почему так разниться поведение. Подскажите, может быть, кто-то сталкивался с подобным?
Суть проблемы в следующем: При активации события Выбор ТаблицыФормы в моем расширение в текущих данных отсутствует поле ссылка. Но если я скопирую реквизит ТаблицаЧековККМ с типовой формы и повторю те же самые действия, ссылка в текущих данных будет присутствовать.
Если я не ошибаюсь в типовой так - у поля Ссылка стоит признак ИспользоватьВсегда, сама ссылка добавлена на форму и скрыта (видимость убрана) и поэтому ссылка доступна для использования пользователем (поля например вытащить) и програмно ее тоже можно вытащить
Нет, в настройках динамического списка в типовой форме нет поля "Ссылка" и признаков "ИспользоватьВсегда". Так же нет и основной таблицы в настройках динамического списка.
Программно эта колонка тоже не добавляется, пробегал по всему коду открытия формы. Ну и скопировав к себе никаких доп обработок не делал. Просто переопределил запрос динамического списка и ссылка, в отличии от созданного мной динамического списка, там есть.
(5) Запрос из примере выше переопределяется в зависимости от переданных параметров при открытии формы. К примеру, если оформляется чек возврата итоговый запрос содержит в себе поле "Ссылка":
|ВЫБРАТЬ
| ДокументЧекККМ.Ссылка КАК Ссылка,
| ДокументЧекККМ.Номер КАК Номер,
| ДокументЧекККМ.НомерЧекаККМ КАК НомерККМ,
| ДокументЧекККМ.Дата КАК Дата,
И в моем примере, где я в двух динамических списках переопределяю этот запрос на запрос вида:
ТекстЗапроса =
"ВЫБРАТЬ
| ЧекККМ.Ссылка КАК Ссылка,
| ЧекККМ.Дата КАК Дата,
| ЧекККМ.Номер КАК Номер
|ИЗ
| Документ.ЧекККМ КАК ЧекККМ
|ГДЕ
| НЕ ЧекККМ.ПометкаУдаления";
Показать
В одном, скопированном с типовой форме, ссылка присутствует, а в другом нет.
(7) При активации события Выбор таблица формы динамического списка, скопированного с типовой формы, в свойстве ТекущиеДанные содержит поле "Ссылка", а таблица формы динамического списка, созданного мной, его не содержит.
Приложит скриншоты значений свойства ТекущиеДанные, динамических списков и их переопределения. Вроде бы все одинаковая, но результат разный.
(8) В комментарии 10 я скопировал динамический список из типовой формы к себе на форму и самостоятельно переопределил запрос, то есть не устанавливаю обязательное использование. При этом, результат работы двух списков разный.
Я, в целом, проблему обошел и скрыл поле Ссылка с установкой свойства "Использовать всегда", спасибо коллегам, но для собственного развития хотел бы понять, что изначально делал не так и почему работает по разному.