|
v7: 7.7, Номенклатура, нужно вывести задвоенные единицы измерения | ☑ | ||
---|---|---|---|---|
0
Zombi
26.12.16
✎
12:50
|
В 7.7 есть справочник "Номенклатура", есть подчиненный справочник "Единицы". Нужно вывести, хотя бы через Сообщить(), Наименования элементов номенклатуры, у которых более 1 единицы с одинаковым реквизитом "Единица". Суть - есть номенклатура, у которой задвоены единицы измерений. Щас данные переношу в 8 и лезут ошибки. Можете набросать код обработки, которая выведет САБЖ?
|
|||
1
Чужой
26.12.16
✎
12:54
|
Как вариант - загоняешь в таблицу значений, сворачиваешь и смотришь
|
|||
2
Это_mike
26.12.16
✎
12:55
|
прямым?
|
|||
3
oslokot
26.12.16
✎
12:56
|
(2) рано
|
|||
4
Zombi
26.12.16
✎
12:56
|
(1) Ну лет 5 назад я этот код написал бы минут за 5. Щас 7.7 ломает мой мозг.
|
|||
5
Zombi
26.12.16
✎
12:57
|
(2) База файловая.
|
|||
6
Лефмихалыч
26.12.16
✎
12:58
|
а с какого слова начинаются запросы в 7.7, кто помнит?
|
|||
7
oslokot
26.12.16
✎
12:58
|
(4) ведь можно же пройтись циклом по номенклатуре, а внутри цикла пройтись циклом по единицам
|
|||
8
Лефмихалыч
26.12.16
✎
12:59
|
или там - сразу поля перечисляются?..
ой, да ну ее в жопу! |
|||
9
Джинн
26.12.16
✎
12:59
|
(6) Период с по
|
|||
10
Это_mike
26.12.16
✎
12:59
|
(6) select, или Выбрать
|
|||
11
MSOliver
26.12.16
✎
13:00
|
Условие на счетчик в выборке
|
|||
12
Мимохожий Однако
26.12.16
✎
13:00
|
есть универсальная обработка печати справочников, в которой можно вывести единицы измерения и владельцев. Printref или refprint. На любой ИТС посмотри
|
|||
13
Чужой
26.12.16
✎
13:01
|
Какая конфигурация то?
|
|||
14
Базис
naïve
26.12.16
✎
13:04
|
Процедура Сформировать()
Ном = СоздатьОбъект("Справочник.Номенклатура"); ЕдИзм = СоздатьОбъект("Справочник.Единицы"); Ном.ВыбратьЭлементы(); Пока Ном.ПолучитьЭлемент() = 1 Цикл Если Ном.ЭтоГруппа() = 0 Тогда Сообщить(" " + Ном.Наименование + ":" + Ном.Код; ЕдИзм.ИспользоватьВладельца(Ном.ТекущийЭлемент(),0); ЕдИзм.ВыбратьЭлементы(); Пока ЕдИзм.ПолучитьЭлемент() = 1 Цикл Сообщить(" " + ЕдИзм..ОКЕИ + ":" + ЕдИзм.Коэффициент = ; КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
15
Это_mike
26.12.16
✎
13:06
|
select
спрНоменклатура.id [Номенклатура $Справочник.Номенклатура] ,count( спрЕдиницы.ОКЕИ) [всегоj] ,count(distinct спрЕдиницы.ОКЕИ) [различные] from Справочник.Номенклатура СпрНоменклатура inner join Справочник.Единицы СпрЕдиницы on СпрНоменклатура.id=СпрЕдиницы.ParentExt group by спрНоменклатура.id having count( спрЕдиницы.ОКЕИ) <> count(distinct спрЕдиницы.ОКЕИ) |
|||
16
Zombi
26.12.16
✎
13:07
|
(13) Общепит.
(14) Это просто выведет все подряд. Но попробую с этим что нибудь сделаю. Спасибо, уже проще. |
|||
17
Zmich
26.12.16
✎
13:07
|
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Номенклатура", "Справочник.Номенклатура"); ТЗ.НоваяКолонка("Единица", "Строка", 20); ТЗ.НоваяКолонка("Количество", "Число", 15, 0); Спр = СоздатьОбъект("Справочник.Номенклатура"); СпрЕдиницы = СоздатьОбъект("Справочник.Единицы"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; СпрЕдиницы.ИспользоватьВладельца(Спр.ТекущийЭлемент()); СпрЕдиницы.ВыбратьЭлементы(); Пока СпрЕдиницы.ПолучитьЭлемент() = 1 Цикл ТЗ.НоваяСтрока(); ТЗ.Номенклатура = Спр.ТекущийЭлемент(); ТЗ.Единица = СокрЛП(СпрЕдиницы.Наименование); ТЗ.Количество = 1; КонецЦикла; КонецЦикла; ТЗ.Свернуть("Номенклатура, Единица", "Количество"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Если ТЗ.Количество > 1 Тогда Сообщить(ТЗ.Номенклатура); КонецЕсли; КонецЦикла; |
|||
18
Это_mike
26.12.16
✎
13:08
|
(17) прще перебирать все единицы, а уж от единицы брать владельца и океи
|
|||
19
Zombi
26.12.16
✎
13:08
|
(17) О! Спасибо!
|
|||
20
Базис
naïve
26.12.16
✎
13:08
|
Да, я дал типовую (зачёркнуто) прототип. Просто выведи те, где большое 1 ЕдИзм, и в эксель его.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |