|
v7: Отчет в Рарус:Автотранспорт ред.5.506 | ☑ | ||
---|---|---|---|---|
0
Nik_Home
31.07.19
✎
14:43
|
Ситуация: В Рарус:Автотранспорт ред 5.506 есть отчет по форме 8 (Меню-Транспорт-Отчеты-Диспетчерская-Реестр путевых листов). Там несколько печатных форм, одна, форма ТМФ 8 выбирается для печати и извлекается из Общих таблиц конфигуратора.
Пользователям понадобилось в секции "строка" формы ТМФ 8 в свободной колонке (например, Примечание) отображать наименование Контрагента (Закзчика). Контрагент записывается в поле ("В распоряжение") по по данному путевому листу (формы ОбщихТаблиц ТМФ 4-С, ТМФ 4-П) и должен извлекаться оттуда в форму ТМФ 8 Отчета. Отчет строится и выводится с помощью Запросов языка 1С. Я бьюсь и не могу привязать в строку формы ТМФ 8 Контрагента (Заказчика) из табличной части данного путевого листа. Прошу помощи гуру в данной сфере. |
|||
1
Nik_Home
31.07.19
✎
15:03
|
//ПечатьФормы8()
// Параметры: // Возвращаемое значение: // Описание: печать журнала учета движения путевых листов Процедура ПечатьФормы8() Перем тблТаб; Перем докПЛ; Перем Контрагент; Перем спрВодитель, спрАвтомобиль; //спрКонтрагент;// Перем стрТабельный, стрФИО, стрГаражный; //стрКонтрагент;// Перем стрВОбласть; тблТаб = СоздатьОбъект("Таблица"); тблТаб.ИсходнаяТаблица("ТМФ 8"); тблТаб.Опции(0,0,0,0,"ОпцииПечатиТМФ8","ОкноТМФ8"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать1) |Период с (пвДатаНач) по (пвДатаКон); |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |ПЛ = Документ.аПЛ_Повременный.ТекущийДокумент, Документ.аПЛ_Сдельный.ТекущийДокумент, Документ.аПЛ_Легковой.ТекущийДокумент, Документ.аПЛ_Специальный.ТекущийДокумент, Документ.аПЛ_Строительный.ТекущийДокумент, Документ.аПЛ_Междугородный.ТекущийДокумент; |ВидДок = Документ.аПЛ_Повременный.ВидДокумента, Документ.аПЛ_Сдельный.ВидДокумента, Документ.аПЛ_Легковой.ВидДокумента, Документ.аПЛ_Специальный.ВидДокумента, Документ.аПЛ_Строительный.ВидДокумента, Документ.аПЛ_Междугородный.ВидДокумента; |ТипАвтомобиля = Документ.аПЛ_Повременный.Автомобиль.ТипТС, Документ.аПЛ_Сдельный.Автомобиль.ТипТС, Документ.аПЛ_Легковой.Автомобиль.ТипТС, Документ.аПЛ_Специальный.Автомобиль.ТипТС, Документ.аПЛ_Строительный.Автомобиль.ТипТС, Документ.аПЛ_Междугородный.Автомобиль.ТипТС; |ВидАвтомобиля = Документ.аПЛ_Повременный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Сдельный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Легковой.Автомобиль.Модель.ВидТС, Документ.аПЛ_Специальный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Строительный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Междугородный.Автомобиль.Модель.ВидТС; |Автомобиль = Документ.аПЛ_Повременный.Автомобиль, Документ.аПЛ_Сдельный.Автомобиль, Документ.аПЛ_Легковой.Автомобиль, Документ.аПЛ_Специальный.Автомобиль, Документ.аПЛ_Строительный.Автомобиль, Документ.аПЛ_Междугородный.Автомобиль; |Водитель = Документ.аПЛ_Повременный.Водитель, Документ.аПЛ_Сдельный.Водитель, Документ.аПЛ_Легковой.Водитель, Документ.аПЛ_Специальный.Водитель, Документ.аПЛ_Строительный.Водитель, Документ.аПЛ_Междугородный.Водитель; |Контрагент = Документ.аПЛ_Повременный.Контрагент, Документ.аПЛ_Сдельный.Контрагент; |Группировка ПЛ упорядочить по ПЛ.ДатаДок, ПЛ.ВремяДок; |"//}}ЗАПРОС ; //Добавлял Контрагента в Запрос формы ТМФ 8// |
|||
2
Nik_Home
31.07.19
✎
15:09
|
//Продолжение текста модуля для формы ТМФ 8//
Если (флТолькоИспользуемые = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Автомобиль.Собственное <> 3);"; КонецЕсли; Если (флТолькоИспользуемые = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Автомобиль.Собственное <> 3);"; КонецЕсли; Если пвТипПЛ.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Тип путевого листа: " + пвТипПЛ + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидДок = пвТипПЛ);"; КонецЕсли; Если пвТипАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Тип автотранспорта: " + пвТипАвтомобиля.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ТипАвтомобиля В пвТипАвтомобиля);"; КонецЕсли; Если пвВидАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Вид автотранспорта: " + пвВидАвтомобиля + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидАвтомобиля = пвВидАвтомобиля);"; КонецЕсли; Если пвАвтомобиль.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Автомобиль: " + пвАвтомобиль.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Автомобиль В пвАвтомобиль);"; КонецЕсли; Если пвВодитель.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Водитель: " + пвВодитель.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Водитель В пвВодитель);"; КонецЕсли; //***********************вставка КН**************************************** //Если Контрагент.Выбран(докПЛ.Контрагент) = 1 Тогда //СтрокаВывода = СтрокаВывода + "Контрагент: " + докПЛ.Контрагент.Наименование + " "; //ТекстЗапроса = ТекстЗапроса + "Условие(докПЛ.Контрагент);"; //КонецЕсли; //************************************************************** Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Запрос не выполнен."); Возврат; КонецЕсли; тблТаб.ВывестиСекцию("Обложка"); стрВОбласть = СокрЛП(Константа.НазваниеОрганизации) + ", " + СокрЛП(Константа.АдресОрганизации) + ", " + СокрЛП(Константа.ТелефоныОрганизации); тблТаб.Область("Организация").Текст = стрВОбласть; тблТаб.Область("Период").Текст = "ЗА ПЕРИОД С " + пвДатаНач + " ПО " + пвДатаКон; тблТаб.НоваяСтраница(); тблТаб.ВывестиСекцию("Шапка"); Пока Запрос.Группировка(1) = 1 Цикл стрТабельный = ""; стрФИО = ""; стрГаражный = ""; стрКонтрагент = ""; докПЛ = Запрос.ПЛ; спрВодитель = докПЛ.Водитель; спрАвтомобиль = докПЛ.Автомобиль; спрКонтрагент = докПЛ.Контрагент; Если ПустоеЗначение(докПЛ.Водитель) = 0 Тогда стрТабельный = спрВодитель.Код; стрФИО = спрВодитель.Наименование; КонецЕсли; Если ПустоеЗначение(спрАвтомобиль) = 0 Тогда стрГаражный = спрАвтомобиль.Код; КонецЕсли; //****************************Вставка КН************ Если ПустоеЗначение(спрКонтрагент) = 0 Тогда стрКонтрагент = спрКонтрагент.Код; КонецЕсли; //************************************************* тблТаб.ВывестиСекцию("Строка"); КонецЦикла; тблТаб.ПараметрыСтраницы(2,1,0,20,10,10,10,1,1); тблТаб.ТолькоПросмотр(1); тблТаб.Показать("Форма №8"); КонецПроцедуры //ПечатьФормы8 // |
|||
3
Ёпрст
31.07.19
✎
15:40
|
(0) И ?
в макете в нужной ячейке напиши стрКонтрагент и поставь тип ячейки - выражение усё. |
|||
4
Ёпрст
31.07.19
✎
15:40
|
и вот эти вещи :
докПЛ = Запрос.ПЛ; спрВодитель = докПЛ.Водитель; спрАвтомобиль = докПЛ.Автомобиль; спрКонтрагент = докПЛ.Контрагент; лучше из запроса выгребать сразу.. |
|||
5
Kigo_Kigo
31.07.19
✎
17:22
|
(3) Я так понимаю, что этот макет используется и другими метаданными, раз он находится в общих таблицах, по этому для них он поломается, автор скопируй эту таблицу и используй новую
|
|||
6
Ёпрст
31.07.19
✎
17:51
|
(5) зачем ?
Тогда можно так, например: вывел секцию, посмотрел ВысотуТаблицы, далее через Область установил нужный текст уже сформированной таблице. Это ежели макет не править. |
|||
7
Kigo_Kigo
31.07.19
✎
18:13
|
(6) ты думаешь автор понял что ты ему сейчас написал, если он в тс такие вопросы задает?
|
|||
8
Nik_Home
31.07.19
✎
19:25
|
Спасибо за отклик, уважаемые.
Вот макет формы 8: Водитель Подпись Номер путевого листа Дата выдачи путевого листа фамилия, имя, отчество табельный номер Гаражный номер водителя в получении путевого листа диспетчера и дата приемки путевого листа и документов от водителя бухгалтера и дата приемки путевого листа Заказчик Примечание 1 2 3 4 5 6 7 8 9 10 докПЛ.НомерДок докПЛ.ДатаПЛ стрФИО стрТабельный стрГаражный докПЛ.Контрагент До колонки "Заказчик" (моя переделка формы 8 из Общих таблиц) все работает, а выражение "докПЛ.Контрагент" не подходит. |
|||
9
Nik_Home
31.07.19
✎
19:47
|
Сейчас я не работе (там ключ защиты). Пользовался компонентой 7.7 "Бухгалтерия". Поэтому форма макета как-то скучилась, т.е. макет в формате .ert на внешней компоненте (скопировал туда отчет "Реестр ПЛ") правильно не перенесся. И диалог формы не копируется. Завтра на работе попробую ваши предложения и еще отправлю. Тут у меня стоит Win7, а на работе "хрюша" (индексы разные). Я не сильно заумно?
|
|||
10
Ёпрст
31.07.19
✎
21:14
|
(8) если не править макет, то так:
|
|||
11
Kigo_Kigo
31.07.19
✎
22:56
|
(10) ты мне скажи в чем сокраментальный смысл городить все это , когда можно добавить таблицу и вместо строки
Таб.ИспользоватьТаблицу("Таблица"); Вставить Таб.ИспользоватьТаблицу("ТаблицаНовая"); ??? а завтра надо будет еще что то добавть и переправить, опять джунгли городить? не понимаю.. |
|||
12
Ёпрст
31.07.19
✎
23:00
|
(11) можно и так. У нас так-то на 7.7 все печ формы были внешними всегда. Общие макеты, разве что для хранения вк использовались и служебных данных.
|
|||
13
Nik_Home
01.08.19
✎
09:18
|
Учел ваши рекомендации, уважаемые, пока не все.
Приобрел перечень синтаксических ошибок: //*************************************** Это уже ошибка при печати формы из программы. //************************************************ докПЛ = Запрос.ПЛ; {Отчет.аРеестрПутевыхЛистов.Форма.Модуль(115)}: Поле агрегатного объекта не обнаружено (ПЛ) В цикле "Запрос.Группировка(1)"данный оператор есть //******************************************************* В теле Процедуры ПечатьФормы8() ошибки Перем спрВодитель, спрАвтомобиль; спрКонтрагент<<?>>; {Отчет.аРеестрПутевыхЛистов.Форма.Модуль(91)}: Переменная не определена (спрКонтрагент) <<?>>Перем стрТабельный, стрФИО, стрГаражный; стрКонтрагент; {Отчет.аРеестрПутевыхЛистов.Форма.Модуль(92)}: Объявления переменных должны быть расположены в начале модуля, процедуры или функции Перем стрТабельный, стрФИО, стрГаражный; стрКонтрагент<<?>>; {Отчет.аРеестрПутевыхЛистов.Форма.Модуль(92)}: Переменная не определена (стрКонтрагент) <<?>>Перем стрВОбласть; {Отчет.аРеестрПутевыхЛистов.Форма.Модуль(93)}: Объявления переменных должны быть расположены в начале модуля, процедуры или функции При проверке модуля обнаружены синтаксические ошибки! //********************************************************** Закоментировал перем "спрКонтрагент" и "стрКонтрагент", ошибки пропали. //********************************************************* |
|||
14
Nik_Home
01.08.19
✎
09:23
|
Сейсас мотуль стал такой:
//****************************************************************************** //кнИнтнервалДат() // Параметры: // Возвращаемое значение: // Описание: вызывается при нажатии кнопки с одноименным идентификатором Процедура кнИнтервалДат() Перем чИнтервал; // разница в датах пвДатаНач = глИнтервалДат(пвДатаНач, пвДатаКон,Контекст); чИнтервал = глРазницаВДатах(пвДатаНач, пвДатаКон); пвДатаКон = пвДатаНач + чИнтервал; КонецПроцедуры //кнИнтервалДат Процедура кнСформировать() Таб = СоздатьОбъект("Таблица"); НПП=0; СтрокаВывода = ""; ДатаНач = пвДатаНач; ДатаКон = пвДатаКон; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с (ДатаНач) по (ДатаКон); |Обрабатывать НеПомеченныеНаУдаление; |ПЛ = Документ.аПЛ_Повременный.ТекущийДокумент, Документ.аПЛ_Сдельный.ТекущийДокумент, Документ.аПЛ_Легковой.ТекущийДокумент, Документ.аПЛ_Специальный.ТекущийДокумент, Документ.аПЛ_Строительный.ТекущийДокумент, Документ.аПЛ_Междугородный.ТекущийДокумент; |ВидДок = Документ.аПЛ_Повременный.ВидДокумента, Документ.аПЛ_Сдельный.ВидДокумента, Документ.аПЛ_Легковой.ВидДокумента, Документ.аПЛ_Специальный.ВидДокумента, Документ.аПЛ_Строительный.ВидДокумента, Документ.аПЛ_Междугородный.ВидДокумента; |ТипАвтомобиля = Документ.аПЛ_Повременный.Автомобиль.ТипТС, Документ.аПЛ_Сдельный.Автомобиль.ТипТС, Документ.аПЛ_Легковой.Автомобиль.ТипТС, Документ.аПЛ_Специальный.Автомобиль.ТипТС, Документ.аПЛ_Строительный.Автомобиль.ТипТС, Документ.аПЛ_Междугородный.Автомобиль.ТипТС; |ВидАвтомобиля = Документ.аПЛ_Повременный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Сдельный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Легковой.Автомобиль.Модель.ВидТС, Документ.аПЛ_Специальный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Строительный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Междугородный.Автомобиль.Модель.ВидТС; |Автомобиль = Документ.аПЛ_Повременный.Автомобиль, Документ.аПЛ_Сдельный.Автомобиль, Документ.аПЛ_Легковой.Автомобиль, Документ.аПЛ_Специальный.Автомобиль, Документ.аПЛ_Строительный.Автомобиль, Документ.аПЛ_Междугородный.Автомобиль; |Водитель = Документ.аПЛ_Повременный.Водитель, Документ.аПЛ_Сдельный.Водитель, Документ.аПЛ_Легковой.Водитель, Документ.аПЛ_Специальный.Водитель, Документ.аПЛ_Строительный.Водитель, Документ.аПЛ_Междугородный.Водитель; |Контрагент = Документ.аПЛ_Повременный.Контрагент.Наименование, Документ.аПЛ_Сдельный.Контрагент.Наименование; |Группировка ПЛ упорядочить по ПЛ.ДатаДок, ПЛ.ВремяДок; |"//}}ЗАПРОС ; Если (флТолькоИспользуемые = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Автомобиль.Собственное = 1);"; СтрокаВывода = СтрокаВывода + " Только собственные а/м"; КонецЕсли; Если пвТипПЛ.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + " Тип путевого листа: " + пвТипПЛ + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидДок = пвТипПЛ);"; КонецЕсли; Если пвТипАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + " Тип автотранспорта: " + пвТипАвтомобиля.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ТипАвтомобиля В пвТипАвтомобиля);"; КонецЕсли; Если пвВидАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + " Вид автотранспорта: " + пвВидАвтомобиля + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидАвтомобиля = пвВидАвтомобиля);"; КонецЕсли; Если пвАвтомобиль.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + " Автомобиль: " + пвАвтомобиль.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Автомобиль В пвАвтомобиль);"; КонецЕсли; Если пвВодитель.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + " Водитель: " + пвВодитель.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Водитель В пвВодитель);"; КонецЕсли; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Запрос не выполнен."); Возврат; КонецЕсли; Таб.ВывестиСекцию("Заголовок"); Таб.ВывестиСекцию("Шапка"); Пока Запрос.Группировка(1) = 1 Цикл НПП = НПП + 1; ПЛ = Запрос.ПЛ; Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Опции(0,0,5,0,"опцРеестрПЛ","окнРеестрПЛ"); Таб.ПараметрыСтраницы(2,,,20,10,20,20,10,10,1,); Таб.Показать("Реестр путевых листов",""); КонецПроцедуры //кнСформировать //***************************обновлКН*************************************************** //ПечатьФормы8() // Параметры: // Возвращаемое значение: // Описание: печать журнала учета движения путевых листов Процедура ПечатьФормы8() Перем тблТаб; Перем ПЛ; //вставка КН ПЛ - Путевой лист****// Перем докПЛ; Перем Контрагент; Перем спрВодитель, спрАвтомобиль; //спрКонтрагент;// Перем стрТабельный, стрФИО, стрГаражный; //стрКонтрагент;// Перем стрВОбласть; тблТаб = СоздатьОбъект("Таблица"); тблТаб.ИсходнаяТаблица("ТМФ 8"); тблТаб.Опции(0,0,0,0,"ОпцииПечатиТМФ8","ОкноТМФ8"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать1) |Период с (пвДатаНач) по (пвДатаКон); |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |ПЛ = Документ.аПЛ_Повременный.ТекущийДокумент, Документ.аПЛ_Сдельный.ТекущийДокумент, Документ.аПЛ_Легковой.ТекущийДокумент, Документ.аПЛ_Специальный.ТекущийДокумент, Документ.аПЛ_Строительный.ТекущийДокумент, Документ.аПЛ_Междугородный.ТекущийДокумент; |ВидДок = Документ.аПЛ_Повременный.ВидДокумента, Документ.аПЛ_Сдельный.ВидДокумента, Документ.аПЛ_Легковой.ВидДокумента, Документ.аПЛ_Специальный.ВидДокумента, Документ.аПЛ_Строительный.ВидДокумента, Документ.аПЛ_Междугородный.ВидДокумента; |ТипАвтомобиля = Документ.аПЛ_Повременный.Автомобиль.ТипТС, Документ.аПЛ_Сдельный.Автомобиль.ТипТС, Документ.аПЛ_Легковой.Автомобиль.ТипТС, Документ.аПЛ_Специальный.Автомобиль.ТипТС, Документ.аПЛ_Строительный.Автомобиль.ТипТС, Документ.аПЛ_Междугородный.Автомобиль.ТипТС; |ВидАвтомобиля = Документ.аПЛ_Повременный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Сдельный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Легковой.Автомобиль.Модель.ВидТС, Документ.аПЛ_Специальный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Строительный.Автомобиль.Модель.ВидТС, Документ.аПЛ_Междугородный.Автомобиль.Модель.ВидТС; |Автомобиль = Документ.аПЛ_Повременный.Автомобиль, Документ.аПЛ_Сдельный.Автомобиль, Документ.аПЛ_Легковой.Автомобиль, Документ.аПЛ_Специальный.Автомобиль, Документ.аПЛ_Строительный.Автомобиль, Документ.аПЛ_Междугородный.Автомобиль; |Водитель = Документ.аПЛ_Повременный.Водитель, Документ.аПЛ_Сдельный.Водитель, Документ.аПЛ_Легковой.Водитель, Документ.аПЛ_Специальный.Водитель, Документ.аПЛ_Строительный.Водитель, Документ.аПЛ_Междугородный.Водитель; |Контрагент = Документ.аПЛ_Повременный.Контрагент, Документ.аПЛ_Сдельный.Контрагент; |Группировка ПЛ упорядочить по ПЛ.ДатаДок, ПЛ.ВремяДок; |"//}}ЗАПРОС ; //****************Вставка КН**************************** докПЛ = Запрос.ПЛ; спрВодитель = докПЛ.Водитель; спрАвтомобиль = докПЛ.Автомобиль; спрКонтрагент = докПЛ.Контрагент; //****************************************************** Если (флТолькоИспользуемые = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Автомобиль.Собственное <> 3);"; КонецЕсли; Если (флТолькоИспользуемые = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Автомобиль.Собственное <> 3);"; КонецЕсли; Если пвТипПЛ.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Тип путевого листа: " + пвТипПЛ + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидДок = пвТипПЛ);"; КонецЕсли; Если пвТипАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Тип автотранспорта: " + пвТипАвтомобиля.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ТипАвтомобиля В пвТипАвтомобиля);"; КонецЕсли; Если пвВидАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Вид автотранспорта: " + пвВидАвтомобиля + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидАвтомобиля = пвВидАвтомобиля);"; КонецЕсли; Если пвАвтомобиль.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Автомобиль: " + пвАвтомобиль.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Автомобиль В пвАвтомобиль);"; КонецЕсли; Если пвВодитель.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Водитель: " + пвВодитель.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Водитель В пвВодитель);"; КонецЕсли; //***********************вставка КН**************************************** //Если Контрагент.Выбран(докПЛ.Контрагент) = 1 Тогда //СтрокаВывода = СтрокаВывода + "Контрагент: " + докПЛ.Контрагент.Наименование + " "; //ТекстЗапроса = ТекстЗапроса + "Условие(докПЛ.Контрагент);"; //КонецЕсли; //************************************************************** Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Запрос не выполнен."); Возврат; КонецЕсли; тблТаб.ВывестиСекцию("Обложка"); стрВОбласть = СокрЛП(Константа.НазваниеОрганизации) + ", " + СокрЛП(Константа.АдресОрганизации) + ", " + СокрЛП(Константа.ТелефоныОрганизации); тблТаб.Область("Организация").Текст = стрВОбласть; тблТаб.Область("Период").Текст = "ЗА ПЕРИОД С " + пвДатаНач + " ПО " + пвДатаКон; тблТаб.НоваяСтраница(); тблТаб.ВывестиСекцию("Шапка"); Пока Запрос.Группировка(1) = 1 Цикл стрТабельный = ""; стрФИО = ""; стрГаражный = ""; стрКонтрагент = ""; докПЛ = Запрос.ПЛ; спрВодитель = докПЛ.Водитель; спрАвтомобиль = докПЛ.Автомобиль; спрКонтрагент = докПЛ.Контрагент; Если ПустоеЗначение(докПЛ.Водитель) = 0 Тогда стрТабельный = спрВодитель.Код; стрФИО = спрВодитель.Наименование; КонецЕсли; Если ПустоеЗначение(спрАвтомобиль) = 0 Тогда стрГаражный = спрАвтомобиль.Код; КонецЕсли; //****************************Вставка КН************ Если ПустоеЗначение(спрКонтрагент) = 0 Тогда стрКонтрагент = спрКонтрагент.Код; КонецЕсли; //************************************************* тблТаб.ВывестиСекцию("Строка"); КонецЦикла; тблТаб.ПараметрыСтраницы(2,1,0,20,10,10,10,1,1); тблТаб.ТолькоПросмотр(1); тблТаб.Показать("Форма №8"); КонецПроцедуры //ПечатьФормы8 //****************************************************************************** //ПечатьФормыЭСМ6() // Параметры: // Возвращаемое значение: // Описание: Процедура ПечатьФормыЭСМ6(чПечать) Перем ч[31]; Перем докПЛ; Перем спрВодитель, спрАвтомобиль; Перем стрТабельный, стрФИО, стрГаражный; Перем стрВОбласть; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ТСМ ЭСМ-6"); Если чПечать = 3 Тогда // печать обложки Таб.ВывестиСекцию("Обложка|Начало"); стрВОбласть = СокрЛП(Константа.НазваниеОрганизации) + ", " + СокрЛП(Константа.АдресОрганизации) + ", " + СокрЛП(Константа.ТелефоныОрганизации); Таб.Область("Организация").Текст = стрВОбласть; Таб.Область("ОрганизацияОКПО").Текст =СокрЛП(Константа.КодОКПО); Таб.Область("Год").Текст = "ЗА " + ДатаГод(пвДатаНач) + " ГОД."; Иначе НПП=0; СтрокаВывода = ""; ДатаНач = пвДатаНач; ДатаКон = пвДатаКон; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать2) |Период с (ДатаНач) по (ДатаКон); |Обрабатывать НеПомеченныеНаУдаление; |ВидДок = Документ.аПЛ_Строительный.ВидДокумента; |ТипАвтомобиля = Документ.аПЛ_Строительный.Автомобиль.ТипТС; |ВидАвтомобиля = Документ.аПЛ_Строительный.Автомобиль.Модель.ВидТС; |Автомобиль = Документ.аПЛ_Строительный.Автомобиль; |Объект = Документ.аПЛ_Строительный.Адрес; |Водитель = Документ.аПЛ_Строительный.Водитель; |Отработано = Документ.аПЛ_Строительный.Отработано; |Функция ОтработаноСумма = Сумма(Отработано); |Группировка Месяц; |Группировка Автомобиль; |Группировка Объект упорядочить по Объект.Наименование; //все вошедшиевзапрос; |Группировка День; |"//}}ЗАПРОС ; Если (флТолькоИспользуемые = 1) Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Автомобиль.Собственное <> 3);"; КонецЕсли; Если пвТипПЛ.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Тип путевого листа: " + пвТипПЛ + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидДок = пвТипПЛ);"; КонецЕсли; Если пвТипАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Тип автотранспорта: " + пвТипАвтомобиля.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ТипАвтомобиля В пвТипАвтомобиля);"; КонецЕсли; Если пвВидАвтомобиля.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Вид автотранспорта: " + пвВидАвтомобиля + " "; ТекстЗапроса = ТекстЗапроса + "Условие(ВидАвтомобиля = пвВидАвтомобиля);"; КонецЕсли; Если пвАвтомобиль.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Автомобиль: " + пвАвтомобиль.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Автомобиль В пвАвтомобиль);"; КонецЕсли; Если пвВодитель.Выбран() = 1 Тогда СтрокаВывода = СтрокаВывода + "Водитель: " + пвВодитель.Наименование + " "; ТекстЗапроса = ТекстЗапроса + "Условие(Водитель В пвВодитель);"; КонецЕсли; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Запрос не выполнен."); Возврат; КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл //месяц Месяц = СокрЛП(Запрос.Месяц); Если чПечать = 1 Тогда Таб.ВывестиСекцию("Шапка|Начало"); ИначеЕсли чПечать = 2 Тогда Таб.ВывестиСекцию("Шапка|Окончание"); КонецЕсли; НПП = 0; Пока Запрос.Группировка(2) = 1 Цикл //автомобиль спрАвтомобиль = Запрос.Автомобиль; стрНаименование = спрАвтомобиль.Наименование; стрМарка = глПредставлениеМоделиАвто(спрАвтомобиль); стрИнвНомер = спрАвтомобиль.Код; стрГодВыпуска = спрАвтомобиль.ГодВыпуска; Если стрГодВыпуска = 0 Тогда стрГодВыпуска = ""; КонецЕсли; Пока Запрос.Группировка(3) = 1 Цикл //объект НПП = НПП + 1; Попытка стрОбъект = Запрос.Объект.Наименование; Исключение стрОбъект = ""; КонецПопытки; Для чСч = 1 По 31 Цикл ч[чСч] = 0; КонецЦикла; чЧасы = 0; чДни = 0; Пока Запрос.Группировка(4) = 1 Цикл //день чСч = ДатаЧисло(Запрос.День); ч[чСч] = Запрос.Отработано; чЧасы = чЧасы + ч[чСч]; чДни = чДни + 1; КонецЦикла; Если чПечать = 1 Тогда Таб.ВывестиСекцию("Строка|Начало"); ИначеЕсли чПечать = 2 Тогда Таб.ВывестиСекцию("Строка|Окончание"); КонецЕсли; КонецЦикла; КонецЦикла; Таб.НоваяСтраница(); КонецЦикла; КонецЕсли; Таб.Опции(0,0,0,0,"опцЭСМ6","окнЭСМ6"); Таб.ПараметрыСтраницы(2,,,10,10,10,10); Таб.ТолькоПросмотр(1); Таб.Показать("Форма ЭСМ-6",""); КонецПроцедуры //ПечатьФормыЭСМ6 //****************************************************************************** //кнВниз() // Параметры: // Возвращаемое значение: // Описание: вызывается при нажатии кнопки с одноименным идентификатором Процедура кнВниз() Перем Меню, ПунткМеню, стрПункта; ПунктМеню = 0; Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("Сформировать реестр"); Меню.ДобавитьЗначение("Сформировать и закрыть"); Меню.ДобавитьЗначение("Форма №8"); Меню.ДобавитьЗначение("Форма ЭСМ-6, четные"); Меню.ДобавитьЗначение("Форма ЭСМ-6, нечетные"); Меню.ДобавитьЗначение("Форма ЭСМ-6, титульный"); Меню.ВыбратьЗначение(стрПункта,,ПунктМеню,,1); Если ПунктМеню = 1 Тогда кнСформировать(); ИначеЕсли ПунктМеню = 2 Тогда кнСформировать(); Форма.Закрыть(); ИначеЕсли ПунктМеню = 3 Тогда ПечатьФормы8(); ИначеЕсли ПунктМеню = 4 Тогда ПечатьФормыЭСМ6(1); ИначеЕсли ПунктМеню = 5 Тогда ПечатьФормыЭСМ6(2); ИначеЕсли ПунктМеню = 6 Тогда ПечатьФормыЭСМ6(3); КонецЕсли; КонецПроцедуры //кнВниз //****************************************************************************** // Тело модуля //****************************************************************************** Если (ПустоеЗначение(пвДатаНач) = 1) Тогда пвДатаНач = Константа.ОсновнаяДатаНачалаОтчета; КонецЕсли; Если (ПустоеЗначение(пвДатаКон) = 1) Тогда пвДатаКон = ТекущаяДата(); КонецЕсли; //************************************************************** Ошибок нет. |
|||
15
Nik_Home
01.08.19
✎
09:54
|
При формировании формы 8 в программе опять выскочила ошибка.
Это из рекомендованной подстановки операторов. Закоментирую. В теле модуля этот оператор записан. //************************************************************ докПЛ = Запрос.ПЛ; {Отчет.аРеестрПутевыхЛистов.Форма.Модуль(116)}: Поле агрегатного объекта не обнаружено (ПЛ) //************************************************************ Строка с выражениями для печати формы 8: "1"- докПЛ.НомерДок, "2"-докПЛ.ДатаПЛ, "3"- стрФИО, "4"-стрТабельный, "5"- стрГаражный , "9"- стр.Контрагент //моя подстанока и моя засада// С 1 по 5 строки работают нормально В диалоге форм реестра нет поля ввода Контрагента, он должен выделяться из данного ПЛ. Думаю дальше. |
|||
16
Nik_Home
01.08.19
✎
10:20
|
Похоже, эту процедуру дописывали в глобальный модуль разработчики Раруса.
Вопрос: Можно ли как-то Контрагента вставить в отчет (форма 8) с помощью этой процедуры глобального модуля? Там оператор (ДокОсн="") Только в формах ПЛ Контрагент находится в реквизитах табличной части путевых листов, а не в реквизитах шапки. //************************************************************* /////////////////////////////////////////////////////////////////////////// // Процедура глПриВыбореКонтрагента(Контрагент, Договор, ДокОсн="") Экспорт Если (ПустоеЗначение(Договор) = 1) и (ПустоеЗначение(ДокОсн) = 1) Тогда Договор = Контрагент.ОсновнойДоговор; Иначе Если Договор.Владелец <> Контрагент Тогда Договор = Контрагент.ОсновнойДоговор; КонецЕсли; КонецЕсли; Если ПустоеЗначение(ДокОсн) = 0 Тогда Если Метаданные.Документ(ДокОсн.Вид()).РеквизитШапки("Контрагент").Выбран() = 1 Тогда Если ДокОсн.Контрагент <> Контрагент Тогда ДокОсн = ""; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры //глПриВыбореКонтрагента //**************************************************************** |
|||
17
Kigo_Kigo
01.08.19
✎
11:30
|
(16) ход ваших мыслей не понятен от слова совсем
если так хочется из Процедура глПриВыбореКонтрагента(Контрагент, Договор, ДокОсн="") Экспорт то в глобальние Перем КонтрагентДляФормы8 Экспорт; глПриВыбореКонтрагента(Контрагент, Договор, ДокОсн="") КонтрагентДляФормы8 = Контрагент; Дальше (3) но вместо стрКонтрагент - КонтрагентДляФормы8 |
|||
18
Nik_Home
01.08.19
✎
13:54
|
Уважаемый, Kigo_Kigo!
В глобальный модуль я залез потому, что в модулях формы ПЛ увидел строки: ******************************************************** // СПЕЦИАЛЬНЫЕ ФУНКЦИИ МОДУЛЯ ФОРМЫ ДОКУМЕНТА ************************************* Функция ПриВыбореЗначения(Об="") // Рекурсивная Функция обработки всех экранных объектов. Если Об="" Тогда Об=Форма.АктивныйЭлемент(); КонецЕсли; ............................................. ИначеЕсли Об="Контрагент" Тогда КонтекстДокумента = глВзятьКонтекст(Контекст); глУстановитьАдресКонтрагентаПоУмолчанию(КонтекстДокумента, Контрагент, 1, Адрес); // подача .............................................. Если (Значение = "Лицевая сторона") или (Значение = "Все") Тогда Таб.ВывестиСекцию("Лицевая"); ВыбратьСтроки(); Для чНомер = 1 По 2 Цикл Если ПолучитьСтроку() = 1 Тогда стрОбласть = "ВРаспоряжение" + Строка(чНомер); Таб.Область(стрОбласть).Текст = Контрагент.Наименование + ", " + Адрес.Наименование; ................................................................. ИначеЕсли ИдентЭлемДиалога = "Адрес" Тогда КонтекстДокумента = глВзятьКонтекст(Контекст); глУстановитьАдресКонтрагента(КонтекстДокумента,Контрагент, Адрес); ФлагСтандОбр = 0; КонецЕсли; КонецПроцедуры //ПриНачалеВыбораЗначения ................................................................ Если написать в нужной ячейке строки формы ТМФ8 выражение: докПЛ.НомерДок (расшифровка: докПЛ.ТекущийДокумент()) тогда отображается номер путевого листа, т.е. с ячейкой все в порядке. А как из данного номера ПЛ вытащить Контагента (ID Контрагент, тип Справочник.Контрагенты) догнать пока не могу. Установленный в запросе Контрагент не выполняется. Поэтому я очень вам благодарен за сочувствие моей беде и прошу помощи. |
|||
19
Kigo_Kigo
01.08.19
✎
15:08
|
докПЛ.Контрагент не работает?
|
|||
20
Nik_Home
01.08.19
✎
23:08
|
К сожалению, нет Вынужден отложить эту проблему на 30 дней. Ушел в отпуск. А вам спасибо!
Повспоминаю правила языка, потом опять напомню о себе, если вы не против. |
|||
21
Kigo_Kigo
02.08.19
✎
12:30
|
(20) можете на почту мне написать, поправим вашу форму
|
|||
22
Nik_Home
02.09.19
✎
11:45
|
Уважаемый, Kigo_Kigo
Отправил вам в почту реестр и форму ТМФ 8. Сам пока не догоняю. |
|||
23
Nik_Home
03.09.19
✎
20:09
|
Уважаемый, Kigo_Kigo
Отправил вам в почту реестр и форму ТМФ 8. На адрес: [email protected] нет доставки <[email protected]>: host gmail-smtp-in.l.google.com[173.194.222.26] said: 550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1 https://support.google.com/mail/?p=NoSuchUser w20si4129606lfl.27 - gsmtp (in reply to RCPT TO command) Сможете сказать куда выслать? |
|||
24
Nik_Home
06.11.19
✎
13:13
|
Уважаемые, гуру (сравнительно со мной).
Вожусь очень долго, но так и не впихнул Контрагента из определенного путевого листа в строку в форме отчета "Реестр путевых листов" "Форма 8" Создал новый внешний отчет с макетом формы 8. Все работает, но "Контрагент" из ПЛ не могу подставить в строку формы. Как сделать так, чтобы типа "ДокументОснование.ПутевойЛист.Контрагент.Наименование" попал в строку отчета? Кто-то сможет помочь? |
|||
25
Ёпрст
06.11.19
✎
14:22
|
кидай свое изделие на файлопомойку и ссылку сюда
|
|||
26
Nik_Home
07.11.19
✎
09:44
|
Для Ёпрст.
Ссылка http://file.sampo.ru/4ndr63/ |
|||
27
Ёпрст
07.11.19
✎
10:31
|
(26)
для начала,
Потом, >>>ДокументОснование.ПутевойЛист.Контрагент.Наименование Клиентоса нужно из ДокументОснование вытащиь ? А не из самого документа аПЛ_Повременный/аПЛ_Сдельный ? И.. не видно, куда именно в макете нужно вывести этого контрагента. В какую область\секцию |
|||
28
Nik_Home
07.11.19
✎
10:40
|
Для Ёпрст.
"Потом, >>>ДокументОснование.ПутевойЛист.Контрагент.Наименование Клиентоса нужно из ДокументОснование вытащиь ? А не из самого документа аПЛ_Повременный/аПЛ_Сдельный ? " Вот именно: Клиента нужно вытащить из Путевого листа (в данном случае Сдельного и Повременного) Остальные данные вытаскиваются и ставятся куда нужно. Контрагента в строке можно поместить куда угодно (его же можно переместить программно) Я вышлю код записи Клиента в путевых листах. Похоже, они как-то ссылаются на глобальный модуль. |
|||
29
Ёпрст
07.11.19
✎
10:43
|
выложи мд от этой базы
|
|||
30
Nik_Home
07.11.19
✎
10:58
|
Для Ёпрст:
Функция в модуле формы ПЛ, откуда вычисляется Контрагент http://file.sampo.ru/gvqt6k/ МД через 5 мин залью. |
|||
31
Nik_Home
07.11.19
✎
11:06
|
||||
32
Ёпрст
07.11.19
✎
11:20
|
(31) контрагент там есть только в табличной части в этих документа, его надо ? Или что ? И если да, то с какой строки ? Первого попавшегося ?
|
|||
33
Nik_Home
07.11.19
✎
11:30
|
Для Ёпрст:
Вот этот Контрагент из табличной части Формы ПЛ и нужен и именно этого ПЛ. Остальные объекты берутся из шапки формы документа, а Контрагент прописан в табличной части данной формы. Данные в отчете "реестр путевых листов форма 8" (или как угодно можно макет обозвать, у меня во внешней форме Контрагент) берутся из данных ПЛ. Если не выбирать, тогда из всех ПЛ за заданный период. |
|||
34
Nik_Home
07.11.19
✎
11:35
|
Для Ёпрст:
Контрагент - это Заказчик транспорта. В ПЛ он выбирается и записывается из общего справочника Контрагентов 1С77 (или подстановой из документа Заявки на транспорт (им не пользуются). |
|||
35
Ёпрст
07.11.19
✎
11:43
|
(33)
|
|||
36
Nik_Home
07.11.19
✎
11:47
|
Для Ёпрст:
Пробую. |
|||
37
Кодер
07.11.19
✎
11:49
|
Ёпрст, а как ты умеешь творения с DLL отлаживать? Или не запуская читаешь и в уме прогоняешь код?
|
|||
38
Nik_Home
07.11.19
✎
12:36
|
Для Ёпрст:
Пробую. http://file.sampo.ru/f8jfdw/ В нужной строке формы спрКонтрагент обозначился текстом как группа из Справочника Контрагенты и только по первой позиции строки отчета. Но истинного Контрагент из данного ПЛ пока не получилось. |
|||
39
Nik_Home
07.11.19
✎
12:50
|
||||
40
Ёпрст
07.11.19
✎
13:08
|
(38) ага, поправь так:
|Группировка Контрагент Без Групп; |
|||
41
Ёпрст
07.11.19
✎
13:08
|
я ужо подзабыл клюшки
|
|||
42
Ёпрст
07.11.19
✎
13:09
|
И это, у тебя их в табличной части сколько ? Несколько или один ? Если несколько , то какой нужен ? Все ?
|
|||
43
Злопчинский
07.11.19
✎
13:25
|
(41) Печально.
на клюшках хоть был один добрый "д-р Айболит". в 8-ке все как-то мутнее, спецов меньше... или меньше конкретных вопросов. а от неконтрентных вопросов до выяснения конкретики в 8-ке видимо путь гораздо дольше при обсуждении проблем |
|||
44
Ёпрст
07.11.19
✎
13:26
|
И выкини упорядочить ПО.. По-умолчанию, эта группировка и так всегда упорядочена по дате и времени документа.
|
|||
45
Nik_Home
07.11.19
✎
13:48
|
Для Ёпрст6
"И это, у тебя их в табличной части сколько ? Несколько или один ? Если несколько , то какой нужен ? Все ?" Если касается ПЛ_Сдельного, то туда можно записывать только 2 Контагента, но пока это не делается. Если касается отчета "реестр ПЛ",тогда Контрагент относительно путевых листов. В каждом ПЛ есть Контрагент-Заказчик транспорта.Операторы требуют в этом отчете прописать названия Контрагента, чтобы потом ручкой не дописывать. А знакомый в вашей тусовке программер по этому Рарусу-Автотранспорт есть? В ПЛ прописывается Контрагент и отображается. Вот как его сунуть в отчет, пока загадка для меня. |
|||
46
Ёпрст
07.11.19
✎
14:07
|
(45) Щас, чего не работает ?
|
|||
47
Nik_Home
07.11.19
✎
14:48
|
Для Ёпрст:
//Щас, чего не работает ?// Работает, только неправильно. Контрагент из ПЛ не выбирается, а только его группа Контрагенты-Заказчики. Вышлю еще реестр. http://file.sampo.ru/7tvst7/ |
|||
48
Nik_Home
07.11.19
✎
14:50
|
Для Ёпрст;
"И выкини упорядочить ПО.. По-умолчанию, эта группировка и так всегда упорядочена по дате и времени документа." Без такой опции упорядочивания выдает ошибку. |
|||
49
Ёпрст
07.11.19
✎
18:39
|
(47) см. (40)
(48) какую ошибку ? |
|||
50
Ёпрст
07.11.19
✎
18:39
|
Что где-то в макете задано Запрос.ЗначениеУпорядочивания ? Выкини это из макета.
Вообще, упорядочивание зло |
|||
51
Nik_Home
07.11.19
✎
21:10
|
Для Ёпрст;
"(47) см. (40) (48) какую ошибку ? Что где-то в макете задано Запрос.ЗначениеУпорядочивания ? Выкини это из макета. Вообще, упорядочивание зло" К сожалению, вынужден прерваться до понедельника. Упорядочивание - это ПЛ в реестре выводится по датам и по времени. Когда я упорядочивание отключил, выскочила ошибка, какая, сейчас не скажу, не помню. На работе посмотрю. |
|||
52
Злопчинский
08.11.19
✎
01:20
|
(44) а если упорядочивнеи не нужно - то написать Без упорядочивания.
на больших запросах это дает экономию. |
|||
53
Nik_Home
11.11.19
✎
07:58
|
Злопчинскому:
"(44) а если упорядочивнеи не нужно - то написать Без упорядочивания.на больших запросах это дает экономию." Операторы требуют упорядочивание. Экономия не важна. Речь идет о Контрагенте (заказчике транспорта), который должен извлекаться из данного путевого листа и отображаться в строке отчета по форме 8. |
|||
54
Nik_Home
11.11.19
✎
11:00
|
Для Ёпрст:
А в путевых листах Контрагент вставлен в реквизит табличной части! Код такой: Функция ПриВыбореЗначения(Об="") // Рекурсивная Функция обработки всех экранных объектов. Если Об="" Тогда Об=Форма.АктивныйЭлемент(); КонецЕсли; // CASE По реквизитам формы ИначеЕсли Об="Контрагент" Тогда КонтекстДокумента = глВзятьКонтекст(Контекст); глУстановитьАдресКонтрагентаПоУмолчанию(КонтекстДокумента, Контрагент, 1, Адрес); // подача КонецЕсли; Возврат 1; КонецФункции // ПриВыбореЗначения А в гл модуле Контрагент выбирается из реквизитов шапки. Код такой: Процедура глПриВыбореКонтрагента(Контрагент, Договор, ДокОсн="") Экспорт Если (ПустоеЗначение(Договор) = 1) и (ПустоеЗначение(ДокОсн) = 1) Тогда Договор = Контрагент.ОсновнойДоговор; Иначе Если Договор.Владелец <> Контрагент Тогда Договор = Контрагент.ОсновнойДоговор; КонецЕсли; КонецЕсли; Если ПустоеЗначение(ДокОсн) = 0 Тогда Если Метаданные.Документ(ДокОсн.Вид()).РеквизитШапки("Контрагент").Выбран() = 1 Тогда Если ДокОсн.Контрагент <> Контрагент Тогда ДокОсн = ""; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры //глПриВыбореКонтрагента //************************************************** Как можно дописать чтобы Контрагент выбирался и из реквизита табличной части? |
|||
55
Nik_Home
11.11.19
✎
11:04
|
Злочинскому:
Спасибо, что отозвались на мою беду. Возможно проблема с выбором Контрагента в отчете Раруса здесь? Функция ПриВыбореЗначения(Об="") // Рекурсивная Функция обработки всех экранных объектов. Если Об="" Тогда Об=Форма.АктивныйЭлемент(); КонецЕсли; // CASE По реквизитам формы ИначеЕсли Об="Контрагент" Тогда КонтекстДокумента = глВзятьКонтекст(Контекст); глУстановитьАдресКонтрагентаПоУмолчанию(КонтекстДокумента, Контрагент, 1, Адрес); // подача КонецЕсли; Возврат 1; КонецФункции // ПриВыбореЗначения А в гл модуле Контрагент выбирается из реквизитов шапки. Код такой: Процедура глПриВыбореКонтрагента(Контрагент, Договор, ДокОсн="") Экспорт Если (ПустоеЗначение(Договор) = 1) и (ПустоеЗначение(ДокОсн) = 1) Тогда Договор = Контрагент.ОсновнойДоговор; Иначе Если Договор.Владелец <> Контрагент Тогда Договор = Контрагент.ОсновнойДоговор; КонецЕсли; КонецЕсли; Если ПустоеЗначение(ДокОсн) = 0 Тогда Если Метаданные.Документ(ДокОсн.Вид()).РеквизитШапки("Контрагент").Выбран() = 1 Тогда Если ДокОсн.Контрагент <> Контрагент Тогда ДокОсн = ""; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры //глПриВыбореКонтрагента //************************************************** Как можно дописать чтобы Контрагент выбирался и из реквизита табличной части? |
|||
56
Nik_Home
11.11.19
✎
11:20
|
||||
57
Ёпрст
11.11.19
✎
11:24
|
(56) это вообще тут никоим боком.
|
|||
58
Ёпрст
11.11.19
✎
11:25
|
Какая ошибка в (51) ?
|
|||
59
Ёпрст
11.11.19
✎
11:26
|
вот так сделать и всё..
|Контрагент = Документ.аПЛ_Повременный.Контрагент, Документ.аПЛ_Сдельный.Контрагент; |Группировка ПЛ; |Группировка Контрагент Без Групп; ............. Пока Запрос.Группировка("ПЛ") = 1 Цикл стрТабельный = ""; стрФИО = ""; стрГаражный = ""; стрКонтрагент = ""; докПЛ = Запрос.ПЛ; спрВодитель = докПЛ.Водитель; спрАвтомобиль = докПЛ.Автомобиль; спрКонтрагент=""; Если Запрос.Группировка("Контрагент") = 1 Тогда// это если он один в таб части, если их несколько, нужен цикл обхода группировки спрКонтрагент = Запрос.Контрагент; КонецЕсли; |
|||
60
Nik_Home
11.11.19
✎
11:31
|
Для ЁПРСТ:
Ошибок в моем учебном реестре нет. Только Контрагент не выбирается. По гл.модулю он должен выбираться из реквизита шапки формы, а в макетах ПЛ Контрагент стоит в реквизите табличной части. |
|||
61
Nik_Home
11.11.19
✎
11:32
|
Пробую.
|
|||
62
Nik_Home
11.11.19
✎
11:55
|
||||
63
Nik_Home
11.11.19
✎
12:01
|
||||
64
Nik_Home
11.11.19
✎
12:14
|
Для Ёпрст:
Вот так образовался обновленный реестр ПЛ Через строку Контрагент обозначается. http://file.sampo.ru/9tzw6n/ |
|||
65
Ёпрст
11.11.19
✎
13:47
|
(64)
|
|||
66
Ёпрст
11.11.19
✎
13:48
|
вот это выкинь из кода и убери из текста Упорядочить ПО.
Группировка и так уже упорядочена |
|||
67
Nik_Home
12.11.19
✎
18:43
|
Для Ёпрст:
"вот это выкинь из кода и убери из текста Упорядочить ПО. Группировка и так уже упорядочена" Завтра, 131119, попробую. |
|||
68
Nik_Home
13.11.19
✎
08:42
|
Для Ёпрст:
"вот это выкинь из кода и убери из текста Упорядочить ПО. Группировка и так уже упорядочена" Похоже, получилось! Большое спасибо, Ёпрст! Вы настоящий ГУРУ!!! Теперь попробую отсечь все лишнее и внедрить в боевую БД. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |