Имя: Пароль:
1C
1С v8
Помогите, пожар. Есть задание сделать динамическую табличную часть
,
0 PortAlex74
 
19.11.18
16:30
Здравствуйте. Проблемка в сдедующем... Короче есть задание, посчитать количество дней в обработке и сделать динамическую табличную часть в 1с.
8.3. наполнения в табличной части нет. Тупо список дней разницы.
Столкнулся с двумя проблемами: 1. не добавляются колонки в табличную часть, решил ТаблицейЗначений... Но как ее подгрузить в табличную часть??? Прошу помощи. Ну не знаю что сделать(((
1 Волшебник
 
19.11.18
16:30
Пригласите программиста.
2 PortAlex74
 
19.11.18
16:33
Да с радостью, но не имею возможности. Я написал-прошу помощи...
3 PortAlex74
 
19.11.18
16:35
Вот что выстрадал:

&НаСервере
Процедура ОкончаниеПриИзмененииНаСервере()
ТЗ=Новый ТаблицаЗначений;    
    если ЭтаФорма.Объект.Окончание<ЭтаФорма.Объект.Начало тогда
        Сообщить ("Дата окончания НЕ может быть меньше даты начала");
        Иначе Сообщить (Формат(День(ЭтаФорма.Объект.Окончание)-День(ЭтаФорма.Объект.начало)) +" циклов");
    КонецЕсли;
Счетчик=День(ЭтаФорма.Объект.Окончание)-День(ЭтаФорма.Объект.начало);    
для i=1 по счетчик цикл    
Текст="Колонка"+i;
    ЭтаФорма.Объект.ТабличнаяЧасть1.Колонки.Добавить(Текст);  
      
//    ТЗ.Колонки.Добавить(Текст);  

    конеццикла;


  
ЭтаФорма.Объект.ТабличнаяЧасть1.Загрузить(ТЗ);      
      

    
    // Вставить содержимое обработчика.
КонецПроцедуры

&НаКлиенте
Процедура ОкончаниеПриИзменении(Элемент)
    ОкончаниеПриИзмененииНаСервере();
КонецПроцедуры
4 vicof
 
19.11.18
16:35
(0) Табличную часть нельзя создать динамическую.
5 PortAlex74
 
19.11.18
16:36
(4) Как же быть???
6 PortAlex74
 
19.11.18
16:37
Вроде подвернулась работа, но не могу пройти тест. Это тест....
7 Волшебник
 
19.11.18
16:38
(6) Значит ты не тот, кто им нужен.
8 PortAlex74
 
19.11.18
16:40
Я далек от этого. И вообще корячится другая должность, а я кроме как стандартной бухгалтерии и ЗУП в руках не держал. ПОМОГИТЕ!
9 PortAlex74
 
19.11.18
16:41
Помогите, хоть с цепочкой действий.
10 Segate
 
19.11.18
16:43
(0) у меня есть готовый механизм(подсистема) создания произвольных табличных частей в 1с. создаются по аналогии с доп. реквизитами. Хочешь? )
11 d4rkmesa
 
19.11.18
16:44
>> Объект.ТабличнаяЧасть1.Загрузить(ТЗ)

(3) Это не работает? Должно ведь по идее. Проверьте через отладчик, не пустая ли.
12 Волшебник
 
19.11.18
16:46
Табличная часть должна содержать колонки в виде строк.
Например, документ "Табель учёта рабочего времени" содержит таб.часть с колонками Сотрудник, День, Часы

При открытии данные разворачиваются в таблицу значений. Значения из колонки День превращаются в названия колонок.

После редактирования таблица значений опять превращается в плоский список и сохраняется в таб.часть.
13 d4rkmesa
 
19.11.18
16:48
14 H A D G E H O G s
 
19.11.18
16:50
(0) В Кузбассе не осталось вообще программистов штоле?
15 PortAlex74
 
19.11.18
16:51
Могу выложить задание, может поможите?
16 Волшебник
 
19.11.18
16:52
(15) А работать за тебя тоже мы будем?
17 PortAlex74
 
19.11.18
16:52
(14) По любому есть, но никак не получается у меня(((
18 PortAlex74
 
19.11.18
16:54
(16) Сейчас я просто очень ограничен по времени... И думаю, если сейчас сдвинется, то дальше по карабкуюсь.
19 Бубка Гоп
 
19.11.18
16:57
(15) Так тебе в (12) написали как сделать
20 hhhh
 
19.11.18
16:58
(18) ну они же тоже читают этот форум. Всё равно ты уже спалился. Можешь уже не делать, забей, ищи другую работу.
21 иубиповец
 
19.11.18
16:58
минута поиска дала ссылку http://expert.chistov.pro/public/203445/
может поможет..
22 yzimin
 
19.11.18
16:59
Посмотри, как в УТ11 сделана ТЧ в док.установка цен: там можно задать произвольное количество видов, все они преобразуются в колонки
23 Волшебник
 
19.11.18
17:01
(18) Дальше будет хуже
24 H A D G E H O G s
 
19.11.18
17:02
(22) ++ и никогда так не делай.
25 PortAlex74
 
19.11.18
17:03
(23) Я понимаю, что это не мед, но помогите.
26 Garykom
 
гуру
19.11.18
17:03
Когда то был у меня знакомый "программист", который на работу то устроился.

Но работу за него делал его старший брат, а младший большую часть зарплаты отдавал ему (старшему).

Было прикольно ))
27 Segate
 
19.11.18
17:05
Смотри короч:
В объекте есть тч с колонками:
1)ТабличнаяЧасть<пвх.допсвойстваИЗначения(с типом доп. ТЧ)>
2)НомерСтрокиТаблицы
3)Колонка<Пвх.ДопКолонкиДопТабличныхЧастей>
4)Значение

В момент формирования документа вызывается вот такое:

Функция БЗС_ПолучитьДанныеДополнительнойТабличнойЧасти(ТабличнаяЧасть,ОписаниеОбъекта) экспорт

    колонкиТЧ = БЗС_ПолучитьКолонкиТЧ(ТабличнаяЧасть).выгрузить();
    СтрокаПолей="";
    Для каждого колонка Из колонкиТЧ Цикл
        
        СтрокаПолей=СтрокаПолей+Символы.ПС+"    МАКСИМУМ(ВЫБОР
        |            КОГДА БЗС_ДополнительныеТабличныеЧасти.Колонка.наименование = """+колонка.наименование+"""
        |                ТОГДА БЗС_ДополнительныеТабличныеЧасти.Значение
        |            ИНАЧЕ NULL
        |        КОНЕЦ) КАК "+колонка.наименование+",";
        
    КонецЦикла;
    //Убираем последнюю запятую
    СтрокаПолей = Лев(СтрокаПолей,СтрДлина(СтрокаПолей)-1);
    Запрос = новый запрос();
    Запрос.Текст = "%1
    |ВЫБРАТЬ
    |    БЗС_ДополнительныеТабличныеЧасти.НомерСтрокиТаблицы КАК НомерСтрокиТаблицы,
    |%2
    |ИЗ
    |    %3 КАК БЗС_ДополнительныеТабличныеЧасти
    |ГДЕ
    |    БЗС_ДополнительныеТабличныеЧасти.ТабличнаяЧасть = &ТабличнаяЧасть
    |    %4
    |
    |СГРУППИРОВАТЬ ПО
    |    БЗС_ДополнительныеТабличныеЧасти.НомерСтрокиТаблицы";
    
    Если Типзнч(ОписаниеОбъекта) = тип("ТаблицаЗначений") Тогда
        ТекстВТ = "выбрать *
        |Поместить ВТ
        |ИЗ
        |    &ТаблицаИсточник как ТЗ
        |;
        |/////////////////////////////////////////////////////";
        ТекстИсточник = "ВТ";
        ТекстУсловие = "";
        Запрос.УстановитьПараметр("ТаблицаИсточник",ОписаниеОбъекта);
    Иначе
        ТекстВТ= "";
        ТекстИсточник = ОписаниеОбъекта.ссылка.Метаданные().ПолноеИмя()+".БЗС_ДополнительныеТабличныеЧасти";
        ТекстУсловие = "И БЗС_ДополнительныеТабличныеЧасти.Ссылка = &Ссылка";
        Запрос.УстановитьПараметр("Ссылка",ОписаниеОбъекта.ссылка);
    КонецЕсли;
    
    Запрос.УстановитьПараметр("ТабличнаяЧасть",ТабличнаяЧасть);
    Запрос.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Запрос.Текст,ТекстВТ,СтрокаПолей,ТекстИсточник,ТекстУсловие);
    ТЗ = Запрос.Выполнить().Выгрузить();
    Возврат ТЗ;
КонецФункции // ()

Под ТЗ отрисовывается ТЧ на форме, и туда загружаются значения. Все просто довольно.
28 PortAlex74
 
19.11.18
17:06
(26) ))) Сложно делиться тем, чего нет.... Но другую работу тут найти никак
29 PortAlex74
 
19.11.18
17:08
(27) Давай я тебе тест скину. Может получится? Пожайлуста))) Помоги.
30 Segate
 
19.11.18
17:08
(29) А что по деньгам-то?
31 Numerus Mikhail
 
19.11.18
17:09
(29) Не думаю, что тут кто-то будет оказывать медвежью услугу.
Мы максимум можем помочь, если будет конкретная проблема с чем-то. Но писать весь код за тебя - нет уж, спасибо
32 Garykom
 
гуру
19.11.18
17:09
(28) Ничего страшного, возьми кредит, чтобы заплатить программисту за решение теста.

Как устроишься кредит отдашь, главное бери побольше чтобы хватило месяц программистов нанимать ))
33 PortAlex74
 
19.11.18
17:11
(30) Я скажу честно, ну нет у меня денег ни сколько. И работы нет(((.
34 Garykom
 
гуру
19.11.18
17:14
(33) Ну я вот на заре карьеры сторожем и дворником работал.
Когда программистом еще не брали.

Может тебе тоже с подобного начать?
35 PortAlex74
 
19.11.18
17:26
Как правильно начать????
36 PortAlex74
 
19.11.18
17:33
Как Таблицу значений можно запихать в Табличную часть???? Есть способ?
37 Волшебник
 
19.11.18
17:34
(36) циклом
38 Волшебник
 
19.11.18
17:34
Программирование — это фантазия плюс умение крутить циклы.
39 Numerus Mikhail
 
19.11.18
17:35
(36) ТабличнаяЧасть.Загрузить(ТаблицаЗначений)
40 Мимохожий Однако
 
19.11.18
17:39
Прикольно.Не часто подобное нахальство увидишь. Из него в будущем выйдет "креативный кризисный менеджер".
41 PortAlex74
 
19.11.18
17:44
(37) Таблица значений имеет только колонки (наименование), она патологически чиста (пуста) Или я что-то не так понимаю?
42 PR
 
19.11.18
17:44
(15) Могу выложить номер банковской карточки, может поможете?
43 PortAlex74
 
19.11.18
17:44
(39) Это не работает
44 PortAlex74
 
19.11.18
17:46
Как программно добавить колонки в ТЧ???
45 palsergeich
 
19.11.18
17:47
(42) C 6 сторон плз.
Обязательно поможем
46 antgrom
 
19.11.18
17:47
(0) может вам нужна не табличная часть, а нужно просто отображать в документе например данные регистра с каким то отбором ?
47 palsergeich
 
19.11.18
17:48
(46) ДА не, судя по шапке - задача именно на динамическую ТЗ на форме.
48 Бубка Гоп
 
19.11.18
17:49
(44) Никак. В ТЗ можно, ТЧ - нельзя, это объект конфигурации. Почитай (12) еще разик.

Тебе надо колонки с датами, но сколько - ты не знаешь. Тогда ты делаешь одну колонку "Дата", и для каждой записи ТЧ делаешь столько строк, сколько колонок "Дат" тебе нужно, дублируя остальные колонки.
49 gantonio
 
19.11.18
17:51
задание , кстати звучит точно так , как написано ? или это вольная интерпретация
50 Бубка Гоп
 
19.11.18
17:52
(48) + естественно метод Загрузить() тебе не подходит, потому что у ТЧ будет меньше колонок чем у ТЗ. В цикле при открытии рисуешь ТЗ, при записи - из ТЗ пишешь в ТЧ.
51 PortAlex74
 
19.11.18
17:54
(48) НЕт, я делаю не так. Вычитаю разницу дней, в таблице значений добавляю колонки, потом пытаюсь загрузить в Табличную часть. Но тут и не получается. А как добавить колонки в Табличную часть я не знаю.
52 PortAlex74
 
19.11.18
17:55
(50) Но как добавить колонки в ТЧ? Именно кодом, не ручками.
53 Бубка Гоп
 
19.11.18
17:55
(51) Колонки в табличную часть добавляются в конфигураторе, ручками, а не программно.
54 Бубка Гоп
 
19.11.18
17:55
(52) Зачем кодом блин, понять не могу?
55 PortAlex74
 
19.11.18
17:56
(49) Могу скинуть это чудо задание)))
56 PortAlex74
 
19.11.18
17:57
(54) Ну динамически надо...
57 Бубка Гоп
 
19.11.18
17:58
(56) Ты что то не так понял в задании, либо я не могу понять чего ты хочешь добиться
58 PortAlex74
 
19.11.18
17:59
(57) Как можно тогда добавить колонки в ТЧ?
59 Ёпрст
 
19.11.18
17:59
Мот надо дин список и произвольный запрос ?
60 Ёпрст
 
19.11.18
18:00
озвучивай ужо свое задание полностью
че гадать то ?
61 Бубка Гоп
 
19.11.18
18:00
Вангую, ТС под "ТЧ" понимает просто таблицу как элемент формы
62 PortAlex74
 
19.11.18
18:02
(60) У тебя почта есть? В профиле нету...
63 Бубка Гоп
 
19.11.18
18:03
(61) + Если так, то просто рисуй ТЗ как в (13)

//Создадим реквизиты ТЗ
    МассивРеквизитов.Очистить();
    Для Каждого Колонка ИЗ ТЗ_рез.Колонки Цикл
        МассивТипов = Новый Массив;
        МассивТипов.Добавить(Колонка.ТипЗначения);
        НоваяКолонка = Новый РеквизитФормы(Колонка.Имя, Новый ОписаниеТипов(МассивТипов), "ТЗ");
        МассивРеквизитов.Добавить(НоваяКолонка);
    КонецЦикла;      
    ИзменитьРеквизиты(МассивРеквизитов);  
    ЗначениеВРеквизитФормы(ТЗ_рез, "ТЗ");
64 Бубка Гоп
 
19.11.18
18:03
(63) +

//Создаем элементы на форме для отображения колонок
    ЭлементТЗ = Элементы.ТЗ;
    Для Каждого Колонка ИЗ ТЗ_рез.Колонки Цикл
        НовыйЭлементФормы = Элементы.Добавить("ТЗ"+Колонка.Имя, Тип("ПолеФормы"), ЭлементТЗ);
        НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлементФормы.ПутьКДанным = "ТЗ." + Колонка.Имя;
    КонецЦикла;
65 PortAlex74
 
19.11.18
18:04
(61) НЕТ, Понимаю Табличную часть...
66 PortAlex74
 
19.11.18
18:09
(64) Скинул на почту.
67 PortAlex74
 
19.11.18
18:11
(64) Что я делаю не так???
68 Мимохожий Однако
 
19.11.18
18:12
(66) Ты сюда выкладывай задание. Не стесняйся.
69 Мимохожий Однако
 
19.11.18
18:13
(67) Не читаешь СП.
70 PortAlex74
 
19.11.18
18:14
(68) Как это сделать-то? Давно-бы уже выложил бы
71 PortAlex74
 
19.11.18
18:16
(69) На почту угнал.
72 PortAlex74
 
19.11.18
18:17
(69) Что такое СП???
73 Мимохожий Однако
 
19.11.18
18:18
(71) В тех. задании речи о табличной части не идёт. Там табличное поле,как элемент формы. Т.е. ты неправильно его понял.
74 Мимохожий Однако
 
19.11.18
18:18
(72) Синтаксис помощник. Ctrl-F1  в режиме Конфигуратор.
75 Мимохожий Однако
 
19.11.18
18:19
Попробуй сделать через СКД
76 Бубка Гоп
 
19.11.18
18:20
(66) у тебя в задании написано про реквизиты формы. ФОРМЫ. См (13). ТЧ тут ни при чем!
77 PortAlex74
 
19.11.18
18:21
(75) Кого? и что? Или я вообще не так что-то понимаю?
78 Бубка Гоп
 
19.11.18
18:22
Либо тролль, либо не надо тебе в 1с
79 Мимохожий Однако
 
19.11.18
18:22
СКД - система компоновки данных. Возьми консоль СКД и в ней построй запрос и схему. Получишь нужный отчет.
80 Мимохожий Однако
 
19.11.18
18:23
Возьми курс валют типовой конфигурации слепи отчет по датам периода.
81 PortAlex74
 
19.11.18
18:26
(76) Тогда подъясни, Добавить колонки в ТЧ можно? Или нет? поэтому я подумал, что надо создать ТЗ она динамическая, и выгрузить в ТЧ. Полностью повторив ТЗ.
82 PortAlex74
 
19.11.18
18:26
(81) + Так правильно????
83 PortAlex74
 
19.11.18
18:27
(80) Это первое задание, надо второе.
84 Мимохожий Однако
 
19.11.18
18:31
(81) Не надо называть табличное поле табличной частью. Это заводит тебя в тупик. Добавить колонки в табличное поле можно,а в табличную часть нельзя. Достаточно посмотреть в СП (синтаксис помощник). Можешь создать ТЗ  и отобразить в табличном ПОЛЕ.
85 Бубка Гоп
 
19.11.18
18:31
(81) тебе не нужна ТЧ
86 Бубка Гоп
 
19.11.18
18:32
(81) тебе просто надо создать элементы формы программно
87 Мимохожий Однако
 
19.11.18
18:32
(85) обалдеть
88 Мимохожий Однако
 
19.11.18
18:38
(85) Последний коммент не к тебе ) Ошибся
89 Fram
 
19.11.18
18:38
(85) ещё раз 10 и дойдет
90 Сергиус
 
19.11.18
19:01
(0)В правой части формы на вкладке Реквизиты создаешь новый элемент(Добавить реквизит), тип - Таблица значений. Там же можно добавлять поля этой таблицы(Добавить колонку реквизита). Как создал, переносишь влево в окно Элементов формы. Вот у тебя и появится Табличное поле на форме(это то, что ты называешь Табличной частью).
91 PortAlex74
 
19.11.18
19:18
(90) Я так и сделал. Оно на поле
92 PortAlex74
 
19.11.18
19:23
(90) Дело в том что оно должно строиться динамически! Количество колонок не известно!!
93 Bigbro
 
19.11.18
19:26
правильный ответ в (34)
94 PortAlex74
 
19.11.18
19:29
(93) (((
95 PortAlex74
 
19.11.18
19:30
(90) Но как в него добавлять колонки? Это подскажите???
96 PortAlex74
 
19.11.18
19:32
(95) Именно динамически! не известно сколько будет колонок! А то создать ручками, большинство сможет!!!
97 hhhh
 
19.11.18
19:37
(96) ну добавляй в цикле. командой ИзменитьРеквизиты
98 PortAlex74
 
19.11.18
19:40
(97) Но как добавить колонку???
99 PortAlex74
 
19.11.18
19:41
(97) Не пойму, как это сделать!
100 Мимохожий Однако
 
19.11.18
20:11
(99) ТЗ.Колонки.Добавить()
Основная теорема систематики: Новые системы плодят новые проблемы.