Почти крутой
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0
Logist, спасибо за ответ. Сначала так и было - без Наименований. Запрос возвращал NULL, потому и добавил Наименование. То-же самое с ними. Думается, здесь причина более глубокая.
Почти крутой
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0
Сейчас попробую. Хотел добавить, что ВидРасчета - типа ПланВидовРасчетаСсылка.ОсновныеНачисленияОрганизаций. Может отсюда нужно как-то извлекать текущий ВидРасчета?
Сделал, сейчас вот так выглядит:
Процедура ОтчетИнициализация()//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ИНИЦИАЛИЗАЦИЯ(Отчет)// Данный фрагмент построен конструктором.// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ПостроительОтчетаОтчет.Текст =
"ВЫБРАТЬ
| СотрудникиОрганизаций.Наименование,
| СотрудникиОрганизаций.Должность,
| СотрудникиОрганизаций.ВидРасчета
|ИЗ
| Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций";
ПостроительОтчетаОтчет.ЗаполнитьНастройки();
ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
ПостроительОтчетаОтчет.ТекстЗаголовка = "Отчет";
Настройка = ВосстановитьЗначение("НастройкаВнешниеОтчетыВнешнийОтчет1Отчет_4f56d6a9-59d3-4e22-9621-de7b9431a54d");
Если Настройка <> НеопределеноТогда// ПостроительОтчетаОтчет.УстановитьНастройки(Настройка);КонецЕсли;
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ИНИЦИАЛИЗАЦИЯКонецПроцедуры
Почти крутой
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0
Ну как-то примерно так:
"ВЫБРАТЬ
| СотрудникиОрганизаций.Ссылка,
| СотрудникиОрганизаций.ТекущаяДолжностьОрганизации,
| НачисленияРаботниковОрганизаций.ВидРасчета
|ИЗ
| Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
|ЛЕВОЕ СОЕДИНЕНИЕ
|(ВЫБРАТЬ
| ПлановыеНачисленияРаботниковОрганизаций.Сотрудник,
| ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета
|ИЗ
| РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизаций
|ГДЕ
| ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.КатегорияРасчета = ЗНАЧЕНИЕ(Перечисление.КатегорииРасчетов.Первичное)
|) КАК НачисленияРаботниковОрганизаций
|ПО СотрудникиОрганизаций.ССЫЛКА = НачисленияРаботниковОрганизаций.Сотрудник.Ссылка
|";
Правда, в отчет попадает несколько строк для одного и того-же сотрудника, если было несколько документов по нем. Нужно или оставить уникальные строки во вложенном отчете, или актуальные.
Почти крутой
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0
Даже в MS Access можно вставлять свои функции в запрос. Мне не очень нравятся тексты процедур, функций, запросов размером более 1 листа А4. Принцип "разделяй и властвуй" помните? Т.о. большой текст разбивается на логически осмысленные блоки.
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Цитата(vadim007 @ 13.07.15, 13:24)
Мне не очень нравятся тексты процедур, функций, запросов размером более 1 листа А4.
Данный случай вообще не подпадает под это, запрос в районе 20 строк.
Цитата(vadim007 @ 13.07.15, 13:24)
большой текст разбивается на логически осмысленные блоки.
Если текущий пример называете большим текстом, и необходимостью разбить на блоки, то у вас должно быть две функции - одна возвращает должность сотрудника, другая - вид расчета, затем берете СКД, запросом получаете сотрудников, а в вычисляемых полях используете две эти функции. Вот это "Принцип "разделяй и властвуй"". А если надо получить статичные данные в трех колонках, то это простой отчет с одним запросом.
Личные бесплатные консультации не даю, для этого есть форум!
Почти крутой
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0
Ну, должность сотрудника уже сидит в справочнике, а вот вид расчета приходится извлекать, для текущего сотрудника. Логически оправдано это извлечение оформить в виде отдельного запроса, а т.к. 1С не поддерживает именованные запросы, как MS Access, то запрос "завернуть" в процедуру или функцию. А то что в данном примере немного строк, это не повод расслабляться. Для этого запроса логика совсем другая, другое назначение. Значит он должен быть отдельно от основного запроса. Потом-же легче будет, если код разрастется.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!