Изменение единиц измерения в документах 1с Торговля и склад 7.7

1. Stæg 32 30.01.19 08:37 Сейчас в теме
Возникла такая задача. Есть типовая конфигурация 1С 7.7 Торговля и склад. У номенклатуры несколько видов единиц измерения ( кг и упаковка) каждый со своими коэффициентами. В документы Приход и Расход при подборе номенклатура попадает с основной единицей измерения. И нужно в форме документа сделать выпадающий список с единицами измерения и кнопкой, при нажатии которой у всей подобранной номенклатуры изменится единица измерения на нужную.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. VictorRGB2 14 30.01.19 11:51 Сейчас в теме
Не вижу проблем или сложностей в реализации.
Вариант 1.
При выборе номенклатуры сразу выполнять поиск все ее доступных единиц измерения, помещая их во временную таблицу или список значений.
По окончанию выбора, полученный результат свернуть по значению единиц измерения и отобразить в виде списка выбора доступных единиц на форме
Вариант 2.
При открытии документа сразу сформировать доступный список единиц измерения для выбора и отобразить его на форме.

Разумеется в обоих вариантах речь идет про классификатор единиц измерения, а не про конкретную единицу измерения у товара.

Далее по порядку:
- выбор из выпадающего списка на форме, нужной вам единицы измерения (помним, что это не единица конкретного товара, а классификатор)
- по нажатию кнопки, табличная часть выгружается во временную таблицу
- временная таблица перечитывается построчно, для товара ищется единица измерения с выбранным классификатором
- нашли, меняем единицу измерения товара, меняем коэффициент, пересчитываем количество при необходимости
- не нашли, ничего не делаем, выводим сообщение пользователю про отсутствие у товара выбранной для замены единицы измерения
- временную таблицу выгружаем обратно в документ
- перечитываем строки табличной части и выполняем вызовы процедур документа по пересчету цен, сумм и налогов

Также помним, что подобную замену желательно делать только для не проведенного документа.
При необходимости изменения для проведенного документа, придумываем\рассматриваем процесс самостоятельно, т.к. там уже вариантов действий ДО и ПОСЛЕ изменения может быть масса. Но я бы не рекомендовал этим увлекаться, 7-ка проводит остатки в базовых единицах, поэтому они могут запросто "поплыть" после изменения и вызвать в итоге как минимум пересортицу.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VictorRGB2 14 30.01.19 11:51 Сейчас в теме
Не вижу проблем или сложностей в реализации.
Вариант 1.
При выборе номенклатуры сразу выполнять поиск все ее доступных единиц измерения, помещая их во временную таблицу или список значений.
По окончанию выбора, полученный результат свернуть по значению единиц измерения и отобразить в виде списка выбора доступных единиц на форме
Вариант 2.
При открытии документа сразу сформировать доступный список единиц измерения для выбора и отобразить его на форме.

Разумеется в обоих вариантах речь идет про классификатор единиц измерения, а не про конкретную единицу измерения у товара.

Далее по порядку:
- выбор из выпадающего списка на форме, нужной вам единицы измерения (помним, что это не единица конкретного товара, а классификатор)
- по нажатию кнопки, табличная часть выгружается во временную таблицу
- временная таблица перечитывается построчно, для товара ищется единица измерения с выбранным классификатором
- нашли, меняем единицу измерения товара, меняем коэффициент, пересчитываем количество при необходимости
- не нашли, ничего не делаем, выводим сообщение пользователю про отсутствие у товара выбранной для замены единицы измерения
- временную таблицу выгружаем обратно в документ
- перечитываем строки табличной части и выполняем вызовы процедур документа по пересчету цен, сумм и налогов

Также помним, что подобную замену желательно делать только для не проведенного документа.
При необходимости изменения для проведенного документа, придумываем\рассматриваем процесс самостоятельно, т.к. там уже вариантов действий ДО и ПОСЛЕ изменения может быть масса. Но я бы не рекомендовал этим увлекаться, 7-ка проводит остатки в базовых единицах, поэтому они могут запросто "поплыть" после изменения и вызвать в итоге как минимум пересортицу.
3. Stæg 32 30.01.19 13:05 Сейчас в теме
(2) Спасибо за подробный ответ. Может у Вас есть где-то заготовка нужных изменений, чтобы только подправить под себя? Просто в программировании на 7.7 вообще не силен, и уйдет много времени пока смогу разобраться.
6. VictorRGB2 14 31.01.19 09:41 Сейчас в теме
(3) к сожалению готового кода нет, но можно сделать, это не сложно
7. Stæg 32 31.01.19 10:03 Сейчас в теме
(6) Добрый день! Буду ждать вашу помощь
10. VictorRGB2 14 31.01.19 18:45 Сейчас в теме
(7) пример во вложении, на базе ТиС 9.2
дальше по коду, думаю, сами уже разберетесь и навернете все, что вам требуется по бизнес-процессу
Прикрепленные файлы:
1Cv7.rar
11. Stæg 32 31.01.19 20:57 Сейчас в теме
(10) Спасибо. Все работает. Единственное, при изменении единицы измерения не изменяется цена. Это можно как-то добавить?
12. VictorRGB2 14 01.02.19 09:17 Сейчас в теме
(11) можно

в коде формы документа в процедуре
ИзменитьЕдиницыИзмерения()

заменить
	// тут пересчитываем цены и всякие суммы
		глПересчитатьСтрокиДокумента(Контекст, Валюта, Курс);

на
	// тут пересчитываем цены и всякие суммы
		ВыбратьСтроки();
		Пока ПолучитьСтроку() = 1 Цикл
			Цена = глПолучитьЦену(Номенклатура, ТипЦен, ДатаДок, Единица, Валюта, Курс, Кратность);
		КонецЦикла;
		
		глПересчитатьСтрокиДокумента(Контекст, Валюта, Курс);
13. Stæg 32 01.02.19 10:05 Сейчас в теме
4. Иваныч 23 30.01.19 17:06 Сейчас в теме
У меня сделана проверка в процедуру ПриЗаписи, но только в документе "Заказ поставщику". В окно сообщений выводится. что такие-то строки документа имеют несколько единиц измерения. Пока мне удобно, т.к было несколько раз штучный товар заказывал Поставщику упаковками. Но это, как предложение.
5. Stæg 32 30.01.19 18:17 Сейчас в теме
(4) А в вашем варианте можно у выбранных позиций изменить единицу измерения всем сразу?
8. Иваныч 23 31.01.19 17:27 Сейчас в теме
нет, я так не делал, есть например такая вещь: крепление глушителя 2108 БРТ, в продаже поштучно, а поступает в упаковке по 5 штук. В заказе эта строка номенклатуры будет иметь единицу измерения "штука". А у поставщика это идет упаковкой, т.е 5 штук. Вот мне нужно для розницы 20 штук, а поставщику я должен в заказе отправить 4 упаковки, что и будет 20 штук. А если отправлю количество 20, то поставщик и подгрузит заявку по числу (20), без единицы измерения. Вот как-то так.
Пробежался после создания документа по строкам, уже примерно знаешь номенклатуру что и как, подправил и все готово.
П.С. Может, еще какой-то вариант есть, не знаю, сейчас работа над скидочными картами идет
9. Stæg 32 31.01.19 18:06 Сейчас в теме
(8) А как в первом сообщении предлагается так сможете сделать?
14. Иваныч 23 10.03.21 15:51 Сейчас в теме
(9)Извините, что сразу не глянул ветку сообщений, если интересно как вы хотите (в начале темы) то думаю можно, если еще актуально.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот