Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 03:16

Различные параметры в СКД и КонсолиЗапросов.

Автор ksander-fars, 07 июл 2016, 09:05

0 Пользователей и 1 гость просматривают эту тему.

ksander-fars

Здравствуйте.

Написал код в консоли запросов с условием по виду расчета. Всё работает нормально. Перенёс код во внешний отчет СКД. При выборе вида расчета нет нужных мне видов расчета, хотя в консоли они есть... Например оплата больничных... Мне кажется что в СКД он показывает только предопределённые. Как решить эту проблему?

Код из консоли запросов.
ВЫБРАТЬ
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Ссылка КАК Документ,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата КАК Дата,
   ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.НомерВходящегоДокумента КАК НомерБольничного,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДатаНачалаСобытия КАК ДатаНачалаБольничного,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПричинаНетрудоспособности КАК ПричинаНетрудоспособности,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажЛет КАК СтажЛет,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажМесяцев КАК СтажМесяцев,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплаты КАК ДнейОплатыВсего,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПроцентОплаты КАК ПроцентОплаты,
   СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
   ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплатыРаботодателем
ПОМЕСТИТЬ ВТ_1
ИЗ
   РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   И ОсновныеНачисленияРаботниковОрганизаций.Сторно = &Сторно
   И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета = &ВидРасчета

СГРУППИРОВАТЬ ПО
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Номер,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Сотрудник,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Ссылка,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата,
   ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.НомерВходящегоДокумента,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДатаНачалаСобытия,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПричинаНетрудоспособности,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажЛет,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажМесяцев,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплаты,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПроцентОплаты,
   ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплатыРаботодателем
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Ссылка КАК Документ,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата КАК Дата,
   ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.НомерВходящегоДокумента КАК НомерБольничного,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДатаНачалаСобытия КАК ДатаНачалаБольничного,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПричинаНетрудоспособности КАК ПричинаНетрудоспособности,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажЛет КАК СтажЛет,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажМесяцев КАК СтажМесяцев,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплаты КАК ДнейОплатыВсего,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПроцентОплаты КАК ПроцентОплаты,
   ОсновныеНачисленияРаботниковОрганизаций.Результат,
   ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплатыРаботодателем
ПОМЕСТИТЬ ВТ_2
ИЗ
   РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   И ОсновныеНачисленияРаботниковОрганизаций.Сторно = &Сторно
   И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета = &ВидРасчета2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Ссылка КАК Документ,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата КАК Дата,
   ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.НомерВходящегоДокумента КАК НомерБольничного,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДатаНачалаСобытия КАК ДатаНачалаБольничного,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПричинаНетрудоспособности КАК ПричинаНетрудоспособности,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажЛет КАК СтажЛет,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажМесяцев КАК СтажМесяцев,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплаты КАК ДнейОплатыВсего,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПроцентОплаты КАК ПроцентОплаты,
   СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
   ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплатыРаботодателем
ПОМЕСТИТЬ ВТ_3
ИЗ
   РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   И ОсновныеНачисленияРаботниковОрганизаций.Сторно = &Сторно
   И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета = &ВидРасчета3

СГРУППИРОВАТЬ ПО
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Номер,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Сотрудник,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Ссылка,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.Дата,
   ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.НомерВходящегоДокумента,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДатаНачалаСобытия,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПричинаНетрудоспособности,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажЛет,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.СтажМесяцев,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплаты,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ПроцентОплаты,
   ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
   ОсновныеНачисленияРаботниковОрганизаций.Регистратор.ДнейОплатыРаботодателем
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ_1.Документ,
   ВТ_1.Дата КАК Дата,
   ВТ_1.Сотрудник КАК Сотрудник,
   ВТ_1.НомерБольничного,
   ВТ_1.ДатаНачалаБольничного,
   ВТ_1.ПричинаНетрудоспособности,
   ВТ_1.СтажЛет,
   ВТ_1.СтажМесяцев,
   ВТ_1.ДнейОплатыВсего,
   ВТ_1.РегистраторДнейОплатыРаботодателем КАК ДнейОплатыРаботодателем,
   ВТ_1.ПроцентОплаты,
   NULL КАК НачЗаСчРаботодателя,
   ВТ_1.Результат КАК НачЗаСчетФСС,
   NULL КАК БЛПоТравме,
   ВТ_1.ВидРасчета
ИЗ
   ВТ_1 КАК ВТ_1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВТ_2.Документ,
   ВТ_2.Дата,
   ВТ_2.Сотрудник,
   ВТ_2.НомерБольничного,
   ВТ_2.ДатаНачалаБольничного,
   ВТ_2.ПричинаНетрудоспособности,
   ВТ_2.СтажЛет,
   ВТ_2.СтажМесяцев,
   ВТ_2.ДнейОплатыВсего,
   ВТ_2.РегистраторДнейОплатыРаботодателем,
   ВТ_2.ПроцентОплаты,
   ВТ_2.Результат,
   NULL,
   NULL,
   ВТ_2.ВидРасчета
ИЗ
   ВТ_2 КАК ВТ_2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВТ_3.Документ,
   ВТ_3.Дата,
   ВТ_3.Сотрудник,
   ВТ_3.НомерБольничного,
   ВТ_3.ДатаНачалаБольничного,
   ВТ_3.ПричинаНетрудоспособности,
   ВТ_3.СтажЛет,
   ВТ_3.СтажМесяцев,
   ВТ_3.ДнейОплатыВсего,
   ВТ_3.РегистраторДнейОплатыРаботодателем,
   ВТ_3.ПроцентОплаты,
   NULL,
   NULL,
   ВТ_3.Результат,
   ВТ_3.ВидРасчета
ИЗ
   ВТ_3 КАК ВТ_3

УПОРЯДОЧИТЬ ПО
   Дата,
   Сотрудник

vitasw

Цитата: ksander-fars от 07 июл 2016, 09:05Мне кажется что в СКД он показывает только предопределённые.
:) Правильно кажется. У вас разная среда разработки для консоли и для СКД: консоль в предприятии, где доступны ссылки БД, а СКД - в конфигураторе, где доступны только объекты метаданых. Когда откроете СКД в предприятии - станет так же доступны ссылки БД

Добавлено: 07 июл 2016, 09:15


Варианты решения - точно так же в СКД устанавливайте параметры/отбор в режиме предприятия или пишите экспортную функцию установки параметров

ksander-fars

Ну так мне то нужно эти параметры жестко прописать в СКД.
Выборка то идёт в 3 виртуальные таблицы.

В ВТ_1 идут документы с видом расчета По больничному листу.
В ВТ_2 идут документы с видом расчета По больничному листу за счт работодателя.
В ВТ_1 идут документы с видом расчета по травме на производстве.

Я не знаю как их прописать в условия :dfbsdfbsdf: Ажно голова пыщ-пыщ

Если что конфиг 1С ЗУП 2.5

Еще много чего надо, например в данный момент у человека выводится одна или две строки в этом запросе. Они различаются только по колонкам вида начисления (Скрин)
Как эти строчки соединить в одну??? ui;;t;
Вааашпе не понимаю
Добавлено: 07 июл 2016, 09:44


Сейчас я что нибудь напишу :wacko:

vitasw

Цитата: ksander-fars от 07 июл 2016, 09:42Ну так мне то нужно эти параметры жестко прописать в СКД.

пишите экспортную функцию определения параметров в общем модуле. В СКД в выражении для параметра вызывайте эту функцию.

Klyacksa

В СКД добавляете Параметр, указываете Тип и выражение что-то типа того: Справочники.Организации.НайтиПоКоду("000000001"), закрываете доступность пользователю.
Этот параметр можно использовать как в запросе, так и при отборох СКД.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

cska-fanat-kz

программно формируете СКД и также программно подсовываете параметры.
примеров в инете - масса.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

Зачем программно формировать СКД на пустом месте...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

cska-fanat-kz

Цитата: Klyacksa от 07 июл 2016, 13:00
Зачем программно формировать СКД на пустом месте...

Зачем/не зачем - это уже другой вопрос.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ksander-fars

Я последовал совету Klyacksa, только не по коду а по наименованию.
Задал в СКД следующие выражения

1) ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Оплата больничных листов")
2) ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Оплата больничных листов за счет работодателя")
3) ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Оплата БЛ по травме на производстве")

Но в запросе теперь выводит все строки видов расчета из документов. Т.е. если в документе есть вид расчета "Оплата больничных листов" то в запрос также выпадут северные, районные, премиальные, надбавки и т.д (Screen1)

Что то я пока не допиливаю как же сделать правильно :dfbsdfbsdf: Сейчас попробую сделать по советуvitasw, но как это сделать непонятно. Я конечно учился добавлять экспортные процедуры в общий модуль и обращаться из отчетов непосредственно к общему модулю, но в данном случае это пздц как непонятно, ещё мне сказали что можно выгрузить виды расчета в массив циклом и передать этот массив в СКД... Затем как я понимаю условием СКД из массива нужно выбрать нужный вид расчета... Вот это вообще не понятно, пока ищу инфу по программной  передаче параметров в СКД

МассивВР = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций;
Пока МассивВР.Следующий Цикл
КонецЦикла (Я понимаю что это не массив, отталкиваюсь от этого)

Курю интернет.

vitasw


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск