Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228

Обновить форму списка

24.04.2013, 14:50. Показов 2917. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два документа Форма1 и Подписаный
Форма1 - реквизиты: РеквизитХраненияДоступности и Подписан (Тип Булево)
Подписаный - реквизиты: Подписан (Тип Булево)

Когда создаем документ Подписаный по умолчанию реквизит Подписан = Истина, этим кодом мы делаем реквизит Подписан = Истина в документе Форма1

Документ Подписаный - Общий модуль

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.СтатусПодписи.Записывать = Истина;
    Движения.СтатусПодписи.Очистить();
    Движение = Движения.СтатусПодписи.Добавить();
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подпись = Подписан;
    Движение.Квартал = Квартал;
    
    Запрос = Новый Запрос (
    "ВЫБРАТЬ
    |   Форма1.Ссылка
    |ИЗ
    |   Документ.Форма1 КАК Форма1
    |ГДЕ
    |   Форма1.Квартал = &Квартал
    |   И Форма1.Организация = &Организация");
    Запрос.Параметры.Вставить("Квартал",  Квартал);
    Запрос.Параметры.Вставить("Организация",  Организация);
    Выбор = Запрос.Выполнить().Выбрать();
    Пока Выбор.Следующий() Цикл
    Документ = Выбор.Ссылка.ПолучитьОбъект();
    Документ.Подписан = Истина;
    Документ.Записать();
    
    КонецЦикла;
    
КонецПроцедуры
Теперь когда мы открываем форму списка документа Форма1 видем в колонки Подписан галочку (т.е Истина), теперь заходим в документ Форма1 делаем реквизит РеквизитХраненияДоступности = Истина и срабатывает такой код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Процедура РеквизитХраненияДоступностиПриИзменении(Элемент)
    
    ТекстВопроса = "Вы действительно хотите открыть доступ, чтобы редактировать документа? Это влечет удалением документа Утверждение!";
    Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
    Если РеквизитХраненияДоступности И Ответ = КодВозвратаДиалога.Да Тогда
    ЭлементыФормы.Квартал.Доступность = Истина;
    ЭлементыФормы.ФормаПЗ.Доступность =Истина;
    ЭлементыФормы.Форма.Колонки.Номенклатура.Доступность = Истина;
    ЭлементыФормы.Форма.Колонки.Количество.Доступность = Истина;
    ЭлементыФормы.Форма.Колонки.Цена.Доступность = Истина;
    ЭлементыФормы.Подписан.Значение = Ложь;
    
    ЗапросУдаления = Новый Запрос (
    "ВЫБРАТЬ
    |   Подписаный.Ссылка
    |ИЗ
    |   Документ.Подписаный КАК Подписаный
    |ГДЕ
    |   Подписаный.Квартал = &Квартал
    |   И Подписаный.Организация = &Организация");
    ЗапросУдаления.УстановитьПараметр("Квартал",ЭлементыФормы.Квартал.Значение);
    ЗапросУдаления.УстановитьПараметр("Организация",ЭлементыФормы.Организация.Значение);
    Выборка = ЗапросУдаления.Выполнить().Выбрать();
Пока Выборка.Следующий()Цикл
      Выборка.Ссылка.ПолучитьОбъект().Удалить();
КонецЦикла;
Иначе
    ЭлементыФормы.РеквизитХраненияДоступности.Значение = Ложь;
 Закрыть();
    КонецЕсли;
 
КонецПроцедуры
Этот код ищет нужный нам документ Подписаный и его удаляет, заметим что реквизит Подписан = Ложь. Значение Ложь принимает только в одном документе а мне нужно чтобы он сразу обновил во всех документах. Я пытался сделать так

Документ Подписаный - Общий модуль
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.СтатусПодписи.Записывать = Истина;
    Движения.СтатусПодписи.Очистить();
    Движение = Движения.СтатусПодписи.Добавить();
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подпись = Подписан;
    Движение.Квартал = Квартал;
    
    Запрос = Новый Запрос (
    "ВЫБРАТЬ
    |   Форма1.Ссылка
    |ИЗ
    |   Документ.Форма1 КАК Форма1
    |ГДЕ
    |   Форма1.Квартал = &Квартал
    |   И Форма1.Организация = &Организация");
    Запрос.Параметры.Вставить("Квартал",  Квартал);
    Запрос.Параметры.Вставить("Организация",  Организация);
    Выбор = Запрос.Выполнить().Выбрать();
    Пока Выбор.Следующий() Цикл
    Документ = Выбор.Ссылка.ПолучитьОбъект();
    Если Документ.Подписан = Истина Тогда
    Документ.Записать();
Иначе
    Движения.СтатусПодписи.Очистить();
КонецЕсли; 
    КонецЦикла;
    
КонецПроцедуры
Но когда я провожу документ Подписаный он сразу очищает регистр, т.е не сохраняет. Может кто подскажет как быть мне.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2013, 14:50
Ответы с готовыми решениями:

Форму списка Заказов разбить на 4-ре списка по данным из регистра сведений (8.2, обычные формы)
Доброго времени суток, Форумчане! после решения данной задачи я сильно нагрузил систему, лагать стало не по детски. Хочу найти...

Изменить форму списка в 1с 8
Не подскажете как изменить выводимую форму списка? Например, если пользователь имееет другую роль?

Открыть форму редактирования списка значений
Открыть форму редактирования списка значений - эта форма открывается из форм настроек отчетов 1С, использующих Построитель. Эта форма...

8
59 / 59 / 6
Регистрация: 16.01.2013
Сообщений: 162
24.04.2013, 16:16
Цитата Сообщение от Ermak27 Посмотреть сообщение
Значение Ложь принимает только в одном документе а мне нужно чтобы он сразу обновил во всех документах.
В каких это во всех документах?
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.04.2013, 16:43  [ТС]
Во всех документах Форма1
0
59 / 59 / 6
Регистрация: 16.01.2013
Сообщений: 162
24.04.2013, 17:00
Не знаю как эти документы связаны друг с другом, что исправление в одном документе исправляет и в других документах(может чё то не догоняю)

1C
1
2
3
4
5
6
7
8
Иначе
    ЭлементыФормы.РеквизитХраненияДоступности.Значение = Ложь;
    Запрос = Новый Запрос("Где выбираешь все документы форма1")
    Пока выборка.следующий() цикл
       Выборка.РеквизитХраненияДоступности.Значение = Ложь;
    КонецЦикла;
Закрыть();
КонецЕсли;
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.04.2013, 19:59  [ТС]
вот как я стал делать
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    Запрос = Новый Запрос (
    "ВЫБРАТЬ
    |   Форма1.Ссылка
    |ИЗ
    |   Документ.Форма1 КАК Форма1
    |ГДЕ
    |   Форма1.Квартал = &Квартал
    |   И Форма1.Организация = &Организация");
    Запрос.УстановитьПараметр("Квартал",ЭлементыФормы.Квартал.Значение);
    Запрос.УстановитьПараметр("Организация",ЭлементыФормы.Организация.Значение);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий()Цикл
        Док=Выборка.Ссылка.ПолучитьОбъект();
 
    Если НЕ ЭтотОбъект =Выборка.Ссылка Тогда 
        
        Док.Подписан = Ложь;
        Док.Записать();
        КонецЕсли;
    КонецЦикла;
Подскажите как сделать чтобы не обращался к документу, вот пытаюсь сделал так, а то выдает ошибку при сохранении
Операция не может быть выполнена из-за нсоответствия версии ....

Добавлено через 1 час 17 минут
???
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
24.04.2013, 20:15
Цитата Сообщение от Ermak27 Посмотреть сообщение
???
бат хау???
Цитата Сообщение от Ermak27 Посмотреть сообщение
как сделать чтобы не обращался к документу
кто?
Цитата Сообщение от Ermak27 Посмотреть сообщение
из-за нсоответствия версии
аккуратнее надо
Цитата Сообщение от Ermak27 Посмотреть сообщение
ЭтотОбъект =Выборка.Ссылка
это разные типы, сравнения нет, и вы пишете левый экземпляр объекта, который у Вас в буфере на клиенте
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.04.2013, 20:25  [ТС]
duk337, нужно прописать чтобы не обращался к себе документ, подскажите как сделать?
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
24.04.2013, 20:27
1C
1
Если НЕ Ссылка =Выборка.Ссылка Тогда
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
24.04.2013, 20:43  [ТС]
я так делал, все равно выдает ошибку

Добавлено через 2 минуты
duk337, спасибо все получилось!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2013, 20:43
Помогаю со студенческими работами здесь

Вызвать форму редактирования списка (8.2 не управляемые формы)
Доброго времени суток! Я тут думаю как реализовать: есть кнопка, по нажатию на нее открывается форма (форма в которой формируем...

Добавить закладку на форму при выборе из списка
Здраствуйте. Работаю с 1С7.7 (Бухгалтерский Учёт для Украины). Есть справочник ТМЦ (Номенклатура). В форме элемента в значения реквезита...

Програмно вызвать справочник.форму списка на опр эл справочника
В 8.1 как сделать по кнопке открытие формы списка спозиционированном на определенном элементе?

Как передать рассчитанную сумму на форме документа в форму списка?
В документе есть форма документа. В ней в табличной части рассчитывается сумма через Путь к данным: ИтогСумма и выводится в подвал таблицы....

Чистов: нужно добавить сумму в форму списка расходных накладных
Изначально в форме списка: дата, номер, контрагент. Создаем форму На форме у нас в реквизитах динамический список. Идем в его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru