Группа: Местный
Сообщений: 56
Из: Киевская обл.
Спасибо сказали: 20 раз
Рейтинг: 0
Еще. Вы писали "нет пустых вообще, все заполнено". В то же время в обработке "Если ПустоеЗначение(Док.МестоХраненияВЭксплуатации) = 0". Может есть таки пустые и документы не обрабатываются? Если пустых нет то зачем условие? Уберите его. Если есть условие для МестоХраненияВЭксплуатации, то почему нет для МестоХранения?
Еще. Вы писали "нет пустых вообще, все заполнено". В то же время в обработке "Если ПустоеЗначение(Док.МестоХраненияВЭксплуатации) = 0". Может есть таки пустые и документы не обрабатываются? Если пустых нет то зачем условие? Уберите его. Если есть условие для МестоХраненияВЭксплуатации, то почему нет для МестоХранения?
Тоже склоняюсь к тому что есть пустые значение.Иначе условие это вообще не надо
Группа: Местный
Сообщений: 59
Из: Київ
Спасибо сказали: 14 раз
Рейтинг: 0
Попробуйте так (и сообщите результат):
Процедура Выполнить() Док=СоздатьОбъект("Документ"); Док.ВыбратьДокументы(НачДата,КонДата); Пока Док.ПолучитьДокумент()=1 Цикл Если (Док.Вид() = "ВводВЭксплуатацию") Тогда Состояние("Обрабатываю документ "+Док.ТекущийДокумент()); Попытка Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Если ПустоеЗначение(Док.МестоХраненияВЭксплуатации) = 0 Тогда СтарМестоХранения = Док.МестоХранения; СтарМестоХраненияВЭксплуатации = Док.МестоХраненияВЭксплуатации; Док.МестоХранения=СтарМестоХраненияВЭксплуатации; Док.МестоХраненияВЭксплуатации=СтарМестоХранения;
КонецЕсли; ГлПользователь=Док.Автор; КонецЦикла; Док.Записать(); исключение Сообщить("Ошибка в документе: "+СокрЛП(Док.Вид())+" №"+Док.НомерДок+" от "+Док.ДатаДок); Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЦикла; Предупреждение("Обработка завершена!"); КонецПроцедуры
Ну вы можете приблизительно отследить тенденцию тех некоторых что меняются и тех некоторых что не меняются.Может разница в датах или в проведен/не проведен или пометка удаления, или еще что и т.д.?
А для чего вы передаете параметры НачДата и КонДата?
Параметры: <Дата1> - дата, документ или позиция начала выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа. <Дата2> - дата, документ или позиция конца выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.
Док = СоздатьОбъект("Документ.ВводВЭксплуатацию"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент()>0 Цикл
МестоХранения и МестоХраненияВЭксплуатации, насколько я понимаю, - реквизиты шапки документа, значит перебирать строки вам ник чему. Если диапазон документов не ограничен, т.е. изменить во всех документах базы, тогда попробуйте так:
Процедура Выполнить() Док = СоздатьОбъект("Документ.ВводВЭксплуатацию"); Док.ВыбратьДокументы(,); Пока Док.ПолучитьДокумент()>0 Цикл старМестоХранения = Док.МестоХранения; старМестоХраненияВЭксплуатации = Док.МестоХраненияВЭксплуатации;
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
Группа: Местный
Сообщений: 59
Из: Київ
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(wmatik @ 07.10.11, 11:15)
GreenFox, сделала как вы писали, никаких сообщений не выдал, но и по прежнему не все документы поменял
Да в том то и дело, что все документы проведены, нет пометок на удаление, а как дату можно проследить?
Вы уж извините, но давайте еще попробуем так:
Процедура Выполнить() Док=СоздатьОбъект("Документ"); Док.ВыбратьДокументы(НачДата,КонДата); Пока Док.ПолучитьДокумент()=1 Цикл Если (Док.Вид() = "ВводВЭксплуатацию") Тогда Состояние("Обрабатываю документ "+Док.ТекущийДокумент()); Попытка Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Если ПустоеЗначение(Док.МестоХраненияВЭксплуатации) = 0 Тогда СтарМестоХранения = Док.МестоХранения; СтарМестоХраненияВЭксплуатации = Док.МестоХраненияВЭксплуатации; Док.МестоХранения=СтарМестоХраненияВЭксплуатации; Док.МестоХраненияВЭксплуатации=СтарМестоХранения; иначе Сообщить(Пустое значение МестоХраненияВЭксплуатации в документе: "+СокрЛП(Док.Вид())+" №"+Док.НомерДок+" от "+Док.ДатаДок); Продолжить; КонецЕсли; ГлПользователь=Док.Автор; КонецЦикла; Док.Записать(); исключение Сообщить("Ошибка в документе: "+СокрЛП(Док.Вид())+" №"+Док.НомерДок+" от "+Док.ДатаДок); Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЦикла; Предупреждение("Обработка завершена!"); КонецПроцедуры
И еще: МестоХраненияВЭксплуатации, и МестоХранения - это реквизиты шапки или табличной части?
МестоХраненияВЭксплуатации, и МестоХранения - это реквизиты шапки
попробуйте как я вам советую
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
Группа: Местный
Сообщений: 59
Из: Київ
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(wmatik @ 07.10.11, 11:40)
МестоХраненияВЭксплуатации, и МестоХранения - это реквизиты шапки
тогда действительно цикл по строкам не нужен
Процедура Выполнить() Док=СоздатьОбъект("Документ"); Док.ВыбратьДокументы(НачДата,КонДата); Пока Док.ПолучитьДокумент()=1 Цикл Если (Док.Вид() = "ВводВЭксплуатацию") Тогда Состояние("Обрабатываю документ "+Док.ТекущийДокумент()); Попытка Если ПустоеЗначение(Док.МестоХраненияВЭксплуатации) = 0 Тогда СтарМестоХранения = Док.МестоХранения; СтарМестоХраненияВЭксплуатации = Док.МестоХраненияВЭксплуатации; Док.МестоХранения=СтарМестоХраненияВЭксплуатации; Док.МестоХраненияВЭксплуатации=СтарМестоХранения; иначе Сообщить(Пустое значение МестоХраненияВЭксплуатации в документе: "+СокрЛП(Док.Вид())+" №"+Док.НомерДок+" от "+Док.ДатаДок); Продолжить; КонецЕсли; ГлПользователь=Док.Автор; Док.Записать(); исключение Сообщить("Ошибка в документе: "+СокрЛП(Док.Вид())+" №"+Док.НомерДок+" от "+Док.ДатаДок); Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЦикла; Предупреждение("Обработка завершена!"); КонецПроцедуры
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!