Добрий день,
Добавив штрихкоди на упакування товарів, але клієнтам не подобається коли у рахунку виставлено пачками, хочуть щоб було у шт., включив галочку на декілька одиниць виміру, поставив Друк користувацьких одиниць виміру Перераховувати у базову одиницю виміру номенклатури, створив рахунок з пачками і воно показує у всеодно у пачках, в чому може бути проблема?
bohdan_t @ Сегодня, 10:18 необходимо зарегистрироваться для просмотра ссылки
,
если я правильно помню (у нас очень старая УНФ, возможно, сейчас в МБ это и переделали), в малом бизнесе есть единицы хранения (это типа базовые единицы, справочник "классификатор единиц измерения" -- те единицы, в которых она считает партии товара в партионном учете) и единицы измерения (это одноименный справочник), производные от единиц хранения
в документах выбрано может быть и то и другое
но единицей хранения в партионном учете должны быть желательно меры с коэффициентом пересчета х1 (штуки, метры, погонные метры, килограммы и т.д.), а производными единицами измерения -- уже единицы с любыми коэффициентами пересчета (пачки, тонны, 100 шт., и т.д.) -- тогда она считает правильно
посмотрите, в чем у вас оприходован товар и что стоит в номенклатуре в поле единицы хранения
andytg @ Сегодня, 12:08
необходимо зарегистрироваться для просмотра ссылки
,
Та наче все ок стоїть, надсилаю скріни




andytg @ Сегодня, 12:08
необходимо зарегистрироваться для просмотра ссылки
,
оприход робив в штуках і упаковках для перевірки але нічого не змінилось
bohdan_t @ Сегодня, 17:26
необходимо зарегистрироваться для просмотра ссылки
,
на ваших скриншотах трудно что-либо разобрать

посмотрите, вот тут написано, что если в карте товара не указана единица по классификатору, то в печатной форме выводится базовая единица

посмотрите, что у вас стоит вот тут, заполнены ли коэффициенты пересчета (для всяких там тыс. шт., 100 шт. и т.д.) и указаны ли единицы по классификатору или нет

в старой версии УНФ она в партионном учете на эти коэффициенты делила цену и умножала количество, чтобы, если клиент хочет в "тысячах штук" (х1000), а у вас оно в "штуках" (х1), то при выборе другой единицы измерения в документе пересчитывалось везде, но в партионном учете считалось все равно в штуках
andytg @ Сегодня, 17:59 необходимо зарегистрироваться для просмотра ссылки
,
я пробував різні кофіцієнти, також там є реквізит КОВ - класифікатор одиниць виміру (у тій підсказці найкрас писалося що якщо КОВ не заповнено то буде все зобовнюватися у базових одиницях) я також пробув з ним і без нього.
bohdan_t @ Сегодня, 19:48 необходимо зарегистрироваться для просмотра ссылки
,
Також заходив у конфігуратор, пробував найти логіку роботи переведення і не знайшов. (Але я не професіонал у програмуванні 1с, і можливо він знаходить в якийсь іншій обробці)
Цитата(bohdan_t @ 23.09.25, 19:49) необходимо зарегистрироваться для просмотра ссылки
я пробував різні кофіцієнти
разные не надо
если у вас в пачке сто штук деталей, то коэффициент должен быть 100
если тысяча -- 1000
и т. д.
откройте конфигуратор и посмотрите процедуру ЗапасыЕдиницаИзмеренияОбработкаВыбора() в форме документов ЗаказПокупателя или СчетНаОплату -- будет понятно, как оно работает
andytg @ Сегодня, 23:07 необходимо зарегистрироваться для просмотра ссылки
,
&НаКлиенте
Процедура ЗапасыЕдиницаИзмеренияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтрокаТабличнойЧасти = Элементы.Запасы.ТекущиеДанные;
Если СтрокаТабличнойЧасти.ЕдиницаИзмерения = ВыбранноеЗначение Тогда
Возврат;
КонецЕсли;
Если СтрокаТабличнойЧасти.Цена = 0
И СтрокаТабличнойЧасти.Вес = 0
И СтрокаТабличнойЧасти.Объем = 0 Тогда
Возврат;
КонецЕсли;
ТекущийКоэффициент = 0;
Если ТипЗнч(СтрокаТабличнойЧасти.ЕдиницаИзмерения) = Тип("СправочникСсылка.КлассификаторЕдиницИзмерения") Тогда
ТекущийКоэффициент = 1;
КонецЕсли;
Коэффициент = 0;
Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.КлассификаторЕдиницИзмерения") Тогда
Коэффициент = 1;
КонецЕсли;
Если ТекущийКоэффициент = 0 И Коэффициент = 0 Тогда
СтруктураДанные = ПолучитьДанныеЕдиницаИзмеренияПриИзменении(СтрокаТабличнойЧасти.Номенклатура, СтрокаТабличнойЧасти.ЕдиницаИзмерения, ВыбранноеЗначение);
ИначеЕсли ТекущийКоэффициент = 0 Тогда
СтруктураДанные = ПолучитьДанныеЕдиницаИзмеренияПриИзменении(СтрокаТабличнойЧасти.Номенклатура, СтрокаТабличнойЧасти.ЕдиницаИзмерения);
ИначеЕсли Коэффициент = 0 Тогда
СтруктураДанные = ПолучитьДанныеЕдиницаИзмеренияПриИзменении(СтрокаТабличнойЧасти.Номенклатура, Неопределено, ВыбранноеЗначение);
ИначеЕсли ТекущийКоэффициент = 1 И Коэффициент = 1 Тогда
СтруктураДанные = Новый Структура("ТекущийКоэффициент, Коэффициент", 1, 1);
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(
СтруктураДанные,
ВесИОбъемЕдиницТоваров(СтрокаТабличнойЧасти.Номенклатура, ВыбранноеЗначение, Коэффициент));
КонецЕсли;
Если СтруктураДанные.ТекущийКоэффициент <> 0 Тогда
Если КэшЗначений.ИспользоватьМинимальныеЦены
И СтрокаТабличнойЧасти.Свойство("МинимальнаяЦена") Тогда
СтрокаТабличнойЧасти.МинимальнаяЦена = СтрокаТабличнойЧасти.МинимальнаяЦена * СтруктураДанные.Коэффициент / СтруктураДанные.ТекущийКоэффициент;
КонецЕсли;
СтрокаТабличнойЧасти.Цена = СтрокаТабличнойЧасти.Цена * СтруктураДанные.Коэффициент / СтруктураДанные.ТекущийКоэффициент;
СтрокаТабличнойЧасти.ВесЕдиницыТовара = СтруктураДанные.ВесЕдиницыТовара;
СтрокаТабличнойЧасти.Вес = СтрокаТабличнойЧасти.ВесЕдиницыТовара * СтрокаТабличнойЧасти.Количество;
СтрокаТабличнойЧасти.ОбъемЕдиницыТовара = СтруктураДанные.ОбъемЕдиницыТовара;
СтрокаТабличнойЧасти.Объем = СтрокаТабличнойЧасти.ОбъемЕдиницыТовара * СтрокаТабличнойЧасти.Количество;
КонецЕсли;
РассчитатьОбъемИВесВДокументе();
КонецПроцедуры // ЗапасыЕдиницаИзмеренияОбработкаВыбора()
Ну я так зрозумів, що ця процедура відповідає саме за перерахунок у самій формі, але ніяк не для друку
bohdan_t @ Сегодня, 0:39 необходимо зарегистрироваться для просмотра ссылки
,
Але в обробці ПечатьСчетНаОплату, я знайшов процедури яка заповнює дані і там є що приймає як базові одиниці так і кастомні (виділив знизу), і ніякого розрахунку немає
Процедура ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаТабличнойЧасти, ДанныеПечати, ПараметрыНоменклатуры, СтруктураИтогов)
ДанныеПечати.Очистить();
Если Не СтрокаТабличнойЧасти.ЭтоРазделитель И НЕ СтрокаТабличнойЧасти.ЭтоНабор Тогда
СтруктураИтогов.Количество = СтруктураИтогов.Количество + 1;
КонецЕсли;
Если СтрокаТабличнойЧасти.ЭтоРазделитель Тогда
НомерСтроки = 0;
СтруктураИтогов.НомерСтроки = 0;
ИначеЕсли СтрокаТабличнойЧасти.ЭтоНабор Тогда
НомерСтроки = 0;
Иначе
СтруктураИтогов.НомерСтроки = СтруктураИтогов.НомерСтроки+1;
НомерСтроки = СтруктураИтогов.НомерСтроки;
КонецЕсли;
ДанныеПечати.Вставить("НомерСтроки", НомерСтроки);
ПараметрыНоменклатуры.Очистить();
ПараметрыНоменклатуры.Вставить("Содержание", СтрокаТабличнойЧасти.Содержание);
ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧасти.ПредставлениеНоменклатуры);
ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧасти.Характеристика);
ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧасти.Артикул);
ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора",
СтрокаТабличнойЧасти.НеобходимоВыделитьКакСоставНабора);
ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(
ПараметрыНоменклатуры));
ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(
СтрокаТабличнойЧасти));
ДанныеПечати.Вставить("Артикул", СтрокаТабличнойЧасти.Артикул);
ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧасти.Количество);
Если ТипЗнч(СтрокаТабличнойЧасти.ЕдиницаИзмерения) = Тип("СправочникСсылка.ЕдиницыИзмерения")
Или ТипЗнч(СтрокаТабличнойЧасти.ЕдиницаИзмерения) = Тип("СправочникСсылка.КлассификаторЕдиницИзмерения") Тогда
ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧасти.ЕдиницаИзмерения.Наименование);
Иначе
ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧасти.ЕдиницаИзмерения);
КонецЕсли;
ДанныеПечати.Вставить("Цена", СтрокаТабличнойЧасти.Цена);
Если СтруктураИтогов.ЕстьСкидки Тогда
ДанныеПечати.Вставить("ПредставлениеСкидки", ПечатьДокументовУНФ.ПредставлениеСкидки(СтрокаТабличнойЧасти,
СтруктураИтогов));
КонецЕсли;
ДанныеПечати.Вставить("СуммаБезСкидки", СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество);
ДанныеПечати.Вставить("Сумма", СтрокаТабличнойЧасти.Сумма);
Если СтруктураИтогов.ЕстьСтавкаНольПроцентов = Ложь // Нет смысла проверять каждую строку, если уже нашли...
И СтрокаТабличнойЧасти.Владелец().Колонки.Найти("СтавкаНДС") <> Неопределено И СтрокаТабличнойЧасти.СтавкаНДС
= УправлениеНебольшойФирмойПовтИсп.ПолучитьСтавкуНДСНоль() Тогда
СтруктураИтогов.ЕстьСтавкаНольПроцентов = Истина;
КонецЕсли;
Если Не СтрокаТабличнойЧасти.ЭтоРазделитель И Не СтрокаТабличнойЧасти.ЭтоНабор Тогда
СтруктураИтогов.Сумма = СтруктураИтогов.Сумма + СтрокаТабличнойЧасти.Сумма;
СтруктураИтогов.СуммаНДС = СтруктураИтогов.СуммаНДС + СтрокаТабличнойЧасти.СуммаНДС;
СтруктураИтогов.Всего = СтруктураИтогов.Всего + СтрокаТабличнойЧасти.Всего;
СтруктураИтогов.СкидкаПоДокументу = СтруктураИтогов.СкидкаПоДокументу + СтруктураИтогов.СкидкаПоСтроке;
КонецЕсли;
КонецПроцедуры
bohdan_t @ Сегодня, 0:49
необходимо зарегистрироваться для просмотра ссылки
,
она пересчитывает цену в зависимости от коэффициента, вот этот кусок кода
СтрокаТабличнойЧасти.Цена = СтрокаТабличнойЧасти.Цена * СтруктураДанные.Коэффициент / СтруктураДанные.ТекущийКоэффициент;
а пересчет количеств из пользовательских единиц в единицы хранения в партионном учете выполняется при проведении перед формированием собственно проводок (см. модуль менеджера, например, в документе РасходнаяНакладная, процедура ИнициализироватьДанныеДокумента, в запросе)
|ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения) = ТИП(Справочник.КлассификаторЕдиницИзмерения)
| ТОГДА РасходнаяНакладнаяЗапасы.Количество
// тут коэффициентов нет
| ИНАЧЕ РасходнаяНакладнаяЗапасы.Количество * РасходнаяНакладнаяЗапасы.ЕдиницаИзмерения.Коэффициент
| КОНЕЦ КАК Количество,
// а тут есть, поэтому она их учитывает, переводя, например, "упаковку 100 штук" в просто штуки
andytg @ Вчера, 8:48 необходимо зарегистрироваться для просмотра ссылки
,
Та справа в тому що у інтерфейсі програми нюансів взагалі немає, а проблеми в друкованих формах. Можливість конфігурації є, але вона не робоча. Тому буду думати про дороботку конфігурації
Розібрався у модулі менеджера документа, як і Рахунка так і Накладної є функція УниверсальныйЗапросПоДаннымДокумента - я так зрозумів що саме ця функція передає інформацію обработкам друку. Там я змінив запрос щоб одиниця вимірювання бралося з довідника класифікатора одиниць:
| ,Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
| ,Номенклатура.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияПоОКЕИ_Наименование
| ,Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияПоОКЕИ_Код
і рахувалась кількість:
|,ВЫБОР
| КОГДА ЕдиницаИзмерения = Номенклатура.ЕдиницаИзмерения
| ТОГДА Количество
| ИНАЧЕ Количество * ЕдиницаИзмерения.Коэффициент
| КОНЕЦ КАК Количество
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.