Изменение единиц измерения в документах 1с Торговля и склад 7.7
Возникла такая задача. Есть типовая конфигурация 1С 7.7 Торговля и склад. У номенклатуры несколько видов единиц измерения ( кг и упаковка) каждый со своими коэффициентами. В документы Приход и Расход при подборе номенклатура попадает с основной единицей измерения. И нужно в форме документа сделать выпадающий список с единицами измерения и кнопкой, при нажатии которой у всей подобранной номенклатуры изменится единица измерения на нужную.
Прикрепленные файлы:
![](/upload/forum/7f1/7f13665ed4c265050b7c7a98353d6944.png)
По теме из базы знаний
- Ведомость по остаткам ТМЦ на складах с ценой номенклатуры по типу и валюте для ТиС 9.2
- История развития 1С:Торговли, что изменилось в архитектуре учета торговых и складских операций за 15 лет
- АИС: Обмен с ФГИС Меркурий (Ветис.API) для всех* конфигураций 1С 7.7
- Обработка обслуживания ККТ АТОЛ, платформа 5.0 с драйверами v10 для 1С:ТиС 9.2 и 1С: Компл 4.5 (МАРКИРОВКА, ФФД 1.2, эквайринг Сбер)
- АИС: ГИИС ДМДК для 1С 7.7 (маркировка ювелирных изделий и драгоценных камней)
Найденные решения
Не вижу проблем или сложностей в реализации.
Вариант 1.
При выборе номенклатуры сразу выполнять поиск все ее доступных единиц измерения, помещая их во временную таблицу или список значений.
По окончанию выбора, полученный результат свернуть по значению единиц измерения и отобразить в виде списка выбора доступных единиц на форме
Вариант 2.
При открытии документа сразу сформировать доступный список единиц измерения для выбора и отобразить его на форме.
Разумеется в обоих вариантах речь идет про классификатор единиц измерения, а не про конкретную единицу измерения у товара.
Далее по порядку:
- выбор из выпадающего списка на форме, нужной вам единицы измерения (помним, что это не единица конкретного товара, а классификатор)
- по нажатию кнопки, табличная часть выгружается во временную таблицу
- временная таблица перечитывается построчно, для товара ищется единица измерения с выбранным классификатором
- нашли, меняем единицу измерения товара, меняем коэффициент, пересчитываем количество при необходимости
- не нашли, ничего не делаем, выводим сообщение пользователю про отсутствие у товара выбранной для замены единицы измерения
- временную таблицу выгружаем обратно в документ
- перечитываем строки табличной части и выполняем вызовы процедур документа по пересчету цен, сумм и налогов
Также помним, что подобную замену желательно делать только для не проведенного документа.
При необходимости изменения для проведенного документа, придумываем\рассматриваем процесс самостоятельно, т.к. там уже вариантов действий ДО и ПОСЛЕ изменения может быть масса. Но я бы не рекомендовал этим увлекаться, 7-ка проводит остатки в базовых единицах, поэтому они могут запросто "поплыть" после изменения и вызвать в итоге как минимум пересортицу.
Вариант 1.
При выборе номенклатуры сразу выполнять поиск все ее доступных единиц измерения, помещая их во временную таблицу или список значений.
По окончанию выбора, полученный результат свернуть по значению единиц измерения и отобразить в виде списка выбора доступных единиц на форме
Вариант 2.
При открытии документа сразу сформировать доступный список единиц измерения для выбора и отобразить его на форме.
Разумеется в обоих вариантах речь идет про классификатор единиц измерения, а не про конкретную единицу измерения у товара.
Далее по порядку:
- выбор из выпадающего списка на форме, нужной вам единицы измерения (помним, что это не единица конкретного товара, а классификатор)
- по нажатию кнопки, табличная часть выгружается во временную таблицу
- временная таблица перечитывается построчно, для товара ищется единица измерения с выбранным классификатором
- нашли, меняем единицу измерения товара, меняем коэффициент, пересчитываем количество при необходимости
- не нашли, ничего не делаем, выводим сообщение пользователю про отсутствие у товара выбранной для замены единицы измерения
- временную таблицу выгружаем обратно в документ
- перечитываем строки табличной части и выполняем вызовы процедур документа по пересчету цен, сумм и налогов
Также помним, что подобную замену желательно делать только для не проведенного документа.
При необходимости изменения для проведенного документа, придумываем\рассматриваем процесс самостоятельно, т.к. там уже вариантов действий ДО и ПОСЛЕ изменения может быть масса. Но я бы не рекомендовал этим увлекаться, 7-ка проводит остатки в базовых единицах, поэтому они могут запросто "поплыть" после изменения и вызвать в итоге как минимум пересортицу.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Не вижу проблем или сложностей в реализации.
Вариант 1.
При выборе номенклатуры сразу выполнять поиск все ее доступных единиц измерения, помещая их во временную таблицу или список значений.
По окончанию выбора, полученный результат свернуть по значению единиц измерения и отобразить в виде списка выбора доступных единиц на форме
Вариант 2.
При открытии документа сразу сформировать доступный список единиц измерения для выбора и отобразить его на форме.
Разумеется в обоих вариантах речь идет про классификатор единиц измерения, а не про конкретную единицу измерения у товара.
Далее по порядку:
- выбор из выпадающего списка на форме, нужной вам единицы измерения (помним, что это не единица конкретного товара, а классификатор)
- по нажатию кнопки, табличная часть выгружается во временную таблицу
- временная таблица перечитывается построчно, для товара ищется единица измерения с выбранным классификатором
- нашли, меняем единицу измерения товара, меняем коэффициент, пересчитываем количество при необходимости
- не нашли, ничего не делаем, выводим сообщение пользователю про отсутствие у товара выбранной для замены единицы измерения
- временную таблицу выгружаем обратно в документ
- перечитываем строки табличной части и выполняем вызовы процедур документа по пересчету цен, сумм и налогов
Также помним, что подобную замену желательно делать только для не проведенного документа.
При необходимости изменения для проведенного документа, придумываем\рассматриваем процесс самостоятельно, т.к. там уже вариантов действий ДО и ПОСЛЕ изменения может быть масса. Но я бы не рекомендовал этим увлекаться, 7-ка проводит остатки в базовых единицах, поэтому они могут запросто "поплыть" после изменения и вызвать в итоге как минимум пересортицу.
Вариант 1.
При выборе номенклатуры сразу выполнять поиск все ее доступных единиц измерения, помещая их во временную таблицу или список значений.
По окончанию выбора, полученный результат свернуть по значению единиц измерения и отобразить в виде списка выбора доступных единиц на форме
Вариант 2.
При открытии документа сразу сформировать доступный список единиц измерения для выбора и отобразить его на форме.
Разумеется в обоих вариантах речь идет про классификатор единиц измерения, а не про конкретную единицу измерения у товара.
Далее по порядку:
- выбор из выпадающего списка на форме, нужной вам единицы измерения (помним, что это не единица конкретного товара, а классификатор)
- по нажатию кнопки, табличная часть выгружается во временную таблицу
- временная таблица перечитывается построчно, для товара ищется единица измерения с выбранным классификатором
- нашли, меняем единицу измерения товара, меняем коэффициент, пересчитываем количество при необходимости
- не нашли, ничего не делаем, выводим сообщение пользователю про отсутствие у товара выбранной для замены единицы измерения
- временную таблицу выгружаем обратно в документ
- перечитываем строки табличной части и выполняем вызовы процедур документа по пересчету цен, сумм и налогов
Также помним, что подобную замену желательно делать только для не проведенного документа.
При необходимости изменения для проведенного документа, придумываем\рассматриваем процесс самостоятельно, т.к. там уже вариантов действий ДО и ПОСЛЕ изменения может быть масса. Но я бы не рекомендовал этим увлекаться, 7-ка проводит остатки в базовых единицах, поэтому они могут запросто "поплыть" после изменения и вызвать в итоге как минимум пересортицу.
(11) можно
в коде формы документа в процедуре
заменить
на
в коде формы документа в процедуре
ИзменитьЕдиницыИзмерения()
заменить
// тут пересчитываем цены и всякие суммы
глПересчитатьСтрокиДокумента(Контекст, Валюта, Курс);
на
// тут пересчитываем цены и всякие суммы
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Цена = глПолучитьЦену(Номенклатура, ТипЦен, ДатаДок, Единица, Валюта, Курс, Кратность);
КонецЦикла;
глПересчитатьСтрокиДокумента(Контекст, Валюта, Курс);
У меня сделана проверка в процедуру ПриЗаписи, но только в документе "Заказ поставщику". В окно сообщений выводится. что такие-то строки документа имеют несколько единиц измерения. Пока мне удобно, т.к было несколько раз штучный товар заказывал Поставщику упаковками. Но это, как предложение.
нет, я так не делал, есть например такая вещь: крепление глушителя 2108 БРТ, в продаже поштучно, а поступает в упаковке по 5 штук. В заказе эта строка номенклатуры будет иметь единицу измерения "штука". А у поставщика это идет упаковкой, т.е 5 штук. Вот мне нужно для розницы 20 штук, а поставщику я должен в заказе отправить 4 упаковки, что и будет 20 штук. А если отправлю количество 20, то поставщик и подгрузит заявку по числу (20), без единицы измерения. Вот как-то так.
Пробежался после создания документа по строкам, уже примерно знаешь номенклатуру что и как, подправил и все готово.
П.С. Может, еще какой-то вариант есть, не знаю, сейчас работа над скидочными картами идет
Пробежался после создания документа по строкам, уже примерно знаешь номенклатуру что и как, подправил и все готово.
П.С. Может, еще какой-то вариант есть, не знаю, сейчас работа над скидочными картами идет
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот