Проведение документов 7.7

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. 1126 26.11.14 16:39 Сейчас в теме
Прошу помочь в вопросе:
Какой механизм в КД2 проведения документов из 8.2 в 7.7?

Т.е. есть документ в 8.2 (проведен), а после конвертации в 7.7 (не проведен). Как его сделать в 7.7 проведенным?

Даже спустя столько лет никто не ответил: http://www.forum.mista.ru/topic.php?id=149540
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1126 27.11.14 08:53 Сейчас в теме
3. NatalyaVP 27.11.14 09:49 Сейчас в теме
В ПКО документа в обработчике "После загрузки" можно записать так:
Объект.Провести();
4. Xershi 1126 27.11.14 10:09 Сейчас в теме
(3) NatalyaVP, меня смущает запись:
Условия возникновения события
Только для платформы V8.
Событие выполняется после прочтения и установки атрабутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта.

5. Xershi 1126 27.11.14 10:24 Сейчас в теме
Протестировал разные варианты и в ПКО, и в самой конвертации везде выдало ошибку.
6. Xershi 1126 27.11.14 11:50 Сейчас в теме
Выручайте, нет инфы в нете! Везде глухо...
7. NatalyaVP 27.11.14 11:51 Сейчас в теме
Ну, переносите документы с движениями, и делайте у документа пометку, что он проведён.
8. Xershi 1126 27.11.14 11:58 Сейчас в теме
(7) NatalyaVP, документ счет в 8 движений не делает.
9. NatalyaVP 27.11.14 12:07 Сейчас в теме
(8), Если нет движений, зачем тогда проводить документ?
В ПКО у реквизита "Проведен" в обработчике "перед выгрузкой" попробуйте написать значение=1;
12. Xershi 1126 27.11.14 14:23 Сейчас в теме
(9) NatalyaVP, еще до того как пробовал, результат не дает.
10. tusv 196 27.11.14 12:11 Сейчас в теме
Лично в обработчике "Перед загрузкой данных"

Инициализирую Параметр "ТаблицаДокументов" Тип таблица значений с колонками Дата, Документ, Приоритет
В обработчике "После загрузки объекта"
Если ИмяТипаОбъекта = "Документ" И Не Отказ Тогда

Добавляю строку
КонецЕсли;
В обработчике "После загрузки данных"
Сортирую таблицу по Приоритету,Дате
Пробегаюсь по Параметру ТаблицаДокументов"
и провожу
11. Xershi 1126 27.11.14 14:01 Сейчас в теме
(10) tusv, взял за основу http://infostart.ru/public/21069/
Но чего-то не хватает.
Вот что сделал, но все равно с ошибкой грузит...
13. tusv 196 27.11.14 16:23 Сейчас в теме
(11) Xershi, Ты пишешь восьмерочным кодом, а надо семерочным
Параметры.ТаблицаДокументов=СоздатьОбъект("ТаблицаЗначений");

Параметры.ТаблицаДокументов.НоваяКолонка("ДатаВремя");

Параметры.ТаблицаДокументов.НоваяКолонка("Документ");
__________________________________________

Параметры.ТаблицаДокументов.НоваяСтрока();
Параметры.ТаблицаДокументов.ДатаВремя=Объект.Дата;
Параметры.ТаблицаДокументов.Документ=Объект;
______________________________________________
Параметры.ТаблицаДокументов.ВыбратьСтроки();
Пока Параметры.ТаблицаДокументов.ПолучитьСтроку() Цикл
Параметры.ТаблицаДокументов.Документ.Провести();
КонецЦикла;
14. Xershi 1126 27.11.14 16:44 Сейчас в теме
(13) tusv, я с семеркой на "вы", но правила нужны приходится разбираться.
Все равно ошибка:
Начало загрузки: 16:40:42
Конвертация_ПередЗагрузкойДанных<<?>>()
Функция не обнаружена (Конвертация_ПередЗагрузкойДанных)
Конвертация_ПослеЗагрузкиОбъекта<<?>>(ОбъектБД, ИмяПравила)
...
Функция не обнаружена (Конвертация_ПослеЗагрузкиОбъекта)
Конвертация_ПослеЗагрузкиОбъекта<<?>>(ОбъектБД, ИмяПравила)
Функция не обнаружена (Конвертация_ПослеЗагрузкиОбъекта)
Недопустимый способ указания значения - Нпп
Конвертация_ПослеЗагрузкиОбъекта<<?>>(ОбъектБД, ИмяПравила)
Функция не обнаружена (Конвертация_ПослеЗагрузкиОбъекта)
Конец загрузки: 16:40:43
Конвертация_ПослеЗагрузкиДанных<<?>>()
Функция не обнаружена (Конвертация_ПослеЗагрузкиДанных)
Показать
16. tusv 196 27.11.14 17:08 Сейчас в теме
(14) Xershi, Для Семерки надо Выполнить еще одну манипуляцию, Выгрузить текстмодуля из КД и вставить его в обработку загрузки 77
17. Xershi 1126 27.11.14 17:22 Сейчас в теме
(16) tusv, опять косяк:
Пока Параметры.ТаблицаДокументов.ПолучитьСтроку() <<?>>Цикл
{D:\V77IMP.ERT(128)}: Выражение должно иметь логический тип
Если ИмяТипаОбъекта <<?>>= "Документ" Тогда
{D:\V77IMP.ERT(162)}: Переменная не определена (ИмяТипаОбъекта)
18. tusv 196 27.11.14 17:40 Сейчас в теме
(17) Xershi, Блин с семеркой последний раз имел дело лет 5 назад
Параметры.ТаблицаДокументов.ПолучитьСтроку() =1
разумеется
20. Xershi 1126 28.11.14 09:56 Сейчас в теме
(18) tusv, чего семерка хочет?
Начало загрузки: 09:30:56
Ошибка исполнения обработчика: Конвертация_ПередЗагрузкойДанных
- Значение не представляет агрегатный объект (НоваяКолонка)
Недопустимый способ указания значения - Нпп
Конец загрузки: 09:30:56
Ошибка исполнения обработчика: Конвертация_ПослеЗагрузкиДанных
- Значение не представляет агрегатный объект (Сортировать)


Код чутка под 7 поправил, но что не так в ПередЗагрузкойДанных?
15. Xershi 1126 27.11.14 16:47 Сейчас в теме
(13) tusv, вот что изменил в перед загрузкой данных:
//ТаблицаДокументов = Новый ТаблицаЗначений;
//ТаблицаДокументов.Колонки.Добавить("Документ");
//ТаблицаДокументов.Колонки.Добавить("ДатаВремя");
//Параметры.ТаблицаДокументов = ТаблицаДокументов;
Параметры.ТаблицаДокументов=СоздатьОбъект("ТаблицаЗначений");
Параметры.ТаблицаДокументов.НоваяКолонка("ДатаВремя"); 
Параметры.ТаблицаДокументов.НоваяКолонка("Документ"); 

После загрузки объекта:
Если ИмяТипаОбъекта = "Документ" Тогда 
    //Объект.Записать(); 
	//НоваяСтрока = Параметры.ТаблицаДокументов.Добавить();
	//НоваяСтрока.Документ = Объект.Ссылка;
	//НоваяСтрока.ДатаВремя = Объект.ДатаДок; 	
	Параметры.ТаблицаДокументов.НоваяСтрока(); 
	Параметры.ТаблицаДокументов.ДатаВремя = Объект.Дата; 
	Параметры.ТаблицаДокументов.Документ = Объект;    
КонецЕсли;
Показать

После загрузки данных:
Если Параметры.ТаблицаДокументов.Количество() > 0 Тогда
	Параметры.ТаблицаДокументов.Сортировать("ДатаВремя Возр");
//	Ин = 0;
//	Для каждого Строка из Параметры.ТаблицаДокументов Цикл
//		Объект = Строка.Документ.ПолучитьОбъект();
//		Попытка 
//			//Объект.Записать(РежимЗаписиДокумента.Проведение);
//			Объект.Записать();
//			Объект.Провести();
//			Сообщить("Документ проведен : "+ СокрЛП(Объект));
//			Ин = Ин + 1;
//		Исключение
//			Сообщить("ДОКУМЕНТ НЕ ПРОВЕДЕН : "+ ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
//			Сообщить(" "+СокрЛП(Объект));
//		КонецПопытки;
//	КонецЦикла;
	Параметры.ТаблицаДокументов.ВыбратьСтроки(); 
	Пока Параметры.ТаблицаДокументов.ПолучитьСтроку() Цикл 
		Параметры.ТаблицаДокументов.Документ.Провести(); 
	КонецЦикла;
//	Сообщить("Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено " + СокрЛП(Ин) +" объектов");
//	Иначе
//		Сообщить("Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено 0 объектов");
КонецЕсли;
	
Показать

Параметры оставил без изменений.
19. tusv 196 27.11.14 17:42 Сейчас в теме
Можно так
Если ТипЗначенияСтр(Объект) = "Документ" Тогда
тра ляля
КонецЕсли;
21. Xershi 1126 28.11.14 11:59 Сейчас в теме
В итоге удалил из параметров "ТаблицаДокументов". Почему-то семерка конструкцию
Параметры.ТаблицаДокументов=СоздатьОбъект("ТаблицаЗначений");
не отрабатывает, пришлось снести упоминание про таблицы везде и код заработал.

На днях публикацию сделаю.
22. Xershi 1126 05.12.14 10:57 Сейчас в теме
Оставьте свое сообщение
Вопросы с вознаграждением