![]() |
![]() |
![]() |
|
Выбор по группировкам в Таблице Значений | ☑ | ||
---|---|---|---|---|
0
Falex
05.11.07
✎
01:14
|
Есть таблица значений:
Таблица=Новый ТаблицаЗначений; Таблица.Колонки.Добавить("Контрагент"); Таблица.Колонки.Добавить("Договор"); Таблица.Колонки.Добавить("Аппарат"); Таблица.Колонки.Добавить("Цена"); В моем примере получено что-то подобное: 1. Контрагент1, Дог1,Ап1,100; 2. Контрагент1, Дог2,Ап2,100; 3. Контрагент3, Дог3,Ап3,100; 4. Контрагент4, Дог4,Ап4,100; Дальше мне надо создать по одному документу для каждого контрагента (т.е. в данном случае 3 документа) и заполнить таюл.часть. Проблема в том как создать эти 3 документ как бы группируя таблицу значений по контрагенту. Я попробовал вот так, но не работает: Если Таблица.Количество()>0 Тогда тмп=Справочники.Контрагенты.ПустаяСсылка(); Для Каждого Строка из Таблица Цикл Если Строка.Контрагент<>тмп Тогда Док=Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); Док.Организация=Справочники.Организации.НайтиПоКоду("00001"); Док.Контрагент=Строка.Контрагент; Док.Дата=ТекущаяДата(); Док.ДоговорКонтрагента=Строка.Договор; Док.СтруктурнаяЕдиница=Справочники.БанковскиеСчета.НайтиПоКоду("00001"); Услуги=Док.Услуги.Добавить(); Услуги.Номенклатура=Справочники.Номенклатура.ТехническоеОбслуживание; Услуги.Содержание=Услуги.Номенклатура.Наименование; Услуги.Количество=1; Услуги.Цена=Строка.Цена; Услуги.Сумма=Услуги.Количество*Услуги.Цена; Услуги.ДляТовара=Строка.Аппарат; Услуги.СтавкаНДС=Услуги.Номенклатура.СтавкаНДС; Иначе Док.ПолучитьФорму("ФормаДокумента").Открыть(); КонецЕсли; тмп=Строка.Контрагент; КонецЦикла; КонецЕсли; |
|||
1
ТелепатБот
гуру
05.11.07
✎
01:14
|
||||
2
Falex
05.11.07
✎
01:15
|
Перенесите пожалуйста в тему 1С 8.0. Опять забыл это сделать (
|
|||
3
lamme
05.11.07
✎
05:39
|
(0)
начинай обход своей таблицы -не с первой строки, а с последней. т.е. первый создавай док для Контрагент4 и тд. |
|||
4
lamme
05.11.07
✎
05:40
|
(было подоное - когда при прямом обходе ТЗ - создавался первый док - и все. Остальне -не хотели. Почему -хз. Обход снизу вверх - помог)
|
|||
5
у лю 427
05.11.07
✎
06:31
|
ламо - оно и есть ламо...
|
|||
6
lamme
05.11.07
✎
06:37
|
(5)
завидуешь нику ? или как ? |
|||
7
Falex
05.11.07
✎
10:25
|
А можно пример как делать обход в моем случае.
|
|||
8
IronDemon
05.11.07
✎
10:37
|
Выгрузи контрагентов в отдельную таблицу, сверни её. Делаешь обход её и отбор в исходной таблице записей с текущим контрагентом.
|
|||
9
Falex
05.11.07
✎
10:54
|
Не понял.Просто я новичок в этом деле.Вы бы не могли привести пример кода в моем случае пожалуйста.
|
|||
10
anb
05.11.07
✎
11:00
|
- отсортировать таблицу по контрагенту.
- по прямой обходить, - при смене контрагента создавать новый док |
|||
11
mikecool
05.11.07
✎
11:03
|
гм... если таблица заполнена запросом(не вижу препятствий чтобы заполнить ее запросом), то нафик вообще таблица??
|
|||
12
Falex
05.11.07
✎
14:37
|
Таблица уже отсортирована по контрагенту.
Так как мнее узнать,что контрагент сменился?Можно кодом показать. |
|||
13
MaxiSoft
05.11.07
✎
17:00
|
Если Таблица.Количество()>0 Тогда
тмп=Справочники.Контрагенты.ПустаяСсылка(); Для Каждого Строка из Таблица Цикл Если (Строка.Контрагент<>тмп) И (тмп <> Справочники.Контрагенты.ПустаяСсылка()) Тогда Док.Записать(); КонецЕсли; Если Строка.Контрагент<>тмп Тогда Док=Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); Док.Организация=Справочники.Организации.НайтиПоКоду("00001"); Док.Контрагент=Строка.Контрагент; Док.Дата=ТекущаяДата(); Док.ДоговорКонтрагента=Строка.Договор; Док.СтруктурнаяЕдиница=Справочники.БанковскиеСчета.НайтиПоКоду("00001"); Услуги=Док.Услуги.Добавить(); Услуги.Номенклатура=Справочники.Номенклатура.ТехническоеОбслуживание; Услуги.Содержание=Услуги.Номенклатура.Наименование; Услуги.Количество=1; Услуги.Цена=Строка.Цена; Услуги.Сумма=Услуги.Количество*Услуги.Цена; Услуги.ДляТовара=Строка.Аппарат; Услуги.СтавкаНДС=Услуги.Номенклатура.СтавкаНДС; Иначе Услуги=Док.Услуги.Добавить(); Услуги.Номенклатура=Справочники.Номенклатура.ТехническоеОбслуживание; Услуги.Содержание=Услуги.Номенклатура.Наименование; Услуги.Количество=1; Услуги.Цена=Строка.Цена; Услуги.Сумма=Услуги.Количество*Услуги.Цена; Услуги.ДляТовара=Строка.Аппарат; Услуги.СтавкаНДС=Услуги.Номенклатура.СтавкаНДС; КонецЕсли; тмп=Строка.Контрагент; КонецЦикла; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |