Простые решения

Публикация № 290530

Разработка - Практика программирования

В статье хочется показать, что иногда для решения задач можно использовать «простые решения» - настолько простые, что самому не верится.

Этюд 1. «Не читается штрихкод»

История началась с того, что надо было внедрить «1С:Управление торговлей, 10.3», подобрать и подключить торговое оборудование для небольшого магазина одежды и обуви. На кассу был закуплен проводной ручной сканер (имиджер) QuickScan Lite QW2100, который себя оправдал – автоматически распознает штрихкод при поднесении этикетки, имеет лазерное наведение как у снайперских винтовок. Так как отдельной статьи не будет по поводу моих впечатлений от сканера, позволю себе заметить здесь, что я к нему не смог привыкнуть – у меня два раза считывался штрихкод: если при поднесении этикетки сканер не считывал ШК, я инстинктивно нажимал на кнопку считывания вместо того, чтобы подождать. В результате - дважды считанный штрихкод.

 

Для проведения инвентаризации товаров на складе (который представляет из себя отдельную комнату) и в зале магазина я закупил беспроводной ручной сканер (лазер, Bluetooth, 512K) CipherLab 1562 (фото сверху). Очень интересная «штучка» - меня этот сканер впечатлил с первого теста. Особенно легко было с ним работать после работы с ТСД CipherLab 8000 (фото снизу).

Демонстрация подключенного беспроводного сканера прошла успешно: я ходил по залу, сканировал случайно выбранные этикетки, штрихкод считывался даже из далеких уголков магазина, а в блокноте и в 1С садился штрихкод  или соответствующий товар (в документ Чек ККМ).
Но случилось так, что в течение месяца, пока производился запуск и адаптация программы, уволился продавец. Чтобы его рассчитать, надо было провести инвентаризацию товаров. Хотелось задействовать типовой механизм проведения инвентаризации УТ 10.3, поэтому начали процесс инвентаризации с одноименного документа «Инвентаризация товаров».  При сканировании товара «подряд», натолкнулся на штрихкод «2000000003610», который считывался как «200000000361». А при сканировании штрихкода «2000000003603» распознавалось число «20000000036». В общем, первый ноль в конце штрихкода распознавался как "конец строки".
Столкнувшись впервые с неожиданным поведением системы (программа + оборудование), зачастую тратится много времени на то, чтобы элементарно понять, в чем причина, и заодно решить проблему. Мой поиск ни к чему не привел.

Потерял несколько дней на понимание. Полученные рекомендации взял на заметку,  но воплощать в жизнь не стал, или так: попробовал до первой фатальной ошибки. Сказать, что я получил опыт решения таких проблем, не могу – будет новый сканер с той же проблемой, я все равно буду искать решение «по новой».
Решение вопроса пришло из «ниоткуда». Я рассуждал так, в блокноте штрихкод считывается, а в документе 1С – нет. Значит, сделаю блокнот в 1С.

Использовал для заполнения ПолеТекстовогоДокумента. При считывании штрихкода каретка переходила на новую строку автоматически. После считывания ШК-ов можно обработать их, нажав на кнопку «Обработать». При этом создается документ «Инвентаризация товаров» с заполненными товарами и фактическим количеством. Также можно вернуться к этому документу, выбрав его в соответствующем поле, просканировать товар, после чего нажать «Обработать».
Так как ситуация вышла не типовая, я присутствовал на инвентаризации товаров. Мне было важно увидеть, насколько обработка удобна для проведения инвентаризации. Подтверждаю: удобно! Обработано 1000 товаров за неполных 4 часа, создано 10 документов по каждой группе товаров. При этом следует уточнить технологию: сначала вручную создается документ «Инвентаризация», устанавливается отбор по группе товаров, документ заполняется товарами, сохраняем документ, закрываем. Далее открываем обработку, указываем этот документ в поле «Инвентаризация», начинаем сканировать товар.
Обработка доступна для скачивания. Код настолько прост, что не стоит его обсуждать.

 

Этюд 2. «Наценка по сложной формуле»

Столкнулся с такой задачей: имеется конфигурация «Управление торговлей, 10.3», надо реализовать формулу расчета оптовой цены для наценки 130% и 15%. Цена зависит от закупочной цены и от цены доставки. Доставка зависит от веса товара, от тарифа на кг коробки, от тарифа на кг упаковки, от тарифа на перевозку 1 кг, от курса доллара, от страховки на доставку.
Формула на бумаге выглядит так.

Подчеркнутые двумя линиями коэффициенты являются периодическими. Курс доллара и курс юаня – по определению, периодические. Формула отображает пересчет закупочной цены (в юанях) в рубли с учетом доставки и наценки.  Формула расчета цены доставки представлена в виде функции, потому как не столь важно сейчас показывать вам саму формулу.  
Задача настолько проста – создать периодические регистры сведений на каждый тариф, прописать регистры в алгоритмах получения соответствующих тарифов – что даже не хотелось делать – делать именно так. Интуиция подсказывала, что не нужно создавать новые регистры сведений: а вдруг потом добавится еще один тариф? И что, снова создавать регистр сведений? И так до бесконечности? Надо придумать универсальный механизм. Такой универсальный механизм я увидел в механизме использования валют, курсов валют. Далее можно не писать, скриншот сам за себя скажет.

Далее, можно реализовать алгоритм расчета оптовой цены в документе «Установка цен номенклатуры», используя типовой регистр сведений «КурсыВалют».

 

Заключение

Я хотел написать легкую статью. Надеюсь, у меня получилось. Если у вас есть подобные истории, напишите, пожалуйста.

 

Спасибо за внимание! И всего доброго!

Центр автоматизации, Гумеров Р.И


См. также:

Как эффективно использовать Инфостарт NEW!

Список реализаций + структура подчиненности + реестр документов SALE'1sm

Список заказов поставщикам + структура подчиненности SALE'1sm

Список заказов покупателей + структура подчиненности SALE'1sm

Договоры для 1с-ника ТОП-скачиваний

Сетка расписания (Планировщик) нестанДАрт

Два механизма, которые ускорили работу бухгалтеров в 1С нестанДАрт

Мини-CRM для УТ 10.3

Расчет банковских (рабочих) дней нестанДАрт

Шаблоны кода в режиме 1С:Предприятие SALE'1sm

Доработка конфигурации Конвертация Данных

Планирование платежей. Прогнозирование прибылей и убытков

Ввод показателей план-факта БП 3.0 Know-how

Инвентаризация личного опыта Для новичков 1С

Большие запросы: взгляд на проблему нестанДАрт

Технология создания коммерческих разработок Know-how

Андроид-решение для создания заказов в 1С Know-how + нестанДАрт

Отчет Остатки и цены

Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200

Загрузка данных о розничных продажах из магазинов Intimissimi (Интимиссими) и Calzedonia (Кальцедония)

Доработки обмена "УТ 10.3 - интернет-магазина Shop-Script"

Скачать файлы

Наименование Файл Версия Размер
Обработка "Инвентаризация товаров"

.epf 7,67Kb
02.03.19
6
.epf 7,67Kb 6 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. kapustinag 04.07.14 19:20 Сейчас в теме
(0), насчет Этюда 2,
- "... Задача настолько проста – создать периодические регистры сведений на каждый тариф..." - это мог написать только человек, совсем забывший либо не знающий про наличие механизма типов цен номенклатуры.

- "... Такой универсальный механизм я увидел в механизме использования валют, курсов валют ..." - может быть, более естественно было бы увидеть такой универсальный механизм в механизме типов цен номенклатуры, типов цен номенклатуры контрагентов?
Тогда, если контрагент выставит счет за услуги по доставке, или контрагент или мы сами окажем кому-то услуги по упаковке, то никаких проблем - все документы оформляются совершенно штатным образом.
А в случае показанных на картинке валют, да еще если из разных мест и/или от разных контрагентов тариф доставки будет разный - что, будем еще валюты заводить?
2. ShantinTD 88 04.07.14 23:52 Сейчас в теме
(1) kapustinag, резонное замечание, но суть статьи не в том. Автор показывает, что иногда можно обойтись штатным механизмом лишь немного его развернув. Так сказать - подшлифовать под свои нужды, а не допиливать.
5. AnryMc 723 08.07.14 21:01 Сейчас в теме
(2) ShantinTD,
Так сказать - подшлифовать под свои нужды, а не допиливать.


А в чём "грань" между подшлифовать и допилить?
4. Rustig 1478 07.07.14 15:36 Сейчас в теме
(1) доставка до физлиц, контрагентов нет по задаче, то есть других разрезов учета, кроме как периода не надо,
в целом я пришел к выводу, что если в УТ 10.3 надо будет добавить периодический регистр сведений без дополнительных измерений, то можно воспользоваться регистром "курсы валют", естественно по обстоятельствам и ситуации.

И еще: так как курсы валют есть и в БП 2.0, и в БП 3.0, и в УТ 11 и во многих других конфигурациях, то столкнувшись раз с таким использованием этого "всенародного" регистра, у нас появляется шанс воспользоваться подобным подходом для решения других задач, не внося особых изменений в цф-шник.

(3) все же пример решения неочевиден, поэтому поделиться им стоит. плюс свою дольку удовольствия вы получили, прочитав статью. не так ли? :)
сложно конечно убедить вас что решение не очевидное, когда так подробно о нем написано. но по факту, я задал эту задачку двум разработчикам, они предложили "шаблонное" решение - создать столько регистров, сколько показателей. после этого мне показалось, что об этом стоит написать. попробуйте задать эту задачу своим знакомым 1С-никам. интересна статистика ответов :)
3. Созинов 07.07.14 15:03 Сейчас в теме
Настолько просто, что даже не понял зачем было писать статью :) Решение проблемы со сканером интересно.
6. zyx2002 08.07.14 21:55 Сейчас в теме
1. Решение со сканером интересно, можно использовать, когда несколько человек считают одновременно, а потом свести в один документ.

2. Регистр курсов валют есть во всех типовых конфигурациях, а к примеру реализовать заполнение табличных частей можно и внешними обработками. Тогда получается изменений в конфигурации вообще не будет, а хранение значений будет.
DrAku1a; Rustig; +2 Ответить
7. Rustig 1478 08.07.14 22:19 Сейчас в теме
(6) Вы молодец! Сильно порадовали меня! Вы сделали над собой усилие и задумались дальше - и пришли к хорошим идеям.
8. otrazhenie 22.07.14 15:04 Сейчас в теме
а у меня маленький Чифер так и не завелся под УТ......
Оставьте свое сообщение

См. также

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула

Печатные формы документов Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    36430    27    agent00mouse    0    

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Практика программирования Универсальные печатные формы v8 БП3.0 Абонемент ($m)

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    24766    49    kwazi    6    

Создание и печать этикеток (ценников). Со штрих-кодами и без. Универсальная обработка Промо

Универсальные печатные формы Ценники Розничная торговля Розничная торговля v8 1cv8.cf Абонемент ($m)

Эта обработка (в составе демонстрационной конфигурации) представляет собой инструмент, который позволяет делать только лишь два полезных действия: 1. создать макет для печати этикеток (ценников) в пользовательском режиме 2. напечатать заданное количество этикеток (ценников) по выбранной номенклатуре. НО!...

5 стартмани

18.07.2015    67512    260    kentavr27    49    

Остатки товаров на складах по выбранным документам Промо

Печатные формы документов Учет ТМЦ Учет ТМЦ v8 ERP2 УТ11 УУ Абонемент ($m)

Печатная форма подключается к документам. Даёт возможность быстро оценить остатки товара на складе по номенклатуре, указанной в документе, и ответить на вопрос, хватает ли остатков, чтобы отгрузить счет? На каких складах продукция по этому документу?

2 стартмани

09.11.2017    41208    24    A7758735    5    

Товарный чек с логотипом для конфигурации "Бухгалтерия предприятия 3.0.30-3.0.40.27"

Печатные формы документов Розничная торговля Розничная торговля v8 БП2.0 БУ Абонемент ($m)

Печатная форма "Товарный чек" "Бухгалтерия предприятия 3.0", документов "Реализация" и "Отчет о розничных продажах"

1 стартмани

08.06.2015    20426    8    Alexsur    1    

Инвентаризационная опись 0504087 с группировкой по счету для БГУ 1.0

Печатные формы документов Учет ОС и НМА Учет ТМЦ Учет ОС и НМА Учет ТМЦ v8 БГУ Россия БУ Абонемент ($m)

Внешняя печатная форма предназначена для печати ф. 0504087 с группировкой по счёту учёта для документов:"Инвентаризация ОС (НМА,НПА) на балансовых счетах", "Инвентаризация основных средств (забалансовый учет)", "Инвентаризация ОС в оперативном учете", "Инвентаризация материалов на счете 105", "Инвентаризация материалов (забалансовый учет)".

5 стартмани

22.12.2014    33382    6    agospodarin    2    

Внешняя печатная форма документа "Пересчет товаров" для 1С:Управление торговлей 11 Промо

Печатные формы документов Учет ТМЦ Учет ТМЦ v8 УТ11 УУ Абонемент ($m)

Внешняя печатная форма документа "Пересчет товаров" для Управление торговлей 11

1 стартмани

29.07.2014    23212    16    lk78    1    

УТ Внешняя печатная форма "Чек ККМ" для документа "Реализация товаров и услуг"

Печатные формы документов Розничная торговля Розничная торговля v8 УТ10 Россия Абонемент ($m)

Внешняя печатная форма для документа "Реализация товаров и услуг", печатающая чек на ККМ.

1 стартмани

09.04.2013    20565    46    NILS2009    9    

Шаблоны для создания внешних печатных форм с авторегистрацией (3.0.1.1)

Печатные формы документов Практика программирования v8 1cv8.cf Россия Абонемент ($m)

Шаблоны для создания за 5 минут внешних печатных форм с авторегистрацией на основе типовых печатных форм встроенных в конфигурации 1С:Предприятия 8. А также примеры готовых внешних печатных форм и в пятимитнутная видео-инструкция.

1 стартмани

12.03.2010    68565    179    alexk-is    117