Документы 1С

1. user741170 03.05.17 07:38 Сейчас в теме
Подскажите как сделать что бы документ не дублировался при загрузки. Хочу сделать так что бы при загрузке файл заменял предыдущий по этой же дате. В данный момент он следом записывает

Процедура ЗагрузитьОстаткиВДокумент(ТаблицаОстатков, ДатаФайла)
	СтруктураПоиска = Новый Структура;
	           
	ДатаДокумента = СтрЗаменить(ДатаФайла, "T", " "); 

	
	СтруктураПоиска.Вставить("Дата", ДатаФайла); 
	Док = Документы.ОстаткиДистрибьютора.Выбрать( , , СтруктураПоиска);
	
	Если Док.Следующий() Тогда
		НайденныйДок = Док.Ссылка.ПолучитьОбъект();
		НайденныйДок.Дата = ДатаФайла;
		НайденныйДок.Организация = ЭтотОбъект.Организация;
		НайденныйДок.Контрагент = ЭтотОбъект.Контрагенты.Получить(0);
		НайденныйДок.Подразделение = ЭтотОбъект.Подразделение;		
		НайденныйДок.Товары.Загрузить(ТаблицаОстатков);
		Если НЕ НайденныйДок.ПометкаУдаления Тогда
			НайденныйДок.Записать(РежимЗаписиДокумента.Проведение);
			#Если Клиент Тогда
			Сообщить("Документ: "+ НайденныйДок + " записан.");
			#КонецЕсли
		Иначе
			#Если Клиент Тогда
			Сообщить("Документ: "+ НайденныйДок + " помечен на удаление. Операция не выполнена.")
			#КонецЕсли
		КонецЕсли;
		
	Иначе
		НовыйДокумент = Документы.ОстаткиДистрибьютора.СоздатьДокумент();
		НовыйДокумент.Дата = ДатаФайла;
		НовыйДокумент.Организация = ЭтотОбъект.Организация;
		НовыйДокумент.Контрагент = ЭтотОбъект.Контрагенты.Получить(0);
		НовыйДокумент.Подразделение = ЭтотОбъект.Подразделение;		
		НовыйДокумент.Товары.Загрузить(ТаблицаОстатков);
		НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
		#Если Клиент Тогда
		Сообщить("Создан новый документ: " + НовыйДокумент+".");
		#КонецЕсли
	КонецЕсли;
	
		
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. comptr 31 03.05.17 08:03 Сейчас в теме
А посмотреть в отладке нельзя? Создает новый документ, потому что не находит старый по ДатаФайла. Вот на неё и смотреть.
instancy777; +1 Ответить
3. instancy777 04.09.17 10:22 Сейчас в теме
(0) По всей видимости у Вас ДатаФайла - это строка, да еще и в специфичном формате:
ДатаДокумента = СтрЗаменить(ДатаФайла, "T", " ");

А конструкцию
Док = Документы.ОстаткиДистрибьютора.Выбрать( , , СтруктураПоиска);
Нужно переписать так:
Док = Документы.ОстаткиДистрибьютора.Выбрать(ДатаДокумента, ДатаДокумента);
предварительно преобразовав ДатаДокумента в тип "Дата" или приведя к виду "ГГГГММДД".
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот