Гость
Форумы / [игнор отключен] [закрыт для гостей] / Изменение значения реквизита документа на значение результата запроса. / 6 сообщений из 6, страница 1 из 1
17.05.2017, 10:56
    #39454427
jediAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значения реквизита документа на значение результата запроса.
Здравствуйте. Есть собственная конфигурация 1С 8.3. В конфе создан документ "НазначенияСотрудникам",в котором есть реквизит "ДатаОкончанияФакт" -тип Дата; Объект(Проектирования) - СправочникСсылка.Объекты. Этот документ регистрирует назначение работы сотруднику. Сотрудник каждый день заполняет отчет, в котором указывает, сколько по какому назначению отработал. Нужно сделать следующее: выбрать все назначения по закрытым объектам, где не заполнена ДатаОкончанияФакт и программно проставить последние даты списания из регистра в каждый документ. Сделал я это так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
&НаСервере
Процедура ЗакрытьРаботыКПремииНаСервере()
	// Вставить содержимое обработчика.
	ДатаЗакрытияЗадачи=Новый Запрос;
	ДатаЗакрытияЗадачи.Текст="ВЫБРАТЬ
	                         |	МАКСИМУМ(ОтработаноЧасов.Период) КАК ДатаЗакрытия
	                         |ИЗ
	                         |	РегистрНакопления.ОтработаноЧасов КАК ОтработаноЧасов
	                         |ГДЕ
	                         |	ОтработаноЧасов.Регистратор ССЫЛКА Документ.ЕжедневныйОтчет
	                         |	И ОтработаноЧасов.Назначение.Ссылка = &Назначение";
	Для Каждого Стр Из Объект.НеЗакрытыеРаботыПоОбъектам Цикл
	ДокументДляЗакрытия=Стр.Ссылка.ПолучитьОбъект();
	ДатаЗакрытияЗадачи.УстановитьПараметр("Назначение",Стр.Ссылка);
	Результат=ДатаЗакрытияЗадачи.Выполнить().Выбрать();
	ДокументДляЗакрытия.ДатаОкончанияФакт=Результат.ДатаЗакрытия;
	ДокументДляЗакрытия.Записать();
	КонецЦикла;	
КонецПроцедуры


НеЗакрытыеРаботыПоОбъектам -табличная часть, в которую выгружаю Назначения Сотрудникам запросом:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 ЗапросЗадач.Текст="ВЫБРАТЬ
|	ОтработаноЧасовОстаткиИОбороты.Назначение.ПроектныйДокумент.Объект.Ссылка КАК Объект,
|	ОтработаноЧасовОстаткиИОбороты.Назначение.ВидРаботы.Ссылка КАК ВидРаботы,
|	ОтработаноЧасовОстаткиИОбороты.Назначение.КвалификационныеТребования.Ссылка КАК КвалификационныеТребования,
|	ЕСТЬNULL(ОтработаноЧасовОстаткиИОбороты.Назначение.КолЧасовПлан,0) КАК КолЧасовПлан,
|	ОтработаноЧасовОстаткиИОбороты.Назначение.ДатаНачала КАК ДатаНачалаПлан,
|	ОтработаноЧасовОстаткиИОбороты.Назначение.ДатаОкончанияПлан КАК ДатаОкончанияПлан,
|	ОтработаноЧасовОстаткиИОбороты.Назначение.ДатаОкончанияФакт КАК ДатаОкончанияФакт,
|	ЕСТЬNULL(ОтработаноЧасовОстаткиИОбороты.КоличествоЧасовРасход,0) КАК КолЧасовФакт,
|	ОтработаноЧасовОстаткиИОбороты.КоличествоЧасовКонечныйОстаток КАК КоличествоЧасовКонечныйОстаток,
|	ОтработаноЧасовОстаткиИОбороты.ПроектныйДокумент.НаименованиеРаздела.Наименование КАК Раздел,
|	ОтработаноЧасовОстаткиИОбороты.ПроектныйДокумент.НазваниеДокумента.Наименование КАК НаименованиеДокумента,
|	ОтработаноЧасовОстаткиИОбороты.ПроектныйДокумент.Примечание КАК Примечание,
|	ОтработаноЧасовОстаткиИОбороты.Назначение.КолЧасовПлан * ОтработаноЧасовОстаткиИОбороты.Назначение.КолЧасовПлан / ОтработаноЧасовОстаткиИОбороты.КоличествоЧасовРасход КАК ПриведенныйПлан,
|	ОтработаноЧасовОстаткиИОбороты.Сотрудник КАК Сотрудник,
|	ОтработаноЧасовОстаткиИОбороты.Назначение.Ссылка КАК Ссылка
|ИЗ
|	РегистрНакопления.ОтработаноЧасов.ОстаткиИОбороты(, , , , Объект В (&МассивОбъектов)) КАК ОтработаноЧасовОстаткиИОбороты
|ГДЕ
|	ОтработаноЧасовОстаткиИОбороты.КоличествоЧасовРасход > 0
|	И ОтработаноЧасовОстаткиИОбороты.Назначение.ДатаОкончанияФакт = ДАТАВРЕМЯ(1, 1, 1)";


Перечень работ выводится правильно, но вот код заполнения "ДатаОкончанияФакт" не срабатывает...ничего не происходит. Что не так делаю? помогите пожалуйста.
...
Рейтинг: 0 / 0
17.05.2017, 11:26
    #39454466
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значения реквизита документа на значение результата запроса.
картинки регистров прведи из конфы - чтобы видеть где измерение а где ресурс..скорей всего тампроблема
...
Рейтинг: 0 / 0
17.05.2017, 11:40
    #39454486
jediAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значения реквизита документа на значение результата запроса.
Вот структура регистра. Запрос на выборку даты проверял - последнюю дату выбирает. Все назначения со ссылками выбираются и выводятся в ТЧ.
...
Рейтинг: 0 / 0
17.05.2017, 11:52
    #39454499
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значения реквизита документа на значение результата запроса.
имхо ты чтото путаешь в данных -
ДатаОкончанияФакт заполняешь из максимума периода в документ - тут все хорошо у тебя да?
Назначение это документ? НазначенияСотрудникам?

ОтработаноЧасовОстаткиИОбороты.Назначение.ДатаОкончанияФакт = ДАТАВРЕМЯ(1, 1, 1) - зачем условие на пустые даты? если ты их заполнил - запрос пустой вернется
...
Рейтинг: 0 / 0
17.05.2017, 12:08
    #39454521
jediAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значения реквизита документа на значение результата запроса.
ОтработаноЧасовОстаткиИОбороты.Назначение.ДатаОкончанияФакт = ДАТАВРЕМЯ(1, 1, 1) - условие отбора Назначений Сотрудникам, где реквизит не заполнен. В этом запросе я выбираю ссылку, чтоб по ней потом получить документ и записать Дату окончания факт из второго запроса
...
Рейтинг: 0 / 0
17.05.2017, 12:09
    #39454522
jediAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значения реквизита документа на значение результата запроса.
Назначение - это документ "НазначнияСотрудникам"
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Изменение значения реквизита документа на значение результата запроса. / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]