|   |   | 
| 
 | Обход Табличной части документа | ☑ | ||
|---|---|---|---|---|
| 0
    
        Lunovar 22.10.15✎ 15:44 | 
        Помогите пожалуйста всю голову уже сломал, в интернете у всех все получается по данному примеру, а у меня нет!
 Запросом получаем данные и записываем в табличную часть документа. Обработка отрабатывает но данные в табличной части документа не появляются. ТабличнаяЧасть = Объект[ИмяТабличнойЧасти]; СсылкаНаОбъект = Объект; Форма = ПолучитьФорму("Документ.ОплатаПраздничныхИВыходныхДнейОрганизаций.Форма.ФормаДокумента"); Форма.Открыть(); Если Не ЗначениеЗаполнено(МесяцЗаполнения) Тогда Сообщить("Не выбран месяц начисления"); Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = ""; Результат = Запрос.Выполнить().Выгрузить(); ТабличнаяЧасть.Очистить(); Для Каждого ЭлементРезультата из Результат Цикл НоваяСтрокаТЧ = Объект[ИмяТабличнойЧасти].Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ, ЭлементРезультата); НоваяСтрокаТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПраздничныхИВыходных; НоваяСтрокаТЧ.Сторно = Ложь; КонецЦикла; | |||
| 1
    
        hhhh 22.10.15✎ 15:49 | 
        ДокументОбъект = РеквизитФормыВЗначение("Объект");
 ДокументОбъект[ИмяТабличнойЧасти].Загрузить(Запрос.Выполнить().Выгрузить()); ЗначениеВРеквизитФормы(ДокументОбъект, "Объект"); всё | |||
| 2
    
        Eugene_life 22.10.15✎ 16:27 | 
        (0) Может быть, обновить форму надо? Ты же ее сперва открыл, а потом заполнил.
 Ну, или сперва заполняй, а потом уже открывай. | |||
| 3
    
        Lunovar 22.10.15✎ 16:30 | 
        Не управляемые формы...     | |||
| 4
    
        Anjo 22.10.15✎ 16:30 | 
        Запрос.Текст = "";  это сам нас оградил от текста запроса или нет текста запроса)     | |||
| 5
    
        hhhh 22.10.15✎ 16:34 | 
        (3) тогда вообще одной строкой
 Объект[ИмяТабличнойЧасти].Загрузить(Запрос.Выполнить().Выгрузить()); | |||
| 6
    
        Lunovar 22.10.15✎ 16:34 | 
        Там большой запрос могу написать просто проблема не в нем и он не оптимальный) стыдно     | |||
| 7
    
        hhhh 22.10.15✎ 16:37 | 
        (6) главное чтобы там поля назывались также как в тч
 типа ЛОЖЬ КАК Сторно, | |||
| 8
    
        Anjo 22.10.15✎ 16:37 | 
        (5) не совсем подходит ...или ему запрос допилить чуть чтобы потом руками ВидРасчета не прописывать, а так конечно эстетично)... а отладчик показывает что нить в результате запроса?     | |||
| 9
    
        hhhh 22.10.15✎ 16:40 | 
        (8) ну это элементарщина уже
 ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПраздничныхИВыходных) КАК ВидРасчета | |||
| 10
    
        Anjo 22.10.15✎ 16:41 | 
        (0) Визуально твой код имеет право на жизнь если не УФ, так что тут пожалуй идти отладчиком и глядеть уже где чего не попадает (9) не это понятно) я ж написал "допилить чуть" =)     | |||
| 11
    
        Lunovar 22.10.15✎ 16:42 | 
        и в результате запроса показывает, и показывает Объект[ИмяТабличнойЧасти] - но тут не заполнено одно поле... попробую заполнить щас его     | |||
| 12
    
        Lunovar 22.10.15✎ 16:44 | 
        я понимаю что имеет право на жизнь я уже пол интернета облазил и везде это написано, поэтому отбезисходности и написал... щас попробую отпишусь...     | |||
| 13
    
        silent person 22.10.15✎ 16:44 | 
        а как открываемая форма связана с объектом в котором заполняешь табличную часть ?     | |||
| 14
    
        Lunovar 22.10.15✎ 16:47 | 
        Да     | |||
| 15
    
        Anjo 22.10.15✎ 16:49 | 
        (13) хороший вопрос... (14) не хороший ответ     | |||
| 16
    
        Anjo 22.10.15✎ 16:51 | 
        (13) тут вообщем не совсем понятно... когда этот код вообще выполняется     | |||
| 17
    
        Serg_1960 22.10.15✎ 16:57 | 
        Третья строка кода - оригинальное получение формы. Так чью же форму автор получил и причем тут Объект?
 "я уже пол интернета облазил и везде это написано" - это была неправильная половина интернета :) | |||
| 18
    
        Anjo 22.10.15✎ 16:57 | 
        (14) в (13) имеется ввиду что у тебя "  Форма = ПолучитьФорму("Документ.ОплатаПраздничныхИВыходныхДнейОрганизаций.Форма.ФормаДокумента");
 Форма.Открыть();" никак не связана с остальным кодом... судя по тому кучку что ты показал... так что хотелось бы узнать что ты конкретно делаешь. | |||
| 19
    
        Lunovar 22.10.15✎ 17:03 | 
        Не-а не помогло..
 Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт ТабличнаяЧасть = Объект[ИмяТабличнойЧасти]; СсылкаНаОбъект = Объект; Форма = ПолучитьФорму("Документ.ОплатаПраздничныхИВыходныхДнейОрганизаций.Форма.ФормаДокумента"); Если Не ЗначениеЗаполнено(МесяцЗаполнения) Тогда Сообщить("Не выбран месяц начисления"); Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КомандировкиОрганизацийРаботникиОрганизации.Ссылка, | КомандировкиОрганизацийРаботникиОрганизации.Сотрудник КАК Сотрудник, | ВЫБОР | КОГДА КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала В | (ВЫБРАТЬ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря | ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь | ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала | И (РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Суббота) | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Воскресенье) | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Праздник))) | ТОГДА КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала | ИНАЧЕ 0 | КОНЕЦ КАК Выходной, | КомандировкиОрганизацийРаботникиОрганизации.Сотрудник.Код, | КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала, | КомандировкиОрганизацийРаботникиОрганизации.ФизЛицо |ПОМЕСТИТЬ ВТ_Командировка |ИЗ | Документ.КомандировкиОрганизаций.РаботникиОрганизации КАК КомандировкиОрганизацийРаботникиОрганизации |ГДЕ | КомандировкиОрганизацийРаботникиОрганизации.Сторно = ЛОЖЬ | И КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала > НАЧАЛОПЕРИОДА(&ДатаРасчета, МЕСЯЦ) | И КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала < КОНЕЦПЕРИОДА(&ДатаРасчета, МЕСЯЦ) | И КомандировкиОрганизацийРаботникиОрганизации.Ссылка.Проведен = ИСТИНА | И КомандировкиОрганизацийРаботникиОрганизации.Ссылка.ПометкаУдаления = ЛОЖЬ | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | КомандировкиОрганизацийРаботникиОрганизации.Ссылка, | КомандировкиОрганизацийРаботникиОрганизации.Сотрудник, | ВЫБОР | КОГДА КомандировкиОрганизацийРаботникиОрганизации.ДатаОкончания В | (ВЫБРАТЬ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря | ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь | ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = КомандировкиОрганизацийРаботникиОрганизации.ДатаОкончания | И (РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Суббота) | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Воскресенье) | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Праздник))) | ТОГДА КомандировкиОрганизацийРаботникиОрганизации.ДатаОкончания | ИНАЧЕ 0 | КОНЕЦ, | КомандировкиОрганизацийРаботникиОрганизации.Сотрудник.Код, | КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала, | КомандировкиОрганизацийРаботникиОрганизации.ФизЛицо |ИЗ | Документ.КомандировкиОрганизаций.РаботникиОрганизации КАК КомандировкиОрганизацийРаботникиОрганизации |ГДЕ | КомандировкиОрганизацийРаботникиОрганизации.Сторно = ЛОЖЬ | И КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала > НАЧАЛОПЕРИОДА(&ДатаРасчета, МЕСЯЦ) | И КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала < КОНЕЦПЕРИОДА(&ДатаРасчета, МЕСЯЦ) | И КомандировкиОрганизацийРаботникиОрганизации.Ссылка.Проведен = ИСТИНА | И КомандировкиОрганизацийРаботникиОрганизации.Ссылка.ПометкаУдаления = ЛОЖЬ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, | ОсновныеНачисленияРаботниковОрганизаций.Регистратор, | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, | ОсновныеНачисленияРаботниковОрганизаций.Сотрудник, | ОсновныеНачисленияРаботниковОрганизаций.Организация, | ОсновныеНачисленияРаботниковОрганизаций.НормаДней, | ОсновныеНачисленияРаботниковОрганизаций.НормаЧасов, | ОсновныеНачисленияРаботниковОрганизаций.ДополнительныеДанные, | ОсновныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации, | ОсновныеНачисленияРаботниковОрганизаций.ДатаНачалаСобытия, | ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка |ПОМЕСТИТЬ ВТ_ОсновныеНачисления |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации | ПО ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник | И ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = ПриемНаРаботуВОрганизациюРаботникиОрганизации.ФизЛицо |ГДЕ | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета = &ВидРасчета | И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации = НАЧАЛОПЕРИОДА(&ДатаРасчета, МЕСЯЦ) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Командировка.Сотрудник КАК Сотрудник, | ВТ_Командировка.Выходной КАК ДатаВыхода, | ВТ_Командировка.СотрудникКод КАК СотрудникКод, | ВТ_ОсновныеНачисления.ПодразделениеОрганизации, | ВТ_ОсновныеНачисления.НормаЧасов / ВТ_ОсновныеНачисления.НормаДней КАК ОтработаноЧасов, | ВТ_ОсновныеНачисления.ДополнительныеДанные КАК Результат, | ВТ_ОсновныеНачисления.ДополнительныеДанные / (ВТ_ОсновныеНачисления.НормаЧасов / ВТ_ОсновныеНачисления.НормаДней) КАК Размер, | ВТ_Командировка.ФизЛицо, | ВТ_ОсновныеНачисления.Ссылка КАК УдалитьПриказ |ИЗ | ВТ_Командировка КАК ВТ_Командировка | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОсновныеНачисления КАК ВТ_ОсновныеНачисления | ПО ВТ_Командировка.Сотрудник = ВТ_ОсновныеНачисления.Сотрудник | И ВТ_Командировка.ДатаНачала = ВТ_ОсновныеНачисления.ДатаНачалаСобытия |ГДЕ | ВТ_Командировка.Выходной <> 0 | |СГРУППИРОВАТЬ ПО | ВТ_ОсновныеНачисления.ПодразделениеОрганизации, | ВТ_Командировка.Сотрудник, | ВТ_Командировка.СотрудникКод, | ВТ_Командировка.Выходной, | ВТ_ОсновныеНачисления.НормаЧасов / ВТ_ОсновныеНачисления.НормаДней, | ВТ_ОсновныеНачисления.ДополнительныеДанные, | ВТ_ОсновныеНачисления.ДополнительныеДанные / (ВТ_ОсновныеНачисления.НормаЧасов / ВТ_ОсновныеНачисления.НормаДней), | ВТ_Командировка.ФизЛицо, | ВТ_ОсновныеНачисления.Ссылка | |УПОРЯДОЧИТЬ ПО | СотрудникКод"; Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднему); Запрос.УстановитьПараметр("ДатаРасчета", МесяцЗаполнения); Результат = Запрос.Выполнить().Выгрузить(); ТабличнаяЧасть.Очистить(); Для Каждого ЭлементРезультата из Результат Цикл НоваяСтрокаТЧ = Объект[ИмяТабличнойЧасти].Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ, ЭлементРезультата); НоваяСтрокаТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПраздничныхИВыходных; НоваяСтрокаТЧ.Сторно = Ложь; //НоваяСтрокаТЧ.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ДоплатаЗаПраздничныеИВыходные; КонецЦикла; Форма.Открыть(); КонецПроцедуры | |||
| 20
    
        asady 22.10.15✎ 17:09 | 
        (0) УФ код где? на клиенте, на сервере?     | |||
| 21
    
        Lunovar 22.10.15✎ 17:11 | 
        На сервере     | |||
| 22
    
        Lunovar 22.10.15✎ 17:15 | 
        (18) Сейчас Обдумаю вашу мысль     | |||
| 23
    
        Serg_1960 22.10.15✎ 17:22 | 
        "Чего тут думать? Трясти надо!"(с)
 ... Форма.ДокументОбъект = Объект; Форма.Открыть(); КонецПроцедуры :)) | |||
| 24
    
        Lunovar 22.10.15✎ 17:34 | 
        (23) Да получилось спасибо!!!!!
 А сможете объяснить почему так? Форма.ДокументОбъект = Объект; | |||
| 25
    
        Lunovar 22.10.15✎ 17:34 | 
        Просто как бы то что я сделал это хорошо еще б понять     | |||
| 26
    
        Anjo 23.10.15✎ 08:01 | 
        (25) Форма должна быть связана с конкретным объектом который ты обрабатываешь... иначе будет открываться пустая форма...никак не связанная с действиями над объектом.
 Или в чем то другом непонимание? | |||
| 27
    
        Serg_1960 23.10.15✎ 09:13 | 
        (24) Это фича платформы - недокументированное поведение платформы. Установленная связь между собой объекта и его формы сохраняется в "предопределенном" реквизите формы "ДокументОбъект". При изменении этого реквизита неявно инициализируется перезаполнение всех значений формы.
 В третьей строке Вашего алгоритма ("Форма = ПолучитьФорму...") допущена ошибка - не указан объект для которого создаётся форма. Вместо этой строки можно/нужно было написать, например, Форма = Объект.ПолучитьФорму(и так далее). | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |