Управляемые формы 1С - События и Обработчики

Поділитися
Вставка
  • Опубліковано 19 лис 2024

КОМЕНТАРІ • 126

  • @иринасдобникова-с8р
    @иринасдобникова-с8р 10 місяців тому +2

    Олег, вы прирожденный "эксКУРСовод" )) очень доступно и доходчиво, а игровая форма подачи домашних заданий просто класс👏

  • @pavelabramov5446
    @pavelabramov5446 3 роки тому +3

    "Лень - двигатель прогресса" и "Лениться нужно вовремя и с трудом". Из рубрики "Крылатые выражения" канала ТехПоддержка.
    Ладно, я действительно поставил на паузу и стал решать задачки.........
    Боже ж ты мой! Я сделал это!! У меня есть все-таки шанс стать разработчиком! Спасибо Вам, Олег!!!

  • @user-pc2qq5gh7l
    @user-pc2qq5gh7l Рік тому +3

    Спасибо за урок! Я благодарна Вам, что есть подробное описание задачи и Вы направляете для дальнейших действий.

  • @shkedin
    @shkedin 3 роки тому +9

    3 из 3!
    1 задача - 5-7 минут;
    2 задача - 10 минут;
    Использовал код: Если ЗначениеЗаполнено (Объект.Продукты) Тогда...
    3 задача - заметил ещё во время просмотра, уже бросается в глаза)
    П.С.
    Чувствую, как становлюсь наглее)

  • @coma_ss
    @coma_ss Рік тому +1

    Добрый день!
    Задание с прошлого урока решил не совсем правильно - просто для формы выбора присвоил форму списка и не проверил, что теперь нельзя выбирать продукт.
    Задание 1 - решил сразу
    Задание 2 - еще по ходу прохождения урока заметил не точности в логике и сразу возникла идея это поправить, справился быстро
    Задание 3 - назмение процедуры, еще во время урока, написал правильно - "ОбработкаИзмененияПродукта".
    Поэтому были другие идеи - "Если ЗначениеЗаполнено(Объект.Продукт) Тогда" использовано дважды, попробовал "ЗаполнитьТабЧастьПродуктыНаСервере()" вставить в первую конструкцию если, но ничего не получилось - код стал работать не правильно. В итоге посмотрел решение, оказалось все намного проще))
    Спасибо большое за ваши уроки!

  • @elenawork4158
    @elenawork4158 2 роки тому +6

    Доброго Вам дня!
    С большим удовольствием говорю Вам Спасибо!
    Каждое Ваше объяснение супер важно для Новичка 1000%! И ничего лишнего!
    Как же мне все становится понятно!!! ) Супер просто!!🙏🙏🙏

  • @SvetlanaBova
    @SvetlanaBova 7 місяців тому +1

    Невозможно не прокомментировать ))) "Лень - двигатель прогресса". Спасибо вам за качественную подачу материала!!!
    Опечатка бросилась в глаза безусловно и сразу. Сказать не получается. Как та собака, все понимает, а сказать никак )))

  • @Анастасия-в4ъ6д
    @Анастасия-в4ъ6д 3 роки тому +4

    Иногда я захожу в ютуб просто посмотреть, не вышло ли нового видео на канале Техподдержка)))) Ура, ура! Будем учиться! Спасибо за урок!

  • @НатальяДенисенко-ы9г

    первое задание сделала за 30 сек)) второе - не смогла понять, что надо сделать, а третье...... Ошибку увидела сразу, в процессе написания, подумала, что позже поправите)), но когда прозвучала задачка - даже в голову не пришло, что она про это :)
    Спасибо за уроки, очень доступно для понимания нулевого новичка.

  • @timofeyn5122
    @timofeyn5122 2 роки тому

    допом еще очистку формы вынес в отдельную процедуру на клиенте... дабы DRY соблюсти) Спасибо за материал - весьма доступная подача, что очень важно при изучении такой сатаны, как 1С))))

  • @Алинка-з5м
    @Алинка-з5м 2 роки тому +2

    Спасибо за очередной урок. Обожаю Вашу подачу! Кнопку сделала, как и Вы, ошибки нашла еще во время занятия, а вот со вторым заданием справилась, только с идеей, воплощение уже списала)

  • @irinaleukhina132
    @irinaleukhina132 2 роки тому +1

    Первое задание выполнила быстро. После первого запуска Предприятия, поняла, что надо делать условие на пустую табличную часть. Вроде справилась. ))) Ошибки было сложнее найти))) Благодарю за новые знания!!! )))

  • @Laurchic97
    @Laurchic97 3 роки тому +1

    Отличный урок! Предыдущее домашнее задание сделала "примитивным" способом - добавляла форму вручную и настраивала список. Приятно удивил Ваш способ решения, действительно так проще и меньше можно допустить банальных ошибок, спасибо!
    Из второго домашнего задание получилось решить 1 и 3, ушло буквально 10 минут), а вот по поводу 2 задания - усердно думала, перебирала различные варианты, но до правильного решения так и не дошла. Зато теперь знаю в каком месте есть пробел, который нужно восполнять :)

  • @boris82842
    @boris82842 7 місяців тому +1

    Я раньше довольно много программировал в Access, мне все очень понятно и домашку сделал сходу :)

  • @Денис-ч1з
    @Денис-ч1з Рік тому

    Вот! Автор Красавчик, Спасибо родной!

  • @AlexMiron1990
    @AlexMiron1990 2 роки тому +1

    На 1 задачку я потратил минут 30! Но зато в каком восторге я был, когда эта кнопка заработала!)))
    Но тут же сразу заметил, что чистое поле можно очистить еще раз (но я сначала не понял, что это был ответ на 2 задачку), что касается 3 задачи, комментарий я не заметил, а вот "ОбработкаИзмененияпродукта" - мозолила глаз с самого появления в кадре))

  • @musafir8706
    @musafir8706 Рік тому

    Добрый День, на 1ое задание ушло минут 5, на 2-ое минут 15,
    Сделал глупо кажется ваш вариант намного короче и лучше ) а у меня чуть дублируется с последним если. Спасибо Вам за Видеокурсы одни из лучших на просторах ютуба) 10\10
    Если Не ЗначениеЗаполнено(Объект.Продукты) Тогда
    ЗаполнитьТабЧастьПродуктыНаСервере();
    ИначеЕсли Вопрос("Очисить табличную часть?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
    Объект.Продукты.Очистить();
    КонецЕсли;
    Если ЗначениеЗаполнено(Объект.Продукт) Тогда
    ЗаполнитьТабЧастьПродуктыНаСервере();
    КонецЕсли;

  • @Vagas100
    @Vagas100 Рік тому

    Хороший у вас юмор, сижу и учиться приятно

  • @geserardanov8568
    @geserardanov8568 3 роки тому +4

    Спасибо за урок! Просто, Понятно и очень Позитивно!=)

  • @killa952
    @killa952 Рік тому

    Выполнил домашнее задание не знаю на сколько это этично или можно так делать, но для условия я вынес отдельную процедуру так же «на клиенте» и не стал копировать код для кнопки очистить, а просто вынес туда вызов этой процедуры так же вынес эту процедуру в процедуру в обработкуизменияпродута в то место где у нас было условие. Как по мне мы избавились от лишних строчек кода и вполне все хорошо работает)) или все таки такой метод занимает больше памяти и на время срабатывания

  • @lenar1919
    @lenar1919 3 роки тому +3

    Спасибо! Понятно,доходчиво и позитивно

    • @lenar1919
      @lenar1919 3 роки тому +1

      Может быть в одном из уроков более подробно затронуть тему правильного понимания написаного в синтаксис помощнике или в справке , а то не всегда понимается какие параметры где и куда передавать.. Спасибо.

    • @tp2b
      @tp2b  3 роки тому

      Видимо действительно нужен такой урок.
      Можете поподробнее расписать что не понятно в синтаксис-помощнике?

  • @kg312dza2
    @kg312dza2 Рік тому

    Супер отличная подача материала, спасибо большое!

  • @Сергей-ф7щ7в
    @Сергей-ф7щ7в 7 місяців тому

    Спасибо за этот урок и Д/З!!!

  • @SWML
    @SWML Рік тому +2

    Как всё красиво, действительно)

  • @Павел-э5о2т
    @Павел-э5о2т 2 роки тому +2

    Отличные видео, так держать!

  • @pavelabramov5446
    @pavelabramov5446 3 роки тому +2

    Признаюсь честно, что Домашку я выполнил создавая вручную список выбора. Приятно-очевидно удивило то, что можно список было сделать простым копированием существующего и добавки в созданный корректировки.
    По сути , объекты метаданных ведь также копированием то уже создавал... теперь буду знать и про списки в формах... а раз так, то тогда и небось еще что-нибудь можно создавать копированием. Буду держать эту мысль на подкорке.

    • @tp2b
      @tp2b  3 роки тому +2

      1С тем и хороша, что можно достигнуть цели разными путями... как при конфигурировании, так и при ведении учёта.
      Это, правда, добавляет головной боли при разграничении прав :) Но у всего есть минусы :)

  • @АннаАнна-с3ы
    @АннаАнна-с3ы Рік тому

    потрясающее😀 объяснение

    • @tp2b
      @tp2b  Рік тому

      Спасибо :)

  • @АлександрЛяховецкий-р1ь

    Отличная подача материала, большое спасибо!

    • @tp2b
      @tp2b  Рік тому

      Пожалуйста :)

  • @Николай-в2м9д
    @Николай-в2м9д 3 роки тому +2

    Крутые уроки, по управляемым формам на ютубе толком ничего нет

  • @ichich-gw5ct
    @ichich-gw5ct 3 роки тому +1

    Ура новый видосик) Спасибо буду изучать)

    • @tp2b
      @tp2b  3 роки тому

      Пожалуйста :)

  • @botaniq4756
    @botaniq4756 15 днів тому

    При выполнении первого задания можно вынести очистку рабочей части в отдельную процедуру и потом просто вызывать ее в нашей процедуре ОбработкаИзмененияпродукта) и в новой процедуре, привязанной к кнопке.

  • @mebelsam2138
    @mebelsam2138 Рік тому

    А я подумал, что лишнее вот что - если при изменении продукта, выбрать тот же продукт что и указан в поле (допустим яичница из 2 яиц, открываем список и выбираем ее же), то программа спрашивает - заполнить список продуктов и т.п. Создал дополнительный реквизит на форме, в него при открытии формы кинул Объект.Продукт, и потом при изменении сравниваю значение этого реквизита с Объект.Продукт, если не совпадает, то запускаю ОбработкаИзмененияПродукта(); и в дополнительный реквизит опять присваиваю Объект.Продукт...
    На половине решения, мне пришла мысль что возможно зря табличную часть очищаем, если она пустая, оказалось не зря приходила мысль!

  • @АртемЯкубовский-и2г

    СпасибоЗаОчереднойУрок!)
    з.ы. Очепятки у себя не делал) Пришлось в видео высматривать

  • @denisi6541
    @denisi6541 3 роки тому +1

    Спасибо большое.

    • @tp2b
      @tp2b  3 роки тому

      Пожалуйста :)

  • @ЕленаБондаренко-н3ч

    Добрый день! Очень понравилась подача! Пожалуйста, не останавливайтесь )))
    По домашке: про кнопку "Очистить" логику поняла, даже что откуда скопировать тоже, а вот не правильно выбрала на клиенте и сервере... Второе - логику тоже поняла, но как сделать - нет, без подглядывания не вышло )) Опечатки не нашла (((

    • @tp2b
      @tp2b  3 роки тому +2

      Здравствуйте!
      Начал снимать новый сезон :)
      Очень рад что нравятся уроки.

  • @Алексей-ч2у7х
    @Алексей-ч2у7х 3 роки тому +1

    Немного улучшенная процедура очистки... ну чтоб совсем кошерно)))
    &НаКлиенте
    Процедура ОчиститьТабЧасть(Команда)

    Если ЗначениеЗаполнено(Объект.Продукты) Тогда
    Если Вопрос("Очистить табличную часть?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
    Объект.Продукты.Очистить();
    КонецЕсли;
    Иначе
    ПоказатьОповещениеПользователя("Таблица пуста!",,"Нет необходимости в очищении...");
    КонецЕсли;
    КонецПроцедуры

  • @DrawRonnie
    @DrawRonnie Рік тому

    С первым заданием долго ломала голову, так как забыла, каким образом создаётся команда формы, пришлось подсмотреть в прошлом занятии... А второе задание выполнила ещё до его озвучивания, так как резал глаза лишний вопрос об очищении пустой таб части, использовала функцию ЗначениеЗаполнено для решения обеих задачек, надеюсь, это тоже допустимое решение?)

  • @blackvital
    @blackvital 3 роки тому

    Отличная подача материала! Подписался на канал.👍

  • @Net-olekma
    @Net-olekma 2 роки тому +1

    Очень нестандартный подход к обучению. Но очень дельный. Спасибо!

  • @ДаниловВ.А
    @ДаниловВ.А 2 роки тому

    Олег, спасибо Вам большое за Ваш труд.Отдельное спасибо за домашнее задания.Кстати по поводу домашнего задания: Выполнил два из трех. И мое выполнение отличается от Вашего. А 3 задание прдедположил что ошибкой является сокрощение (ТабЧасть), ведь в программирование не допускается сокрощения

    • @ДаниловВ.А
      @ДаниловВ.А 2 роки тому

      &НаКлиенте
      Процедура ОчиститьТабЧасть(Команда)

      Если Не ЗначениеЗаполнено(Объект.Продукты) Тогда
      Возврат;
      Иначе
      Если Вопрос("Очисть табличную часть?",РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
      Объект.Продукты.Очистить();
      КонецЕсли;
      КонецЕсли;
      КонецПроцедуры
      ВОТ ТАК ВЫГЛЯДИТ МОЕ ИСПОЛНЕНИЕ ДОМАШНЕГО ЗАДАНИЯ

    • @anastasiyaosadcheva4971
      @anastasiyaosadcheva4971 2 роки тому

      @@ДаниловВ.А тоже так сделала) это верно?

  • @Andrew_Zitikhin
    @Andrew_Zitikhin Рік тому

    Добрый день. Олег! в каком видеоуроке вы рассказывали. как настроить подсветку ошибок при написании программного кода в конфигураторе (в модуле объекта)?

    • @tp2b
      @tp2b  Рік тому

      Здравствуйте, Андрей.
      Кажется, не рассказывал такого...

  • @user-ps4jn3
    @user-ps4jn3 3 роки тому +2

    Привет, почему не выходит новые уроки?

    • @tp2b
      @tp2b  3 роки тому +3

      Готовлю урок про Контекст, очень сложное в подготовке видео оказалось....

  • @СлаваСлава-щ9б
    @СлаваСлава-щ9б 3 роки тому +2

    Спасибо тебе за муравьёв Мосыч . Ну в смысле MOSPARKRU

    • @tp2b
      @tp2b  3 роки тому

      Пожалуйста :)

  • @merlin-ulg
    @merlin-ulg 3 роки тому +4

    Я сделал домашку с другой логикой. Непонятно, зачем нам нужно показывать в форме выбора продукта все продукты и какие-то подсвечивать, когда можно просто список в форме выбора фильтровать, сразу убирая ненужные строки. То есть если мы выбираем продукт, то и показывать нужно именно готовые продукты, а если выбираем ингредиент, то показывать только ингредиенты.
    Исходя из этой логики, я поменял 2 параметра реквизита Продукт. В документе ПриготовлениеПродуктов.Реквизиты.Продукт в свойствах "Параметры выбора" указал "Отбор.МожноПриготовить(Истина)". А в списке ингредиентов документа ПриготовлениеПродуктов.ТабличныеЧасти.Продукты.Продукт в свойствах "Параметра выбора" указал обратное условие "Отбор.МожноПриготовить(Ложь)".
    В итоге не нужно никаких подсветок, в форме выбора ингредиента видим только ингредиенты, а в форме выбора продукта видим только продукты.

    • @tp2b
      @tp2b  3 роки тому

      Отличный подход!

  • @andreykaruko4961
    @andreykaruko4961 Рік тому

    Сделал вторую задачу ещё на прошлом уроке)

  • @alexmcquoter3747
    @alexmcquoter3747 2 роки тому

    КАСАЕТСЯ ДЗ 14 УРОКА!!!! Сделал домашнее задание еще по одному варианту, по мне как самому простому и быстрому! Комментарии все не читал, возможно уже писали! В режиме Предприятие открыть в документе Приготовление выбор продукта в табличную часть и уже в форме выбора справочника Продукты через кнопку "Ещё" кликнуть по "Настроить список" и там уже всё станет ясно) Голову ломал несколько дней, но решение специально нигде не подсматривал, думал Сам

    • @DrawRonnie
      @DrawRonnie Рік тому +1

      Тут один нюанс: все изменения настроек, производимые в режиме 1с Предприятие будут отображаться лишь в вашем приложении, другие пользователи их не увидят. В конфигураторе же изменения будут касаться всех пользователей

    • @alexmcquoter3747
      @alexmcquoter3747 Рік тому

      @@DrawRonnie спасибо, учту

  • @PavelNikithin
    @PavelNikithin 8 місяців тому

    Пытался решить задачу, почему то решил, что действовать нужно через документ ПриготовлениеПродуктов и изменять его форму. Ведь действия происходят в его форме и пытался добавить туда скрытый реквизит Продукты из Справочника, но ничего не вышло (кто бы мог подумать). Это то, что мне подсказала интуиция.
    И в этом, я думаю, сложность для меня, как новичка - совершенно не интуитивные причинно-следственные связи, что где брать, куда ложить и что с этим делать
    Конечно помогает объяснение о объектно-событийной парадигме, но дается пока сложно после python.

  • @soter_main
    @soter_main Рік тому

    Блин, я 3 задачу думал что не так, думал, что я дурак))) но я то у себя в коде искал, а я на автомате правильно написал😂

  • @Анастасия-в4ъ6д
    @Анастасия-в4ъ6д 3 роки тому +1

    Мне резало глаз ещё и то, что дублировались условия "Если ЗначениеЗаполнено(Объект.Продукт) Тогда..." Надо перенести процедуру ЗаполнитьТабЧастьПродуктыНаСервере() в первое условие, немного сократился бы код.

    • @tp2b
      @tp2b  3 роки тому +2

      Но тогда при положительном ответе на второй опрос, всё что заполнено, было бы следом очищено....

  • @shnurmp4
    @shnurmp4 3 роки тому +1

    Лайк!

  • @alexalex543
    @alexalex543 10 місяців тому

    А что передаёт параметр " элемент" или "команда" в процедуру обработчик?

  • @lgofshteyn
    @lgofshteyn 2 роки тому

    Как открыть форму выбора с заранее отфильтрованным списком сотрудников? Дело в том, что выбирать можно только работающих сотрудников, а информация работает он или нет хранится в регистре сведений.

  • @vrnKrasKi
    @vrnKrasKi 2 роки тому

    Вообще сделал вот так:
    Объект.Продукты.Очистить();
    ТаблицаПродуктов=Объект.ПродуктНаВыходе.Ингредиенты.Выгрузить();
    Объект.Продукты.Загрузить(ТаблицаПродуктов);
    С запросом будет быстрее или правильнее? Можно узнать?

  • @melkiy1735
    @melkiy1735 2 роки тому

    Как всегда шедеврально. Но куда же без вопросов. А можно везде использовать одну и ту же форму списка и в СПИСКЕ и в ВЫБОРЕ и не менять режим её программно, если пользователя устраивает все? В чем критичное отличие этих форм изначально, как закладывали разрабы 1С?

    • @tp2b
      @tp2b  2 роки тому

      По идее можно, разница только в том, что при выборе элемент в режиме формы списка необходимо открывать элемент для просмотра/редактирования, а при выборе элемента в форме выбора нужно закрывать форму и возвращать результат выбора... честно говоря не помню как себя платформа ведет, если одну и туже форму указать, возможно ни чего не нужно будет программного переключать...

  • @KhabibulinAnvar
    @KhabibulinAnvar 3 роки тому

    24:55 Подскажите, пожалуйста, какое сочетание клавиш используется для быстрого форматирования?

    • @tp2b
      @tp2b  3 роки тому +1

      Alt+Shift+F

    • @KhabibulinAnvar
      @KhabibulinAnvar 3 роки тому

      @@tp2b Спасибо. За ответ и за контент.

    • @tp2b
      @tp2b  3 роки тому

      @@KhabibulinAnvar Пожалуйста

  • @КсюшаПушкаридзе
    @КсюшаПушкаридзе 3 роки тому +1

    Спасибо за уроки! Объясняете просто супер! Задание выполнила быстро, но втором задании использовала "НЕ ЗначениеЗаполнено" думаю сути это не меняет? Или нельзя так 😀 А ошибки не допускала сразу по ходу видео, по этому не нашла)

    • @tp2b
      @tp2b  3 роки тому

      Почему же нельзя? Творческий подход только приветствуется!

    • @КсюшаПушкаридзе
      @КсюшаПушкаридзе 3 роки тому

      @@tp2b Спасибо!

  • @ИгорьАралов-ц1р
    @ИгорьАралов-ц1р 3 роки тому

    А почему очистку таб. части в отдельную процедуру не вытащили в конце?)

  • @wowchik13
    @wowchik13 2 роки тому

    А можно использовать за место ЗначениеЗаполнено() Объект.Продукт.Пустая()?

    • @tp2b
      @tp2b  2 роки тому

      Конечно можно :)

  • @ДедМороз-к9ю
    @ДедМороз-к9ю 2 роки тому

    Может лучше при обучении сразу использовать асинхронные методы вместо "модальных" так как в работе они встречаются чаще(почти всегда)?

    • @tp2b
      @tp2b  2 роки тому

      Может и лучше.... но сильно сложнее для понимания новичками...

  • @olegshpilevoy
    @olegshpilevoy 11 місяців тому

    А если в продукте не выбирать новую яичницу, а перевыбирать ту же, что уже выбрана в поле ввода, то будет срабатывать событие ПриИзменении ?

    • @tp2b
      @tp2b  11 місяців тому

      Должно срабатывать.

  • @AlexMiron1990
    @AlexMiron1990 2 роки тому

    20:12 При очистке "Привет " - второй раз не выскакиевает.... что то мне подсказывает, что учебная версия (8.3.22.1603) сырая

    • @AlexMiron1990
      @AlexMiron1990 2 роки тому

      хотя нет, работает, если после очистки кликнуть мышкой куда нибудь

  • @РезедаНугманова-т4и

    А я не поняла, почему при приготовлении блюд (а я булево с "можно приготовить" заменила на понятие "блюдо") можно выбирать другие продукты со значением "можно приготовить". Блюда готовятся из продуктов=ингредиентов, как вы сами заметили на прошлой лекции, нельзя снести яйцо. Можно приготовить яичницу, булочку и тп, но никак нельзя приготовить молоко, яйцо, муку, допустим. Так почему бы не заниматься свечением "можно приготовить" при выборе ингредиентов, а просто поставить условие, что при приготовлении блюд выбираются только продукты, а не другие блюда?

    • @tp2b
      @tp2b  2 роки тому

      Логика была простая, но её принятие не обязательное условие просмотра видосов :)
      Например потому что мы можем приготовить фарш или тесто и заморозить.... есть мы это не будем, но можем запастись и использовать дальше, по необходимости. Или хлеб, можно употребить в пищу, а можно пустить в котлеты...

    • @РезедаНугманова-т4и
      @РезедаНугманова-т4и 2 роки тому

      @@tp2b Логично)

  • @ДмитрийСиренко
    @ДмитрийСиренко 3 роки тому

    Маленькая П, в первой процедуре!

  • @pavelabramov5446
    @pavelabramov5446 3 роки тому

    Хочу уточнить про такую сущность как "Объект". Понять не могу до сих пор до конца, что это такое. Мне кажется, что ранее я хотя бы интуитивно понимал что такое "Объект", но услышав на "Мы не внутри Объекта и напрямую к реквизитам обратить не можем", понял, что не понимаю в итоге, что это за сущность такая "Объект".
    Строка кода, о которой говорится об Объекте - "Если ЗначениеЗаполнено(Объект.Продукт) Тогда" на видео этот момент на 25:39.

    • @tp2b
      @tp2b  3 роки тому

      Мы этот момент разбирали, но не отдельно. Отдельно еще обсудим в самое ближайшее время и всё будет еще понятнее.

    • @jlktkrftgjhuoij
      @jlktkrftgjhuoij 3 роки тому

      @@tp2b Посмотрел это видео и следующее, но так и не понял, зачем мы к свойствам формы обращаемся через объект. Мы находимся в контексте формы и проверяем заполненность формы. Объект - у нас форма, точнее, копия объекта Документ на форме. Можно понять, что Объект, в данном случае, виртуальный. Но даже виртуальный объект при заполнении или проверке на пустоту мы не трогаем. Если мы не напишем Объект и так понятно, что ближайшее свойство, это свойство формы.

    • @tp2b
      @tp2b  3 роки тому

      @@jlktkrftgjhuoij Пишите тайм-коды и примеры. Я не помню все видосы наизусть.
      Но если правильно понял вопрос, то мы не с формой работаем... Мы работает в модуле формы, а проверить нам нужно заполнение реквизитов документа, вот и обращаемся к ним через "Объект".

  • @tp2b
    @tp2b  3 роки тому +2

    Поддержать канал/Получить плюшки: boosty.to/tp2b
    Поддержать рублем: donate.stream/tp2b
    Файлы по урокам: yadi.sk/d/fbayAds8H5K67A?w=1

    • @СлаваСлава-щ9б
      @СлаваСлава-щ9б 3 роки тому +2

      Спасибо за информацию полезную в видео на тех поддержки

  • @Igor-ld5pf
    @Igor-ld5pf 3 роки тому +1

    Первое задание выполнил за 2 мин.

  • @AlexMiron1990
    @AlexMiron1990 2 роки тому

    29:10 как только все это вынесли в отдельную процедуру, то всё, порушилось. Переменные не определены.

    • @AlexMiron1990
      @AlexMiron1990 2 роки тому

      Всё, разобрался... Проблема в том, что вынося все в отдельную процедуру - забыл вписать "&НаКлиенте" . Невнимательность моя не знает границ. Хотя автор и говорит "Скопируем и вставим, чтобы не писать &НаКлиенте"

  • @yuriysalahoff742
    @yuriysalahoff742 Рік тому

    После добавления обработки поля формы Продукт ПриИзменении Кнопка Заполнить теряет смысл

    • @tp2b
      @tp2b  Рік тому

      Но если хорошо подумать... может и не теряет :)

    • @yuriysalahoff742
      @yuriysalahoff742 Рік тому +1

      @@tp2b Если только пользователь очистит и затем передумает) Согласен ... смысл остается

  • @ЮрийТокарев-о3ю
    @ЮрийТокарев-о3ю 3 роки тому

    Если ЗначениеЗаполнено(Объект.Продукты) Тогда
    Если Вопрос("Табличная часть будет очищена! Продолжить?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
    Возврат;
    Иначе Объект.Продукты.Очистить();
    КонецЕсли;
    ОчиститьТабЧастьПродуктыНаСервере();
    КонецЕсли;
    У меня получилось вот такое.

    • @tp2b
      @tp2b  3 роки тому

      Что-то у Вас масло масляное получилось....
      Если нет, то выходит из алгоритма, а если да, тогда...
      Тогда выполняются сразу две очистки :) Странно.
      Объект.Продукты.Очистить();
      ОчиститьТабЧастьПродуктыНаСервере();

    • @ЮрийТокарев-о3ю
      @ЮрийТокарев-о3ю 3 роки тому

      @@tp2b вторая очистка видимо лишняя. А вот вопрос возник у меня: если мы заполнили в табличной части документа приготовление продуктов только колонку продукт, а колонку количество не заполнили, то конструкция если объект.продукты.количество > 0 не позволит выполниться процедуре очистки, хотя в таблице есть данные?

    • @tp2b
      @tp2b  3 роки тому

      Объект.Продукты.Количество()
      считает количество строк в табличной части Продукты... даже если если там пустые строки, они будут посчитаны.
      За расчёт итога по колонке отвечает другой метод: Объект.Продукты.Итог("Количество")
      вот он вернёт общий итог по колонке "Количество"

    • @ЮрийТокарев-о3ю
      @ЮрийТокарев-о3ю 3 роки тому

      @@tp2b спасибо

    • @tp2b
      @tp2b  3 роки тому

      Пожалуйста

  • @Imstalcon
    @Imstalcon 3 роки тому

    Показали бы ещё как в типовых массово скрывают и отображают элементы формы. Сам принцип.

    • @tp2b
      @tp2b  3 роки тому

      Типовые это вообще отдельная история :)

  • @СанекКартоев
    @СанекКартоев 2 роки тому

    Код не видно во время просмотра!!! Просьба увеличить обзор

    • @tp2b
      @tp2b  2 роки тому

      В смысле как?

  • @СлаваСлава-щ9б
    @СлаваСлава-щ9б 3 роки тому +1

    Моспарк зайдите на его канал

  • @Finist7483
    @Finist7483 2 роки тому

    вместо полениться слышится паляныця. вот жешь.

    • @tp2b
      @tp2b  2 роки тому

      Ютюб мой коммент не пропустил.... попробуем еще раз :)
      У меня тесть был с Украины, может его влияние....
      байки про негра, гыдын, хвылы и бандеровцев, а еще про зупынку за углом рассказывал регулярно :)

  • @llllllll00_
    @llllllll00_ 2 роки тому

    т о о о о о о о о о

  • @pavelabramov5446
    @pavelabramov5446 2 роки тому

    Просматриваю это видео в октябре 2022 (спустя полтора года после выпуска) и второй раз и второй раз же с нуля делаю это задание.
    Я еще увидел, что можно малюсенькую оптимизацию кода сделать, а именно дублируются конструкции с оператором "Если" :
    "Процедура ОбработкаИзмененияПродукта()
    Если ЗначениеЗаполнено(Объект.Продукт) Тогда
    Если Вопрос("Табличная часть будет заполнена! Продолжить?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли;
    КонецЕсли;
    ............
    🧑‍💻//Тут можно убрать оператор "Если", так как в первом операторе "Если" будет отрицательный ответ, то до этого места обработчик не дойдет, а если ответ будет положительный, то уже и смысла перепроверять заполнено ли значение Объект.Продукт - нет, так как выше в коде на это уже был дан ответ. И можно уже без условий вызывать процедуру "ЗаполнитьТабЧастьПродуктыНаСервере()"👨‍💻
    //Если ЗначениеЗаполнено(Объект.Продукт) Тогда
    ЗаполнитьТабЧастьПродуктыНаСервере();
    //КонецЕсли;
    КонецПроцедуры"

  • @symqa1162
    @symqa1162 3 місяці тому

    44:12, не знаю, насколько ещё актуальны комментарии на данном видео, однако хотел вы задать вопрос, касательно 2-ого задания. Видимо, я чуть неправильно понял его, но хотел уточнить, будет ли хоть как-то положительно сказываться данное изменение в положительную сторону на мой код? :
    Если Вопрос("Очистить табличную часть?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
    Объект.Продукты.Очистить();
    Сообщить("Табличная часть успешно очищена!");
    КонецЕсли;
    Если ЗначениеЗаполнено(Объект.Наименование) Тогда

    Ответ = Вопрос("Табличная часть будет заполнена. Продолжить?", РежимДиалогаВопрос.ДаНет);

    Если Ответ = КодВозвратаДиалога.Нет Тогда
    Возврат;
    Иначе
    ЗаполнитьРецептНаСервере();
    КонецЕсли;
    КонецЕсли;
    То есть про очистку у меня, конечно, тут совсем ни слова, но я решил дополнительно не проверять, пустая ли строка продукт (в моем случае - наименование), а сунуть его чуть в другое место, поменяв местами очистку и вопрос про заполнение таб части.

    • @symqa1162
      @symqa1162 3 місяці тому

      Уже нашёл ответ на свой вопрос, как только добавил проверку на "заполненность" таб.части) ахах

  • @980.2
    @980.2 Рік тому

    Добрый вечер!
    Я поставил на паузу и написал сам код на обработку изменения продукта, вот что получилось) Мусор? или имеет место быть?
    Процедура ОбработкаИзмененияПродукта()

    Если НЕ Объект.Продукт.Пустая() Тогда
    Если Вопрос ("Приступить к корректировке табличной части?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли;

    Если Вопрос ("Перезаполнить табличную часть согласно рецепта?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
    Объект.Продукты.Очистить();
    КонецЕсли;
    ЗаполнитьПоРецептуНаСервере();

    Иначе
    Если Вопрос ("Очистить табличную часть?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
    Объект.Продукты.Очистить();
    Возврат;
    КонецЕсли
    КонецЕсли;

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

    • @tp2b
      @tp2b  Рік тому +1

      Как вариант...
      внизу Возврат; ни чего не меняет...

  • @ЮлияКочетова-з6ъ

    Если ЗначениеЗаполнено(Объект.Продукт) Тогда
    Если Вопрос("Табличная часть будет заполнено! Продолжить",РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли;
    Если Вопрос("Очистить табличную часть?",РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
    Объект.Продукты.Очистить();
    КонецЕсли;

    ЗаполнитьТабличнуюЧастьПродуктыНаСервере();
    КонецЕсли;