No Image

Пример решения задачи по 1с специалист

СОДЕРЖАНИЕ
3 220 просмотров
10 марта 2020

Первая задача раздела "Оперативный учет"

Для начала, давайте выделим основные моменты из условий задачи:

  • Используется 2 документа (Приходная накладная, Расходная накладная)
  • Компания продает И товары И услуги. И товар и услуга находятся в одной табличной части
  • Аналитика по складам не требуется
  • Необходим контроль количества при продаже товаров
  • Применяется партионный учет (ФИФО или ЛИФО)
  • Учетная политики действует в пределах ГОДА
  • Плюс необходимо реализовать два отчета (Продажи, Остатки товаров)

Готовый пример решения

Справочник "Номенклатура"

Учетная политика

В задаче ПОДЧЕРКИВАЕТСЯ! Учетная политика действует в пределах года. Значит нам нужен регистр сведений, с периодичностью "В пределах года". Структура регистра довольно простая, это один ресурс "МетодСписания" с типом "ПеречислениеСсылка.УчетнаяПолитика"

Регистр накопления "ОстаткиНоменклатуры"

Документ "Приходная накладная"

Т.к. учет в разрезе складов не ведется, то и в документе нет необходимости добавлять реквизит склад (тем более что справочника такого в каркасной конфигурации нет). Раз не требуется, то и не делаем. Вообще на экзамене лучше не отклоняться от условий задачи, и не делать свыше того что указано в задаче.
Таким образом, все что от нас требуется сделать в этом документе, это описать обработчик проведения (процедура в модуле объекта "ОбработкаПроведения").
Воспользуемся конструктором движений

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

Документ "Расходная накладная"

Теперь самое интересное! Читаем задачу 1.1, и отмечаем основные моменты которые необходимо учитывать при проведении документа "Расходная накладная":

  • Учитывать порядок списания себестоимости товаров, указанный в учетной политике (ФИФО или ЛИФО)
  • При проведении расходной накладной, необходимо контролировать остатки товаров
  • В случае нехватки товаров, выводить предупреждение, и не проводить документ
  • В табличной части могут быть как товары так И услуги, но нас интересуют только ТОВАРЫ и остатки по ним

Теперь давайте по-порядку! Открываем модуль объекта документа "Расходная накладная", и работаем с процедурой "ОбработкаПроведения".
Первое что определим, это порядок списания себестоимости! Далее напишем запрос для получения товаров из табличной части, и остатков по партиям товаров Немного поясним что здесь происходит. Итак:

  1. Первое что нужно сделать, это поместить выборку товаров из табличной части во временную таблицу. Это нужно для того чтобы во-первых оставить там только товары, во-вторых получить общее количество по каждому товару (т.к. один и тот же товар может быть в двух и более строках табличной части, тогда при левом соединении с таблицей остатков мы получим ошибочные данные по остаткам
  2. К выборке товаров, получаем остатки из виртуальной таблицы "Остатки" регистра накопления "ОстаткиНоменклатуры"
  3. В параметрах виртуальной таблицы указываем период, а также ограничиваем номенклатуру по которой нужно остатки получить
  4. Упорядочиваем выборку по дате партии
  5. И делаем итоги по номенклатуре. Т.е. при обходе сразу будет видно, достаточное ли количество на остатках
Читайте также:  Как поменять фамилию в гугл аккаунте

Теперь делаем обход результата выборки, и формируем движения по регистру, либо не формируем и ставим флаг отказа
Запустив конфигурацию в режиме "Предприятие", и создав документ "Расходная накладная" с необходимым количеством, можно убедиться что написанный алгоритм работает


Так же, рекомендуем посмотреть решение задачи 5.1 (Просмотр движений документа "Расходная накладная", для контроля правильности)

Ниже я приведу пример решения типовой задачи для аттестационного билета «1С Специалист по платформе».

Условие задачи: оперативный учет

Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная», продажа — «Расходная накладная». Помимо продажи товара могут оказываться дополнительные услуги, например, по доставке. И услуги, и товары указываются в одной табличной части.

Складской учет товаров не ведется.

При проведении расходной накладной при нехватке товара необходимо выдавать соответствующее предупреждение с указанием количества нехватки и не позволять проводить документ.

Списание себестоимости должно быть организовано по партиям, в зависимости от текущего значения принятого в учетной политике метода списания себестоимости (FIFO, по средней или LIFO). Учетная политика может меняться каждый день, ее изменение фиксируется соответствующим документом.

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

Необходимо построить отчет но продажам товаров за период и остаткам товара на указанную дату.

Продажи с 01.01.2010 по 31.03.2010

Номенклатура Кол-во Себест-сть Продажа Прибыль
Куртка замшевая 3 300 620 320
Портсигар 3 30 50 20
Доставка 1 100 100

Прибыль рассчитывается как:

«Сумма продаж» — «Себестоимость» Остатки товаров па 01.01.2010

Номенклатура Партия Кол-во Стоимость
Куртка замшевая 4 350
Прих. Накладная №1 2 250
Прих. Накладная №2 2 100
Портсигар 6 65
Прих. Накладная №1 5 50
Прих. Накладная №3 1 15

Решение задачи оперативного учета 1С Специалист 8

Структура хранения данных

Первая задача — определиться со структурой хранения данных.

Лучше всего при решении любой задачи отталкиваться от требуемых отчетов. В нашем случае нам необходимо показать пользователю себестоимость товаров в разрезе приходных накладных и отобразить продажи за период.

Для хранения данных об остатках будем использовать регистр накопления «ОстаткиНоменклатуры» (тип — «Остатки»): измерения (разрезы) хранения у которого — «Номенклатура» и «Партия» (документ, которым был оприходован товар). В разрезе партий будет рассчитываться себестоимость товара.

Для хранения информации о продажах нам потребуется регистр накопления «Продажи» (тип — «Обороты»). Измерение одно — «Номенклатура». Ресурса три — «Количество», «Сумма», «Себестоимость». Решение хранить в регистре продаж «Себестоимость» достаточно спорное. В принципе, в вышеуказанном отчете можно было соединять два регистра для получения информации. Однако я считаю, что скорость и простота получения информации должны оцениваться выше, чем место на диске.

Списание себестоимости должно быть организовано по партиям, в зависимости от текущего значения принятого в учетной политике метода списания себестоимости (FIFO, по средней или LIFO). Учетная политика может меняться каждый день, ее изменение фиксируется соответствующим документом.

Для хранения настройки будем использовать регистр сведений «МетодСписанияТоваров» с периодичностью — один день. На закладке Данные укажем только ресурс — МетодСписания, а измерением будет период установки настройки. Для установки значения регистра сведений используем документ «УстановкаМетодаСписания», у которого укажем единственный реквизит — МетодСписания. В обработке проведения укажем следующий код:

Читайте также:  C program files 1cv8 common 1cestart exe

Чтобы понимать, какая номенклатура является услугой, сделаем у справочника реквизит «Услуга», тип — булево:

С хранением данных мы разобрались. Приступим к отражению хозяйственных операций с помощью Документов.

Для решения данной задачи нам понадобится два документ — приходная накладная и расходная накладные. Рассмотрим их подробнее:

Приходная накладная

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

Следует обратить внимание на важный момент — если учетная политика установлена как «средняя», то не следует писать в регистр ссылку на текущий документ. Потом, при списании, у нас будет взята себестоимость в разрезе «пустой» партии, т.е. по средней.

Расходная накладная

Структура метаданных документа Расходная накладная аналогична приходной, его можно полностью скопировать. Но с обработкой проведения расходной накладной 1С для списания партий всё немного сложнее.

Получите 267 видеоуроков по 1С бесплатно:

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

В качестве источника данных у нас будет использоваться табличная часть документа «СписокНоменклатуры».

Далее необходимо узнать, какой метод списания установлен для текущего периода:

После определения метода списания определяем количество товара для списания и формируем движения:

Тут необходимо отметить следующие моменты:

  1. В зависимости от метода списания мы меняем текст запроса с помощью следующей конструкции: Запрос.Текст = СтрЗаменить(Запрос.Текст, «ВОЗР», «УБЫВ»).
  2. Не забудьте проиндексировать поля временной таблицы, по которой будете соединять таблицы (ИНДЕКСИРОВАТЬ ПО Номенклатура).
  3. Не забудьте проверять значения в запросах на NULL с помощью конструкции ЕСТЬNULL. NULL может возникнуть при соединении с другими таблицами при отсутствии значения в присоединяемой таблице.
  4. Решение проблемы копеек: если количество списываемого товара по данной партии равно остатку под данной партии, то списать всю сумму. Это позволит избавиться от остатка от деления. В нашем примере: СуммаСписания = ?(ВыборкаНоменклатура.КоличествоОстаток = КСписанию, ВыборкаНоменклатура.СуммаОстаток, ВыборкаНоменклатура.СуммаОстаток/ВыборкаНоменклатура.КоличествоОстаток * КСписанию).
  5. Если не хватает какой-либо номенклатуры, мы устанавливаем параметр «Отказ» в значение «Истина», однако продолжаем движения по строкам документа, чтобы вывести все сообщения о нехватке товара.
  6. Количество товара проверяется только для товара, без учета услуг.
  7. В цикле мы списываем до тех пор, пока не погасили потребность из документа (ОсталосьСписать <> 0).
  8. Если списание производится «по средней», то НЕ указываем документ партии.
  9. Если списание производится «по средней», сумму необходимо брать из итоговой строки группировки.

Отчеты

С данной структурой регистров отчеты получаются элементарные:

Скачать решение задачи оперативного учета 1С специалист по платформе

Скачать вышеописанное решение Вы можете по ссылке.

Читайте также:  Keep warm перевод на чайнике

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

Удачи при подготовке! &#128578;

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Пока готовился на спеца по платформе мной были решены многие задачи из сборника. Выкладываю свои решения по решению:

  1. Оперативных задач (23 задачи: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 15, 17, 24, 26, 28, 31, 32, 36, 37, 40, 42, 45).
  2. Бухгалтерских задач (21 задача: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 14, 15, 18, 23, 27, 29, 31, 32, 33, 35)
  3. Расчетных задач (24 задачи: 01, 02, 03, 04, 05, 06, 07, 09, 12, 13, 15, 17, 16, 17, 18, 19, 20, 21, 22, 23, 27, 35, 43, 45, 48)
  4. Бизнес задачи присутствуют.

Может, кому пригодится при подготовке в качестве учебного материала. Текстовки задач в архиве отсутсвуют, дабы не нарушать соглашение.

PS: После прорешивания сдал с первого раза.

Пример решения Задачи по Бухгалтерии:

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

Документ «Приходная накладная» реализует следующую проводку: Дт «Товары» – Km «Поставщики» на количество и сумму закупаемого товара.

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

Документ «КупляПродажа» реализует следующие проводки:

Дт «Прибыли и убытки» – Km «Товары» на количество сумму себестоимости. Себестоимость товара рассчитывается для каждой организации в разрезе партий и складов по каждой номенклатурной позиции.

Дт «Покупатели» – Km «Прибыли и убытки» на сумму в продажных ценах;

По организаиии-пуодавцу: Дт «Товары» – Km «Поставщики» на сумму закупаемого товара

Решение:

Не буду расписывать создание объектов. Сразу к делу.

Документ "Приходная накладная" модуль объекта:

Документ "Купля продажа" модуль объекта:

Комментировать
3 220 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector