helpf.pro
Регистрация

v8: Форма списка Документа

Ermak
19.04.2013 13:37Прочитано: 4381
Я заполняю документ Форма и провожу, он отобразился в форме списка, потом заполняю и провожу документ Подписан, после того как провел документ Подписан в документе Форма реквизит Подпись (булева) становится Истина, но в форме списка колонки Подпись остается пустой (без изменения), подскажите как быть!

Вот в модуле формы документа Форма

Код 1C v 8.х
 Процедура ПриОткрытии()
Запрос = Новый Запрос (
"ВЫБРАТЬ
| Подписаный.Ссылка
|ИЗ
| Документ.Подписаный КАК Подписаный
|ГДЕ
| Подписаный.Организация = &Организация
| И Подписаный.Квартал = &Квартал");

Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
ЭлементыФормы.Форма.Колонки.Номенклатура.Доступность = Ложь;
ЭлементыФормы.Форма.Колонки.Количество.Доступность = Ложь;
ЭлементыФормы.Форма.Колонки.Цена.Доступность = Ложь;
ЭлементыФормы.Подписан.Значение = Истина;
КонецЕсли;
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
19.04.2013 14:06Ответ № 1
(0) Ermak, а если в форме нажать F5 ?
Mokey
19.04.2013 14:24Ответ № 2
ЭлементыФормы.Подписан.Значение = Истина;
а это что, реквизит формы?
Ermak
19.04.2013 15:18Ответ № 3
(1) E_Migachev, не помогает F5, вот если зайти в документ и заново его перепровести тогда все нормально.

(2) Mokey, Да, тип Булево.
Ermak
19.04.2013 19:14Ответ № 4
Попробовал так не работает

Код 1C v 8.х
 Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если РежимЗаписи = РежимЗаписидокумента.Проведение Тогда
Если НЕ Подписан тогда
Подписан = истина;
КонецЕсли;
КонецЕсли;
Bell
21.04.2013 00:41Ответ № 5
Перепроведи,запиши документ Форма из документ Подписан
Изменено 21.04.13 00:46:19
mixa4
21.04.2013 15:27Ответ № 6
при проведении документа Подписаный - меняй реквизит Подписан документа Форма
sashuly
22.04.2013 09:56Ответ № 7
Мне кажется у вас не правильный подход, вы устанавливаете реквизит Подписан при открытии документа Форма. Правильно было бы в момент проведения документа Подписан найти документ форма и менять его реквизиты.
Ermak
22.04.2013 13:49Ответ № 8
вы правы, я так сейчас и стал делать только не много запарился. Я создал регистр сведений для документа Подпись и подключил его к документу, хочу сделать чтобы обновляла документ Форма, но у меня выдает ошибку
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.Подписаный.МодульОбъекта(22)}: Поле объекта недоступно для записи (Подписан)

Документ Подписан, модуль объекта
Код 1C v 8.х
 Процедура ОбработкаПроведения(Отказ, Режим)
Движения.СтатусПодписи.Записывать = Истина;
Движения.СтатусПодписи.Очистить();
Движение = Движения.СтатусПодписи.Добавить();
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.Подпись = Подписан;
Движение.Квартал = Квартал;

Запрос = Новый Запрос (
"ВЫБРАТЬ
| Форма1.Подписан
|ИЗ
| Документ.Форма1 КАК Форма1");
Выбор = Запрос.Выполнить().Выбрать();
Выбор.Подписан = Подписан;

КонецПроцедуры

и не могу понять как перезапись потом опять.
sashuly
22.04.2013 15:10Ответ № 9
ошибка потому что Выбор только для чтения
sashuly
22.04.2013 15:21Ответ № 10
вам надо определится с структурой вашей БД. При начальных условиях можно обойтись без регистра сведений.

В модуле проведения документа Подписан, надо сделать что-то типа:

выполнить запрос к документам Форма, что б найти нужный документ

Код 1C v 8.х
 
Выбор = Запрос.Выполнить().Выбрать();
пока Выбор.Следующий() цикл
Док = Выбор.ДокФорма.ПолучитьОбъект(); // ДокПодписаный - имя в запросе
док.Подписан = истина;
док.Записать();



конеццикла;
Ermak
22.04.2013 15:30Ответ № 11
Спасибо я сделал так

Код 1C v 8.х
 	Запрос = Новый Запрос (
"ВЫБРАТЬ
| Форма1.Ссылка
|ИЗ
| Документ.Форма1 КАК Форма1");
Выбор = Запрос.Выполнить().Выбрать();
Выбор.Следующий();
Документ = Выбор.Ссылка.ПолучитьОбъект();
Документ.Подписан = Подписан;
Документ.Записать(РежимЗаписиДокумента.Проведение);
sashuly
22.04.2013 16:52Ответ № 12
можно и так, но так методологически не правильно делать, да и упадет программа если не найдется документ.
Ermak
23.04.2013 09:19Ответ № 13
(12) sashuly, спасибо
Ermak
23.04.2013 09:19Ответ № 14
Подскажите как проверить документ на удаление, например если документ удален тогда реквизит ложь
sashuly
23.04.2013 10:30Ответ № 15
Если документ удален то его нет, и поиск ни чего не даст, не так разве?
Mokey
23.04.2013 10:57Ответ № 16
(14) Ermak,
если документ помечен на удаление, то Ссылка.ПометкаУдаления = Истина
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.