|
Обход Табличной части документа | ☑ | ||
---|---|---|---|---|
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) Это фича платформы - недокументированное поведение платформы. Установленная связь между собой объекта и его формы сохраняется в "предопределенном" реквизите формы "ДокументОбъект". При изменении этого реквизита неявно инициализируется перезаполнение всех значений формы.
В третьей строке Вашего алгоритма ("Форма = ПолучитьФорму...") допущена ошибка - не указан объект для которого создаётся форма. Вместо этой строки можно/нужно было написать, например, Форма = Объект.ПолучитьФорму(и так далее). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |