ЗАНЯТИЕ 37. СООБЩЕНИЕ ИЗ ОБРАБОТКИ ПРОВЕДЕНИЯ ПРИ ЗАКРЫТИИ ФОРМЫ. ПОДГОТОВКА К СПЕЦУ ПО ПЛАТФОРМЕ 1С

  Рет қаралды 7,876

Бывший 1Сник

Бывший 1Сник

3 жыл бұрын

Поддержать донатом: donate.stream/ilyaleontyevpro1s
Ознакомиться с правилами культурного поведения в чате и ответами на часто задаваемые вопросы: cutt.ly/rh5pmBP
Получить выгрузки баз, полученных в ходе занятий:
cutt.ly/wh85jQ5
Альтернативная ссылка:
cutt.ly/3jdYMCf
*********************************
В этом видео разберем, каким образом можно обеспечить вывод сообщения из обработки проведения в том случае, если производится нажатие кнопки "Провести и закрыть".
Необходимость сделать это встречается в задаче про бюджет (билет №8, ОУ).
На экзамене разрешается забить на этот момент, но мы, пожалуй, забивать не будем.
*********************************
КАК ГОТОВЛЮСЬ:
Курс проекта Курсы-по-1С.рф:
xn----1-bedvffifm4g.xn--p1ai/courses/dev-att-2019/
Всячески рекомендую - он офигенный.
Почитываю статьи на Курсы-по-1С.рф, Infostart.ru, Its.1c.ru и книгу "Реализация прикладных задач в системе "1С:Предприятие"
Задаю вопросы в чате t.me/spec1c
В курсе мы не решаем задачи целиком, а рассматриваем ключевые моменты, которые нужно знать на экзамене.
Полные решения можно найти в чате: t.me/spec1c
Актуальные билеты также можно найти в этом чате: t.me/spec1c
А здесь вы найдете ответы на наиболее часто задаваемые мне вопросы: cutt.ly/zgqHqf7
#ильялеонтьев #спецпоплатформе #1с
Мои контакты:
ВКонтакте: ilyaleontyev
Фэйсбук: illeontev
С удовольствием добавлю вас в друзья при условии, что вы не будете меня грузить своими рабочими вопросами :)

Пікірлер: 46
@k035232
@k035232 3 жыл бұрын
Илья, спасибо! Никто кроме тебя не рассказывает про разные возможности платформы, обычно сухо излагают что писать, куда нажимать.
@AndyZaic
@AndyZaic 3 жыл бұрын
Очень информативно и интересно получилось. Спасибо огромное.
@user-yx4tz3tl8d
@user-yx4tz3tl8d 3 жыл бұрын
Спасибо, за второй способ!
@Katya_Grig
@Katya_Grig Ай бұрын
Илья, спасибо за многогранный разбор способов вывода сообщения. К сожалению, первый способ на твоей выгрузке перестал работать 😞 Может быть экзаменаторы правы в том, что не требуют знания таких нюансов.
@dnk3569
@dnk3569 3 жыл бұрын
Илья, большое спасибо за очень полезное и интересное занятие. Мне тоже как и остальным больше всего понравился второй способ для экзамена.
@user-te6zx5ht8n
@user-te6zx5ht8n 3 жыл бұрын
Блин, придется смотреть в записи!
@cilantro_bumblebee
@cilantro_bumblebee 3 жыл бұрын
Супер интересно, сколько сложностей из-за элементарного вывода сообщения! Мне понравились дополнительные свойства объекта, не знал про них. И про конвертацию Вопрос() в ПоказатьВопрос() тоже не знал. В 7.7 просто сообщить и всё)))
@svetlanakomarova5415
@svetlanakomarova5415 3 жыл бұрын
Илья, ну классное видео, столько информации, так интересно мне про эти способы узнать, супер... прям не 1С, а С++ А слушатели-смотрители то там в чате вообще подвисли... ))) с такими способами пользователь не отвертится, сказав, что он чего-то там никакого сообщения не видел... штраф за переисполнение бюджета!!!
@user-pl9hn7mg1q
@user-pl9hn7mg1q Ай бұрын
Хорошие способы через ДополнительныеСвойства - наверное самый лучший способ НО! переброска ТекстСообщения в ПриЗаписи() - в версии 1С: 8.3.17.1496 - всё равно ничего не выводится при [Провести и закрыть] Сообщение... не работает после закрытия, а вот через ПоказатьПредупреждение( , ТекстСообщения); всё работает! (и как раз как в задаче ОУ-8 написано показать предупреждение...) дополнительно это окно можно закрывать автоматически через 10 - 30 сек
@andreim7208
@andreim7208 3 жыл бұрын
Всё делается предельно просто: 1. ОбработкаПроведения документа вызывает процедуру/функцию общего модуля на сервере с параметром/переменной "Строка" 2. В процессе выполнения запроса эта переменная "Строка" заполняется нужным сообщением. 3. Добавить магическую строку в ОбработкаПроведения : Форма = ЭтотОбъект.ПолучитьФорму("Документ.Документ1.ФормаОбъекта"); 4. ОбработкаПроведения документа выводит эту строку в сообщении (сообщить и т.п.) Текст обработанной на сервере строки выводится при всех событиях. Если хотите "оптимизировать" - что есть отдельный Бггг и ЛОЛ, как и многое в 1С, то можете функцию сообщения вынести в общий модуль на клиенте. Тексты тестов: // модуль объекта Документ Процедура ОбработкаПроведения(Отказ, РежимПроведения) Строка = "Эта строка"; ПроведениеДокументов.омОбработка(ЭтотОбъект, Отказ, Строка); Форма = ЭтотОбъект.ПолучитьФорму("Документ.Документ1.ФормаОбъекта"); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "ОбработкаПроведения Док1: "+Строка; Сообщение.Сообщить(); КонецПроцедуры //общий модуль Сервер Процедура омОбработка(Объект, Отказ, Строка) Экспорт ТекстСообщения = " Процедура омОбработка добавила что-то"; Строка = Строка + ТекстСообщения; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "омОбработка"; Сообщение.Сообщить(); КонецПроцедуры 1С - это дичь полнейшая, с магией. Допускаю, что код можно доработать. Но лично мне лениво разбирать то, за что не платят и что не будет востербовано. ;-)
@user-lv6nq5sf7c
@user-lv6nq5sf7c 2 жыл бұрын
Сложновато, но хоть буду знать что так можно, при необходимости всегда можно пересмотреть это видео
@nikbelov1731
@nikbelov1731 3 жыл бұрын
Модуль формы документа расходная накладная, думаю лучше использовать функцию пустаястрока(), т.е "Если НЕ ПустаяСтрока(ТекстСообщения) Тогда" мы же тут конкретно знаем, что это строка ))) функция "ЗначениеЗаполнено(ТекстСообщения)" конечно не ошибка, но она сначала узнает тип значения и в зависимости от типа проверяет, обычно используют когда ждут составной тип )))) т.е медленнее ))) пустаястрока быстрее )
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
Ну ты педант )
@nikbelov1731
@nikbelov1731 3 жыл бұрын
@@IlyaLeontyev надо же хоть как то блеснуть )))))
@andreim7208
@andreim7208 3 жыл бұрын
upd. Похоже никаких параметров передавать в функцию на сервере не надо и всё дело в магии одной строки: Форма = ЭтотОбъект.ПолучитьФорму("Документ.Документ1.ФормаОбъекта"); Итого, текст теста: Процедура ОбработкаПроведения(Отказ, РежимПроведения) ПроведениеДокументов.омОбработка(ЭтотОбъект, Отказ); Форма = ЭтотОбъект.ПолучитьФорму("Документ.Документ1.ФормаОбъекта"); КонецПроцедуры Процедура омОбработка(Объект, Отказ) Экспорт ТекстСообщения = " Процедура омОбработка добавила что-то"; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "омОбработка "+ТекстСообщения; Сообщение.Сообщить(); КонецПроцедуры Т.о. эта "особенность" больше похожа на баг среды/платформы.
@user-rx4yr3bv8l
@user-rx4yr3bv8l Жыл бұрын
Спасибо большое добрый человек!!! Только после этого появились сообщения при провести и закрыть: Процедура ОбработкаПроведения(Отказ, РежимПроведения) ПроведенияДокументов.СформироватьДвиженияПоИсполнениюБюджета(ЭтотОбъект, Отказ); Форма = ЭтотОбъект.ПолучитьФорму("Документ.РасходнаяНакладная.Форма.ФормаДокумента"); КонецПроцедуры
@KonstantinVKE
@KonstantinVKE Жыл бұрын
К сожалению работает только на толстом клиенте
@IvanIvanovichZ
@IvanIvanovichZ 3 жыл бұрын
Спасибо, очень интересное и полезное занятие получилось. Для реальных задач обязательно буду все указанное использовать, на экзамене - ни в коем случае.
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
А на экзамене как будешь делать? Не станешь выводить сообщение при нажатии на кнопку "Провести и закрыть"?
@IvanIvanovichZ
@IvanIvanovichZ 3 жыл бұрын
@@IlyaLeontyev Сообщение будет выводится только при нажатии Провести, как мы на прошлом уроке и делали. Для экзамена этого будет достаточно. При решении реальных задач, по желанию клиентов, иногда такое приходится придумывать, что на экзамене сразу минус 10 баллов получил бы, поэтому нужно строго разделять реальные и экзаменационные задачи.
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
@@IvanIvanovichZ а почему при "Провести и закрыть" сообщение не должно выводиться? Ты это в постановке где-то прочитал?
@IvanIvanovichZ
@IvanIvanovichZ 3 жыл бұрын
@@IlyaLeontyev По хорошему, сообщение должно выводиться при любом способе проведения. Но, на всех форумах где я читал, говорят что упрощенный вариант не снижает балл. В решениях из инфостата такой же способ вывода (хотя там решения вообще очень примитивные для всех билетов). Несомненно, если останется время, то можно попытаться сделать всё правильно и красиво, но как раз времени может и не хватить.
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
@@IvanIvanovichZ на экзамене оценку не снижают - это да. Но есть же еще здравый смысл... Если ты можешь себе позволить такое решение показать, ради бога ) Мне было бы стыдно.
@romankizeev933
@romankizeev933 3 жыл бұрын
Доброго дня! На какой версии платформы делалось задание. На моей8.3.17.1851 третий способ, который мне очень понравился, не работает. Из контекстного меню работает, кнопкой "Провести" работает, а переопределенной кнопкой "Провести и закрыть" - нет. Загрузил выгрузку после занятия 37 - аналогичное поведение... UPD: На 8.3.18.1208 нормально работает. Значит глюк версии платформы....
@gerodoth
@gerodoth 3 жыл бұрын
а как насчет такого варианта - уведомление о том что бюджет будет превышен выводим при вводе суммы или смены контрагента. а при проведении не выводим.
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
Получать обороты при каждом изменении суммы слишком накладно. К тому же в задаче четко сказано, что сообщение нужно выводить при проведении.
@user-ml9yi4sy4b
@user-ml9yi4sy4b 2 жыл бұрын
Почему-то у меня ни одни способ не сработал. Смогла вывести сообщение только когда код писала для события ПриЗакрытии а не ПослеЗаписи. Это не будет ошибкой?
@IlyaLeontyev
@IlyaLeontyev 2 жыл бұрын
Если работает, то нет )
@user-ml9yi4sy4b
@user-ml9yi4sy4b 2 жыл бұрын
@@IlyaLeontyev Спасибо!
@IvanIvanovichZ
@IvanIvanovichZ 3 жыл бұрын
Сейчас начал экспериментировать. Получилось сделать вывод сообщения во всех 3 ситуациях (провести, провести и закрыть, провести из списка). В прошлом уроке мы сделали так что сообщение выводится в 2-х случаях (по кнопке провести и по провести из списка), а для "провести и закрыть" делаем как во 2 варианте этого видео (через ДополнительныеСвойства), только сообщение нужно выводить из процедуры ПриЗакрытии формы документа. Работает на платформах 8.3.18.1208 и 8.3.18.1289.
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
А если ты просто закрываешь форму без проведения, сообщение у тебя не выводится, часом?
@IvanIvanovichZ
@IvanIvanovichZ 3 жыл бұрын
@@IlyaLeontyev Если просто закрываю не выводится, а вот если нажать провести сообщение появляется (переменная формы при этом заполняется) и вот тогда при закрытии выводится повторно. Буду экспериментировать дальше.
@IvanIvanovichZ
@IvanIvanovichZ 3 жыл бұрын
@@IlyaLeontyev Возможно, в данной задаче от нас хотят вывод именно предупреждения. Оно прекрасно выводится при любом варианте проведения, нужно только создать еще один общий клиентсерверный модуль. Конечно, если через список проводить сразу 10 документов с превышениями, то появятся сразу 10 предупреждений, что в реальной жизни слабо применимо, но для экзамена будет самое то. Иногда, решение задачи "в лоб" бывает верным.
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
@@IvanIvanovichZ сообщения здесь достаточно, 100%. Мы следим за новостями с фронта )
@IvanIvanovichZ
@IvanIvanovichZ 3 жыл бұрын
Вроде победил. В форме документа ПриЗаписиНаСервере заполняется переменная формы ТекстСообщения, далее в ПослеЗаписи проверяется если она заполнена тогда выводит сообщение. (как 2 вариант в видео). Плюс: в ПередЗаписьюНаСервере добавляю строку: ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроведениеИзФормыДокумента", Истина); в общем модуле проведения документов проверяется есть ли переменная ПроведениеИзФормыДокумента, если нет, выводим сообщение из общего модуля, если переменная есть (то есть проведение вызвано из формы документа), то передаем переменную ТекстСообщения через ДополнительныеСвойства. Вроде все варианты протестировал, везде где нужно сообщение выводится (форма списка, Провести, ПровестиЗакрыть, Запись (проведенного документа), перепроведение), где не нужно (закрытие формы, отмена преведения) - молчит.
@IlyaLeontyev
@IlyaLeontyev 3 жыл бұрын
Красавец!
@user-ud3lh1bu6m
@user-ud3lh1bu6m Жыл бұрын
Слишком много офф-топика. Очень трудно смотреть. Плохое объяснение. Решение - хорошее, но подача материала плохая. Хватило бы минут 10 с пространными объяснениями, а тут скачешь туда-сюда...
Как показывать сообщения, диалоги и вопросы в 1С
1:06:30
IRONSKILLS - Курсы по 1С
Рет қаралды 33 М.
Iron Chin ✅ Isaih made this look too easy
00:13
Power Slap
Рет қаралды 36 МЛН
What it feels like cleaning up after a toddler.
00:40
Daniel LaBelle
Рет қаралды 89 МЛН
Викторина от МАМЫ 🆘 | WICSUR #shorts
00:58
Бискас
Рет қаралды 4,8 МЛН
Ошибки в коде 90% программистов
2:11:36
Желтый клуб — 1С программирование
Рет қаралды 38 М.
Профессия Аналитик 1С
44:15
Алена Мешкова Программист 1С
Рет қаралды 1,9 М.
Оптимизация запросов в 7 ТБ базе 1С
2:08:04
Желтый клуб — 1С программирование
Рет қаралды 55 М.
Асинхронные функции в 1С
16:42
IRONSKILLS - Курсы по 1С
Рет қаралды 24 М.
Iron Chin ✅ Isaih made this look too easy
00:13
Power Slap
Рет қаралды 36 МЛН