|
Вывод в табличный документ таблицы значений. | ☑ | ||
---|---|---|---|---|
0
yellowheel
10.11.14
✎
14:55
|
Ситуация такая, есть источник данных(массив).Из него я собираю таблицу значений. Мне необходимо в ячейку таблицы значений добавить другую ТЗ.
ТабЗН = Новый ТаблицаЗначений; ТабЗН.Колонки.Добавить("НомерЗаказа"); ТабЗН.Колонки.Добавить("КонтрАгент"); ТабЗН.Колонки.Добавить("Дата"); ТабЗН.Колонки.Добавить("Номенклатура"); i=0; Для Каждого Строка Из МассивСтруктур Цикл НоваяСтрока=ТабЗН.Добавить(); НоваяСтрока.НомерЗаказа = Строка.ЗаказНомер ; НоваяСтрока.КонтрАгент = Строка.ЗаказКонтрАгент; НоваяСтрока.Дата = Строка.ЗаказДата; Если НЕ МассивСтруктур[i].Свойство("МассСтрок") = Ложь Тогда Если НЕ МассивСтруктур[i].МассСтрок.Количество() = 0 Тогда ТабНомен = Новый ТаблицаЗначений; ТабНомен.Колонки.Добавить("Номенклатура"); ТабНомен.Колонки.Добавить("КоличествоНоменклЗак"); ТабНомен.Колонки.Добавить("НоменклЦена"); ТабНомен.Колонки.Добавить("НоменклСумма"); ТабНомен.Колонки.Добавить("КолОПЗ"); //ТабНомен.Колонки.Добавить("СтоимостьОПЗ"); ТабНомен.Колонки.Добавить("КолРТУ"); //ТабНомен.Колонки.Добавить("СтоимостьРТУ"); //ТабНомен.Колонки.Добавить("Счет43"); ТабНомен.Колонки.Добавить("ДатаЗаказ"); ТабНомен.Колонки.Добавить("ДатаОПЗ"); ТабНомен.Колонки.Добавить("ДатаРТУ"); j=0; // index МассСтрок Для Каждого Номен из МассивСтруктур[i].МассСтрок Цикл СтрокаНомен = ТабНомен.Добавить(); СтрокаНомен.Номенклатура = Номен.Номенкл; СтрокаНомен.КоличествоНоменклЗак = Номен.КоличествоНоменклЗак; СтрокаНомен.НоменклЦена = Номен.НоменклЦена; СтрокаНомен.НоменклСумма = Номен.НоменклСумма; Если НЕ МассивСтруктур[i].МассСтрок[j].Свойство("МассивОПЗ") = Ложь Тогда Если НЕ МассивСтруктур[i].МассСтрок[j].МассивОПЗ.Количество() = 0 Тогда ТабОПЗ = Новый ТаблицаЗначений; ТабОПЗ.Колонки.Добавить("КоличествоОПЗ"); ТабОПЗ.Колонки.Добавить("СтоимостьОПЗ"); ТабДатаОПЗ = Новый ТаблицаЗначений; ТабДатаОПЗ.Колонки.Добавить("ДатаОПЗ"); Для Каждого ОПЗ из МассивСтруктур[i].МассСтрок[j].МассивОПЗ Цикл СтрокаОПЗ = ТабОПЗ.Добавить(); СтрокаОПЗ.КоличествоОПЗ = ОПЗ.КоличествоОПЗ; СтрокаОПЗ.СтоимостьОПЗ = ОПЗ.КоличествоОПЗ*Номен.НоменклЦена; СтрокаОПЗ = ТабДатаОПЗ.Добавить(); СтрокаОПЗ.ДатаОПЗ = ОПЗ.ДатаОПЗ; КонецЦикла; СтрокаНомен.КолОПЗ=ТабОПЗ.Скопировать(); СтрокаНомен.КолОПЗ=ТабДатаОПЗ.Скопировать(); КонецЕсли; КонецЕсли; Если НЕ МассивСтруктур[i].МассСтрок[j].Свойство("МассивРТУ") = Ложь Тогда Если НЕ МассивСтруктур[i].МассСтрок[j].МассивРТУ.Количество() = 0 Тогда ТабРТУ = Новый ТаблицаЗначений; ТабРТУ.Колонки.Добавить("КоличествоРТУ"); ТабРТУ.Колонки.Добавить("СтоимостьРТУ"); ТабРТУ.Колонки.Добавить("Счет43"); ТабДатаРТУ = Новый ТаблицаЗначений; ТабДатаРТУ.Колонки.Добавить("ДатаРТУ"); Для Каждого РТУ из МассивСтруктур[i].МассСтрок[j].МассивРТУ Цикл СтрокаРТУ = ТабРТУ.Добавить(); СтрокаРТУ.КоличествоРТУ = РТУ.КоличествоРТУ; СтрокаРТУ.СтоимостьРТУ = РТУ.КоличествоРТУ*Номен.НоменклЦена; СтрокаРТУ = ТабДатаРТУ.Добавить(); СтрокаРТУ.ДатаРТУ = РТУ.ДатаРТУ; КонецЦикла; СтрокаНомен.КолРТУ=ТабРТУ.Скопировать(); СтрокаНомен.КолРТУ=ТабДатаРТУ.Скопировать(); КонецЕсли; КонецЕсли; СтрокаНомен.ДАтаЗаказ = Номен.НоменклДатаОтгрузки; КонецЦикла; КонецЕсли; НоваяСтрока.Номенклатура=ТабНомен.Скопировать(); КонецЕсли; |
|||
1
yellowheel
10.11.14
✎
14:56
|
Я проверил в отладчике,таблицы значений не пусты,но при выводе в табдок,не видны "вложенные" тз.
|
|||
2
mikecool
10.11.14
✎
14:57
|
ты в табдок в ячейку пихаешь ТЗ?
|
|||
3
yellowheel
10.11.14
✎
15:00
|
(2) Использовал вот эту штуку для вывода.
Построитель = Новый ПостроительОтчета; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабЗН); ТабДок = Новый ТабличныйДокумент; Построитель.Вывести(ТабДок); ТабДок.Показать(); |
|||
4
hhhh
10.11.14
✎
15:03
|
(30 как ты впихнешь в маленькую ячейку большую ТЗ?
|
|||
5
yellowheel
10.11.14
✎
15:07
|
(4) непосредственно в этом и есть вопрос,как мне реализовать вывод в таб док такой конструкции?
|
|||
6
Ёпрст
10.11.14
✎
15:08
|
ручонками
|
|||
7
kosts
10.11.14
✎
15:11
|
(5) визуально как это будет выглядеть?
|
|||
8
yellowheel
10.11.14
✎
15:13
|
не знаю как у вас ту загружать картинки,но примерно вот так,первая таблица в статье.
http://1cstyle.ru/articles/organizatsiya_pozakaznogo_proizvodstva_v_pp_1s_upravlenie_proizvodstvennym_predpriyatiem/ (7) |
|||
9
Fish
10.11.14
✎
15:19
|
(8) Тебе поможет метод:
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange) Объединить (Merge) Синтаксис: Объединить() Описание: Объединяет ячейки области. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Пример: Область = ТабДок.Область(2,2,3,3); Область.Объединить(); |
|||
10
yellowheel
11.11.14
✎
12:41
|
(9) как я понял,этот метод сработает,если я буду каждый раз определять нужный мне диапазон области целиком. А если я использую именованные области, и ,к примеру,одну и ту же вывожу несколько раз циклом? В определенный момент при необходимом мне условии, нужно объединить выведенные строки(области) и продолжить вывод далее, возможно сделать что-то подобное? НУ или может есть какой-то альтернативный вариант как вывести в табдок в таком виде ТЗ.
|
|||
11
yellowheel
13.11.14
✎
10:53
|
Подскажите пожалуйста,что произойдет со значениями в ячейке,если я применю таки этот метод:
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange) Объединить (Merge) ? |
|||
12
hhhh
13.11.14
✎
11:33
|
(11) ну на примере екселя попробуйте. Выделяете ячейки, нажимаете Объединить. в 1с то же самое.
|
|||
13
hhhh
13.11.14
✎
11:41
|
(11) а вообще посмотрите макеты. Вам нужно нарисовать макет и его заполнять.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |