|
Работа с массивами | ☑ | ||
---|---|---|---|---|
0
denpro
20.06.17
✎
10:11
|
Док = Документы.ПоступлениеТоваровУслуг.Выбрать(НачалоДня(ТекДата),
КонецДня(ТекДата)); МассивВыводимыхОбластей = новый массив; Пока Док.Следующий() Цикл ОбластьДок = Макет.ПолучитьОбласть("Док"); ОбластьДок.Параметры.Отдел = Док; МассивВыводимыхОбластей.Добавить(ОбластьДок); КонецЦикла; МассивВыводимыхОбластей - используется для проверки вывода на страницу табличного документа. Проблема в том, что когда в массив записывается очередной элемент ОбластьДок, все предыдущие элементы в массиве становятся идентичными ему. Как будто массив хранит не значения, а ссылки на переменную. Как от этого избавиться? |
|||
1
Неверный Параметр И
20.06.17
✎
10:13
|
Понять отличие макета от формируемого документа.
|
|||
2
Ёпрст
20.06.17
✎
10:14
|
(0) как ты ЭТО проверил ?
|
|||
3
Альбатрос
20.06.17
✎
10:15
|
(2) +1
|
|||
4
denpro
20.06.17
✎
10:15
|
(2) вывел на печать, посмотрел в отладчике элементы массива после каждого присвоения.
|
|||
5
h-sp
20.06.17
✎
10:17
|
(4) а как вывел, если нет ТабДок.Вывести ?
|
|||
6
Неверный Параметр И
20.06.17
✎
10:18
|
(4) Я бы удивился, если бы получая одну и ту же область одного и того же макета платформа возвращала мне разные области.
|
|||
7
Мимохожий Однако
20.06.17
✎
10:19
|
(0) Объяни эту строчку
ОбластьДок.Параметры.Отдел = Док; |
|||
8
sFAQer
20.06.17
✎
10:23
|
(7) Им отделы поступают, они их в подвале складывают...
|
|||
9
Ёпрст
20.06.17
✎
10:24
|
(7) ты ввёл автора в когнитивный диссонанс
|
|||
10
denpro
20.06.17
✎
10:28
|
(6) Мысль понятна.
(7) ОбластьДок.Параметры.Документ = Док; так понятнее? Тема закрыта: Сформировал строчку ОбластьДок.Параметры.Документ = Строка(Док); все заработало нормально. получается он переприсваивал переменную Док в параметре области (что тоже не понятно почему), а не ОбластьДок. |
|||
11
Лефмихалыч
20.06.17
✎
10:36
|
(0) нельзя лепить снеговиков с клюшками в голове (с)
ты в параметр области присваиваешь одно и то же значение - выборку. |
|||
12
h-sp
20.06.17
✎
10:37
|
(10) Док у тебя - это не документ, это выборка.
|
|||
13
denpro
20.06.17
✎
10:41
|
(11) Выборка на каждом цикле разная. Почему параметр области хранит переменную, а не ее значение?
а =1; ОбластьДок.Параметры.Переменная = а; а =2; ТабДок.Вывести(ОбластьДок); На печать выйдет 2 - это странно? |
|||
14
igorPetrov
20.06.17
✎
10:43
|
(13) нет.
|
|||
15
h-sp
20.06.17
✎
10:45
|
(13) нет. не выйдет 2. Потому что это два разных поля: 1 и 2. Сначала переменная а ссылается на поле 1. и в ОбластьДок.Параметры.Переменная вы запихиваете ссылку на число 1. А переменную а уже потом меняете на другое.
|
|||
16
Лефмихалыч
20.06.17
✎
10:45
|
(13) в восьмерке все не так, как в клюшках. Выборка одна и та же на каждой итерации цикла.
|
|||
17
Лефмихалыч
20.06.17
✎
10:46
|
Пока Док.Следующий() Цикл
ОбластьДок = Макет.ПолучитьОбласть("Док"); ОбластьДок.Параметры.Отдел = Док.Ссылка; МассивВыводимыхОбластей.Добавить(ОбластьДок); КонецЦикла; |
|||
18
Лефмихалыч
20.06.17
✎
10:48
|
+(17) это - раз
два, читай по буквам пост (1). У тебя в массиве не области, реально присутствующие в резултирующем табличном документе, а области макета. И вот они-то как раз одинаковые реально. |
|||
19
Лефмихалыч
20.06.17
✎
10:49
|
одну и ту же область 100500 раз добавляешь и удивляешься, что они одинаковые
|
|||
20
Лефмихалыч
20.06.17
✎
10:50
|
Автор, а ты какую задачу этим массивом-то решаешь вообще?
Может есть работающий способ... |
|||
21
denpro
20.06.17
✎
11:05
|
(13) не работает, значит проблема в том, что я действительно работал с выборкой.
(19) это не причем. (20) задачу описал еще в (0) Обсуждение можно не продолжать |
|||
22
Мимохожий Однако
20.06.17
✎
11:12
|
(21) Наивный )) А поговорить?
|
|||
23
НЕА123
20.06.17
✎
12:05
|
РезДок = Новый ТабличныйДокумент;
Док = Документы.ПоступлениеТоваровУслуг.Выбрать(НачалоДня(ТекДата), КонецДня(ТекДата)); МассивВыводимыхОбластей = новый массив; ОбластьДок = Макет.ПолучитьОбласть("Док"); Пока Док.Следующий() Цикл ОбластьДок.Параметры.Отдел = Док; МассивВыводимыхОбластей.Добавить(РезДок.Вывести(ОбластьДок)); КонецЦикла; |
|||
24
h-sp
20.06.17
✎
12:14
|
(23) нет, автор прав. Выводить нельзя пока. Сначала ПроверитьВывод, потом только РезДок.Вывести(ОбластьДок)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |