Очень люблю видео Чистова и просмотрел весь его спецкурс и многое другое. Долгое время никак не мог осознать, зачем нужно разделение итогов, понимал где-то на далеком уровне, Чистов это объяснил в спецкурсе слегка сумбурно. Но тут все настолько разжевали и в рот положили, что осознание того, зачем оно надо глубоко закрепилось в голове(штука то важная). Автора начал смотреть только лишь с этого плейлиста , по началу не зашло, но вот после разделения итогов прям проникся. Мое почтение, Илья, спасибо за Вашу работу
Илья, год назад смотрел Спецпроект Чистова, было не так понятно (хотя год назад я был совсем ноль в 1С), но по поему у тебя получается лучшая альтернатива! Плззз, фигач до конца! Просто тонны полезной информации себе открываю с каждого урока. (Норм вроде комет вышел ?! :-) )
Не встречал более ёмкого и краткого объяснения взаимосвязи опции 'Использовать разделение итогов' и свойства БлокироватьДляИзменения коллекции движений р-ра накоплений. Спасибо! 🤝
Илья, большое спасибо за такое понятное изложение материала! Я здесь, уже будучи отчаявшимся после видео Чистова Павла, вновь обрёл надежду, что вернусь к изучению этой программы! Успехов Вам!!!
Ильюха, красава!!! Все четко, присоединяюсь ко всем положительным комментариям пользователей, касательно данного видео материала по подготовке к спецу по платформе (занятие №3 и всех предыдущих занятий в рамках данного блока)!!!
Ролик кул. Классно рассказано про разделение итогов. Классно показано как в типовых работают движения. Я там видел такие куски когда, но никак не доходило где же само описание движения. Про блокировки для новой методики довольно понятно. Большую часть информации я знал, но даже так узнал много нового. Длина ролик час самое-то. Прошлый ролик пришлось на 2 раза делить. Довольно сложно почти 2 часа подряд слушать. Бедные слушатели Белоусова. Его занятия идут по 4 часа подряд. Я думаю и ему самому не так уж и легко от такого.
Кратко, ёмко, и без воды. Спасибо! Даже скорость 1.5 не ставил). Запрос = Новый Запрос второй раз можно было не делать). А ещё вроде как для новой методики нужно в два регистра писать. Свободные остатки (там куда мы БлокироватьДляИзменения ставим) и Остатки номенклатуры(где ставим Блокировка Данных). А то получается, что мы запишем движения в один регистр, а потом их надо заменить на списание партиями..
Любопытно, почему в конце 2018 года Павел Чистов в своем курсе спец 1С, тоже на ютубе, рассказывал только про новую методику, хотя и там тоже был рассчет себестоимости...
По моему опыту выгрузка результата запроса в таблицу значений это очень тормозная операция. В работе использую эту функцию только в отладчике для просмотра того, что вернул запос.
Выгрузка делается в оперативную память, выборка делается во временный файл на хрустящем жёстком диске. Если у тебя заведомо не много строк, то почему бы не использовать оперативную память...
Что бы схлопнуть строчки нужно вены себе вскрыть, хотя может есть проще вариант выяснения отрицательных остатков)))) может проще через СКД просто схлопнуть и отдельной кнопочкой)))
Старая методика применяется тогда, когда надо читать, а потом писать в один и тот же регистр. В синтекс помошнике есть пример блокировки для старой методики, его удобно использовать в решении, чтоб с нуля не писать.
Большое спасибо. Чудесный курс! А МенеджерыВременныхТаблиц можно использовать для разбиения запроса? sql не будет работать быстрее на маленьких запросах? Или по сути создание временных таблиц в запросе это тоже самое?
Цитата из its.1c: "При неоперативном проведении документов не имеет смысла производить целый ряд проверок, в частности контроль остатков" В новой методике надо проверку режима проведения сделать, и если режим Неоперативный, то не проверять остатки, а то попахивает грубой ошибкой
Круто если в таком стили будет разбор всех алгоритмов. Спасибо. Вопрос можно будет еще примерчики не на неявных транзакциях процедур документов, а через объявления НачатьТранзакцию (или для Специалиста 1С этого не надо)?
Неверное я туплю, но как сработает запрос по остаткам по второму варианту, если никаких движений по товару не было? Эта номенклатура же не должна попасть в выборку, и значит мы сможем ее списать.
Готовлюсь к спецу по платформе по твоим роликам и немножечко всплакиваю, понимая, что больше не будет крутых видосов про 1С от Ильи Леонтьева, потому что ты покинул нас и ушел в светлый путь разработки - Python🤧😰
08:42 - но если так строго уж подходить, то на уровне запроса можно получить разницу, сколько не хватает. И если есть строки, в которых есть нехватка, то на уровне запроса только их и выбрать для дальнейшего вывода в сообщение. А зачем остальное выбирать, если понимаем, что по какой-то из позиций нет остатка.
Хочу высказаться в защиту того, что "выгрузить результат запроса и загрузить в движения" это не правильно. 1. То что при этом действии мы расходуем больше памяти это факт. Но что мы получаем взамен? Расход памяти можно оправдать только повышением производительности. Повышения производительности в общем случае мы не получаем, а в частных случаях мы получим даже худшую производительность. То что программисту так удобнее писать код вообще никогда не является аргументом. 2. Сервера БД могут при определенных условиях, а при соответствующей настройке очень даже часто, начинать выдавать первые строки результата раньше чем полностью завершится процесс его полного получения. Как построена работа 1С с файловой базой доподлинно не известно, но напрашивается тоже именно такой алгоритм работы. В следствии этого 1С при выборке начнет обработку заполнения движений раньше, и соответственно раньше закончит. Итого: В случае выгрузки результата мы получаем расход памяти, и производительность хуже или такую же, именно поэтому способ был записан в "не правильные".
В начале видео оптимизировали немного код: сначала проверка на нехватку количества, и если не хватает, тогда Отказ. А если Отказ Тогда ПРодолжить. Но если ситуация такая: 1000 строк в ТЧ, 999 хватает, а 1000й не хватает, то все равно Эти движения будут формироваться излишне Поправьте если я не прав?
Не пойму никак, в конструкции: Движения.ОстаткиНоменклатуры.Записывать = Истина; Движения.Записать(); зачем первая строчка? Что будет, если ее убрать? Вроде и без нее работает
Илья, а если теперь отменить проведение приходной накладной, получим отрицательные остатки в регистре. Как быть в таком случае? Почему при проведении / отмене проведения приходной накладной мы не обеспечиваем контроль остатков?
Дмитрий, привет. Тут надо понимать, что набор записей в начале обработки проведения пустой. То есть нам не надо его дополнительно очищать. Просто записываем - и все. В старой методике проведения нам при контроле остатков будут мешать движения текущего документа, поэтому мы сразу же, когда начинаем обработку проведения, записываем пустой набор записей. В результате этой операции движения документа будут удалены. В новой методике проведения мы набор записей заполняем необходимыми движениями. Нам не надо его предварительно очищать, потому что он изначально пустой. Мы просто добавляем в него все, что нужно, и выполняем запись. В результате этой операции движениями документа станет новый набор записей, сформированный в результате действующей обработки проведения. А старые движения документа будут удалены. То есть в новой методике проведения мы замещаем старые движения новыми. Поэтому дополнительно очищать движения нет необходимости.
Я так понимаю сдать этот экзамен с первого раза точно никогда не получится, да и с десятого маловероятно, так как я на вашем стриме узнать о куче вариантов снятия баллла, но ни слова про это нигде не сказано в самим правилах сдачи в 1с... Это сколько же шишок надо набить, до какого автоматизма набить руку, чтобы всё выполнить именно так чтобы ни один экзаменатор не нашёл причины (а их просто миллион) и наконец-то сдать этот экзамен??? Мне даже диплом было в сто раз проще защизать в институте, а тут столько надо запомнить информации, так не делай минус балл, так сделал тоже минус балл и как я понял со временем правила меняются, добавляются новые и ты никогда не сможешь предугадать каким образом надо сделать задачу чтобы тебе не снижали балл... эх... просто жесть
в 38:02 БлокироватьДляИзменения не дает проводить и Приходные накладные в этот момент? ведь там же тоже происходит запись, т.е изменение. И по каким измерениям-ресурсам или чему происходит блокировка в этом случае
При вызове Движения.Записать() блокируется таблица итогов по тем измерениям, которые мы используем в движениях. Так как приходные накладные также пытаются изменять таблицу итогов, то и они будут заблокированы.
После "Отказ = Истина" у нас идет обход цикла с выводом сообщений о нехватке товара. Нам этот цикл нужен, причем пройти его нужно целиком, так что внутри условного оператора возврат нигде не ставим. После условного оператора можно было бы написать Если Отказ Тогда Возврат; КонецЕсли; чтобы не выполнять дальнейший код. Но так как у нас и так конец процедуры, мы не стали этого делать.
Илья, мне кажется или одновременные требования экзамена по созданию механизма контроля остатков и явно прописанное условие дословно: "в приходной накладной контроль остатков создавать не нужно" несовместимы. При таком подходе не нужно глубоко копать про неоперативное проведение или программную корректировку регистров будущей датой. Достаточно отменить проведение приходной и будут минуса.
Да, мы как будто бы сильно заморачиваемся на одних аспектах (блокировки, например) и полностью игнорируем другие. Таков экзамен, что поделать ) Цель сертификации - научить нас определенным вещам. В принципе, она с этой целью справляется. Зная эти вещи, мы сможем прописать контроль остатков при отмене проведения прихода, если этого захотим.
@@IlyaLeontyev спасибо за ответ. Мое личное мнение - экзамен больше на архитектуру, а не на программирование, паттерны, алгоритмы. Эдакий Junior Architect на выходе получается по типу задач. И в то же время мелкие ограничения в условиях задач не дают реализовать архитектуру. Решение(в принципе, а не лично Ваше) получается игрушечным и далёким от реального применения. Уровень не архитектора но программиста - это программное формирование реквизитов формы/программная работа с Метаданными/сложные запросы на разность множеств/транзитивные замыкания/программная работа с СКД/знание нюансов ограничений и особенностей применяемости методов. Примерно так. Кстати, словосочетание "Junior Architect" в других языках программирования - это был ROFL. Несовместимое словосочетание.
Доброго времени суток! Можно вопрос про блокировку. Мы блокируем таблицу остатков на момент проведения Расходной накладной. А если в это же время будет проводиться Приходная Накладная, а у нас таблица заблокирована, разве не получается что у нас не корректные данные на момент списания? Ведь остатки должны были увеличиться, а у нас таблица заблокирована. Или эта блокировка не влияет на приходную накладную?
Александр, мы блокируем данные для того, чтобы нечаянно не выйти в минус. Приходная накладная максимум что может сделать - увеличить остатки по нашей номенклатуре. Это не является для нас проблемой )
Илья, насчет "Продолжить" - по твоей логике у тебя нехватка товара обязательно должна быть на первых строках, тогда остальные 999 строк не запишутся, но с таким же успехом в 999 строках может товара хватать и в последней, тысячной, не хватать. Получается ты зря формировал движения для 999 строк? В каком месте ты это "Продолжить не поставь" - будет плохо и не оптимально.
@@IlyaLeontyev Я это к тому, что ты говоришь, что снимут бал, если будет как в первой редакции. Полагаю, что его где не поставь, бал не снимут, точнее сказать снимут, потому что при такой структуре регистра надо проводить новой методикой, а не старой, но это тема этого урока:)
Хотя, можно же добавить вычисляемое поле в запросе, типа "ДоступныйОстаток" (КоличествоОстаток - Количество), дальше добавить еще один запрос, в котором вывести все записи, в которых ДоступныйОстаток < 0. Выполнить пакет запросов и если в этом запросе не будет записей (пустая) тогда уже внутри него выполнить предыдущий запрос, обойти и записать в регистр, а если будут записи, то только эти записи вывести в сообщении?
Ну вот хотя бы например вот так (извиняюсь за скрин на радикале) c.radikal.ru/c19/2105/b7/f9a59d876493.jpg. Или плохо за счет выполнения пакетного запроса?
Подскажите, строка "Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;" и дополнительная строка в последнем запросе новой методики "|ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления.ОстаткиНоменклатуры.Остатки" будут идентичными? И можно ли использовать аналогичный прием в старой методике?
24:38 Почему именно так? почему не убрать под Движения.Записать(): строку Запрос = Новый Запрос; Тогда же и эту строчку с менеджером сюда копировать не придется
Вопрос. Подскажи. Формируем движения Движения.Записать(); Дальше проверка остатков. То есть записать не фиксирует данные в таблице или как? Или отказ = Истина удаляет только что созданые движения?
@@IlyaLeontyev Так Мы уже зафиксировали движения. То есть списание прошло. Потом второй запрос считывает количество остатки. Ну так Мы же уже сделали списание. Потом за новыми данными лезем в базу что проверить а есть ли остатки? Если стали отрицательные то все, отбой. Тогда Мне кажется лучше делать сразу поиск отстатков по итогам в запросе
Выгружаемые колонки мы указываем во втором параметре метода Выгрузить(). Запятую ставим, чтобы пропустить первый параметр и приступить к указанию второго )
Я не очень ими доволен ) Первая: Viltrox Weeylite RB9 (слишком мощная, плохое мобильное приложение). Вторая: Yongnuo YN60 (слабые светодиоды). Жду, когда с алика привезут Aputure MC.
То есть по сути старая методика выполняется одним запросом , а новая двумя правильно я понял , а это не замедляет систему , если два запроса составлять , если не замедляет то почему ?
Тут дело не только в количестве запросов. В старой методике запрос один, но по сути там мы имеем дело с пакетом из 2 запросов, в одном из которых приходится выполнять соединение таблиц. Соединение таблиц - это сравнительно долго. В новой методике мы выполняем 2 простейших запроса. В первом получаем табличную часть. Во втором - остатки по регистру. Никаких соединений делать не приходится. Да, запросов два. Но они выполняются быстрее. Код мы выполняем в модуле объекта, то есть находясь на сервере. Поэтому лишний серверный вызов погоды не делает.
Крайне идиотские названия методик; "Старая" и "Новая", совершенно не отражают сути.Это и есть причина непонимания у многих начинающих Достаточно было назвать методики по другому, типа : "Сначала чтение" и "Сначала запись"
Я посмотрел 75 часов (!) видео от Белоусова, но так и не понял методик проведения. Илья объяснил всё за 20 минут. Спасибо!
О! походу не я один не доехал у Белоусова.
У меня та же тема, вроде и понятно, но не откладывается, не "заходит" по сравнению с этими видео.
Очень люблю видео Чистова и просмотрел весь его спецкурс и многое другое. Долгое время никак не мог осознать, зачем нужно разделение итогов, понимал где-то на далеком уровне, Чистов это объяснил в спецкурсе слегка сумбурно. Но тут все настолько разжевали и в рот положили, что осознание того, зачем оно надо глубоко закрепилось в голове(штука то важная). Автора начал смотреть только лишь с этого плейлиста , по началу не зашло, но вот после разделения итогов прям проникся. Мое почтение, Илья, спасибо за Вашу работу
Илья, год назад смотрел Спецпроект Чистова, было не так понятно (хотя год назад я был совсем ноль в 1С), но по поему у тебя получается лучшая альтернатива! Плззз, фигач до конца! Просто тонны полезной информации себе открываю с каждого урока. (Норм вроде комет вышел ?! :-) )
Да, особенно по СПР задачи разобрать бы по больше
Да тут 1-го лайка мало, надо чтобы ютуб, разрешил ставить лайки раз в 5 минут )
вот и третий подошел к концу урок. наконец то я хоть реально понял разницу между старой и новой методиками, а то раньше , вода была. Спасибо Илье.
Хорошо пошло!
Илья, делай дальше! Топ контент. Очень актуальный материал.
Не встречал более ёмкого и краткого объяснения взаимосвязи опции 'Использовать разделение итогов' и свойства БлокироватьДляИзменения коллекции движений р-ра накоплений.
Спасибо! 🤝
Илья, большое спасибо за такое понятное изложение материала! Я здесь, уже будучи отчаявшимся после видео Чистова Павла, вновь обрёл надежду, что вернусь к изучению этой программы! Успехов Вам!!!
Желаю удачи )
Пересматриваю по несколько раз, приятная атмосфера на стриме :) Спасибо за Ваш труд!
Ильюха, красава!!! Все четко, присоединяюсь ко всем положительным комментариям пользователей, касательно данного видео материала по подготовке к спецу по платформе (занятие №3 и всех предыдущих занятий в рамках данного блока)!!!
Чаще занимаюсь вопросами интеграции, банальные вещи которые не используешь - забываются. Спасибо за исчерпывающее объяснение
Квинтэссенция информации! Лучшее, что есть в сети! Респект!
Илья, спасибо большое за твои видео. Очень понятное и простое объяснение. Легкая подача материала. Удачи тебе.
Илюха, ты прирождённый педагог, лайкос-респект.
Материал даете классно. особенно мне понравилось про разделение итогов -- наглядно очень. Спасибо
Ролик кул. Классно рассказано про разделение итогов. Классно показано как в типовых работают движения. Я там видел такие куски когда, но никак не доходило где же само описание движения. Про блокировки для новой методики довольно понятно. Большую часть информации я знал, но даже так узнал много нового. Длина ролик час самое-то. Прошлый ролик пришлось на 2 раза делить. Довольно сложно почти 2 часа подряд слушать. Бедные слушатели Белоусова. Его занятия идут по 4 часа подряд. Я думаю и ему самому не так уж и легко от такого.
Илья спасибо учение превращается в развлечение благодаря твоей подаче
и 1С даже не кажется скучным занятием)))
Пересмотрел и Чистова, и Белоусова - там основы по сути и все же у тебя, Илья, все понятнее и динамичнее.
Кратко, ёмко, и без воды. Спасибо! Даже скорость 1.5 не ставил). Запрос = Новый Запрос второй раз можно было не делать). А ещё вроде как для новой методики нужно в два регистра писать. Свободные остатки (там куда мы БлокироватьДляИзменения ставим) и Остатки номенклатуры(где ставим Блокировка Данных). А то получается, что мы запишем движения в один регистр, а потом их надо заменить на списание партиями..
Спасибо за занятие!
Илья, хорошая цель! Главное разобраться, а не сертификат)
Спасибо!
Огромное спасибо, очень нравится твоя подача информации! Каждый выпуск как праздник
Крутой, подробный видос, смотрю параллельно с курсами 1с РФ)
Супер. спасибо!
Очень хорошо - доступная подача. Спасибо.
Спасибо за видео, много познавательного.
Спасибо огромное за урок!
Спасибо)
Спасибо большое!
Любопытно, почему в конце 2018 года Павел Чистов в своем курсе спец 1С, тоже на ютубе, рассказывал только про новую методику, хотя и там тоже был рассчет себестоимости...
Ты невнимательно смотрел его уроки - он тоже рассказывал про обе методики.
Все очень понятно.
Отлично
Илья, спасибо.
По моему опыту выгрузка результата запроса в таблицу значений это очень тормозная операция. В работе использую эту функцию только в отладчике для просмотра того, что вернул запос.
Выгрузка делается в оперативную память, выборка делается во временный файл на хрустящем жёстком диске. Если у тебя заведомо не много строк, то почему бы не использовать оперативную память...
продолжайтес с этим духом, все супер, скажите правда уроки будет 40?
Их может быть 40 ) Может, и больше. Рассказать нужно очень много.
Что бы схлопнуть строчки нужно вены себе вскрыть, хотя может есть проще вариант выяснения отрицательных остатков)))) может проще через СКД просто схлопнуть и отдельной кнопочкой)))
Илья, во втором запросе не правильней было наложить отбор (на отрицательные значения) на поля виртуальной таблицы, а не на весь результат запроса ?
ЛАЙК!!!! а если есть - товары, услуги, то старая методика более оптимальна???
Старая методика применяется тогда, когда надо читать, а потом писать в один и тот же регистр. В синтекс помошнике есть пример блокировки для старой методики, его удобно использовать в решении, чтоб с нуля не писать.
Спасибо.
Большое спасибо. Чудесный курс!
А МенеджерыВременныхТаблиц можно использовать для разбиения запроса? sql не будет работать быстрее на маленьких запросах? Или по сути создание временных таблиц в запросе это тоже самое?
Цитата из its.1c: "При неоперативном проведении документов не имеет смысла производить целый ряд проверок, в частности контроль остатков"
В новой методике надо проверку режима проведения сделать, и если режим Неоперативный, то не проверять остатки, а то попахивает грубой ошибкой
Круто если в таком стили будет разбор всех алгоритмов. Спасибо.
Вопрос можно будет еще примерчики не на неявных транзакциях процедур документов, а через объявления НачатьТранзакцию (или для Специалиста 1С этого не надо)?
Для специалиста 1С по платформе этого не надо )
Идем по плану. Учимся 😁
спасибо,
Классные ролики!!!
Неверное я туплю, но как сработает запрос по остаткам по второму варианту, если никаких движений по товару не было? Эта номенклатура же не должна попасть в выборку, и значит мы сможем ее списать.
Супер подача ...
Респект, гоу до конца, выучу хоть 1с, спустя 5 лет коддинга в ней. Я так понимаю, задач по регистрам расчёта тоже не миновать?
Куда без них ) Все разберем.
А почему не делают контроль остатков в самом регистре, как бы перекладывая ответственность за остатки на сам регистр?
Готовлюсь к спецу по платформе по твоим роликам и немножечко всплакиваю, понимая, что больше не будет крутых видосов про 1С от Ильи Леонтьева, потому что ты покинул нас и ушел в светлый путь разработки - Python🤧😰
Я наоборот с python в 1С)
@@ichigobankai4522 натуре ты ичиго, я не осуждаю, но как так то
@@ichigobankai4522 зачем?
Отличная подача информации
08:42 - но если так строго уж подходить, то на уровне запроса можно получить разницу, сколько не хватает. И если есть строки, в которых есть нехватка, то на уровне запроса только их и выбрать для дальнейшего вывода в сообщение. А зачем остальное выбирать, если понимаем, что по какой-то из позиций нет остатка.
Считай, что это просто классический алгоритм, к которому очень сильно привык Экзаменатор. И именно его он показывает на своих курсах.
спасибочки за видео
Хочу высказаться в защиту того, что "выгрузить результат запроса и загрузить в движения" это не правильно.
1. То что при этом действии мы расходуем больше памяти это факт. Но что мы получаем взамен? Расход памяти можно оправдать только повышением производительности. Повышения производительности в общем случае мы не получаем, а в частных случаях мы получим даже худшую производительность. То что программисту так удобнее писать код вообще никогда не является аргументом.
2. Сервера БД могут при определенных условиях, а при соответствующей настройке очень даже часто, начинать выдавать первые строки результата раньше чем полностью завершится процесс его полного получения. Как построена работа 1С с файловой базой доподлинно не известно, но напрашивается тоже именно такой алгоритм работы. В следствии этого 1С при выборке начнет обработку заполнения движений раньше, и соответственно раньше закончит.
Итого: В случае выгрузки результата мы получаем расход памяти, и производительность хуже или такую же, именно поэтому способ был записан в "не правильные".
Ошибочка товарищи, посмотрел в справке, 27:10 должно быть так : "Новый Граница(МоментВремени())" т.к. ВидГраницы.Включая уже по умолчании идет ВКЛЮЧАЯ
Отлично, молодец, спасибо )
В начале видео оптимизировали немного код:
сначала проверка на нехватку количества, и если не хватает, тогда Отказ.
А если Отказ Тогда ПРодолжить.
Но если ситуация такая: 1000 строк в ТЧ, 999 хватает, а 1000й не хватает, то все равно Эти движения будут формироваться излишне
Поправьте если я не прав?
Раньше не думал что 1с может быть интересной.
В любой не понятной ситуации пиши запрос ))))
Не пойму никак, в конструкции:
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.Записать();
зачем первая строчка? Что будет, если ее убрать? Вроде и без нее работает
Почему при новой методике не нужно очищать движения в начале?
Илья, а если теперь отменить проведение приходной накладной, получим отрицательные остатки в регистре. Как быть в таком случае? Почему при проведении / отмене проведения приходной накладной мы не обеспечиваем контроль остатков?
Это не требуется на экзамене "1С:Специалист по платформе" )
даже стало интересно как в типовых этот момент организован
В 43:45 Почему лишнее? Почему не пойти через ЗаполнитьЗначенияСвойств?
Ну ладно уж. Все равно конструктором заполняли.
Илья, привет! Подскажи, пожалуйста, почему при старой методике нужно очищать движения в начале обработки проведения, а при новой нет?
Потому что для проверки отрицательных остатков в старой методике нам не нужны движения текущего документа, а в новой наоборот они нужны.
Дмитрий, привет.
Тут надо понимать, что набор записей в начале обработки проведения пустой. То есть нам не надо его дополнительно очищать. Просто записываем - и все.
В старой методике проведения нам при контроле остатков будут мешать движения текущего документа, поэтому мы сразу же, когда начинаем обработку проведения, записываем пустой набор записей.
В результате этой операции движения документа будут удалены.
В новой методике проведения мы набор записей заполняем необходимыми движениями. Нам не надо его предварительно очищать, потому что он изначально пустой. Мы просто добавляем в него все, что нужно, и выполняем запись. В результате этой операции движениями документа станет новый набор записей, сформированный в результате действующей обработки проведения. А старые движения документа будут удалены. То есть в новой методике проведения мы замещаем старые движения новыми. Поэтому дополнительно очищать движения нет необходимости.
@@IlyaLeontyev понял, спасибо)
Я так понимаю сдать этот экзамен с первого раза точно никогда не получится, да и с десятого маловероятно, так как я на вашем стриме узнать о куче вариантов снятия баллла, но ни слова про это нигде не сказано в самим правилах сдачи в 1с... Это сколько же шишок надо набить, до какого автоматизма набить руку, чтобы всё выполнить именно так чтобы ни один экзаменатор не нашёл причины (а их просто миллион) и наконец-то сдать этот экзамен??? Мне даже диплом было в сто раз проще защизать в институте, а тут столько надо запомнить информации, так не делай минус балл, так сделал тоже минус балл и как я понял со временем правила меняются, добавляются новые и ты никогда не сможешь предугадать каким образом надо сделать задачу чтобы тебе не снижали балл... эх... просто жесть
в 38:02 БлокироватьДляИзменения не дает проводить и Приходные накладные в этот момент? ведь там же тоже происходит запись, т.е изменение. И по каким измерениям-ресурсам или чему происходит блокировка в этом случае
При вызове Движения.Записать() блокируется таблица итогов по тем измерениям, которые мы используем в движениях. Так как приходные накладные также пытаются изменять таблицу итогов, то и они будут заблокированы.
@@IlyaLeontyev Спасибо! Илья, с вами удобно и понятно. А когда примерно перейдем к расчетным механизмам? как думаете, какой из разделов сложнее всего?
@@ДедушкаПовидло-к1я думаю, что самый сложный раздел - расчетные задачи.
Не исключено, что приступим к ним уже в июне.
После условия что результат не пустой и отказ = истина, нужно ли ставить возврат?
После "Отказ = Истина" у нас идет обход цикла с выводом сообщений о нехватке товара. Нам этот цикл нужен, причем пройти его нужно целиком, так что внутри условного оператора возврат нигде не ставим.
После условного оператора можно было бы написать
Если Отказ Тогда
Возврат;
КонецЕсли;
чтобы не выполнять дальнейший код.
Но так как у нас и так конец процедуры, мы не стали этого делать.
Илья, мне кажется или одновременные требования экзамена по созданию механизма контроля остатков и явно прописанное условие дословно: "в приходной накладной контроль остатков создавать не нужно" несовместимы. При таком подходе не нужно глубоко копать про неоперативное проведение или программную корректировку регистров будущей датой. Достаточно отменить проведение приходной и будут минуса.
Да, мы как будто бы сильно заморачиваемся на одних аспектах (блокировки, например) и полностью игнорируем другие.
Таков экзамен, что поделать )
Цель сертификации - научить нас определенным вещам. В принципе, она с этой целью справляется.
Зная эти вещи, мы сможем прописать контроль остатков при отмене проведения прихода, если этого захотим.
@@IlyaLeontyev спасибо за ответ. Мое личное мнение - экзамен больше на архитектуру, а не на программирование, паттерны, алгоритмы. Эдакий Junior Architect на выходе получается по типу задач. И в то же время мелкие ограничения в условиях задач не дают реализовать архитектуру. Решение(в принципе, а не лично Ваше) получается игрушечным и далёким от реального применения. Уровень не архитектора но программиста - это программное формирование реквизитов формы/программная работа с Метаданными/сложные запросы на разность множеств/транзитивные замыкания/программная работа с СКД/знание нюансов ограничений и особенностей применяемости методов. Примерно так.
Кстати, словосочетание "Junior Architect" в других языках программирования - это был ROFL. Несовместимое словосочетание.
@@AnonAristotel ну он на программирование тоже. Алгоритмы придется разбирать и заучивать. Хотя в целом можно сказать, что их не очень много.
@@IlyaLeontyev Алгоритмы, насколько я знаю, это в основном сортировка, обход и построение графов.
@@AnonAristotel на этом экзамене другие алгоритмы ) Списание по партиям, оплаты, расчет начислений и т.д.
Доброго времени суток! Можно вопрос про блокировку. Мы блокируем таблицу остатков на момент проведения Расходной накладной. А если в это же время будет проводиться Приходная Накладная, а у нас таблица заблокирована, разве не получается что у нас не корректные данные на момент списания? Ведь остатки должны были увеличиться, а у нас таблица заблокирована. Или эта блокировка не влияет на приходную накладную?
Александр, мы блокируем данные для того, чтобы нечаянно не выйти в минус. Приходная накладная максимум что может сделать - увеличить остатки по нашей номенклатуре. Это не является для нас проблемой )
@@IlyaLeontyev Спасибо большое)
Илья, насчет "Продолжить" - по твоей логике у тебя нехватка товара обязательно должна быть на первых строках, тогда остальные 999 строк не запишутся, но с таким же успехом в 999 строках может товара хватать и в последней, тысячной, не хватать. Получается ты зря формировал движения для 999 строк? В каком месте ты это "Продолжить не поставь" - будет плохо и не оптимально.
Что ты предлагаешь?
@@IlyaLeontyev Я это к тому, что ты говоришь, что снимут бал, если будет как в первой редакции. Полагаю, что его где не поставь, бал не снимут, точнее сказать снимут, потому что при такой структуре регистра надо проводить новой методикой, а не старой, но это тема этого урока:)
Хотя, можно же добавить вычисляемое поле в запросе, типа "ДоступныйОстаток" (КоличествоОстаток - Количество), дальше добавить еще один запрос, в котором вывести все записи, в которых ДоступныйОстаток < 0. Выполнить пакет запросов и если в этом запросе не будет записей (пустая) тогда уже внутри него выполнить предыдущий запрос, обойти и записать в регистр, а если будут записи, то только эти записи вывести в сообщении?
Ну вот хотя бы например вот так (извиняюсь за скрин на радикале) c.radikal.ru/c19/2105/b7/f9a59d876493.jpg. Или плохо за счет выполнения пакетного запроса?
как написать второй запрос с использованием ВТТЧТовары сразу, не описывая перед этим в нем эту таблицу?
Можно руками. Либо создав описание таблицы в конструкторе.
Подскажите, строка "Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;" и дополнительная строка в последнем запросе новой методики "|ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления.ОстаткиНоменклатуры.Остатки" будут идентичными? И можно ли использовать аналогичный прием в старой методике?
24:38 Почему именно так? почему не убрать под Движения.Записать(): строку Запрос = Новый Запрос; Тогда же и эту строчку с менеджером сюда копировать не придется
С отдельными запросами более наглядно, на мой взгляд.
Вопрос. Подскажи. Формируем движения Движения.Записать();
Дальше проверка остатков. То есть записать не фиксирует данные в таблице или как? Или отказ = Истина удаляет только что созданые движения?
Отказ = Истина отменяет все, что сделали в обработке проведения. Считай, что ничего не делали, короче.
@@IlyaLeontyev Так Мы уже зафиксировали движения. То есть списание прошло. Потом второй запрос считывает количество остатки. Ну так Мы же уже сделали списание. Потом за новыми данными лезем в базу что проверить а есть ли остатки? Если стали отрицательные то все, отбой. Тогда Мне кажется лучше делать сразу поиск отстатков по итогам в запросе
Кстати, сделай как-нибудь видео на котором ты превьюху рисуешь для видео )
А это не я рисую )
@@IlyaLeontyev Интрига !
я что если старом методе использовать блокировку на самом запросе а не блокировка данных ?
Зачем здесь запятая СписокНоменклатуры.Выгрузить(,"Номенклатура,Количество"); после открытой скобки?/в 3:43 видео
Выгружаемые колонки мы указываем во втором параметре метода Выгрузить().
Запятую ставим, чтобы пропустить первый параметр и приступить к указанию второго )
@@IlyaLeontyev Если сделаем так СписокНоменклатуры.Выгрузить("Номенклатура,Количество"); что будет в результате?
@@ДедушкаПовидло-к1я ошибка "Несоответсвие типов" )
Добрый день! А почему мы цену в регистр не записываем?
Добрый день. А зачем она нам?
@@IlyaLeontyev На всякий случай, может пригодится. Например для вывода отчета по средней цене реализации. Или просчета маржинальности товара.
@@vallak1981 на экзамене "на всякий случай" ничего не делаем ) Делаем только то, о чем просят.
@@IlyaLeontyev Я понял. Спасибо за ответ Илья. Удачи.
А что связи не делаем?
Блин, Спасибо за Движения.ОстаткиНоменклатуры.Загрузить(РезультатЗапроса.Выгрузить()); вот реально в Курсах по 1С говорят что нифига не ошибка :(
Они в одном месте говорят, что не ошибка, а в другом месте говорят, что ошибка 😉
а можно если не трудно базу 1С выкладывать не только в хранилище мейл ру, которое в Украине заблокировано но и в Гугле?
Mail.ru заблокирован в Украине? Что за жесть.
Держи: cutt.ly/3jdYMCf
В описания попозже добавлю.
@@IlyaLeontyev Там вроде и ВКонтакте тоже заблочен
Моделями rgb ламп можете поделиться? )
Я не очень ими доволен )
Первая: Viltrox Weeylite RB9 (слишком мощная, плохое мобильное приложение).
Вторая: Yongnuo YN60 (слабые светодиоды).
Жду, когда с алика привезут Aputure MC.
10:38 новая методика
22:01 менеджер ВТ
Кто такой Белоусов?
То есть по сути старая методика выполняется одним запросом , а новая двумя правильно я понял , а это не замедляет систему , если два запроса составлять , если не замедляет то почему ?
Тут дело не только в количестве запросов.
В старой методике запрос один, но по сути там мы имеем дело с пакетом из 2 запросов, в одном из которых приходится выполнять соединение таблиц. Соединение таблиц - это сравнительно долго.
В новой методике мы выполняем 2 простейших запроса. В первом получаем табличную часть. Во втором - остатки по регистру. Никаких соединений делать не приходится. Да, запросов два. Но они выполняются быстрее.
Код мы выполняем в модуле объекта, то есть находясь на сервере. Поэтому лишний серверный вызов погоды не делает.
А что когда создаёшь Менеджер временных таблиц не надо создавать описание временных таблиц ?
Как видишь )
@@IlyaLeontyev А нафига они тогда там нужны ?
А почему здесь нету есть Нулл
ЕСТЬNULL имеет смысл использовать там, где выполняется левое или правое соединение таблиц.
@@IlyaLeontyev А точняк , а представление , имеет смысл когда мы выводим сообщения пользователю правильно я понял
+
Блин, зачем я слушаю занудного Белоусова за деньги, который за 12 часов то же самое пока не объяснил, если тут все разжевано за пару часов...
Не продолжить а прервать. потому, что все равно документ не будет проведен
Пордон не понял, что нужно вывести предупрежедения на все недостачи
Крайне идиотские названия методик; "Старая" и "Новая", совершенно не отражают сути.Это и есть причина непонимания у многих начинающих
Достаточно было назвать методики по другому, типа : "Сначала чтение" и "Сначала запись"
Илья спеца сдал? покажи людям бумагу будь адекватен ???))
Спасибо!