Как "вытащить" только один штрихкод по товару из регистра "Штрихкоды"?

1. Kott01 13 04.08.14 09:01 Сейчас в теме
Добрый день.

Ситуация: Клиент попросил в отчет по остаткам товаров добавить колонку "Штрихкод". Все сделал. Не учел одного: В отчете товар, у которого есть два ШК, отображается, соответственно, двумя строками (с разными ШК) и одинаковым остатком. Т.е. Если у товара "Чашка" есть два штрихкода (шт и уп), количество на складе 10 шт., то в отчете - две строки с разными ШК по 10 шт. В группировке по номенклатуре - соответственно, 20 шт. Вопрос: как из регистра сведений "Штрихкоды" вытащить только ОДИН штрихкод?

Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Uncore 1282 04.08.14 09:17 Сейчас в теме
(1) Kott01, в пакете выбрать все штрихкоды номенклатуры, сгруппированные по МАКСИМУМ(Штрихкод), затем уже эту сгруппированную таблицу соединять с нужной, задвоений не будет.
indefinitumX; Kott01; kasper076; Alik; +4 Ответить
7. Kott01 13 04.08.14 12:25 Сейчас в теме
(3) Uncore,

Спасибо за ответ. Попробую вашей методой
2. x_under 13 04.08.14 09:13 Сейчас в теме
4. Pavean 04.08.14 10:58 Сейчас в теме
А в вашем регистре хранящем штрихкоды нет ресурса "Упаковка"? Что если по нему отбор сделать?
Alexey_A; +1 Ответить
6. Kott01 13 04.08.14 12:24 Сейчас в теме
(4) Pavean, (5) jmw,
УТ 10.3. Стандартный регистр сведений "Штрихкоды". Есть "Ед.Изм.", но люди умудряются заводить два ШК с одной и той же единицей измерения. В моем случае есть шт и упак, также есть шт и шт.

Единица измерения штрихкода = Базовая единица измерения номенклатуры - хороший совет, что-то сам тормознул. Но если случай два ШК - шт и шт, как выбрать только один?

Спасибо за советы.
8. Uncore 1282 04.08.14 17:01 Сейчас в теме
(6) Kott01, в группировку тогда добавьте еще единицу измерения, будет примерно так (названия реквизитов для примера):
ВЫБРАТЬ
Номенклатура, ЕдиницаИзмерения, МАКСИМУМ(Штрихкод) Штрихкод
ПОМЕСТИТЬ Штрихкоды
ИЗ РегистрСведений.Штрихкоды КАК Штрихкоды
СГРУППИРОВАТЬ ПО Номенклатура, ЕдиницаИзмерения


И соединение со своей таблицей тогда сделайте по товару и единице измерения
user4212; Kott01; +2 Ответить
10. Kott01 13 04.08.14 17:36 Сейчас в теме
(8) Uncore,
Спасибо за ответ. Ситуация такая: поставщик (Китай) периодически меняет ШК. При приемке товара считывается ШК поставщика. Если его нет в базе - добавляется. Далее, при размещении в торговом зале появляется один и тот же товар с разными ШК и с одной единицей измерения. Все работает. Клиент попросил отчет по остаткам со ШК. Ну я просто "подтянул" ШК. Выяснилось, что если у товара более одного ШК, то остатки "задваиваются". Сделал по базовой единице измерения (совет от jmw) - где есть шт и уп - все нормально. Остаются только шт (базовая ед.) Где два и более раз шт. - лажа. С клиентом договорились, дабы не городить огород из-за отчета (вводить серии), оставить только один ШК со шт. Если приходит тот же товар с другим ШК - печатать этикетки с нужным ШК. Сумбурно, но как-то так.
15. Rif_md 6 22.07.20 09:51 Сейчас в теме
(8) Да, поиск по максимуму похоже самый простой и быстрый вариант. Поиск первого ШК, наверное по быстрому возможен только в СКД с двумя наборами данных через параметр, но такой эквивалентен подзапросу ВЫБРАТЬ ПЕРВЫЕ 1 по каждому товару, и быстрым точно не будет.
5. jmw 61 04.08.14 11:19 Сейчас в теме
Добавить условие:

Единица измерения штрихкода = Базовая единица измерения номенклатуры
9. Kott01 13 04.08.14 17:25 Сейчас в теме
Спасибо всем большое за помощь. Сделал как написал jmw. С клиентом договорились, что заводить несколько ШК с одной и той же единицей измерения не будем.
11. Kott01 13 04.08.14 17:51 Сейчас в теме
Offtop
Ребята, подскажите, как перечислить $m за ответ в форуме?
12. pavelyar 14.05.15 09:41 Сейчас в теме
Тоже надо добавить ШК в отчет,что то не получается
13. jmw 61 25.05.15 10:50 Сейчас в теме
(12) pavelyar, примерно вот так:
Функция ПолучитьШКтовара(Товар)
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("текТовар", Товар);
	Запрос.УстановитьПараметр("Единица" , Товар.ЕдиницаХраненияОстатков);
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Штрихкод КАК ШК
	|ИЗ
	|	РегистрСведений.Штрихкоды КАК регШтрихкоды
	|ГДЕ
	|	Владелец = &текТовар
	|	И ЕдиницаИзмерения = &Единица";
	тРез = Запрос.Выполнить().Выгрузить();
	
	Результат = "";
	Если тРез.Количество() > 0 Тогда
		Результат = тРез[0].ШК;
	КонецЕсли;
	
	Возврат Результат;
КонецФункции
Показать

Не оптимально.
Для каждого товара — отдельный запрос… Но иногда можно и так (для понимания новичкам / как было подсказано аффтару вопроса ;–)
14. pavelyar 27.05.15 13:16 Сейчас в теме
Да ,спасибо,сделал примерно так же =)
Оставьте свое сообщение

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