Розширення RMKBarcodeCharacteristicFix для BAS Роздрібна торгівля — фільтр «Тільки наявні» у формі вибору ШК » IT-FORMAT
» » Розширення RMKBarcodeCharacteristicFix для BAS Роздрібна торгівля — фільтр «Тільки наявні» у формі вибору ШК
ВИП. №187· липень 2026· НІЖИН

Новий формат бізнесу — у цифрі, у вашій щоденній роботі.

Автоматизація обліку, власні розробки на BAS/1С, IP-телефонія та відеоспостереження. Пишемо про те, що робимо — і робимо те, про що пишемо.

Популярні

    Розширення RMKBarcodeCharacteristicFix для BAS Роздрібна торгівля — фільтр «Тільки наявні» у формі вибору ШК

    BAS Роздрібна торгівля 2.2
    Автоматизація та інтеграція 14 травня 2026 Переглядів: 70 Автор: Claudia
    RMKBarcodeCharacteristicFix — фільтр «Тільки наявні» у формі вибору ШК
    Editorial composition · ledger grid + barcode lines
    Завантажити розширення

    RMKBarcodeCharacteristicFix_1.1.0.cfe — пряме посилання, ~12 КБ. Установка: Конфігурація → Розширення конфігурації → Додати.

    Що відбувається без розширення

    У РМК (робоче місце касира) для одного товару з характеристиками часто використовується один загальний штрих-код без прив'язки до конкретної характеристики. Коли касир сканує такий код, BAS Retail штатно відкриває форму «Вибір даних пошуку по штрихкоду» і показує усі знайдені варіанти:

    Давідоф Classik, ,         ← товар без характеристики
    Давідоф Classik, 165,      ← характеристика 165
    Давідоф Classik, 170,      ← характеристика 170

    Касир бачить три позиції, але реально на залишку в його магазині може бути тільки одна. Без фільтра по залишку касир вгадує — і це призводить до:

    • продажу позиції, якої немає на залишку (мінусові залишки, порушення обліку);
    • помилок під час інвентаризації;
    • зайвих питань касира до старшого продавця.

    Та сама форма відкривається не тільки в РМК. Її використовують документи надходження, переоцінки, переміщення тощо — там фільтр по залишку недоречний (товару фізично ще немає в магазині). Тому потрібен механізм, який вмикається за замовчуванням, але користувач може його вимкнути одним кліком.

    Що робить розширення

    Розширення позичає форму ОбщаяФорма.ВыборДанныхПоискаПоШК і додає до неї один елемент — чекбокс «Тільки наявні» над таблицею вибору.

    При відкритті форми:

    • чекбокс за замовчуванням увімкнений;
    • одним запитом перевіряємо залишки на складі продажу поточного магазину сесії і ховаємо рядки без залишку.

    У вікні касир бачить лише реальні варіанти:

    [x] Тільки наявні
    Давідоф Classik, 165,      ← тільки ця позиція є на залишку магазину

    Якщо користувач знімає чекбокс — миттєво (без додаткових запитів до БД) повертається повний штатний перелік. У надходженнях, переоцінках і подібних документах це дозволяє побачити всі варіанти, коли товару ще немає на залишку.

    Поведінка у різних сценаріях

    СценарійЩо буде
    Штрих-код має один варіант (нема двозначності)Форма вибору не відкривається — розширення не задіюється
    Декілька варіантів, всі мають залишокВидно всі (як штатно), чекбокс увімкнено
    Декілька варіантів, залишок лише в одногоВидно одну позицію; зняти чекбокс → видно всі
    Декілька варіантів, жоден не має залишкуСписок порожній; зняти чекбокс → видно всі
    Дисконтна картка / серійний номерРядки без номенклатури фільтром не зачіпаються — видно завжди
    Виклик з документа «Завантаження ШК» (двохрівневе дерево)Чекбокс ховається, поведінка повністю штатна
    Поточний магазин не визначеноФільтр по всіх складах (краще показати щось, ніж нічого)
    У магазину не заповнено «Склад продажу»Те саме — фільтр по всіх складах

    Технічна реалізація

    • Тип розширення: Patch, режим сумісності Version8_3_10.
    • Точка втручання: позичена (Adopted) форма CommonForm.ВыборДанныхПоискаПоШК + власний CommonModule.RMKBCF_ОтборПоОстаткуСервер.
    • Префікс власних об'єктів: RMKBCF_.
    • Обробник &После("ПриСозданииНаСервере") збирає унікальні пари (Номенклатура, Характеристика) з дерева вибору, робить один запит до РегистрНакопления.ТоварыНаСкладах.Остатки, зберігає повний список у тимчасовому сховищі сесії і перебудовує дерево.
    • Перемикач чекбокса не звертається до БД повторно — читає кешований повний список з тимчасового сховища, тому перемикання миттєве.
    • Запит виконується у привілейованому режимі — фільтр не залежить від прав касира на читання регістру залишків.

    Визначення магазину і складу

    Магазин береться з параметра сесії ПараметрыСеанса.ТекущийМагазин. Це стандартний механізм BAS Retail (ОбщегоНазначенияРТ.ОпределитьТекущийМагазин), який ставить магазин з робочого місця користувача / каси за пріоритетом підрозділу. Касиру не треба нічого підставляти руками — магазин зʼявляється сам, з його сесії.

    Склад продажу беремо з реквізиту магазину:

    Склад = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Магазин, "СкладПродажи");

    Якщо магазин не визначено або СкладПродажи не заповнено — фільтр відкочується до перевірки залишків на всіх складах.

    Сумісність

    • Конфігурація: BAS Роздрібна торгівля 2.2 (BASРозничнаяТорговля), версія 2.2.14.2 і сумісні.
    • Режим сумісності: 8.3.10.
    • Мінімальна версія платформи 1С: 8.3.10 і вище (тестовано на 8.3.17, 8.3.24).
    • Основна конфігурація не модифікується — стандартний механізм розширень з можливістю відкату.
    Обмеження і нюанси

    Тип складу. Використовується тільки СкладПродажи магазину. Якщо торгова мережа продає з іншого складу (наприклад, окремий резервний під роздріб) — у поточній реалізації знадобиться доробка.

    Резерви не враховуються. Фільтр базується на КоличествоОстаток > 0, без віднімання резервів. Якщо весь залишок зарезервований під чужі замовлення — позиція все одно показується як «наявна».

    Привілейований режим. Запит залишків виконується у привілейованому режимі. Якщо політика безпеки забороняє касиру знати про існування «чужої» позиції — це слід враховувати: порожній перелік при увімкненому фільтрі непрямо свідчить, що штрих-код привʼязаний до позиції без залишку.

    Встановлення

    1. У Конфигуратор відкрити базу даних.
    2. Конфигурация → Расширения — натиснути Добавить і обрати RMKBarcodeCharacteristicFix_1.1.0.cfe.
    3. У відкритій формі залишити налаштування за замовчуванням: Защита от опасных действий увімкнено, Активно увімкнено.
    4. Зберегти і Оновити конфігурацію бази даних (F7).
    5. Завершити сеанси користувачів (або перезапустити rphost на клієнт-серверному варіанті).

    Розширення підключається без зупинки бази-в-цілому і не потребує реструктуризації даних. Налаштування для користувача не передбачені — працює одразу після встановлення.

    Як тимчасово вимкнути

    • Разово на одну форму — зняти чекбокс «Тільки наявні» у вікні вибору.
    • Глобально — у списку розширень зняти прапор «Активно» і оновити конфігурацію БД. Форма повернеться до штатної поведінки (всі варіанти, без чекбокса).
    Завантажити

    RMKBarcodeCharacteristicFix_1.1.0.cfe · ~12 КБ · вільне завантаження. Версія 1.1.0.

    Опубліковано: 14-05-2026, 18:18 · Автор: Claudia
    Теги
    Вхід
    Опитування

    Якою програмою обліку ви користуєтесь?