Запрос 1С с соединением таблиц для проведения расходного документа - Урок 10
Вставка
- Опубліковано 12 чер 2024
- В этом видео мы переделаем обработку проведения документа Потребление, таким образом, чтобы не было запроса в цикла и чтобы запрос возвращал данные в максимально простой и удобной форме.
Мы познакомимся с механизмом временных таблиц, научимся объединять/связывать таблицы, а также разберемся с тем, как можно вписывать разные выражения прямо в поля запроса, чтобы получить не просто предварительные данные, а уже готовый набор в том виде, в котором нам будет дальше удобно с ним работать.
#ТЕХПОДДЕРЖКА #Курсы1С #Программист1С #1С
ТАЙМКОДЫ:
00:00 - Приветствие
01:17 - Краткое повторение пройденного
02:53 - Готовим исходные запросы
05:24 - Ставим задачу по построению нового запроса
09:39 - Создаём новый запрос
11:47 - Создаём временную таблицу в запросе
12:55 - Используем данные временной таблицы в условии запроса
15:40 - Соединение и связи таблиц в запросах
20:26 - Настройка полей запроса, использование выражений
29:01 - Переделываем обработку проведения документа
33:13 - Проверяем результат изменений
1С Программирование с нуля: • Бесплатный курс 1С Про...
Поддержать канал/Получить плюшки: boosty.to/tp2b
Поддержать рублем: donate.stream/tp2b
Файлы по урокам: yadi.sk/d/fbayAds8H5K67A?w=1
Знаете, мне нравится этот момент, когда ты думаешь: Блин я не понимаю, я видимо очень плохо справляюсь
и в этот же момент Олег говорит: Может быть, пока это звучит сложно, не пугайтесь ничего страшного в этом нет, мы это еще разберём
И сразу облегчение
Спасибо за мотивацию))
Все отлично. Пожалуй лучшее, что сейчас можно найти по 1С. УЦ разные курят в сторонке и завидуют. 👍
Радоваться надо, что у нас в стране людям выкладывают подобные уроки. Подобное по SAP вы нигде не найдете бесплатно и все за деньги. Уроки по запросам фактически выходят даже за рамки 1С, это язык запросов, который используется практически везде.
Ухххх.... сложный урок был. Пришлось два раза пересмотреть! ))) Очень нравится, как Вы обучаете! ))) Всем бы таких замечательных учителей)))
Вы единственный блогер которого не хотелось бы потерять если заблокируют ютуб )
Чтобы не быть ламинарией, напишу ка я тут комментарий!
Олег, спасибо за урок. Разбор Конструктора запросов очень понравился в этом видео.
Помню, что на очных курсах 1С Учебного центра №1, сколько я их не посещал, как то галопом через всё это проскакивали, видимо, потому что времени мало было.
На видео уроках больше времени, потому можно поподробнее рассмотреть те или иные темы, но только тут я увидел размеренный обзор части возможностей конструктора запросов. Учитывая то, что 1С 8 версия делает большой упор на запросы, то предвкушаю разбор конструктора запросов в итоге до битов и молекул.))))
Олег, большое спасибо за 10 очень полезный урок, за Ваш труд !!! Красивое и наглядное получилось решение условного проведения Потребления с применением пакета запросов и много другого интересного. Правда пришлось "попотеть" изучая данный урок : )
Уважаемый Автор, огромное Вам спасибо !!! Подача материала на высоте! все действия максимально комментируются, всё понятно с первого просмотра! Пишите книги, методички, рекомендации по созданию конфигураций! Лично я буду покупать Ваш материал с большим удовольствием.
Спасибо за добрые слова!
Обратная связь очень помогает в работе над контентом.
Продать пока не чего :(
Но ... для желающих есть донаты в описании канала :) :) :)
27:10 Технически в 6-й строчке /ЕстьNULL(ПодуктыОстатки.КоличествоОстаток,0) у нас уже не может быть 0 или NULL, мы уже исключили этот вариант в первом условии.
31:40 Лишнее условие Если НЕ Отказ. Можно продолжить в предыдущем цикле Выборки, после Отказ = Истина; Иначе ...
Спасибо за уроки! Я только начинаю изучать 1С, и ваш материал дается легко. Канал поддержал ))
Пожалуйста. Очень стараюсь делать уроки понятными.
Благодарю и за добрые слова, и за донат. Очень приятно!
Посмотрел 3 раза, но я уверен что за один урок могли это объяснить только вы!
Даааааа. на 10-ом уроке мозг заскрипел и пока всячески отказывается воспринимать информацию, повторить самостоятельно без пересмотра урока не особо получается,. как бы совсем не заблудиться)))) Олег спасибо за урок. очень интересно.... но пока не совсем всё конечно понятно)))))))
Не всё сразу... со временем и с практикой придет понимание и спокойствие :)
учусь в колледже на программиста, щас на 2 курсе, у нас в программе есть 1с, ничего не объясняют толком, спасибо за ваши курсы в бесплатном доступе!
Здравствуйте, Олег! Спасибо Вам большое за проделанную работу, материал подается очень доступно, уровень понимания по сравнению с официальными курсами от 1С на порядок выше. Пожалуйста, продолжайте в том же духе!
Стараюсь.
В середине весны продолжу :) Есть все шансы.
Уважаемый Автор, огромное Вам спасибо
Пожалуйста :)
Спасибо. Отличные уроки.
Каждое видео - бриллиант!
Большущий лайк!!! В целом все понятно, но завтра буду пересматривать ))
Огромное спасибо и с надеждой ждем новых серий...
Пожалуйста :)
Новая серия вышла.
Спасибо за урок! Лайк однозначно.
Спасибо! У Вас - лучшие уроки.
Спасибо за Ваш труд! Все очень доступно, все по полочкам!
тяжело в учении, легко в бою.. трудно быстро усвоить что к чему, но из-за красивой и приятной подачи автора хочу уйти с фронт на бэк-энд, а именно 1с. буду усердствовать и не сдаваться , надеюсь, у меня получится
Отличная подача. Все понятно. Спасибо.
Очень понравился урок по запросам. С нетерпением перехожу к следующему)
Большая Вам благодарность!) Все просмотренные видео обязательно лайкаю)
Это лучшее видео по запросам для новичков. У вас талант. Большое вам спасибо.
Пожалуйста :)
Очень хочу изучить данное направление, а с вашими уроками одно удовольствие, от души 👍
Лучший дядька! 🙏❤
Спасибо, Олег! До чего же шикарная подача материала!
Пожалуйста!
супер! талант
Сложно, но интересно) 9 и 10 урок пересмотрел по несколько раз) спасибо, тезка
Самые понятные курсы! спасибо огромное за труд.
Пожалуйста :)
Лучшая подача материала. Ну и отдельное спасибо за поддержку в конце каждого ролика!)
Стараюсь :)
Разгребу дела и вернусь к съемкам продолжения... соскучился, просто жуть :)
Олэжек вы просто умничка, суперские уроки, давайте нам ДЗ что бы еще и поработать самим и проверить свои знания...
Небольшие ДЗ будут в следующих уроках...
Полноценного ДЗ с проверкой в ближайших планах нет, возможно в рамках платных консультаций или высоких уровней спонсорства на канале.
Отличный урок!
Спасибо :)
Очень крутой урок! Действительно небольшой код.
Супер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Уважаемый учитель и автор канала, благодарю Вас за то что делитесь самым ценным, а именно опытом. Чем глубже погружаюсь в 1С, тем интереснее становится!
Очень рад, что уроки Вам нравятся.
Если говорить не об уроках, а именно об опыте, то больше информации вот тут: boosty.to/tp2b/purchase/901925?ssource=DIRECT&share=subscription_link
@@tp2b Уже частенько поглядываю на этот канал. Надеюсь что в ближайшем будущем оформлю подписку. Уверен что там много полезной информации.
В целом хорошо, понятно и интересно. Но Олег с прошлого урока начал ускоряться: особенно в конце видео - не успеваю без паузы за действиями. В этом уроке особенно часто приходится пересматривать, какой кусок кода куда перемещается, из каких таблиц берутся данные, чтобы повторить у себя в конфигураторе.
Благодарю за ролик! Задонатил ещё немного.
Спасибо за поддержку! Очень приятно :)
СПАСИБО! ВСЕ СУПЕР!
Пожалуйста
Спасибо, вроде все понятно, но нужно пересмотреть еще раз)
Спасибо за постоянную мотивацию в виде ("Пока все может быть непонятно, не переживайте..."), Надеюсь дальше со временем станет более все понятно не все сразу дается. Пересматриваю раза по 3-10 когда совершаю ошибки.
Если регулярно заниматься и не бояться экспериментировать, то всё обязательно станет просто и понятно.
Спасибо за уроки. Сама, конечно, еще повторить не смогу, но появилась надежда, что рано или поздно, получится))
Не всё сразу :)
Смотрите уроки, тренируйтесь самостоятельно и всё получится!
было не просто но победил)) спасибо
Олег, списибище огромное за бесплатные качественные уроки! Смотрю, повторяю за вами, все понятно, НО! смогу ли сама понять что откуда взять и куда вставить? Пока точно нет ((( Но, очень интересно 😂
Интересный получился урок. (не знал, что большую часть можно сделать через запросы)
Збс!
Со второго просмотра стало понятнее)
👍👍
Олег, спасибо вам большое за ваш огромный труд. По ходу видео возник вопрос, можно писать комментарии в теле запроса?
Пожалуйста.
Можно, но конструктор будет их удалять. т.е. уже в самом запросе после конструктора можно... Через // это бывает очень удобно. Но если потом поправить запрос конструктором, то он их удалит.
Программный код уже как родной)
Помните слова Реввы из одной из его лучших песен: "Это пожалуй лучшее что я слышал за последние 30 лет..." 😀
Спасибо Олег, прекрасно продумана цепочка "от простого к сложному"
Вопрос: отрицательное количество тоже проводим, или лучше поставить условие "
Рад что уроки нравятся.
В вопросах указывайте таймкоды, пожалуйста.
Здравствуйте! Я что-то пропустил или у всех при повторном проведении, производится новое списание остатков, то есть не происходит очищение прошлых записей?
Добрый день!
Вопрос, зачем нужна проверка "Если Не Отказ Тогда..."?
Если я правильно понимаю как все работает, Тогда выполнение кода и так не дойдет до этого момента и остановится на проверки "//Проверяем можно ли провести документ" где и случится отказ. Пробовал строку удалить ничего при выполнение не меняется...
Хочу отдельно сказать спасибо за Ваш курс. Очень нравится подача со вставочками кошаков и коротких шуток. И от процесса не отвлекает и расслабляет, когда надо)
Спасибо за уроки , вроде всё понятно, Но я уверена что сам , без помощи я не смогу всё это повторить.
Повторение - мать учения :)
@@tp2b Спасибо за предложение повторить, прошла всё заново до этого урока, реально многое стало понятней. но надеюсь следующие уроки полегче зайдут, и не нужно будет смотреть по два раза.
А если сразу соединить запрос 1 и запрос 2 в одном запросе, не используя временную таблицу. Это менее производительно получится?
Здравствуйте!
Объясните, пожалуйста, зачем мы используем два цикла "Пока" в конце кода при записи движений?
Можно же и проверку на кол-во, и запись движений расположить в одном цикле, и ничего не измениться. Т.е. если кол-ва какого-либо продукта не будет хватать, то документ не проведётся в любом случае + код будет выглядеть лаконичнее.
Может я чего-то не понимаю..
Прекрасный разбор полетов. Много фишек по работе со средой обитания, которые по учебнику не изучишь. Но! Ужасно не хватает полного кода для самопроверки. Я 20 минут потратила на поиски ошибки: в регистр не писался финальный результат. И 1С ничего не сообщает. И синтаксис-проверка проходит. А просто при втором переборе результатов выборки забыла вписать ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Догадалась из опыта работы в других языках. Спасибо за курс. Полное и довольно быстрое погружение в платформу и язык.
Про это будет урок...
Если у Вас осталась база с косяком, пришлите пожалуйста выгрузку на почту tp2b@ya.ru .
Спасибо за уроки. Зачем два раза прогонять цикл ВыборкаДетальныеЗаписи? Это же в два раза больше памяти. Как сделать нумерация строк в редакторе кода 1c и сворачивания кода по если, цикл и т.п. ?
А почему в 10 уроке на 5 минуте остаток булочек с корицей 7. Их же съели в 9 уроке?
почему именно с "ВЫБОР" делается проверка остатков? не проще просто сравнение 2 чисел (Документ и остатки). результатом так же будет да\нет
Добрый вечер. У вас на 15.23 в консоли приведен пакетный запрос т.е. два запроса, а результат показан только по остаткам "РегистрНакопленияПродуктыОстатки. А где выборка по документу?
Добрый вечер.
Она(первая выборка) была помещена во временную таблицу, а после выполнения всего запроса она была уничтожена.
Подскажите пожалуйста. На счет цикла ПОКА . После запроса вы делаете два цикла ПОКА. Первый цикл для проверки остатков. Второй цикл для записи движений в регистр. Я сделал все в один цикл и тоже работает. Два цикла вы делаете для увеличения скорости обработки?
Да, в одном тоже всё будет прекрасно работать...
Но:
1. В реальной работе это будет жрать лишние ресурсы, особенно если регистров несколько
2. На экзамене можно лишиться балов за не оптимальный алгоритм
Тема оптимизации вообще мутная и неоднозначная, об этом тоже на канале будет видео и не одно :)
Добрый вечер. Я правильно понимаю, что таблица втДанныеДокумента - это запрос, скопированный ранее из модуля документа "Потребление".
Добрый вечер.
Правильно.
Есть один нюанс, который я бы отметил. Консоль запросов выдаст ошибку при попытке создать запрос в произвольном выражении (сделать пробел и выделить) и работает это только через конструктор в конфигураторе. Так же насчет связей - конструктор связей в консоле принципиально другой в виде иерархии и абсолютно не похож на строки в конструкторе конфигурации. И автор незаметно перепрыгивает с консоли на конструктор конфигуратора и обратно не акцентируя на этом внимание, а ведь инструменты отличаются.
Спасибо вам!! Стоит ли изучать язык СКЛ для 1с?
Представление об SQL конечно пригодится, но косвенно.
SQL может потребоваться при работе с внешними данными или на этапе оптимизации запросов в 1С.
Реально с необходимостью уметь писать сложные запросы на SQL практически не сталкиваюсь в своей работе.
@@tp2b хорошо! Можно сделать уроки загрузка из разных файлы Экзел, ПДФ, тхт, хмл и т.д?
Такие уроки будут, но не в ближайшее время. Всё сразу успеть нельзя :(
PDF - это вообще отдельная тема с библиотеками распознавания :)
А вы сами учились в ВУЗе этому или с другой профессии попали в 1С?
Близко к этому учился... Но именно 1С у нас не преподавали :(
Спасибо за урок. Что если у нас расходный документ ( потребление) будет 1000 штук , бред же параметр писать в запросе ГДЕ. Какие методы в данном случаи помогут. Ответьте также по вопросу группировки Продукты по товарам . Как можно сделать так , чтобы в 1000 разных документах повторяющихся строках ( товары (( к примеру булочка с корицей) мы бы могли одним кодом сгруппировать их).
Спасибо за ответ
Если нужны строки документа, то тут или ГДЕ или Соединение с условием, других вариантов в голову не приходит.
Если нужно что-то другое, то и условие будет другое.
Гораздо лучше чем у Чистова, спасибо огромное)
Чистов - профессиональный преподаватель, а я любитель :)
Честно, очень приятно такое слышать!
@@tp2b Чистов постоянно всё пишет руками, Конструкторы запросов он не любит, а без них я с трудом понимаю, что он пишет вообще и начинаю засыпать)
Я конструкторы в разумных пределах люблю и использую.
В реальной практике мне это экономит время и силы.
Бывает запросы правлю или дописываю руками, но это скорее локальные работы после которых конструктором всё форматирую. Может мой мозг примитивнее :) но мне так проще работать :)
@@tp2b программирование в целом про эффективность, кмк. Мозг в целом - про минимизацию затрат (попросту - лень. Это я как бывший врач говорю)). С обеих точек зрения - конструктор запросов рулит! )
Здравствуйте. Сдается мне , что подзапрос чтобы избавиться от Спичек и Булочки свердловской не нужен. В дальнейшем при левом соединении эти товары в любом случае исчезли.
Это вопрос оптимизации. Если не установить отбор в параметрах виртуальной таблицы, то из базы данных будут считаные все (!) остатки, а потом уже при соединении останутся только нужные. Если же установить отбор, то из базы данных будут получены только нужные остатки и платформе только останется их соединить с левой таблицей. И на экзамене за не установленный отбор в параметрах виртуальной таблицы будет снижен бал.
Не могу найти ВАШ коментарий с ссылкой на скачивание файла базы
Файлы по урокам: yadi.sk/d/fbayAds8H5K67A?w=1
Стоит ли паниковать, я до сих пор не могу понять, как работает "Движение" в коде... ? Вроде поверхностно понимаю, что ДВИЖЕНИЕ - оно заносит записи в регистры или выводит нам данные... но чет запутываться начинаю
Паниковать ни когда не стоит! Что-то поначалу нужно просто запомнить, а глубокое понимание придёт со временем. Это нормально, т.к. платформа - мощная и объёмная, какие-то её части сразу понять и принять сложно, но можно представлять их в виде "чёрного ящика", который выполняет определенную функцию и сразу не пытаться понять как именно он это делает.
С практикой такие "черные ящики" начнут становиться прозрачными и понятными.
Получается что в этом чёрном ящике лежат все записи в регистрах которые делает документ при проведении(независимые регистры пока не рассматриваем). А значит мы их туда можем не только добавлять, но можем их и удалять и читать при необходимости.
ВыборкаДетальныеЗаписи дважды цикл, сначала проверка на наличие продукта по всем записям, потом цикл заполнение движения по регистру, мне кажется можно в одном цикле всё сделать
Сделать можно... но надо слушать...
Добрый Вечер, делал всё как вы, но у меня почему то проводится документ, ошибку не выдаёт, из за чего это может быть??
Значит не всё так как я :)
Подскажите, в чем ошибка: при проведении документа пишет поле объекта не обнаружено (Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
Поле объекта не обнаружено (Следующий)
{Документ.Потребление.МодульОбъекта(71)}:Пока ВыборкаДетальныеЗаписи.Следующий Цикл
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка])
В невнимательности....Следующий это метод, а не свойство...
у меня теперь документ потребление отказывается проводится ссылаясь на то, что не достаточно продукта, хотя продуктов хватает
Олег, скажите на сколько равнозначны записи:
"Движение = Движения.Продукты.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;"
и
"Движение = Движения.Продукты.ДобавитьРасход();"
По мне, так 100% одно и тоже.
Только первый вариант более универсальный/энциклопедичный что ли.
А второй более компактный, но чуть более скрытный для людей делающий первые шаги.
Сам обычно пользуюсь первым, просто по привычке...
@@tp2b Спасибо!
Спасибо за урок! Вопрос.
Зачем второй раз "дёргать" базу командой ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Так не "дешевле" будет?
Если НЕ Отказ Тогда
ВыборкаДетальныеЗаписи.Сбросить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Пожалуйста.
Вы правы, так оптимальнее. На сколько большой выигрыш, сложно сказать, но оптимальнее.
Есть несколько причин, почему написано не оптимально:
1. Пример выборки повторён для упрощения запоминания конструкций.
Оптимизация кода - отличная привычка, но до неё многие новички "не доживают".
Мне кажется, чем меньше нужно запомнить перед тем, как выпихнут из гнезда, тем меньше вероятность разбиться. А дальше, мясо уже нарастёт с новыми уроками/экспериментами/практикой.
2. Читать такой код чуть проще.
3. На сертификации этот подход допустим.
4. Я не профессиональный преподаватель, могу ошибаться в суждениях :) :)
Разделяю суждение "Лучше сразу сделать хорошо!", но на практике, часто решения приходится строить более приземлённым способом, а оптимизировать уже после получения рабочего прототипа :)
PS Особенно приятно видеть такие комментарии!
@@tp2b Зачем Если Не Отказ, когда можно продолжить цикл Иначе в предыдущем цикле Выборки?
+
31:45 Зачем нужно условие: «Если НЕ Отказ Тогда»? Не является ли оно лишним? И без этого условия код будет прочитан дальше по порядку.
Если НЕ Отказ Тогда
нужно для того, чтобы в случае отказа НЕ выполнять эту часть кода, т.е. не пытаться делать движения, т.к. мы их всё равно сохранять не собираемся, ибо Отказ = Истина
@@tp2b Вы хотели сказать "...в случае отказа НЕ выполнять эту часть кода,..."? Нет опечатки?
Вы правы :)
Ответ поправил.
@@tp2b А почему просто Возврат; после Отказ = Истина; в этом же теле цикла нельзя сделать???
Тогда программа остановится при первой же нехватке Продукта.
Представим себе ситуацию... в документе сотня строк и часть из них в дефиците...
Проводим документ. Ошибка. Правим.
Проводим документ. Ошибка. Правим.
Проводим документ. Ошибка. Правим.
Проводим документ. Ошибка. Правим.
Проводим документ. Ошибка. Правим.
Проводим документ. Ошибка. Правим.
_ надоело_
Сколько можно?!
Проводим документ. Ошибка. Правим.
Проводим документ. Ошибка. Правим.
_злимся_
Программист ДонГан!
-----------------------------------------------------------------------
В нашем случае, получаем полный список того, что надо исправить.
Извините, за, наверное, глупый вопрос. Почему на 13 минуте мы продукты из виртуальной таблицы ищем в списке значений временной? В виртуальной же хранятся все остатки и логичнее меньшее количество из временной искать во всех остатках виртуальной? Это потому что всегда первые условия ставим в параметрах виртуальной? И зачем вообще это условие, если потом все равно будем создавать связи, и лишние товары отсеются?
Не совсем так... мы ограничиваем выборку в виртуальной таблице только нужными продуктами.
т.е. вирутальная таблица без такого ограничения вернёт нам всё что есть на остатках регистра, а дальше мы уже можем это ограничить либо условиями, либо связями, но это ограничение уже будет наложено на полную выборку. С точки зрения теории, чем раньше мы ограничим выборку, тем лучше т.к. платформе нужно будет меньше ресурсов для хранения и дальнейшей обработки данных выборки.
А на практике надо реально смотреть, что работает быстрее и сколько пожирает ресурсов, т.к. подзапрос в условиях виртуальных таблиц, тоже не очень оптимально и любые практические решения это почти всегда компромиссы между сложностью/скоростью/прожорливостью ресурсов :)
@@tp2b спасибо за ответ!)
Пожалуйста
Споткнулся на 9 уроке. Где то можно найти более детальный разбор кода в обработке проведения, начиная с введения запросов ?
Я реально начинающий и довольно сложно все понять.
А что именно не понятно ?
Есть урок 16 про Контекст и еще по общему написанию кода 19, 20.
Возможно они закроют часть пробелов.
Вы забыли, это:
//Проверим, документ не пустой?
Если Продукты.Количество() = 0 Тогда
Сообщить("Внимание, братанжан! Документ пустой!");
Отказ = Истина;
Возврат;
КонецЕсли;
Странное дело.
Создал второй документ с именем Потребление1, идентичный Потреблению (он работает). С целью потренироваться. Хотел проверить свою теорию, что второе Если НЕ Отказ Тогда, можно было разместить в первое ЕСЛИ, добавив ИНАЧЕ. Обойтись одним циклом.
Но идентичный документ Потребление1 (тексты модулей идентичны) не делает записи в регистр... Сломал голову почему...
За труды однозначно спасибо!
Может как регистратор не назначен для регистра...
прекрасный учитель. пожалел что купил курс от skill box.вы намного интереснее и лучше рассказывайте!
Спасибо :)
Но у них полный курс, а мой еще только снимается...
Согласна.И мне теперь жалко,что в Нетологии купила. Ничего там не понимаю(. А здесь все очень доступно. Уметь объяснить понятным языком - это дар! СПАСИБО!
Извиняюсь, но зачем два условия? Можно ж было записать движения в первом итерраторе "Следующий()"?
Кажется я объяснял зачем...
PS пишите тайм-коды, если вопрос не риторический ...
@@tp2b 32:19. Зачем дополнительное ветвление с уловием "Если НЕ Отказ"? Нельзя было запись полей регистра прописать в цикле обхода итератора .Следующий() расположенном выше, применив условие ИНАЧЕ ЕСЛИ при проверке "достаточного количества остатков"? Сразу извиняюсь, если не прав)))
Логика простая.... в первом цикле, мы еще не знаем, сможем ли провести документ.
Но этом этапе тратить ресурсы на создание записей в регистр не логично... в документе может быть несколько тысяч строк и только в последней будет не хватать остатков.
Получится, что мы сделаем множество новых записей(а все они будут занимать память) и потом выяснится, что всё делали зря.
А так у нас код длиннее, но ресурсы используются экономнее.
@@tp2b понял, согласен, спасибо)
31:11 - "ПродуктПредставление" так и не появился в коде, дописывал руками
Возможно имя поля задавалось ранее, тогда оно не поменяется автоматически...
ВыборкаДетальныеЗаписи=РезультатЗапроса. Зачем 2 раза? Запрос же один и тот же остался. 35:22 вот тут видно
Пожалуйста, пишите таймкоды, если хотите получить ответ...
@@tp2b 35:22 тут видно (извиняюсь что не указал)
Всё просто :)
Первый раз мы обходим выборку для того, чтобы убедиться что документ можно провести, но пока мы в этом не убедились, мы не тратим ресурсы на создание движений. Если документ будет нельзя провести, получится что мы зря эти ресурсы тратили.
Второй раз мы уже уверены в том, что документ сможем провести и уже, обходя туже выборку второй раз, формируем движения.
Как-то так :)
Где закреплённый коммент?
Вернул... ютюб их открепляет зачем-то...
@@tp2b Большое спасибо, а то проблемы с 10 уроком возникли)
Сложновато, конечно. Не понято, как это придумывали..
Так и не нашёл в инете байку про доктора и пациента😅
Сложновато пока на восприятие.
В следующем видео попробую по разнообразнее показать работу с запросами, возможно станет легче.
А что именно было самым сложным для восприятия?
@@tp2b Написание произвольных выражений
Спасибо
Мозги трещат)))
Наполняются знаниями :) ?
Чёт сложноватый урок получился. Так и не понял зачем мы создавали какой-то главный запрос с полями нашего документа. Если нужно было отфильтровать определённым образом записи, которые будем выбирать, можно же просто это в колонке Условия сделать? А во втором запросе вместо данных из временной таблицы, которые у нас Продукт и Количество, использовали бы данные напрямую из документа. Ну и связали бы тоже с документом, а не с этой временной таблицей.
И да, почему на 31 минуте нельзя просто написать через Иначе условие, которое у нас проверяет истинность того, что хватает остатков, а не завершать цикл полностью и потом писать другой цикл? Типо после Отказ = Истина пишем не КонецЦикла, а Иначе, и наш код с движениями.
Если сначала будет теория по тому материалу, который будет применяться, то интерес к видеороликам должен возрасти, а так для новичка это сплошной непролазный лез и набор букафффф.... Вспомните как на Алгебре/Геометрии преподавали - сначала теория, а потом уже наработка практики на примерах!!!! а учиться по принципу "смотри и нажимай что я нажимаю" + "позже посмотрим..." это результата и эффекта не дает! Человек должен понимать что он делает и должен ДУМАТЬ, а не просто запоминать потому что ему так показали + может и через 5-10 минут забыть, так как память у всех разная, а запоминать то что не понято что, то кому это надо???
Материал будет интересен и понятен если будет излагаться последовательно (одно за другим, без забегания вперед без подготовленной теоретической базы), именно так и строилось образование в Советской школе и были отличные результаты (аналогично и в ВУЗах) 🙂.
В видео показали Соединение Таблиц - при этом тема и в ней и Правое и Левое соединение, и Внутреннее и Полное.... а что как и зачем БАЗЫ ТЕОРЕТИЧЕСКОЙ то нет в видео....
Ваше мнение услышано...
Оно имеет право на жизнь...
Но не более того :)
Успехов на других каналах/курсах.
@@tp2b Ок 🙂
и еще бы если будет возможно, то схемы бы для визуального восприятия 😉 (с рисунками лучше воспринимается и понятнее что где искать и как оно должно быть)
Вот схем в уроках хватает :) Мне кажется, местами, даже с избытком...
@@tp2b в Цикле по проведению Документа указываются в частности Номер, Дата и др реквизиты чтобы появилась запись в Регистре, а где можно посмотреть какие данные нужны для написания этого кода (программа сама может автоматически этот код написать, НО где-то же в неё заложено какие реквизиты ей нужно записать по принципу ВЗЯТЬ в одном Документе и передать во ВТОРОЙ/ДРУГОЙ ДОКУМЕНТ) - чтобы понять новичку где что посмотреть и какие данные необходимы для написания кода....может немного сумбурно описал
Нихуя не понимаю
Попробуйте найти другой формат роликов, может быть это Вам не очень подходит.
Все люди разные и у каждого своё восприятие!
Главное, если хотите стать программистом, не бросайте.
Обязательно найдете свой путь, главное упорно заниматься!
@@tp2b да, я извиняюсь за грубое выражение, полностью согласен с вами. Вы молодец, видно, что вкладывались в видео, только вот я не понимаю пока и высказал в некорректной форме, не берите на себя, извиняюсь
Всё нормально :)
Когда мне приходится делать что-то из незнакомой области, частенько, я говорю точно те же слова :)
Но потом разбираюсь.... дорогу осилит идущий!
Всю голову изломал, может кто поможет
{(6,9)}: Неверные параметры "ВЫБОР"
КОГДА
ВЫБОР
КОГДА втДанныеДокумента.Количество = ЕСТЬNULL(ПродуктыОстатки.КоличествоОстаток, 0) ТОГДА ЕСТЬNULL(ПродуктыОстатки.СуммаОстаток, 0)
ИНАЧЕ
ВЫБОР
КОГДА ЕСТЬNULL(ПродуктыОстатки.КоличествоОстаток, 0) ТОГДА 0
ИНАЧЕ ЕСТЬNULL(ПродуктыОстатки.СуммаОстаток, 0) / ЕСТЬNULL(ПродуктыОстатки.КоличествоОстаток, 0) * втДанныеДокумента.Количество
КОНЕЦ
КОНЕЦ
Глаза замылились... 3 раза переделывал, все проверил... В паре мест забыл "=" поставить... И смешно и грустно