При разработке собственных интерфейсов в 1С:Предприятии 7.7 часто возникает задача вывода списка документов на форму обработки. Рассмотрим по шагам, как правильно выполнить эту задачу, избежать типичных ошибок и обеспечить корректную работу пользователей.
Для того чтобы вывести список документов в таблицу значений ТабЖур на форме, нам необходимо правильно инициализировать объект Документ. Важно понимать, что метод ВыбратьДокументы() без параметров попытается выбрать все документы за все время существования базы, что может привести к зависанию системы. Поэтому первым делом мы ограничиваем выборку.
Рассмотрим пример правильного кода для заполнения таблицы:
Функция ЗаполнитьСписокДокументов()
Док = СоздатьОбъект("Документ");
// Устанавливаем интервал выборки для оптимизации
Док.ВыбратьДокументы(НачалоДня(ТекущаяДата()), ТекущаяДата());
ТабЖур.УдалитьСтроки();
Пока Док.ПолучитьДокумент() = 1 Цикл
ТабЖур.НоваяСтрока();
ТабЖур.Документ = Док.ТекущийДокумент();
// Можно добавить другие поля, например, дату или номер
КонецЦикла;
КонецФункции
Обратите внимание на использование Док.ТекущийДокумент() — это позволяет корректно передать ссылку на объект в ячейку таблицы. Если вы используете журнал, можно применить метод ИспользоватьЖурнал("ИмяВашегоЖурнала", 1), чтобы фильтрация документов соответствовала настройкам конкретного журнала в конфигураторе.
После того как данные попали в таблицу, нам нужно реализовать переход к документу по двойному клику или нажатию кнопки. Для этого в свойствах таблицы значений на форме в поле Формула необходимо указать имя функции, которая будет обрабатывать событие, например: ОткрытьВыбранныйДокумент().
Реализуем эту функцию в модуле формы:
Процедура ОткрытьВыбранныйДокумент()
Перем ВыбранныйДок;
// Определяем текущую строку таблицы
ИндексСтроки = ТабЖур.ТекущаяСтрока();
Если ИндексСтроки <> 0 Тогда
ВыбранныйДок = ТабЖур.ПолучитьЗначение(ИндексСтроки, "Документ");
Если ПустоеЗначение(ВыбранныйДок) = 0 Тогда
ОткрытьФорму(ВыбранныйДок);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
В процессе работы над пользовательскими интерфейсами, особенно при создании «рабочих столов» для складских планшетов, стоит учитывать несколько важных факторов:
FormEx, если требуется обновление в реальном времени.Пока Док.ПолучитьДокумент() становится медленным. Рекомендуем использовать компоненту 1С++ и объект ПоставщикДанных. Это позволит выполнять прямые SQL-запросы к базе данных, что значительно ускоряет работу с большими списками.FormEx позволяет значительно расширить возможности стандартной таблицы значений: настроить цвета строк, шрифты, иконки видов документов и комфортный для пальцев размер элементов.Реализуя такой механизм, вы получаете гибкий инструмент, который не только отображает последние созданные документы, но и обеспечивает высокую скорость работы сотрудников за счет быстрого доступа к необходимой информации.