Код 1C v 8.2 УП
&НаСервере
Процедура ПровестиДокументыНаСервере()
ВыборкаДокументов = Документы.РеализацияТоваровУслуг.Выбрать(НачалоГода(ТекущаяДата()), КонецГода(ТекущаяДата()));
Пока ВыборкаДокументов.Следующий() Цикл
ДокР = ВыборкаДокументов.Ссылка.ПолучитьОбъект();//получаем реализацию как объект
Если ПустаяСтрока(ДокР.ЗаказКлиента) = Ложь Тогда//если есть документ основание
ДокЗ = ДокР.ЗаказКлиента.Ссылка.ПолучитьОбъект();//получаем заказ как объект
//1. проверим даты
Если Формат(ДокР.Дата, "ДЛФ=Д") <> Формат(ДокЗ.Дата, "ДЛФ=Д") Тогда//если именно даты не равны
Сообщить("Дата до изменения"+Символ(10)+ДокЗ+Символ(10)+" ---> "+Символ(10)+ДокР);//сообщаем
ДокЗ.Дата = НачалоДня(ДокР.Дата);//устанавливаем дату ДокЗ как у ДокР
//добавляем в комментарий отчёт о выполенных действиях
ДокЗ.Комментарий = ""+СокрЛП(ДокЗ.Комментарий) + Символ(10)+
"//***"+Символ(10)+
"Обработкой изменена дата по реализации в начало дня"+Символ(10)+
"";
ДокЗ.Записать(РежимЗаписиДокумента.Запись);//Записываем ДокЗ
Сообщить("Дата после изменения"+Символ(10)+ДокЗ+Символ(10)+" ---> "+Символ(10)+ДокР);//сообщаем
//2. проверим время
Если Формат(ДокР.Дата, "ДЛФ=В") = Формат(ДокЗ.Дата, "ДЛФ=В") тогда //если они оба в начале дня, у докР меняем время на +1 секунду
Сообщить("Время до изменения"+Символ(10)+ДокЗ+Символ(10)+" ---> "+Символ(10)+ДокР);//сообщаем
ДокР.Дата = ДокР.Дата + 1;//добавили секунду к дате реализации
//добавляем в комментарий отчёт о выполенных действиях
ДокР.Комментарий = ""+СокрЛП(ДокР.Комментарий) + Символ(10)+
"//***"+Символ(10)+"Обработкой изменено время на 1 секунду"+Символ(10)+"";
ДокР.Записать(РежимЗаписиДокумента.Запись);//Записываем ДокЗ
Сообщить("Время после изменения"+Символ(10)+ДокЗ+Символ(10)+" ---> "+Символ(10)+ДокР);//сообщаем
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла
КонецПроцедуры
Изменено 26.01.12 11:10:23 по причине: Разукрасил код