Имя: Пароль:
1C
1С v8
Заполнение ТЧ из доп формы
,
0 Tanis
 
04.07.13
13:03
Добрый день!
Подскажите, пожалуйста, не большой вопросик.

Есть обработка, в ней ТЧ с 1 реквизитом Док.ссылка, и 2 формы.
в 1 форме используется ТЧ, с возможностью добавлять стандартной кнопкой, при появлении строки можно выбрать тип дока и сам док.

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

И теперь загвоздка.

   Форма = ОбработкаОбъект.ПолучитьФорму("Форма");
   Форма.ЭлементыФормы.ТЧ.Значение.Очистить();
   форма.ЭлементыФормы.ОбъектыСинхронизации.Значение.Добавить(Рез.Ссылка);
   //КонецЦикла;
   
   ЭтаФорма.Закрыть();


Значения ТЧ очищает, а добавлять не хочет.
1 drcrasher
 
04.07.13
13:05
СП, срочно СП!
2 Tanis
 
04.07.13
13:06
что такое СП?
3 Любопытная
 
04.07.13
13:11
(2)СинтаксисПомощник
Не надо в элементы формы ничего грузить, надо грузить в объект.
4 fisher
 
04.07.13
13:14
Он в объект грузить пытается. Просто добирается до него через объект формы. А вот добавляет неправильно. Т.е. опять-таки в СП.
5 Tanis
 
04.07.13
13:19
ОбработкаОбъект.ТЧ.Добавить(Рез.Ссылка);

Так и так тоже не проходит... Слишком много фак.параметров
6 fisher
 
04.07.13
13:20
А открыл бы СП - увидел бы, что метод Добавить() у объекта "ТабличнаяЧасть" аргументов не имеет.
7 Любопытная
 
04.07.13
13:20
(5) См (1) :) Курсором встаешь на слово Добавить() в твоем коде и нажимаешь ктрл+ф1. И читаешь)
8 Tanis
 
04.07.13
13:35
знаю как СП открыть.

Но что мне это дало? Либо нельзя, либо что-то все-таки не так делаю, скорее второе
9 Любопытная
 
04.07.13
13:38
О боги...
СтрокаТЧ = ОбработкаОбъект.ТЧ.Добавить();
СтрокаТЧ.Реквизит1 = Рез.Ссылка;
И т.д. и т.п.
Если у тебя в обеих формах одинаковые ТЧ то можно выгрузить/загрузить или ЗаполнитьЗначениеСвойств() поиметь. В общем, способов много. Посмотри в СП табличную часть, строку табличной части, их свойства и методы и подумай, как тебе больше нравится со всем этим работать
10 fisher
 
04.07.13
13:38
(8) Осталось научиться СП читать. Предполагается, что мозги морщить ты уже умеешь. Иначе зря ты это затеял.
11 George Wheels
 
04.07.13
13:41
Читать народ не любит. Любимая фраза одного знакомого "Буду я за тебя свою работу делать".
12 fisher
 
04.07.13
13:48
Уметь работать с документацией - это не вопрос любви. Это необходимое требование для программиста. Даже для одинэсника.
13 Tanis
 
04.07.13
13:50
(9) не заполняет.

(9) и (10) в одной форме добавлял нормально, а это что-то из второй в первую не получается.

Состав.Добавить()  -  что можно из этого увидеть. или может мозги не так сильно сморщились
14 Tanis
 
04.07.13
13:55
может загвоздка в том, что СтрокаТЧ.Реквизит1  Реквизит1 - это Документы.ссылка? а не один вид документа
15 Tanis
 
04.07.13
14:03
Подскажите... Пожалуйста... как добавить?
16 Tanis
 
04.07.13
14:18
Подскажите
17 Tanis
 
04.07.13
14:42
Подскажите, кто-нибудь?
18 fisher
 
04.07.13
14:48
(13) Возвращаемое значение: Тип: Строка табличной части.
Вот после этого должно мгновенно прийти просветление.
Почему не заполняет - отсюда не видно.
Выложи текущий код и распиши источники данных, их типы и типы используемых реквизитов.
19 Tanis
 
04.07.13
15:03
Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ
                      |    Хозрасчетный.Регистратор.Ссылка КАК Ссылка,
                      |    Хозрасчетный.СчетДт,
                      |    Хозрасчетный.СчетКт
                      |ИЗ
                      |    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
                      |ГДЕ
                      |    (Хозрасчетный.СчетДт = &Счет
                      |            ИЛИ Хозрасчетный.СчетКт = &Счет)
                      |    И Хозрасчетный.Регистратор = &Ссылка";
   
   Запрос.УстановитьПараметр("Счет",    ОбработкаОбъект.Счет);
   Запрос.УстановитьПараметр("Ссылка",    ОбработкаОбъект.Ссылка);
   
   Рез = Запрос.Выполнить().Выбрать();
   
   Пока Рез.Следующий() Цикл
       
           Сообщить(Рез.Ссылка);
            ДокументСсылка = ОбработкаОбъект.ТЧ.Добавить();
            ДокументСсылка.ДокументСсылка = Рез.Ссылка;
                   
   КонецЦикла;


Форма - это главная форма.
ТЧ - находится на главной форме.
ДокументСсылка - реквизит ТЧ, тип ДокументСсылка.
20 Tanis
 
04.07.13
15:03
Запрос.УстановитьПараметр("Ссылка",    ОбработкаОбъект.Ссылка);


Это используется для теста.
21 Tanis
 
04.07.13
15:28
Написал, и код и типы. Как написать, чтоб строки добавлялись
22 Tanis
 
04.07.13
15:51
Вопрос же я так понимаю не сложный. Подскажите, пожалуйста...
23 Tanis
 
04.07.13
16:20
Может там какого-нибудь обработчика формы не хватает?
Тогда вопрос какого и что в нем написать?
24 George Wheels
 
04.07.13
16:35
(20) А в регистраторах у Хозрасчетного есть ОбработкаОбъект?
25 Tanis
 
04.07.13
16:39
Решено.

           Форма = ОбработкаОбъект.ПолучитьФорму("Форма");
           СтрокаТЧ = форма.ЭлементыФормы.ОбъектыСинхронизации.Значение.Добавить();
           СтрокаТЧ.ДокументСсылка = Рез.Ссылка;
26 George Wheels
 
04.07.13
16:44
(25) В элементы формы писать смысла нет. Надо писать в ТЧ а затем для отображения данных на форме перечитать объект.
27 Tanis
 
04.07.13
16:48
У меня 2 формы, в одной ТЧ, во второй выборка по параметрам... и надо было чтоб из второй попадало в ТЧ первой.

как советовала (9) и близко не подходит.

Надо срочно, поэтому получилось так...

(26) почему смысла нет писать в элементы формы?
28 George Wheels
 
04.07.13
16:53
Я с УФ работаю (скоро все там будут). Здесь элемент формы и реквизит объекта вещи разные. (27)
29 Tanis
 
04.07.13
17:01
Да уж.... "Все там будут" не очень то прельщает...
30 Любопытная
 
04.07.13
17:14
(27) Что значит - и близко нет? Ничего, что ты практически мной написанный код привел? Я же не знаю как у тебя называются табличная часть обработки и какие у нее реквизиты. Естественно мой код в связи с этим в такм виде работать не будет.
Не пишут люди значения через формы. Форма существует для интерактивного общения, для программных вещей есть объект.
31 Cyberhawk
 
04.07.13
17:28
Форма объекта - это окно, через которое виднеются данные объекта. Чтоб сходить в ларек за окном за пивом, ты же выходишь на улицу, а не работаешь с окном
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn