8.х Работа с запросом... Помощь!

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем yty65, 14 сен 2010.

  1. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Здрасте... я только учусь, так-что извиняйте, если что не так, БОЛЬШОЕ ВАМ спасибо...

    ЗиУП 8.1

    Имеется такой запрос (с вложенным запросом)... Вопрос как узнать значение переменной &парамПериодРегистрации во вложенном запросе, хочу узнать, какое кол-во месяцев возвращает функция РАЗНОСТЬДАТ.

    Пока, как-то вот так! :angry:

    Код:
    ПроцентСпецСтажаТекст=
    "ВЫБРАТЬ
    |	СУММА(Стаж.РазмерМесяцев) КАК РазмерМесяцев,
    |	ОсновныеНачисленияРаботниковОрганизаций.НомерСтроки КАК НомерСтроки
    |ПОМЕСТИТЬ ВТДанныеОсобогоСтажа
    |ИЗ
    |	(ВЫБРАТЬ
    |		ФизическиеЛицаСтажи.Ссылка КАК ФизЛицо,
    |		СУММА(ВЫБОР
    |				КОГДА РАЗНОСТЬДАТ(ФизическиеЛицаСтажи.ДатаОтсчета, &парамПериодРегистрации, МЕСЯЦ) + ФизическиеЛицаСтажи.РазмерМесяцев > 15
    |					ТОГДА 15
    |				ИНАЧЕ ВЫБОР
    |						КОГДА РАЗНОСТЬДАТ(ФизическиеЛицаСтажи.ДатаОтсчета, &парамПериодРегистрации, МЕСЯЦ) + ФизическиеЛицаСтажи.РазмерМесяцев > 3
    |							ТОГДА 10
    |						ИНАЧЕ 5
    |					КОНЕЦ
    |			КОНЕЦ) КАК РазмерМесяцев
    |	ИЗ
    |		Справочник.ФизическиеЛица.Стажи КАК ФизическиеЛицаСтажи
    |	ГДЕ
    |		ФизическиеЛицаСтажи.ВидСтажа = &ВидСтажаОсобойНадбавки
    |	
    |	СГРУППИРОВАТЬ ПО
    |		ФизическиеЛицаСтажи.Ссылка) КАК Стаж
    |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
    |		ПО Стаж.ФизЛицо = ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо
    |ГДЕ
    |	ОсновныеНачисленияРаботниковОрганизаций.Регистратор = &парамРегистратор
    |	И ОсновныеНачисленияРаботниковОрганизаций.Авторасчет
    |
    |СГРУППИРОВАТЬ ПО
    |	ОсновныеНачисленияРаботниковОрганизаций.НомерСтроки
    |
    |ИНДЕКСИРОВАТЬ ПО
    |	НомерСтроки";
    
    
  2. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Значок "&" говорит о том, что это параметр запроса, т.е. это значение передается извне. Поищите, в модуле где-то должно быть что-то вроде:
    Код:
    Запрос.УстановитьПараметр("парамПериодРегистрации",ТаСамаяДата);
    
    
  3. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Спасибо... только теперь не пойму, а как узнать что возвратила функция РАЗНОСТЬДАТ?
  4. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Попробуйте взять только вложенный запрос, убрать группировки и кинуть в консоль отчетов :) В типовых конфигурациях она обычно в обработках есть.
  5. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Возвращает разницу между датами в месяцах т.к месяц стоит. т.е эта строка вам возвращает разницу между Датаой отчета (та что стоит в ТЧ Стажи, которую вы заполняли у физ лица) и периодом регистрации
  6. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Добрый вечер! Подскажите пожалуйста...

    ЗиУП 8.1

    Есть запрос в общем модуле ПроведениеРасчетовПереопределяемый Функция ПолучитьДанныеДляРасчета... Суть... Был создан документ, который отмечает ДниОсобыхРабот за месяц. Он делает движение в регистр сведений ПлановыеНачисленияРаботниковОрганизаций, где отмечается (перечисляю основное!): сотрудник, вид расчёта, действие и с которого числа действует.
    Например: У Раб1 и Раб2 ДниОсобыхРабот приходятся на 1,5-7 и на 15,20 сентября соответственно

    Делается запись в регистр:

    Раб1 01.09.10 начать НадбавкаЗаСложность 02.09.10 прекратить
    Раб1 05.09.10 начать НадбавкаЗаСложность 08.09.10 прекратить
    Раб2 15.09.10 начать НадбавкаЗаСложность 16.09.10 прекратить
    Раб2 20.09.10 начать НадбавкаЗаСложность 21.09.10 прекратить

    Такой запрос "вычисляет" общее кол-во ДниОСобыхРабот всех сотрудников и общее кол-во подставляется каждому сотруднику в вид расчёта - это соответственно не верно! не пойму как сделать, чтобы каждому сотруднику соответствовало своё кол-во дней?

    И ещё вопросик, зачем здесь используется регистр расчёта ОсновныеНачисленияРаботниковОрганизаций?

    ТекстЗапроса:

    Код:
    ФактДниОсобыхРаботТекст=
    "ВЫБРАТЬ
    |	ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.НомерСтроки,
    |	СУММА(РАЗНОСТЬДАТ(ПлановыеНачисленияРаботниковОрганизаций.Период, ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения, ДЕНЬ)) КАК ОтработаноДней
    |ПОМЕСТИТЬ ВТДанныеФактДней
    |ИЗ
    |	РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия,
    |	РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизаций
    |ГДЕ
    |	ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Регистратор = &парамРегистратор
    |	И ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Авторасчет
    |	И НАЧАЛОПЕРИОДА(ПлановыеНачисленияРаботниковОрганизаций.Период, МЕСЯЦ) = &парамПериодРегистрации
    |
    |СГРУППИРОВАТЬ ПО
    |	ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.НомерСтроки";
    
    
  7. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    НУ если бы вы проходили какие нить курсы по программированию расчетных задач, то наверное вам было бы понятнее из Регистра расчета основные начисления берется номер строки, что бы потом при расчете по ним можно было связаться и понять для какйо записи делать расчет

Поделиться этой страницей