С Новым годом! Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/140: Рейтинг темы: голосов - 140, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32

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

26.08.2015, 17:58. Показов 28051. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как сделать, чтобы код ниже отрабатывал при проведении документа?
Реквизиты не запишутся, если просто в документе нажать "провести и закрыть", хотя логично же, что процедура "при записи" должна тоже отработать в тот момент
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
Процедура ПриЗаписи(Отказ)
    Запрос = Новый Запрос();
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   СУММА(РасходыТабЧ.СтоимостьУчастия) КАК ОбщаяСумма,
        |   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РасходыТабЧ.Ученик) КАК КоличествоСдавших
        |ИЗ
        |   Документ.Расходы.ТабЧ КАК РасходыТабЧ
        |ГДЕ
        |   РасходыТабЧ.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
 
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
            ЭтотОбъект.СуммаДокумента= Выборка.ОбщаяСумма;
            ЭтотОбъект.КоличествоСдавших= Выборка.КоличествоСдавших;
            //ЭтотОбъект.Записать(РежимЗаписиДокумента.Проведение, );
            
    конецЕсли;
КонецПроцедуры
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.08.2015, 17:58
Ответы с готовыми решениями:

При проведении одного документа изменить реквизит в другом документе и записать его
Прошу помощи с одной проблемой в 1С 8.2 Управляемое приложение Есть у меня документ РеализацияМатериалов, при его проведени нужно дату...

Проверка реквизита при проведении документа
Добрый день. Есть документ заявка на патент, в документе есть реквизит ключевые слова. Нужно сделать механизм который бы проверял эти...

Смена должности при проведении документа
Всем привет. Есть справочник Сотрудники с реквизитами (фио, должность, подразделение, график работы). Есть документ кадровое перемещение,...

20
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
26.08.2015, 18:12
1. Процедура выбрана, где надо? (см. скрин), вообще для проведения используется процедура ОбработкаПроведения.

2. Внимательно читаем СП:

Кликните здесь для просмотра всего текста
ЭтотОбъект (ThisObject)
Использование:
Только чтение.

Описание:
Тип: ДокументОбъект.
Содержит сам объект базы данных. Предназначено, в основном, для получения данного объекта встроенного языка в модуле объекта или модуле формы.


В модуле объекта обращайся к реквизитам не через ЭтотОбъект, а напрямую.

Еще конструктор движений есть. 2 клик по документу - движения, там кнопка. Посмотри, как он строит процедуру, делай так же.
Миниатюры
Реквизит не записывается при проведении документа  
0
340 / 315 / 43
Регистрация: 20.08.2014
Сообщений: 1,242
Записей в блоге: 1
26.08.2015, 18:13
s41_blizzard, на форме можно ПриЗаписи, ПередЗаписьюНаСервере и и т.д.
ОбработкаПроведения срабатывает после того, как в БД записан документ. Т.е. Данные физически уже в БД.
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
26.08.2015, 18:30  [ТС]
Процедура помещена в модуле документа
Поместил код из первого поста в "обработку проведения", ничего не изменилось.
Я вообще эти реквизиты записываю, чтобы потом поместить эти реквизиты в форму списка этих документов. Дак вот в списке они сразу не появляются, а только после повторного проведения
Да, и сделал как вы посоветовали, убрал "ЭтотОбъект", обратился к реквизитам напрямую

Добавлено через 2 минуты
я пытался этот код поместить не в модуль документа, а именно в модуль формы списка документа, там тоже не заработало
0
340 / 315 / 43
Регистрация: 20.08.2014
Сообщений: 1,242
Записей в блоге: 1
26.08.2015, 18:37
s41_blizzard, хм, каша прям из всего.
Если записалось и охота в списке это сразу увидеть - ОбновитьОтображениеДанных() и автообновление 60 секунд например.
Второй вариант через ОбработкуОповещения(), когда документ провелся и там есть ПриЗакрытии() Или ПослеЗаписи() посылать оповещение, а в форме списка ловить.
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
26.08.2015, 18:41  [ТС]
Изначально, я пытался все делать проще: просто в форме списка добавить реквизит "сумма документа". Без всяких доп.примочек. Но в списке почему-то этот реквизит оставался пустым. Пришлось все это писать
0
340 / 315 / 43
Регистрация: 20.08.2014
Сообщений: 1,242
Записей в блоге: 1
26.08.2015, 18:48
s41_blizzard, конфигурация своя или типовая?
1
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
26.08.2015, 18:49  [ТС]
Своя, к сожалению
0
340 / 315 / 43
Регистрация: 20.08.2014
Сообщений: 1,242
Записей в блоге: 1
26.08.2015, 19:08
s41_blizzard, понятно. Как реализовать я вкратце написал, дальше поставить задачу чёткую, что в итоге надо и только тогда решите её сами.
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
26.08.2015, 19:17
s41_blizzard, Обработка события "При записи" выполняется уже после того как объект записан в базу. Поэтому любые модификации объекта уже не к чему не приводят.

В Вашем случае нужно использовать событие "Перед записью". Только в этом случае обращаться к данным с помощью запроса не получится. Придется все посчитать программно.
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
27.08.2015, 15:35  [ТС]
Созрел теперь такой вопрос:
создаю документ "X", у него создаю реквизит "Y". В форме документа этот реквизит отображается, в форме списка - нет. Как такое может быть? Точнее, реквизит в форме списке-то есть, но он не заполняется значениями, которые есть в в самом документе. Я эту тему вообще создал из-за того, что у меня изначально именно с этим была связана.
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
27.08.2015, 15:42
Может элемент формы не связан с данными документа?

Приложи конфигурацию.
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
27.08.2015, 15:50  [ТС]
Вот она. Проблема в формах списка обоих документов. Реквизиты появляются, но нужно сначала нажать кнопку "записать", если просто "провести", а потом закрыть, ничего не изменится.
Вложения
Тип файла: rar aug2015.rar (241.5 Кб, 2 просмотров)
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
27.08.2015, 16:09
Проблема не в списке документов, а в оброботчике события "Перед записью".
Уже было сказано, что в этом обработчике Ваши запросы не помогут.
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
27.08.2015, 16:17  [ТС]
Я это понял.
Я сейчас не про то говорю.
Без всяких дополнительных примочек, разве не должен отображаться реквизит документа в форме списка, если он нормально вполне отображается в форме самого документа? Или вопрос не корректен?
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
27.08.2015, 16:33
Цитата Сообщение от s41_blizzard Посмотреть сообщение
Без всяких дополнительных примочек, разве не должен отображаться реквизит документа в форме списка, если он нормально вполне отображается в форме самого документа?
Должен.
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
27.08.2015, 16:36  [ТС]
Ну тогда тайна сия великая есть.
Я процедуру "перед записью", запрос этот писал, присваивал значение реквизита программно только из-за того, что у меня изначально пустым оставался реквизит в форме списке дока, который отображался в форме дока.
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
27.08.2015, 16:40
Сделай так:
1C
1
2
3
Процедура ПередЗаписью(Отказ)
    СуммаДокумента = 100;
КонецПроцедуры
И убедись, что все работает и отображается сразу.

В конфе проблема в запросе.
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 32
28.08.2015, 16:10  [ТС]
Запрос вроде бы тоже правильно написал, я проверял через консоль его. Выше сказали, что в процедуре "перед записью" не можно использовать запросы. А как тогда быть?
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
28.08.2015, 19:21
Лучший ответ Сообщение было отмечено s41_blizzard как решение

Решение

Цитата Сообщение от s41_blizzard Посмотреть сообщение
Запрос вроде бы тоже правильно написал, я проверял через консоль его.
Запрос не работает так как надо, потому что он считывает данные из базы, а так как документ еще не записан, то считываются данные предыдущей версии.

Цитата Сообщение от s41_blizzard Посмотреть сообщение
Выше сказали, что в процедуре "перед записью" не можно использовать запросы.
Ну там я малость погорячился, запросы конечно же можно использовать. Только в Вашем случае это не спасает по причине, описанной выше.

Цитата Сообщение от s41_blizzard Посмотреть сообщение
А как тогда быть?
Как вариант, вычислите значения необходимых реквизитов по текущему состоянию объекта.
1C
1
СуммаДокумента = РасходыТабЧ.Итог("СтоимостьУчастия");
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2015, 19:21
Помогаю со студенческими работами здесь

Перенести данные из Документа в Справочник при проведении
В документе Путевой лист из регистра накопления Спидометр выводятся данные о Конечном пробеге, вводится текущий Пробег и рассчитывается...

Заполнение данных справочника при проведении документа.
Здравствуйте. Кто может подсказать, как сделать так, чтобы при проведении документа данные из его реквизита переносились в справочник? Я...

Объединение при проведении двух таблиц документа
Ребята, помогите, пожалуйста, нужно из двух движения (товаров и услуг) сделать одно. Я понимаю что нужно наверное их сначала объединить...

Изменение реквизитов справочника при проведении документа
Доброго времени суток! Прошу помочь, нужно изменить реквизиты элементов справочника "ОбъектыПроката" при проведении документа...

Ошибка при проведении документа оказание услуги
Доброго времени суток,я только начал учить 1с,по книге Радченко М.Г 1с практическое пособие разработчикам,и у меня такая проблема,при...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru