|
v7: Программное перепроведение документов с изменением даты |
☑ |
0
МаксимБел
07.05.14
✎
00:59
|
Собственно, как это сделать?
Т.е. надо выбрать документы за определенный день и поменять им дату.
Вот так пробовал - не получается.
Выборка = СоздатьОбъект("Документ.Расходная");
Выборка.ВыбратьДокументы(ДатаДок,ДатаДок);
ЭтотОбъект = ТекущийДокумент();
Пока Выборка.ПолучитьДокумент() > 0 Цикл
ТекДок = Выборка;
Если (ТекДок.ПометкаУдаления() = 1) ИЛИ (ТекДок.ТекущийДокумент() = ЭтотОбъект) Тогда
Продолжить;
КонецЕсли;
Если ТекДок.Проведен() = 1 Тогда
Попытка
ТекДок.СделатьНеПроведенным();
ТекДок.УстановитьАтрибут("ДатаДок",НоваяДата);
ТекДок.Записать();
ТекДок.Провести();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Иначе
ТекДок.УстановитьАтрибут("ДатаДок",НоваяДата);
Попытка
ТекДок.Записать();
Сообщить("Документ: " + Строка(ТекДок) + " реквизиты установлены.");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Выборка.ВыбратьДокументы(ДатаДок,ДатаДок);
КонецЦикла;
Сорри за формат, не знаю как тут цитаты для кода делать.
|
|
1
МаксимБел
07.05.14
✎
01:01
|
О, я смотрю движок сайта сам код подсветил )
|
|
2
МаксимБел
07.05.14
✎
01:12
|
Пояснение: данный код меняет дату, записывает документы, но не проводит те, которые были проведены. Пишет: Документ не выбран.
|
|
3
Попытка1С
07.05.14
✎
01:19
|
1) Выбрать документы
2) Запихнуть документы в ТЗ
3) Перебрать ТЗ, с позиционирование на документ через НайтиДокумент
4) Сделать не проведенным, присвоить дату, провести.
|
|
4
trad
07.05.14
✎
01:25
|
Или так:
1. В самом начале
ТекДок = СоздатьОбъект("Документ.Расходная");
2. В цикле, вместо
ТекДок = Выборка;
написать
ТекДок.НайтиДокумент(Выборка.ТекущийДокумент());
|
|
5
trad
07.05.14
✎
01:26
|
+ возможно после этого, в конце тела цикла, не понадобится ВыбратьДокументы
|
|
6
МаксимБел
07.05.14
✎
01:27
|
(3)(4) Спасибо. Сейчас попробую.
|
|
7
МаксимБел
07.05.14
✎
01:37
|
(4) Получилось. Всем спасибо. :)
|
|