1с 8 2 как изменить документ программно
Процедура ОсновныеДействияФормыДействие(Кнопка)
выборка = документы.Событие.Выбрать(начдата, кондата);
пока выборка.Следующий() цикл
Форма = документы.Событие.ПолучитьФорму(«ФормаДокумента»);
Форма.Элементыформы.подтверждение.Значение = истина;
конеццикла;
КонецПроцедуры
Пытаюсь обработкой за указанный период в документах изменить реквизит в значение «истина», не получается. Притом, если в процедуре сделать «сообщить», то в комментариях выводит правильное значение, а в документе не записывает. Не могу понять в чем ошибка.
объект надо получать
Если пытаешься изменить реквизит документа, то при чем тут элементы формы?
Кстати, слово «Записат» пишется таки с мягким знаком.
Объект= выборка.ПолучитьОбъект();
Объект. Подтверждение=Истина;
Объект. Записать(режимзаписидокумента.Запись);
Разработчику о работе с 1С:Предприятие, Pascal, Паскаль
Решение вопросов, возникающие при автоматизации учета с помощью 1С:Предприятие. Паскаль.
Как изменить значение реквизита документа 1С?
15.12.2016 |
Автор Дмитрий
Как изменить значение реквизита документа 1С?
Часто возникает потребность изменить какое-то значение в отдельном реквизите. И не в одном документе, в в нескольких документах. Возможно использовать запрос.
Например:
Процедура ИзменитьЗначениеВРеквизите() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателя.ДатаОплаты, | ЗаказПокупателя.Ссылка |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.Контрагент = &Контрагент | И ЗаказПокупателя.Дата >= &Дата"; Запрос.УстановитьПараметр("Контрагент",ВыбКонтрагент); Запрос.УстановитьПараметр("Дата",НачалоГода(ТекущаяДата())); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбДок=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); ОбДок.ДатаОплаты=КонецГода(ТекущаяДата());//изменение реквизита ОбДок.Записать(РежимЗаписиДокумента.Проведение); Сообщить(" "+ОбДок); КонецЦикла; КонецПроцедуры Процедура КнопкаВыполнитьНажатие(Кнопка) // Вставить содержимое обработчика. ИзменитьЗначениеВРеквизите(); КонецПроцедуры
В статье был рассмотрен вопрос:
Как изменить значение реквизита документа 1С?
![]()
Рубрика: 1С:Предприятие 8.2, Без рубрики
Как программно изменить реквизит Уточнение Наименования в справочниках Сотрудники и Физлица
Кто может подсказать: Как программно изменить реквизит Уточнение Наименования в справочниках Сотрудники и Физлица? Во внешней обработке команда:
Для Каждого Текстрока Из ДокументСсылка.Сотрудники Цикл СотрудникОбъект = Текстрока.Сотрудник.ПолучитьОбъект(); ФизлицоОбъект = СотрудникОбъект.ФизическоеЛицо.ПолучитьОбъект(); СотрудникОбъект.УточнениеНаименования = "Кл."; ФизлицоОбъект.УточнениеНаименования = "Кл."; СотрудникОбъект.Записать(); ФизлицоОбъект.Записать(); КонецЦикла;
После выполнения, если открываешь элемент справочника, то там «Уточнение Наименования» выглядит так как хочется, а вот в Списке отображается старое значение! Что еще нужно дописать, чтобы и в Списке отображалось как в элементе?
Спасибо!
поменять программно вид операции документа
«Документ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПрочееПоступление;
ругается:
: Поле объекта недоступно для записи (ВидОперации)
Документ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПрочееПоступление;»
Денис (САМАРА)
читатель
Дата регистрации: 09.04.2008
Сообщений: 8351
09.08.2011 12:38
Остановитесь отладчиком на этой строке и посмотрите что такое объект «Документ».
читатель
Дата регистрации: 05.03.2007
Сообщений: 1701
09.08.2011 12:39
Что такое Документ? Как его получили?
Если ТипЗнч(Документ) — Ссылка, то ясное дело не доступно для записи.
читатель
Дата регистрации: 23.12.2010
Сообщений: 1333
09.08.2011 12:57
Да и гуглом бы пора начать пользоваться,а то по каждому поводу тему создавать,тоже не дело!
читатель
Дата регистрации: 07.01.2011
Сообщений: 71
09.08.2011 16:12
дело в том что он по номеру документ анйти не может, хотя вроде все правильно делаю Документы.ПоступлениеНаРасчетныйСчет.НайтиПоНомеру(«Ав000001318»)
читатель
Дата регистрации: 07.01.2011
Сообщений: 71
09.08.2011 16:19
«так тоже не получается =((
Документ = Документы.ПоступлениеНаРасчетныйСчет.НайтиПоРеквизиту(«Номер»,ном);»
активный пользователь
Дата регистрации: 18.02.2002
Сообщений: 20941
09.08.2011 16:23
Весь код выложи.
читатель
Дата регистрации: 07.01.2011
Сообщений: 71
09.08.2011 17:15
«Вот весь код=)) в конфигураторе реквизит Номер имеет тип строка
ном = «Ав000001318»;
Документ = Документы.ПоступлениеНаРасчетныйСчет.НайтиПоРеквизиту(«Номер»,ном);»
читатель
Дата регистрации: 27.02.2009
Сообщений: 448
10.08.2011 14:56
«Документ = Документы.ПоступлениеНаРасчетныйСчет.НайтиПоНомеру(«Ав000001318»).ПолучитьОбъект();
Документ.ВидОперации = ВидОперации;
Попробуйте так)»
активный пользователь
Дата регистрации: 18.02.2002
Сообщений: 20941
10.08.2011 16:11
> дело в том что он по номеру документ анйти не может, хотя вроде все правильно делаю Документы.ПоступлениеНаРасчетныйСчет.НайтиПоНомеру(«Ав000001318»)
Показывать по 10 20 40 сообщений
Читают тему:
Мероприятия
© ООО «1С-Паблишинг» (материалы)
При использовании материалов активная прямая гиперссылка на перепечатанный материал обязательна.
Редакция БУХ.1С не несет ответственности за мнения и информацию, опубликованную в комментариях к материалам.
Редакция уважает мнение авторов, но не всегда разделяет его.
Дизайн сайта
© ООО «1C» 2000-2024 г.
Мы используем файлы cookie, чтобы анализировать трафик, подбирать для вас подходящий контент и рекламу, а также дать вам возможность делиться информацией в социальных сетях. Если вы продолжите использовать сайт, мы будем считать, что вас это устраивает.