Имя: Пароль:
1C
1С v8
Как описать ТаблицуЗначений в ТаблицеЗначений ? :)
0 fantomrik
 
20.01.16
14:19
Описываю таблицу значений. С колонками, тип данных в которых ссылочный или примитивный - все понятно. Но одна из колонок иметь должна тип ТЗ, колонки которой тоже описаны. Описал эту вложенную ТЗ, как описать в основной, что колонка имеет тип уже описанной ТЗ?
1 ДенисЧ
 
20.01.16
14:21
А цель сего действа?
2 mehfk
 
20.01.16
14:22
(1) Как всегда - попытаться обмануть платформу и в итоге обломиться при передаче в качестве параметра в запрос.
3 fantomrik
 
20.01.16
14:23
Пример для пояснения - нужно создать на сервере структуру типа структуры, которая живет на упр форме.
http://hostingkartinok.com/show-image.php?id=d90becca6c393679c7ec5bcec5ca4d4d

Аналогичный вопрос - список значений как описать?
4 fantomrik
 
20.01.16
14:24
(1) цель - расчет на сервере цен программно созданного Установка цен номенклатуры
УТ 11.1 Программное создание документа установка цен и автоматический расчет цен
5 fantomrik
 
20.01.16
14:25
Расчеты делают на форме, но я делаю программно, упр формы мне не получить, буду в структурах рассчитывать типовыми процедурами и писать в объект итог
6 Garykom
 
гуру
20.01.16
14:31
ЗначениеВСтроку ?
7 Mort
 
20.01.16
14:41
Может того... Потратить полчаса на разбор того как правильно самому заполнить документ вместо этого гм...кодирования?
8 Lexey_
 
20.01.16
14:42
(0) "как описать в основной, что колонка имеет тип уже описанной ТЗ?"
ничего не описывай, тупо добавляй колонки без описания
9 Живой Ископаемый
 
20.01.16
14:47
2(3)Колонки должны быть типизированы только для того чтобы была возможность передать тз как параметр на сервер. Если тз будет использоваться для доступа к ней как к объекту, можно ничего не типизировать. Но еще нужно учесть что тз с сервера на клиент не передается, и если такая возможность нужна, нужно сделать выбор в пользу массива структур.
10 Nuobu
 
20.01.16
14:51
(9) Или в пользоу хранилищаЗначения.
11 Лефмихалыч
 
20.01.16
14:53
(0) следи за руками:

ВспомогательнаяТаблица = Новый ТаблицаЗначений;
ВспомогательнаяТаблица.Колонки.Добавить /// блаблбабла

ОсновнаяТаблица = Новый ТаблицаЗначений;
ОсновнаяТаблица.Колонки.Добавить("ВотТутБудетТаблица");
ОсновнаяТаблица.Колонки.Добавить///блаблбала

Строка = ОсновнаяТаблица.Добавить();
Строка.ВотТутБудетТаблица = ВспомогательнаяТаблица.СкопироватьКолонки(); // или просто скопировать
12 Живой Ископаемый
 
20.01.16
14:54
2(10) Ну, если в хранилище значения поместить таблицузначений, то оно на клиенте тоже не получится
13 fantomrik
 
20.01.16
15:08
(7) Типовой механизм заполняет эту структуру на форме и рассчитывает. Мне кажется его использовать правильно, а не сове лепить.
(9) На клиента и не надо, создать док, рассчитать и записать/провести.
(11) Вот ОНО похоже, верное решение вопроса :) Щас опробую. Спасибо вам, знатный рукоблуд !!!
14 Garykom
 
гуру
20.01.16
15:32
(13) муа... ха ха

в ячейку одной таблицы же понятно дело любую другую таблицу целиком можно засунуть ))
15 Garykom
 
гуру
20.01.16
15:32
(14)+ моя то думать нужно типизировать к простому типу
16 fantomrik
 
20.01.16
15:46
(11) Похоже не пройдет, так как в типовом коде, в мою пустую таблицу значений будут наполнятся данные и идет следующее:

МояПереданнаяТЗ.Очистить();

    Для Каждого СтрокаТЧ Из Таблица Цикл
        
        НоваяСтрока = МояПереданнаяТЗ.Добавить();
        
        НоваяСтрока.УстанавливатьЦенуПриВводеНаОсновании = СтрокаТЧ.УстанавливатьЦенуПриВводеНаОсновании;
        НоваяСтрока.Формула                              = СтрокаТЧ.Формула;
        НоваяСтрока.ВложеннаяТЗ.Загрузить(ТЗСерверная.Выгрузить()) ; // Тут падаем, так как колонки не совпадают
        /// Еще куча кода
    КонецЦикла
17 фобка
 
20.01.16
15:51
НоваяСтрока.ВложеннаяТЗ = Новый таблицазначений;
НоваяСтрока.ВложеннаяТЗ.загрузить(тзс.выгрузить);
18 fantomrik
 
20.01.16
15:53
(17) Рабочий вариант - но придется править серверный модуль, хотелось бы не влазить в него вобще. Или единственный вариант думаете?
19 fantomrik
 
20.01.16
15:56
Или как итог - многоуровневое описание типов кодом не сделать, только на форме если, как первый скриншот?
20 фобка
 
20.01.16
15:57
(18) не знаю, просто  не могу понять как ты описал в поле первой таблицы состав колонок вложенной. Полагаю, что тип поля первой таблицы произвольный, а значение ты уже присваиваешь для каждой строки и не важно какой состав колонок этой вложенной строки будет
21 фобка
 
20.01.16
15:57
А у тебя таблица формы.. Не посмотрел просто. Да если состав отличается будет падать
22 fantomrik
 
20.01.16
16:01
(21) мне в общем модуле описать таблицу нужно так же как она имеют структуру на форме.
(20) не описывал, не могу понять как, просто
ОсновнаяТаблица.Колонки.Добавить("ЦеновыеГруппы"                            , Новый ОписаниеТипов("ТаблицаЗначений"));
23 Garykom
 
гуру
20.01.16
16:04
ТС ответь плиз на главный вопрос (ответ на который 42) из (1)

ответ (4) это не ответ зачем, а всего ли причина/повод

ЗЫ зачем все таки гланды через задний проход удалять?
24 фобка
 
20.01.16
16:06
(23) многомерные массивы это нормально
25 Garykom
 
гуру
20.01.16
16:08
(24) угу а еще нормально
программно формы открывать, передавать в них данные через многомерные массивы, затем программно нажимать кнопки и т.д. да?
26 фобка
 
20.01.16
16:11
(22) полагаю, тз есть некий специфический  "ссылочный" тип и в новой строке нужно всегда создавать новую тз. В теории "как оно там с точки зрения платформы" я не силен т.к. практикующий самоучка, учителей рядом мало было. если работает (18) - используй, сомнения в этом деле плохой помощник
27 фобка
 
20.01.16
16:11
(25) голь на выдумку хитра.. Всякое бывает
28 fantomrik
 
20.01.16
16:13
(23) За тем, что старюсь при доработке использовать типовые механизмы конфигурации, если возможно, а не лепить свое. В будущем, как правило, меньше гомороя будет когда конфа обновится не один раз. Ну и вобще такой подход мне кажется правильным - если уже придумано и используется, лучше взять готовое, чем заново выдумывать.
Имхо конечно.

(25) Ни кто не будет формы открывать, не придумывайте) Просто ради интереса, посмотрите как рассчитываются цены в установке цен номенклатуры, при создании на основании поступления. Этот механизм я и хочу использовать, но на сервере мне не доступа упр форма, да и открывать я ее не собирался.

Был конкретный вопрос, но всегда находятся желающие просто попи..ть а зачем, а почему)
29 mr_K
 
20.01.16
16:23
" За тем, что старюсь при доработке использовать типовые механизмы конфигурации, если возможно, а не лепить свое. В будущем, как правило, меньше гомороя будет когда конфа обновится не один раз." - эх, счастливый человек))
Не напарывался ишшо на то, как 1С на раз меняет типовые функции. И я даже не про логику. А просто меняет порядок следования аргументов, не меняя больше ничего.
Может в последнее время конечно они так не косячат, но я пару раз влетев, теперь избегаю этого. Я лучше скопирую типовой код и буду на 100% уверен, что он будет работать как работал всегда)
30 Timon1405
 
20.01.16
16:27
(29) +1 в БСП это сплошь и рядом, особенно в ходе меняющихся каждый день "новых концепций модальности"
31 hhhh
 
20.01.16
16:44
(29) человек старится на доработках, а вы бочку на него катите.
32 fantomrik
 
20.01.16
16:46
(29) Ну тоже верно в принципе. Но одно дело скопировать и под себя подделать, другое вообще переделываться по другому, как поступали предложения выше.

Так что, описать столбцы ТЗ не самого верхнего уровня не получится?
33 mr_K
 
20.01.16
17:16
(32) При передаче в ячейку таблицы еще одной ТЗ, оная передача по ссылке происходит. Т.е. в ячейке оказывается не еще одна ТЗ, а просто ссылка на исходную. Стоит это иметь в виду
Я как-то давно игрался с подобным, но забил. Плясок с бубном значительно больше выхлопа.