Проблема ограниченного отображения строк в «корзине» (таблице подобранных товаров) — классическая ситуация для конфигураций на платформе 1С:Предприятие 7.7, таких как «Торговля и Склад 9.2». Пользователи часто сталкиваются с тем, что при подборе товара нижняя таблица отображает всего 4-5 строк, а остальное скрывается за прокруткой. Это вызывает неудобства у сотрудников розницы, которые хотят видеть весь список выбранного товара перед переносом в документ.
В этой статье мы подробно разберем, почему так происходит, и рассмотрим несколько способов решения проблемы: от простых манипуляций в конфигураторе до изменения логики работы формы.
Первым делом проанализируем поведение элементов управления на форме. В 1С 7.7 распределение экранного пространства между объектами часто управляется системными алгоритмами, которые не всегда работают эффективно. Если вы увеличиваете рамку таблицы в конфигураторе, но в режиме «Предприятие» она все равно «схлопывается», причина кроется в настройках привязок.
Разберем по шагам, как это исправить:
Справочники — Номенклатура — ФормаСпискаДляПодбора).Важный нюанс: В 7.7 нет свойства «Высота в строках». Количество видимых строк определяется исключительно физическим размером элемента в конфигураторе и размером шрифта, установленным для этой таблицы.
Проанализируем стандартный интерфейс подбора: обычно форма разделена горизонтально — сверху список справочника, снизу корзина. При таком подходе обе таблицы сильно ограничены в высоту. Рассмотрим альтернативный вариант компоновки.
Если специфика мониторов на рабочих местах позволяет (например, широкоформатные мониторы), мы можем изменить разделение на вертикальное. В этом случае:
При такой структуре обе таблицы получают максимальную высоту, равную высоте всей формы. Это позволяет видеть 20-30 строк корзины одновременно без использования прокрутки. Чтобы реализовать это, просто перетащите элементы в редакторе формы и настройте их границы соответствующим образом.
Иногда пользователям важно не видеть каждую строку, а понимать общую картину: сколько товаров уже добавлено и на какую сумму. Рассмотрим, как добавить информационную панель, которая будет обновляться в реальном времени.
Для этого создадим на форме текстовое поле (текст) с идентификатором, например, ИнфоПодбор. Разберем пример кода, который нужно поместить в процедуру, отвечающую за добавление товара в таблицу подбора:
Процедура ОбновитьИнфоПодбора()
Перем ТекстСообщения, ВсегоСумма, ВсегоКол;
ВсегоСумма = 0;
ВсегоКол = 0;
// Предположим, ТаблицаПодбора - это таблица значений на форме
ТаблицаПодбора.ВыбратьСтроки();
Пока ТаблицаПодбора.ПолучитьСтроку() = 1 Цикл
ВсегоСумма = ВсегоСумма + ТаблицаПодбора.Сумма;
ВсегоКол = ВсегоКол + ТаблицаПодбора.Количество;
КонецЦикла;
ВсегоСтрок = ТаблицаПодбора.КоличествоСтрок();
ТекстСообщения = "В корзине строк: " + ВсегоСтрок + " | Кол-во: " + ВсегоКол + " | На сумму: " + ВсегоСумма;
// Обновляем текст на форме
Форма.ИнфоПодбор.Заголовок(ТекстСообщения);
КонецПроцедуры
Вызывайте эту процедуру в конце каждого действия по добавлению или изменению товара в корзине. Постоянно меняющиеся цифры итогов дадут пользователю уверенность, что программа «видит» все его действия.
Если место на форме критически ограничено, мы можем прибегнуть к визуальным хитростям. Рассмотрим влияние шрифтов: использование шрифта Arial или MS Sans Serif размером 8 вместо 10 позволяет уместить на 25-30% больше информации в том же окне.
Также эффективным методом является использование слоев формы:
Для тех, кто хочет выйти за рамки стандартных возможностей 1С 7.7, существует внешняя компонента FormEx. С ее помощью можно динамически управлять привязками элементов при изменении размеров окна пользователем. Это позволяет сделать форму по-настоящему «резиновой».
Рассмотрим, что дает FormEx для нашей задачи:
ТекущаяСтрока) гарантирует, что пользователь всегда видит последний добавленный товар.Часто «паника» розничного персонала вызвана отсутствием обратной связи от программы. Если сотрудник сканирует товар, а визуально в корзине ничего не меняется (так как строк много и они ушли вниз), он начинает сомневаться. Выясним, как это решить без изменения размеров таблиц.
Добавьте звуковой сигнал при успешном добавлении позиции. В код обработки подбора вставьте команду:
// В момент добавления товара
КомандаСистемы("cmd /c echo " + Симв(7)); // Простейший системный "бип"
// Или используйте внешнюю компоненту для воспроизведения WAV-файла
Заключение: Комбинируя технические настройки (отключение авторастягивания, уменьшение шрифтов) и юзабилити-приемы (инфо-строки, звуковые сигналы), можно полностью устранить дискомфорт пользователей даже в условиях жестких ограничений платформы 1С 7.7.