Вот это да , ну очень простой пример, я и незнал что столько подводных камней, как раз смотрел что такое последовательности и вышел на данное видео. Привем толком нигде про это не рассказывается , очень доступно все объяснили.
Текст задачи: ЗАДАЧА №1. Самая простая задача Сложность: * Теги: регистры накопления, методика оперативного проведения Заказчик просит разработать конфигурацию для учета товаров. Многоскладской учет не ведется. Суммовой учет не ведется. Взаиморасчеты с покупателями и поставщиками не ведутся. В системе необходимо регистрировать два вида операций: Поступление товара, Продажу товара. При поступлении товара пользователь в табличной части указывает, какие товары, и в каком количестве поступили в организацию. Необходимо предусмотреть учет до граммов. При продаже товаров указывается, какие товары были проданы и в каком количестве. Продать товар "в минус" нельзя, в момент продажи необходимо проверять остаток товара. Необходимо построить отчет по остаткам товаров. Форма отчета: Остатки товаров на 31.01.2020 Товар Остаток Ложка 100.000 Вилка 148.000 Поварешка 2.000 Сахар 1.560 Отчет строится на конец дня указанного пользователем. Особое внимание следует уделить последней секунде дня, документы, записанные на эту секунду должны попадать в отчет.
На 28:22 документ 000000002 (с вилкой) не проведён. И это сбивает с толку. Хотя даже если его провести то всё равно в отчёте на время документа вилка есть. Но закрадывается мысль "О он отчёт показывает, конечно вилка есть, документ же был не проведён" Нооо проведённый потом опыт показывает, что вилка в отчёте на время документа 000000002 будет в наличии трёх штук, даже если документ 000000002 провести)))).
Все упрощается, если сразу нормально сделать запрос. Не делать фейковое проведение, а соединить таблицы "Товар" из документа и "Остатки" из регистра. Получаем одну таблицу, в которой есть колонки Товар, Количество и Остаток. И все они действительны в реальном времени. В итоге все проблемы с секундами уйдут автоматически. А так сами себе создаем проблемы и потом героически их решаем
Про проведение задним числом как-то непонятно. В смысле, понятно, что задним числом можно в минус продать, но в типовых, на сколько я знаю, такой фокус не пройдёт. Впервые увидел использование последовательностей как объекта конфигурации, но не очень понял как они могут помочь в борьбе с отрицательными остатками. А в целом, конечно, наглядно, доступно, понятно.
В документе Реализация товара для контроля остатков тут он сам усложнил: можно же во втором запросе просто передавать параметром текущую дату сеанса и тогда даже реализации задним числом - будут контролироваться и не продаваться в минус. Т.е.: Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Нет, нельзя. 05.01.24 пришло 5 ножей на склад. Задним числом делаем списание 4 ножей от 03.01.24. Всё получится, хотя в этот день на складе ещё не было ножей
вот это стиль 1сный, не доделать и сделать не правильно, а потом исправлять и использовать другие фишки) это как добавили найти по наименованию , но её не используйте)
Самая простая задача какая-то совсем не простая. Страшно подумать, что в сложных задачах решают и как. Правильно ли я понимаю, что это всё лучше учить наизусть, ну помимо того, что надо понимать, как это всё работает?
в разборе не затронуты методики списания : "старая" и "новая". Почему нужно выбрать именно новую методику не понятно. От этого выбора зависит много чего в дальнейшем- выбор условия по дате в запросе, блокировка, прямая запись движений. Для новичка норм, но для сдачи экзамена не годится.
До Нового года задачи будут не связаны с этими механизмами. Видео относится к выпускаемому сборнику задач. В первом томе нет специализированных механизмов.
Ребята вам спасибо огромное за видео я сам бухгалтер и решил учиться на разработчика постоянно смотрю и сразу много понятно становится после чтения книг, надеюсь скоро лично увидемся
Подскажите, не имея этого видео под рукой, как прийти к необходимости конструкции ДОБАВИТЬКДАТЕ ( КОНЕЦПЕРИОДА ( &ДатаОтчёта, "День"),"СЕКУНДА", 1). Может есть где почитать про это?
Во всех курсах обучающих для вывода сообщений всегда используют конкатенацию. Есть же функция СтрШаблон(), не нужно плюсики, кавычки открывающие, закрывающие итд. Да и нагляднее мне кажется: ТекстСообщения = СтрШаблон("Не хватает %1, дефицит %2", Выборка.ТоварПредставление, Выборка.Дефицит)
В данном обучающем ролике, СтрШаблон это лишняя функция, лишнее объяснение зачем она нужна. Думаю так) но что использует Павел на практике тоже интересно)
Видео отличное, было бы интересно увидеть подобное по БУ и СПР(особенно СПР). В интернете мало такого контента - решения простейших задач с разбором основных моментов что бы общую суть уловить быстро.
До Нового года задачи будут не связаны с этими механизмами. Видео относится к выпускаемому сборнику задач. В первом томе нет специализированных механизмов.
На 46 минуте Вы говорите, чтобы заблокировать движения, достаточно будет написать одно лишь свойство …БлокироватьДляИзменения. И дальше, что платформа блокирует движения для других сеансов если это свойство Истина. Но это не так. Свойство не определяет будет установлена блокировка или нет. Блокировка при записи в регистр (я про SQL БД) будет в любом случае как записей таблицы движений, так и записей таблицы остатков. Вот только "БлокироватьДляИзменения = Истина" временно "отключит" режим разделения итогов (не будет использоваться разделитель таблицы остатков). Этого будет достаточно, чтобы "Движения.Записать()" более поздней транзакции встала в очередь при записи в эту таблицу. И проверяющий запрос отработает только после окончания первой транзакции. Понимаю, что стараетесь объяснить просто, но зачем так искажать?
@@РоманТарануха-о1о сорян, братишка, но если не можешь найти сборник задач в сети (а там еще есть даже видосы, на которых их решают), то врядли тебе стоит заниматься чем-то, что связано с анализом причинно-следственных связей.
Впервые увидел Вас в этом ролике. Наслышан давно. Спасибо. Стал глубже понимать откуда такие громадные размеры баз, почему оно жрет рессурсы и тормозит. Первое называю маркетингом (оно при оптимизаци нормально работает, т.е. финты ушами намеренно придумываются с целью зарабатывания денег и не забываем про вселенский сговор), а второе - дело рук криворуких программистов.
А разве не нужно отслеживать отмену проведения (изменение) документа "ПоступленияТоваров" ? 1 ноября пришло 5 ложек, 2 ноября продали 3 ложки (остаток 2), 3 ноября отменили (изменили) ПоступлениеТоваров - в итоге минус на остатке. Будет ли засчитано на экзамен данное решение ?
Здравствуйте. Задача относится к начальному уровню подготовки. Но безусловно, предварительно с интерфейсом Конфигуратора, основными объектами и их свойствами лучше познакомиться.
Тч так же находится в бд, равно как и объект.. А запросом обращая лучше чтобы не "захватывать" таблицы для изменения + опять же клиент-сервер проще прикрутить. А вообще, он просто пример привёл.
Павел Чистов , в текущем контексте нам доступен объект документа, который находится в оперативной памяти, получать данные из него дешевле, чем запросом из бд, я об этом.
Поступления. А зачем перебирать ТЗ теперь? Может её просто загрузить в ДвиженияДокумента? Продажа. Почему в данном запросе не стали Представление выбирать?
Здравствуйте! А подскажите, пожалуйста в чем особенность таблиц "Остатки и обороты" и "остатки" при задании периодов. Всегда думал, что в СКД достаточно написать &Период.ДатаОкончания для получения актуальных данных на конец периода. Однако, увидев действия в видео, пошёл проверять в конфигураторе свои догадки. В итоги получилось, что 1) для Таблицы "остатки и обороты" действительно достаточно &Период.ДатаОкончания - я получил все данные на правую границу указанной в окончании периода даты, 2) однако для виртуальной таблицы "остатки", использовав тот же прием, я получил данные не включая последнюю секунду. Получается, для "остатки и обороты" ("обороты" не проверил, но наверное принцип тот же) используя выражение &Период.ДатаОкончания мы получаем условие "Период
Если не ошибаюсь, копать надо глубже, в том как хранятся данные, т.е. предположим в 7.7 остаток на конец считался исходя из суммы итоговых таблиц +- обороты таблицы оборотов текущего периода. В 8 уже неохота было колупать до "винтиков", надоело. Но не думаю что принцип сильно отличается.
Это описанная, декларируемая, особенность таблиц Остатки. Цитата из синтакс-помощника: "Период (необязательный) Тип параметра: Дата, МоментВремени, Граница. Указывается период, НА значение которого рассчитываются остатки. Для расчета остатков по значение периода его необходимо задавать объектом Граница с включением граничного значения. Если параметр не задан, итоги рассчитываются по самую последнюю запись."
Мда ... Товар в (Выбрать ДокТЧ.Товар, ДокТЧ.КОличество ... ) - А "количество" тут с какого перепугу в параметрах виртуальной таблицы? Однако долгое время пользуюсь Вашими шаблонами, и менять не надо - спасибо!
В смысле "переобулся" так то Павел давно врос в 1С. Или Вы, любезный, о том что он теперь препод в небезизвестном УЦ? Так человек волен выбирать то, что ему хочется. Или нравится. Или выгодно.
Так это САМАЯ ПРОСТАЯ задача. Цель ролика - показать что и как использовать, что не просто так все. (хотя есть и другие цели, но об этом позже). ERP учить не буду ;)
Вот это да , ну очень простой пример, я и незнал что столько подводных камней, как раз смотрел что такое последовательности и вышел на данное видео. Привем толком нигде про это не рассказывается , очень доступно все объяснили.
Здравствуйте. Спасибо обратную связь. Мы стараемся для вас!
Светлая память Павлу! Прививка его сгубила... Но помощь его 1с- никам живёт!
Текст задачи:
ЗАДАЧА №1. Самая простая задача
Сложность: *
Теги: регистры накопления, методика оперативного проведения
Заказчик просит разработать конфигурацию для учета товаров.
Многоскладской учет не ведется. Суммовой учет не ведется. Взаиморасчеты с покупателями и поставщиками не ведутся.
В системе необходимо регистрировать два вида операций: Поступление товара, Продажу товара.
При поступлении товара пользователь в табличной части указывает, какие товары, и в каком количестве поступили в организацию. Необходимо предусмотреть учет до граммов.
При продаже товаров указывается, какие товары были проданы и в каком количестве.
Продать товар "в минус" нельзя, в момент продажи необходимо проверять остаток товара.
Необходимо построить отчет по остаткам товаров. Форма отчета:
Остатки товаров на 31.01.2020
Товар Остаток
Ложка 100.000
Вилка 148.000
Поварешка 2.000
Сахар 1.560
Отчет строится на конец дня указанного пользователем. Особое внимание следует уделить последней секунде дня, документы, записанные на эту секунду должны попадать в отчет.
Я наконец увидел "Создателей"!) Спасибо
На 28:22 документ 000000002 (с вилкой) не проведён. И это сбивает с толку. Хотя даже если его провести то всё равно в отчёте на время документа вилка есть. Но закрадывается мысль "О он отчёт показывает, конечно вилка есть, документ же был не проведён" Нооо проведённый потом опыт показывает, что вилка в отчёте на время документа 000000002 будет в наличии трёх штук, даже если документ 000000002 провести)))).
Все упрощается, если сразу нормально сделать запрос. Не делать фейковое проведение, а соединить таблицы "Товар" из документа и "Остатки" из регистра. Получаем одну таблицу, в которой есть колонки Товар, Количество и Остаток. И все они действительны в реальном времени. В итоге все проблемы с секундами уйдут автоматически. А так сами себе создаем проблемы и потом героически их решаем
Про проведение задним числом как-то непонятно. В смысле, понятно, что задним числом можно в минус продать, но в типовых, на сколько я знаю, такой фокус не пройдёт. Впервые увидел использование последовательностей как объекта конфигурации, но не очень понял как они могут помочь в борьбе с отрицательными остатками. А в целом, конечно, наглядно, доступно, понятно.
В документе Реализация товара для контроля остатков тут он сам усложнил: можно же во втором запросе просто передавать параметром текущую дату сеанса и тогда даже реализации задним числом - будут контролироваться и не продаваться в минус. Т.е.: Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Нет, нельзя. 05.01.24 пришло 5 ножей на склад. Задним числом делаем списание 4 ножей от 03.01.24. Всё получится, хотя в этот день на складе ещё не было ножей
32.40 - вместо 23.59.59 введено 2.35.59.
ДОБАВИТЬКДАТЕ ( КОНЕЦПЕРИОДА ( &ДатаОтчёта, "День"),"СЕКУНДА", 1) Это понравилось)). А дальше ещё интереснее.
спасибо, отлично объясняете. Многие вещи стали понятны
Викуся, как успехи на ниве 1С ?
А почему бы на 30:35 не установить "Состав даты" не Дата и время, а Дата. В диалоговом окне при указании типа параметра "ДатаОтчёта"?
Павел, спасибо.
вот это стиль 1сный, не доделать и сделать не правильно, а потом исправлять и использовать другие фишки) это как добавили найти по наименованию , но её не используйте)
Самая простая задача какая-то совсем не простая. Страшно подумать, что в сложных задачах решают и как. Правильно ли я понимаю, что это всё лучше учить наизусть, ну помимо того, что надо понимать, как это всё работает?
А что здесь учить наизусть?
Согласен. Если это самая простая, то какая самая сложная?
в разборе не затронуты методики списания : "старая" и "новая". Почему нужно выбрать именно новую методику не понятно. От этого выбора зависит много чего в дальнейшем- выбор условия по дате в запросе, блокировка, прямая запись движений. Для новичка норм, но для сдачи экзамена не годится.
Павел, Спасибо за задачку по ОП , Ждем задачку по расчету зарплаты и бухгалтерии.
До Нового года задачи будут не связаны с этими механизмами. Видео относится к выпускаемому сборнику задач. В первом томе нет специализированных механизмов.
@@chistovpavel А что за сборник задач?
Воу, а в какой платформе появилась контекстная подсказка при вводе запросов? Это прям очень удобно.
Ребята вам спасибо огромное за видео я сам бухгалтер и решил учиться на разработчика постоянно смотрю и сразу много понятно становится после чтения книг, надеюсь скоро лично увидемся
Егор Коршаков, жаль, что с бухучетом и программированием у нас в стране, так же плохо, как и у вас с грамотностью. УвидИмся.
@@GmxgmxMr кто сказал что у нас в стане плохо с бух.учетом и программированием?)) у нас даже с занудами недостатка нет))
Подскажите, не имея этого видео под рукой, как прийти к необходимости конструкции
ДОБАВИТЬКДАТЕ ( КОНЕЦПЕРИОДА ( &ДатаОтчёта, "День"),"СЕКУНДА", 1).
Может есть где почитать про это?
Спасибо!!! Когда будут ещё видео?
Во всех курсах обучающих для вывода сообщений всегда используют конкатенацию. Есть же функция СтрШаблон(), не нужно плюсики, кавычки открывающие, закрывающие итд. Да и нагляднее мне кажется: ТекстСообщения = СтрШаблон("Не хватает %1, дефицит %2", Выборка.ТоварПредставление, Выборка.Дефицит)
В данном обучающем ролике, СтрШаблон это лишняя функция, лишнее объяснение зачем она нужна. Думаю так) но что использует Павел на практике тоже интересно)
Видео отличное, было бы интересно увидеть подобное по БУ и СПР(особенно СПР). В интернете мало такого контента - решения простейших задач с разбором основных моментов что бы общую суть уловить быстро.
До Нового года задачи будут не связаны с этими механизмами. Видео относится к выпускаемому сборнику задач. В первом томе нет специализированных механизмов.
На 46 минуте Вы говорите, чтобы заблокировать движения, достаточно будет написать одно лишь свойство …БлокироватьДляИзменения. И дальше, что платформа блокирует движения для других сеансов если это свойство Истина. Но это не так. Свойство не определяет будет установлена блокировка или нет. Блокировка при записи в регистр (я про SQL БД) будет в любом случае как записей таблицы движений, так и записей таблицы остатков. Вот только "БлокироватьДляИзменения = Истина" временно "отключит" режим разделения итогов (не будет использоваться разделитель таблицы остатков). Этого будет достаточно, чтобы "Движения.Записать()" более поздней транзакции встала в очередь при записи в эту таблицу. И проверяющий запрос отработает только после окончания первой транзакции. Понимаю, что стараетесь объяснить просто, но зачем так искажать?
Вопрос: Взял Сборник задач по разработке на платформе
1С:Предприятие, а как проверить себя в правильности решения?
а где взял, я тоже хочу взять
@@РоманТарануха-о1о сорян, братишка, но если не можешь найти сборник задач в сети (а там еще есть даже видосы, на которых их решают), то врядли тебе стоит заниматься чем-то, что связано с анализом причинно-следственных связей.
@@SMSobl Логичный своет, а я смотрю ты родился уже 1С-ом)))
Впервые увидел Вас в этом ролике. Наслышан давно. Спасибо. Стал глубже понимать откуда такие громадные размеры баз, почему оно жрет рессурсы и тормозит. Первое называю маркетингом (оно при оптимизаци нормально работает, т.е. финты ушами намеренно придумываются с целью зарабатывания денег и не забываем про вселенский сговор), а второе - дело рук криворуких программистов.
А разве не нужно отслеживать отмену проведения (изменение) документа "ПоступленияТоваров" ? 1 ноября пришло 5 ложек, 2 ноября продали 3 ложки (остаток 2), 3 ноября отменили (изменили) ПоступлениеТоваров - в итоге минус на остатке. Будет ли засчитано на экзамен данное решение ?
Этим последовательность и занимается.
это какой уровень подготовки? задача то может и простая, но в самой программе сотни кнопок, куда и что нажимать еще надо очень постараться запомнить.
Здравствуйте. Задача относится к начальному уровню подготовки. Но безусловно, предварительно с интерфейсом Конфигуратора, основными объектами и их свойствами лучше познакомиться.
Почему представление получать это не в цикле?
Зачем к БД обращаться запросом, если данные ТЧ есть в объекте?
Тч так же находится в бд, равно как и объект.. А запросом обращая лучше чтобы не "захватывать" таблицы для изменения + опять же клиент-сервер проще прикрутить. А вообще, он просто пример привёл.
Владимир К , в момент проведения объект находится в памяти, и в нем есть тч, зачем обращаться к бд?
@@lisovliss1 В приведенном примере мы дважды обращаемся к ТЧ
Павел Чистов , в текущем контексте нам доступен объект документа, который находится в оперативной памяти, получать данные из него дешевле, чем запросом из бд, я об этом.
А еще есть задачи, или это первая?
Это просто одна задача. Цикла роликов по разбору подобных задач у нас нет.
а как же то что нельзя так остатки проверять без ВТ
Поступления. А зачем перебирать ТЗ теперь? Может её просто загрузить в ДвиженияДокумента?
Продажа. Почему в данном запросе не стали Представление выбирать?
1. Можно.
2. Где не выбираю? Где надо выбираю.
спасибо за видео. а какая у вас платформа? необычно как то выглядит в пользовательском режиме
последняя
@@kvt5002 Даже еще последнее, это 8.3.16.
@@chistovpavel у бухов опять истерика: то мин.фин новинки вкручивает, то 1с..
Здравствуйте! А подскажите, пожалуйста в чем особенность таблиц "Остатки и обороты" и "остатки" при задании периодов. Всегда думал, что в СКД достаточно написать &Период.ДатаОкончания для получения актуальных данных на конец периода. Однако, увидев действия в видео, пошёл проверять в конфигураторе свои догадки. В итоги получилось, что
1) для Таблицы "остатки и обороты" действительно достаточно &Период.ДатаОкончания - я получил все данные на правую границу указанной в окончании периода даты,
2) однако для виртуальной таблицы "остатки", использовав тот же прием, я получил данные не включая последнюю секунду.
Получается, для "остатки и обороты" ("обороты" не проверил, но наверное принцип тот же) используя выражение &Период.ДатаОкончания мы получаем условие "Период
Если не ошибаюсь, копать надо глубже, в том как хранятся данные, т.е. предположим в 7.7 остаток на конец считался исходя из суммы итоговых таблиц +- обороты таблицы оборотов текущего периода. В 8 уже неохота было колупать до "винтиков", надоело. Но не думаю что принцип сильно отличается.
Это описанная, декларируемая, особенность таблиц Остатки. Цитата из синтакс-помощника: "Период (необязательный)
Тип параметра: Дата, МоментВремени, Граница.
Указывается период, НА значение которого рассчитываются остатки. Для расчета остатков по значение периода его необходимо задавать объектом Граница с включением граничного значения.
Если параметр не задан, итоги рассчитываются по самую последнюю запись."
Мда ... Товар в (Выбрать ДокТЧ.Товар, ДокТЧ.КОличество ... ) - А "количество" тут с какого перепугу в параметрах виртуальной таблицы?
Однако долгое время пользуюсь Вашими шаблонами, и менять не надо - спасибо!
Я ж убрал.
Шаблоны под EDT делаю.
@@chistovpavel Павел, а где можно, с Вашего одобрения, получить Ваши шаблоны? Они кажутся более удобными, чем встроенные.
@@MDunaev 1c.chistov.pro/2013/09/83_15.html
Время некорректное- вместо 23ч. пишет 2ч.)
Не такая уж и простая задачка
RIP
Когда это Павел успел в 1С перейти? Переобулся, значит ) А так, без рассмотрения партионного учета и субконто на счетах, это не тру 1с )))
В смысле "переобулся" так то Павел давно врос в 1С. Или Вы, любезный, о том что он теперь препод в небезизвестном УЦ? Так человек волен выбирать то, что ему хочется. Или нравится. Или выгодно.
Так это САМАЯ ПРОСТАЯ задача. Цель ролика - показать что и как использовать, что не просто так все. (хотя есть и другие цели, но об этом позже). ERP учить не буду ;)
эм ладно
решение самой "простой" задачи длиной "всего лишь" 47 минут...
Научитесь медленнее объяснять , вечно спешите
Это не он быстро объясняет, это ты медленно думаешь