Имя: Пароль:
1C
1С v8
Группировка служебных сообщений
🠗 (Волшебник 15.12.2017 11:33)
0 na1kk
 
15.12.17
10:06
http://prntscr.com/hnr1bi

сейчас сообщения выходят списком перебирая таб.часть, а как можно сделать чтобы формат сообщения было такой: Контрагент - ООО Ромашака не заполнен в строке 1,2,3,4,5.
1 Numerus Mikhail
 
15.12.17
10:07
Сначала собираешь строку, которую нужно вывести, а выводишь после перебора уже
2 Волшебник
 
модератор
15.12.17
10:07
Накапливай в строковую переменную и затем выводи после цикла
3 na1kk
 
15.12.17
10:09
(2) контрагенты разные в списке.
4 Волшебник
 
модератор
15.12.17
10:09
(3) Используй Соответствие
5 Numerus Mikhail
 
15.12.17
10:10
(3) формируй список со строками по контрагентам
6 na1kk
 
15.12.17
10:12
(4) я пробовал таблицу значений, но что-то не получилось.
7 Numerus Mikhail
 
15.12.17
10:14
(6) Плохо пробовал
Что конкретно не получилось?
8 na1kk
 
15.12.17
10:18
согласен. поэтому и попросил помощи. Не могу допереть, как написать.

ТаблЗнч = Новый ТаблицаЗначений;
     ТаблЗнч.Колонки.Добавить("Номер");
     ТаблЗнч.Колонки.Добавить("Контрагент");
//до цикл
// потом накапливаю номер и контрагента, если выполняю условие.
Стр.Номер = Знч.НомерСтроки;
Стр.Контрагент = Знч.N2;

Для Каждого Строка из ТаблЗнч Цикл
Сообщить("Контрагент - " + Строка.Контрагент + " нет в строке " + Строка.Номер);
КонецЦикла;
9 catena
 
15.12.17
10:23
(8)Это не весь код. Огласите весь список, пжлста, от создания ТЗ до вывода.
10 Волшебник
 
модератор
15.12.17
10:23
(6) Таблицу значений лучше проиндексировать
11 trooba
 
15.12.17
10:26
(8) Получить 2 таблицы значений, 1-свернуть, использовать найти строки во 2
12 1Садовник
 
15.12.17
10:31
(11) можно же одной обойтись, строки ТЗ добавлять только при новом контрагенте. В колонку "номер" (тип строка) добавлять как советовали в (2).
13 na1kk
 
15.12.17
10:51
(12) ну сворачивать скорее всего все равно придется.
14 Волшебник
 
модератор
15.12.17
10:52
Используй Соответствие
15 na1kk
 
15.12.17
10:56
(14) да, спасибо. сейчас попробую
16 na1kk
 
15.12.17
11:04
(14) чет не особо у меня что-то вышло)))) если бы написали строку кода, был бы очень признателен
17 Волшебник
 
модератор
15.12.17
11:07
(16) примерно так:

список = Новый Соответствие;
Для Каждого стр ИЗ ТЧ Цикл
  Если условие Тогда
    список[стр.Контрагент] =  список[стр.Контрагент] + "," + стр.НомерСтроки;
  КонецЕсли;
КонецЦикла;

Для Каждого о ИЗ Список Цикл
  Сообщить("Контрагент " + о.Ключ + " строки " + о.Значение);
КонецЦикла;
18 na1kk
 
15.12.17
11:12
(17) ух ты, спасибо большое! сейчас попробую!
19 na1kk
 
15.12.17
11:17
(17) ругается на "Преобразование значения к типу Число не может быть выполнено" хотя список[стр.Контрагент] - строка, а стр.НомерСтроки - число
20 na1kk
 
15.12.17
11:20
(17) а Соответствие[Знч.N2] - неопределенно
21 catena
 
15.12.17
11:28
(19)ну сделай Строка(стр.НомерСтроки)
22 Волшебник
 
модератор
15.12.17
11:29
(20) Ну включи мозг
23 na1kk
 
15.12.17
11:31
(21) не помогает.
24 Волшебник
 
модератор
15.12.17
11:33
(23) Давай я тебе помогу. Ветку утопил
25 na1kk
 
15.12.17
11:33
(24) спасибо...
26 na1kk
 
15.12.17
11:48
Можете еще кто подскажет, что я делаю не так.

Список = Новый Соответствие;

Для каждого Знч из ТЗ Цикл

Если ЗначениеЗаполнено(Знч.N1) Тогда
Список[Знч.N2] = Список[Знч.N2] + "," + Знч.НомерСтроки;
КонецЕсли;

КонецЦикла;
27 na1kk
 
15.12.17
11:49
1Ска пишет что можно так делать: Возможно обращение к значению элемента посредством оператора [...]. В качестве аргумента передается значение ключа элемента.
28 na1kk
 
15.12.17
12:07
(22) так) я разобрался и убрал список[стр.Контрагент], но все равно не то получается. Он мне выводит по последней строке. а мне нужно в Контрагент ООО Ромашка - строка 2,5,8, Контрагент ООО Василек  строка 10,12,15
29 Волшебник
 
модератор
15.12.17
16:36
Если Список.Получить(Знч.N1) = Неопределено Тогда
   Список[Знч.N2] = Знч.НомерСтроки;
Иначе
   Список[Знч.N2] = Список[Знч.N2] + "," + Знч.НомерСтроки;
КонецЕсли;