Программно не записывается документ

1. user8734 18.01.18 08:47 Сейчас в теме
Добрый день!

Проблема следующая. Я создал внешнюю обработку для документа "Табель учета рабочего времени". Что бы при нажатии на кнопку в выделенной строке в днях проставлялось значение "В" (выходные дни). В общем-то обработку написал, но при изменении одной строки, программа не дает сделать такие же действия с другой строкой пока не записан документ. Что бы это обойти, решил дописать обработку, что бы она после выполнения записывала документ. Она его записывает, но не сохраняет (звездочка около номера документа висит). После этих действий я не могу использовать доп кнопку дальше. Все еще просит записать документ, а если в этот момент начать записывать, то она ругается на то что данные изменены другим пользователем. По итогу не смог написать дописать обработку, что бы она выполнила все потребности. Подскажите пожалуйста как, либо написать код лучше, либо все же записывать документ через внешнюю обработку.

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
	ВыделенныеСтроки = ВладелецФормы.Элементы.ДанныеОВремени.ВыделенныеСтроки;
	
	Если ВыделенныеСтроки.Количество() = 0 Тогда
		Сообщить("Не выделено ни одной строки!");
		Возврат;
	КонецЕсли;
	
	НовоеЗначение = Новый Структура;	
	
	Для Каждого Строка Из ВыделенныеСтроки Цикл	
		Индекс = 1;
		Пока Индекс <= 31 Цикл
			
			НовоеЗначение.Очистить();
			ВидВремени = ПолучитьВидРабочегоВремени("Выходные дни");
			
			НовоеЗначение.Вставить("БуквенноеОбозначение", "В");
			НовоеЗначение.Вставить("ВидВремени", ВидВремени);
			НовоеЗначение.Вставить("Наименование", "Выходные дни");
			НовоеЗначение.Вставить("Целосменное", Истина);
			НовоеЗначение.Вставить("Часы", 0);
			
			Выполнить("УчетРабочегоВремениРасширенныйКлиент.ТабельДанныеОВремениВремяПредставлениеОбработкаВыбора(ВладелецФормы, ВладелецФормы.Элементы.ДанныеОВремениВремя" + Индекс + "Представление, НовоеЗначение, Истина)");
			Индекс = Индекс + 1;
	
		КонецЦикла;
	КонецЦикла;
	ЗаписатьДокумент(ВладелецФормы.Объект.Ссылка);	
КонецПроцедуры

&НаСервере
Процедура ЗаписатьДокумент(Ссылка)
	
	ДокументОбъект = Ссылка.ПолучитьОбъект();
	Попытка    
        ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);            
    Исключение
        Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	//Сообщить("" + ДокументОбъект.Ссылка + " Записано");
	
КонецПроцедуры

&НаСервере
Функция ПолучитьВидРабочегоВремени(Наименование)
	Возврат Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию(Наименование);
КонецФункции
Показать
По теме из базы знаний
Найденные решения
2. dandykry 12 18.01.18 09:03 Сейчас в теме
ДокументОбъект = Ссылка.ПолучитьОбъект();
Заменить на ЭтаФорма.Записать(); И параметры записи сделать проведение (не помню как пишется)
user8734; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dandykry 12 18.01.18 09:03 Сейчас в теме
ДокументОбъект = Ссылка.ПолучитьОбъект();
Заменить на ЭтаФорма.Записать(); И параметры записи сделать проведение (не помню как пишется)
user8734; +1 Ответить
5. user8734 19.01.18 03:02 Сейчас в теме
(2) Спасибо за ответы. Помог ваш вариант. Причем хватило просто записи ВладелецФормы.Записать()
3. dandykry 12 18.01.18 09:04 Сейчас в теме
Или скиньте обработку, может не все так чудно, как мне показалось. Сейчас вы на сервере записываете объект, а форма об этом не знает. (я так понял проблему)
4. maks_20 169 18.01.18 09:23 Сейчас в теме
попробуйте после записи ЗаписатьДокумент(ВладелецФормы.Объект.Ссылка); поставить ВладелецФормы.Прочитать();
Оставьте свое сообщение

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