Возникла такая задача. Есть типовая конфигурация 1С 7.7 Торговля и склад. У номенклатуры несколько видов единиц измерения ( кг и упаковка) каждый со своими коэффициентами. В документы Приход и Расход при подборе номенклатура попадает с основной единицей измерения. И нужно в форме документа сделать выпадающий список с единицами измерения и кнопкой, при нажатии которой у всей подобранной номенклатуры изменится единица измерения на нужную.
---
Не вижу проблем или сложностей в реализации.
Вариант 1.
При выборе номенклатуры сразу выполнять поиск все ее доступных единиц измерения, помещая их во временную таблицу или список значений.
По окончанию выбора, полученный результат свернуть по значению единиц измерения и отобразить в виде списка выбора доступных единиц на форме
Вариант 2.
При открытии документа сразу сформировать доступный список единиц измерения для выбора и отобразить его на форме.

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

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

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

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

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

Также помним, что подобную замену желательно делать только для не проведенного документа.
При необходимости изменения для проведенного документа, придумываем\рассматриваем процесс самостоятельно, т.к. там уже вариантов действий ДО и ПОСЛЕ изменения может быть масса. Но я бы не рекомендовал этим увлекаться, 7-ка проводит остатки в базовых единицах, поэтому они могут запросто "поплыть" после изменения и вызвать в итоге как минимум пересортицу.
---
Спасибо за подробный ответ. Может у Вас есть где-то заготовка нужных изменений, чтобы только подправить под себя? Просто в программировании на 7.7 вообще не силен, и уйдет много времени пока смогу разобраться.
---
к сожалению готового кода нет, но можно сделать, это не сложно
---
Добрый день! Буду ждать вашу помощь
---
пример во вложении, на базе ТиС 9.2
дальше по коду, думаю, сами уже разберетесь и навернете все, что вам требуется по бизнес-процессу
---
Спасибо. Все работает. Единственное, при изменении единицы измерения не изменяется цена. Это можно как-то добавить?
---
можно

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

заменить

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

на

```1c
    // тут пересчитываем цены и всякие суммы
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Цена = глПолучитьЦену(Номенклатура, ТипЦен, ДатаДок, Единица, Валюта, Курс, Кратность);
    КонецЦикла;

    глПересчитатьСтрокиДокумента(Контекст, Валюта, Курс);
```
---
Теперь все идеально)
---
У меня сделана проверка в процедуру ПриЗаписи, но только в документе "Заказ поставщику". В окно сообщений выводится. что такие-то строки документа имеют несколько единиц измерения. Пока мне удобно, т.к было несколько раз штучный товар заказывал Поставщику упаковками. Но это, как предложение.
---
А в вашем варианте можно у выбранных позиций изменить единицу измерения всем сразу?
---
нет, я так не делал, есть например такая вещь: крепление глушителя 2108 БРТ, в продаже поштучно, а поступает в упаковке по 5 штук. В заказе эта строка номенклатуры будет иметь единицу измерения "штука". А у поставщика это идет упаковкой, т.е 5 штук. Вот мне нужно для розницы 20 штук, а поставщику я должен в заказе отправить 4 упаковки, что и будет 20 штук. А если отправлю количество 20, то поставщик и подгрузит заявку по числу (20), без единицы измерения. Вот как-то так.
Пробежался после создания документа по строкам, уже примерно знаешь номенклатуру что и как, подправил и все готово.
 П.С. Может, еще какой-то вариант есть, не знаю, сейчас работа над скидочными картами идет
---
А как в первом сообщении предлагается так сможете сделать?
---
Извините, что сразу не глянул ветку сообщений, если интересно как вы хотите (в начале темы) то думаю можно, если еще актуально.