Имя: Пароль:
1C
1C 7.7
v7: Разная цена одинаковой номенклатуры в документе
0 Масянька
 
23.05.16
11:12
День добрый!
Такая фигня: табличная часть документа - есть одинаковая номенклатура. Нужно найти (если есть) одинаковую номенклатуру с разной ценой.
Сразу поясню (для тех, кто в шлемофоне):
1. товар1 = 15
2. товар2 = 25
3. товар1 = 15
4. товар1 = 20
Нужно найти и вывести в сообщалке, что в 4 строке другая цена.

Выгрузить таб. часть и свернуть - номера строк?
Выгрузить таб. часть, обходить ее и в цикле обходить таб. часть - как-то не айс.
Есть еще варианты?

PS По поводу зачем и почему - так надо.

Заранее спасибо.
1 PuhUfa
 
23.05.16
11:14
Выбрать Различные ?
2 aleks_default
 
23.05.16
11:16
(0) не заполнять в таб. часть одинаковую номенклатуру с разной цену.
Лечить не последствие а причину
3 Масянька
 
23.05.16
11:23
(1) А в семерке есть?
(2) Повторяю - причины нет.
4 Звездец
 
23.05.16
11:41
Функция ПроверкаДублейСтрок(Конт) Экспорт
    // Эта процедура проверяет спецификацию документа на дубли товара
    СписокТоваров=СоздатьОбъект("СписокЗначений");
    Конт.ВыбратьСтроки();
    Пока Конт.ПолучитьСтроку() = 1 Цикл
        Твр=Конт.Товар;
        Если Твр.Выбран()=0 Тогда
            Продолжить;
        КонецЕсли;
        //  Проверка товара на совпадение в строках документа
        Если СписокТоваров.НайтиЗначение(Твр)<>0 Тогда
            // Значит такой товар уже в накладной есть
            Сообщить("Повторение товара:"+СокрП(Твр.Наименование));
            Возврат 1;
        КонецЕсли;
        СписокТоваров.ДобавитьЗначение(Твр,"");
    КонецЦикла;
    Возврат 0;
КонецФункции
5 Звездец
 
23.05.16
11:44
для цены добавь проверку дополнительно после нахождения дубля
6 Масянька
 
23.05.16
11:45
(4) Да, блин, вас пока дождешься... :)
То есть - цикл в цикле и больше никак?
7 Звездец
 
23.05.16
11:47
(6) где ты увидела цикл в цикле?
8 lubitelxml
 
23.05.16
11:48
(6) не цикл в цикле а поиск по тч в цикле по строкам тч
9 Остап Сулейманович
 
23.05.16
11:50
(7) Собсссно "СписокТоваров.НайтиЗначение(Твр)" и есть вложенный цикл. Просто записан не с помощью Для поз = Список.РазмерСписка() ...
10 Звездец
 
23.05.16
11:51
(9) ну если так буквально. Но это клюшки, кто-то знает другие варианты?
11 Масянька
 
23.05.16
11:52
(7) А, вот уже ответили (9)
12 Масянька
 
23.05.16
11:52
(10) Вот я и спрашиваю. Может есть - красивше...
13 пипец
 
23.05.16
11:53
добавить колонку в ТЗ с количеством 1 и свернуть
14 Звездец
 
23.05.16
11:54
тебе нужно вывети список номенклатуры или просто достаточно сообщения что строки есть?
15 Mikeware
 
23.05.16
11:54
Выгрузить в ИТЗ, добавить колонку с количеством, заполнить колонку единичкой, сгруппировать по товару и цене,  добавить индекс по количесттву и получить все неравные 1, (а в тзПотомки - вплоть до номера стороки)
16 Остап Сулейманович
 
23.05.16
11:54
(12) Вполне рабочий вариант. ДляНаЗачем красивше?
"Все так делают" (ЦЫ). И никто до сих пор не скис.
17 Mikeware
 
23.05.16
11:57
(16) красота спасет мир!©
зы. а покуизм - нервы!!©
18 Масянька
 
23.05.16
12:03
(16) Периодически себя спрашиваю... Ответа пока нет :)
(17) Вариант :)

Всем - спасибо!