Добрый день!
Проблема следующая. Я создал внешнюю обработку для документа "Табель учета рабочего времени". Что бы при нажатии на кнопку в выделенной строке в днях проставлялось значение "В" (выходные дни). В общем-то обработку написал, но при изменении одной строки, программа не дает сделать такие же действия с другой строкой пока не записан документ. Что бы это обойти, решил дописать обработку, что бы она после выполнения записывала документ. Она его записывает, но не сохраняет (звездочка около номера документа висит). После этих действий я не могу использовать доп кнопку дальше. Все еще просит записать документ, а если в этот момент начать записывать, то она ругается на то что данные изменены другим пользователем. По итогу не смог написать дописать обработку, что бы она выполнила все потребности. Подскажите пожалуйста как, либо написать код лучше, либо все же записывать документ через внешнюю обработку.
Проблема следующая. Я создал внешнюю обработку для документа "Табель учета рабочего времени". Что бы при нажатии на кнопку в выделенной строке в днях проставлялось значение "В" (выходные дни). В общем-то обработку написал, но при изменении одной строки, программа не дает сделать такие же действия с другой строкой пока не записан документ. Что бы это обойти, решил дописать обработку, что бы она после выполнения записывала документ. Она его записывает, но не сохраняет (звездочка около номера документа висит). После этих действий я не могу использовать доп кнопку дальше. Все еще просит записать документ, а если в этот момент начать записывать, то она ругается на то что данные изменены другим пользователем. По итогу не смог написать дописать обработку, что бы она выполнила все потребности. Подскажите пожалуйста как, либо написать код лучше, либо все же записывать документ через внешнюю обработку.
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
ВыделенныеСтроки = ВладелецФормы.Элементы.ДанныеОВремени.ВыделенныеСтроки;
Если ВыделенныеСтроки.Количество() = 0 Тогда
Сообщить("Не выделено ни одной строки!");
Возврат;
КонецЕсли;
НовоеЗначение = Новый Структура;
Для Каждого Строка Из ВыделенныеСтроки Цикл
Индекс = 1;
Пока Индекс <= 31 Цикл
НовоеЗначение.Очистить();
ВидВремени = ПолучитьВидРабочегоВремени("Выходные дни");
НовоеЗначение.Вставить("БуквенноеОбозначение", "В");
НовоеЗначение.Вставить("ВидВремени", ВидВремени);
НовоеЗначение.Вставить("Наименование", "Выходные дни");
НовоеЗначение.Вставить("Целосменное", Истина);
НовоеЗначение.Вставить("Часы", 0);
Выполнить("УчетРабочегоВремениРасширенныйКлиент.ТабельДанныеОВремениВремяПредставлениеОбработкаВыбора(ВладелецФормы, ВладелецФормы.Элементы.ДанныеОВремениВремя" + Индекс + "Представление, НовоеЗначение, Истина)");
Индекс = Индекс + 1;
КонецЦикла;
КонецЦикла;
ЗаписатьДокумент(ВладелецФормы.Объект.Ссылка);
КонецПроцедуры
&НаСервере
Процедура ЗаписатьДокумент(Ссылка)
ДокументОбъект = Ссылка.ПолучитьОбъект();
Попытка
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
//Сообщить("" + ДокументОбъект.Ссылка + " Записано");
КонецПроцедуры
&НаСервере
Функция ПолучитьВидРабочегоВремени(Наименование)
Возврат Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию(Наименование);
КонецФункции
ПоказатьПо теме из базы знаний
- Обработка «Изменение времени документа» для 1С:Предприятие 7.7
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Загрузка чеков из ФНС в документы 1С:БП, УНФ, ERP, КА и УТ
- Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)
- 14 инструментов для бюджетного и производственного планирования в программном продукте Бюджетир
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот