Алгоритм решения задачи №1 (ОУ)

(за правильность не ручаюсь, буду благодарен за замечания)

1. Настроить конфигурацию

  1. Включить возможность использования обычных форм (нужно для Консоли запросов):
    • Сервис – Параметры – флаг «Управляемое приложение и обычное приложение»;
    • свойства конфигурации – флаг «Использовать обычные формы в управляемом приложении»;
  2. Настройка конфигурации (свойства):

[свернуть]

2. Настройка интерфейса (через Подсистемы):

  1. Создать Подсистемы (порядок – согласно порядку задачи: <конфигурация> – пкм – Открыть командный интерфейс):
    • Оперативный учет;
    • Бухгалтерский учет;
    • Расчеты;
    • Бизнес-процессы (или Управляемые формы) – по задаче;
    • Сервис.
  2. Упорядочить подсистемы можно в режиме 1С Предприятие (Настройки – Настройка панели разделов).
  3. В созданные подсистемы (Подсистемы – пкм – Все подсистемы) добавить те объекты, которые должны в них входить (отображаться в интерфейсе):
    • Создать Группы команд:
      1. Справочники;
      2. Документы;
      3. ПланыВидовХарактеристик;
      4. РегистрыСведений;
      5. РегистрыОУ;
      6. РегистрыБУ;
      7. РегистрыСПР.
    • Например, подсистема "Оперативный учет" может включать:
      1. Справочник Номенклатура;
      2. Документ Приходная накладная;
      3. Документ Расходная накладная;
      4. Регистр накопления Остатки номенклатуры и т.д.
  4. Распределить объекты подсистем по соответствующим группам команд.
  5. Настроить интерфейс клиентского приложения (<конфигурация> – пкм – Открыть интерфейс клиентского приложения):
    • Сверху убрать Панель функций текущего раздела, добавить Панель открытых;
    • Слева – Панель разделов.
  6. Включить возможность использования Консоли запросов (запускается только под Толстым клиентом):
    • В модуле формы консоли изменить обработку исключения Предупреждение(Сред(ОписаниеОшибки(),69)); на ПоказатьПредупреждение(,Сред(ОписаниеОшибки(),69));

[свернуть]

3. Определить список документов и выполнить начальную настройку конфигурации

  1. Определяем список документов, используемых в решении. Все они явно описаны в задании, свои не добавлять.
  2. Рисуем ось времени. Отображаем на ней документы и оформляемые ими события хозяйственной жизни.
  3. Если в условии упоминаются услуги, то сразу готовим конфигурацию:
    • проверяем (создаем) Перечисления.ВидыНоменклатуры со значениями Товар, Услуга ;
    • в справочник Номенклатура добавляем реквизит ВидНоменклатуры , тип ПеречислениеСсылка.ВидыНоменклатуры ;
  4. Если в условии упоминается учетная политика (ФИФО, ЛИФО, средняя), то сразу готовим конфигурацию:
    • проверяем (создаем) Перечисления.УчетнаяПолитика со значениями ФИФО, ЛИФО, Средняя;
    • создать регистр сведений (периодический) УчетнаяПолитика (по нему будем определять метод учетной политики на дату документа):
      • периодичность - по заданию (например, В пределах года);
      • режим записи - Независимый;
      • добавить его в подсистему (например, ОУ);
      • вкладка "Данные" - добавить ресурс МетодСписанияСебестоимости с типом ПеречислениеСсылка.УчетнаяПолитика .
  5. Если ведется складской учет, то сразу готовим конфигурацию:
    • добавляем справочник Склады;
    • в регистры накопления добавить измерение Склад , тип СправочникСсылка.Склады;
  6. (При желании, сэкономит время на правильный ввод данных в документы) Настроить автоподсчет сумм (строка и документ) в Приходной и Расходной накладных (общий модуль + модули форм документов, в свойствах общего модуля проверить флаги «Клиент», «Сервер»):
    • при изменении в строке табличной части Количество и Цена;
    • при удалении или добавлении копированием.

Код для подсчета сумм в стрoке и по документу

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

Создать общий модуль РаботаСДокументами :

Создать форму документа, в модуле формы определить процедуры:

[свернуть]

[свернуть]

4. Спроектировать регистры (место хранения данных)

  1. Определить количество ресурсов – по накапливаемым данным (количество, сумма, себестоимость, сумма продажи и т.д.). Добавить в соответствующий регистр, проверив соответствие типа, длины и точности.
  2. Определить количество измерений – по детализации ресурсов (склад, партия, контрагент, номенклатура и т.д.). Добавить соответствующие измерения.
  3. Проверить для измерений установку флага «Запрет незаполненных значений» (при необходимости).
  4. Регистр накопления:
    • Прочее - флаг «Разрешить разделение итогов» - включить.

Замечание: Решение на двух регистрах более эффективно (работает быстрее, размеры таблиц меньше), но менее достоверно (необходима синхронизация регистров, на экзамене синхронизацию программно НЕ ДЕЛАТЬ!)

[свернуть]

5. Настройка документов (запись данных)

  1. Добавить реквизиты по заданию (например, Склад в шапке или поле Партия в СписокНоменклатуры).
  2. Добавить и настроить форму:
    • Форму документов создавать после добавления всех реквизитов документа (ускорение разработки).
    • В командном интерфейсе форм в пункт «Перейти» добавить ссылки на регистры, установив соответствующие флажки.
  3. На вкладке «Движения»:
    • Проведение – Разрешить (при ручном вводе движений – Запрещено);
    • Оперативное проведение – Разрешить;
    • Удаление движений – Удалять автоматически при отмене проведения.
  4. Сформировать движения (через конструктор, табличная часть выбирается только тогда, когда из неё заполняются измерения!) и определить методику контроля остатков:
    • если для заполнения набора записей данные регистра не нужны – новая (если новая и приход – то контроль не нужен);
    • если для заполнения набора записей данные регистра нужны - старая.
  5. В процедуре обработки проведения обработать дубли (например, простейший запрос с группировкой по Номенклатуре и суммированием Количества).
  6. Настроить автоподсчет сумм (строка и документ) в Приходной и Расходной накладных (общий модуль + модули форм документов, в свойствах общего модуля проверить флаги «Клиент», «Сервер»):
    • При изменении в строке табличной части Количество и Цена;
    • При удалении или добавлении копированием.
  7. Завести пользовательские данные в режиме 1С Предприятие, провести документ, проверить движения (добавить ссылку на соответствующий регистр в форму документа: (три верикальные точки) – Окно – Настройка панели навигации формы).

[свернуть]

6. Обработка проведения расходной накладной («старая» или «новая» методика контроля).

Обработка проведения расходной накладной («старая» или «новая» методика контроля).

[свернуть]
7. Создать oтчет в СКД:

  1.  Добавить в отчет необходимые таблицы (реальные и виртуальные).
  2. Если на рисунке отчета явно не указаны параметры (не установлены флаги и нет значений в полях), то считается, что это – пользовательские настройки (параметры виртуальной таблицы можно явно не задавать, определяются системой автоматически).
  3. Из таблиц выбрать необходимые поля, при этом опускаться до детализации и выбирать реквизиты, входящие в состав конкретного поля, не нужно (например, для конкретной задачи из поля Номенклатура регистра Остатки не нужно выбирать реквизит Разработчик, система сделает это автоматически, предоставив дополнительные возможности и упростив дальнейшую работу).
  4. Добавить нужные параметры (по заданию) или в конфигураторе, или в пользовательском режиме.

[свернуть]

Пример решения задачи учета (в разрезе партий товаров)

Условие задачи

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

И услуги, и товары указываются в одной табличной части.

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

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

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

Обратите внимание - учетная политика действует год. На следующий год метод списания может измениться.

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

[свернуть]

Пункты по настройке интерфейса аналогичны вышеприведенным.

Видео по партионному учету (Леонтьев) https://www.youtube.com/watch?v=V0zYMdCBDZU

Видео по похожей задаче https://youtu.be/KoYAofD5qws

4. Спроектировать регистры (место хранения данных)

Общий алгоритм:

  1. Определить количество ресурсов – по накапливаемым данным (количество, сумма, себестоимость, сумма продажи и т.д.). Добавить в соответствующий регистр, проверив соответствие типа, длины и точности.
  2. Определить количество измерений – по детализации ресурсов (склад, партия, контрагент, номенклатура и т.д.). Добавить соответствующие измерения.
  3. Проверить установку флага «Запрет незаполненных значений» (при необходимости).
  4. Регистр накопления:
    • Прочее - флаг «Разрешить разделение итогов» - включить.

Проанализируем условие задачи и таблицы из условия:

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

Т.о. нам понадобятся 2 регистра накопления:

  1. первый - оборотный, по продажам;
  2. второй - остатков.

В регистрах будут храниться:

  1. Регистр ОстаткиНоменклатуры:
    • измерения:
      1. Номенклатура, тип СправочникСсылка.Номенклатура ;
      2. Партия, тип ДокументСсылка.ПриходнаяНакладная ;
    • ресурсы:
      1. Количество;
      2. Себестоимость, тип Число (длина 12, точность 2);
  2. Регистр Продажи (вид регистра Обороты) (видео от Леонтьева, с 30 мин):
    • измерение:
      1. Номенклатура, тип СправочникСсылка.Номенклатура ;
    • ресурсы:
      1. Количество;
      2. Себестоимость (дублирование, НО упростит формирование отчета);
      3. СуммаПродажи, тип Число (длина 12, точность 2);

Замечание: Решение на двух регистрах более эффективно (работает быстрее, размеры таблиц меньше), но менее достоверно (необходима синхронизация регистров, на экзамене синхронизацию программно НЕ ДЕЛАТЬ!)

[свернуть]

5. Настройка документов

  1. Добавить реквизиты по заданию (например, Склад в шапке или поле Партия в СписокНоменклатуры).
  2. Добавить и настроить форму:
    • форму документов создавать после добавления всех реквизитов документа (ускорение разработки).
    • в командном интерфейсе форм в пункт «Перейти» добавить ссылки на регистры, установив соответствующие флажки.
  3. На вкладке «Движения»:
    • Проведение – Разрешить (при ручном вводе движений – Запрещено);
    • Оперативное проведение – Разрешить;
    • Удаление движений – Удалять автоматически при отмене проведения.
  4. Движения формировать через конструктор (табличная часть выбирается только тогда, когда из неё заполняются измерения!) и определить методику проведения:
    • если для заполнения набора записей данные регистра не нужны – новая (если новая и приход – то контроль не нужен);
    • если для заполнения набора записей данные регистра нужны - старая.

[свернуть]

6.1 Обработка проведения документа ПриходнаяНакладная

Особенности:

  1. Приходная накладная записывает движения только в регистр накопления ОстаткиНоменклатуры.
  2. В запросе:
    • условие - по ссылке на документ;
    • группировка по Номенклатура,
    • суммируем Количество и Себестоимость.

Порядок действий:

  1. Отметить ПриходнаяНакладная как регистратор для регистров ОстаткиНоменклатуры;
  2. Сформировать движения (через конструктор), вручную заполнив в колонке "Выражение" поля Партия и Себестоимость; Задача ОУ_1 ПриходнаяНакладная
  3. Сформировать запрос для выборки данных из документа для движений, указав:
    • условия: ссылка на документ, вид номенклатуры - Товар;
    • в качестве Партия  - Ссылка;
    • в качестве Себестоимость - Выборка.Сумма (код процедуры ОбработкаПроведения см. ниже).
  4. Завести пользовательские данные в режиме 1С Предприятие, провести документ, проверить движения (добавить ссылку на соответствующий регистр в форму документа: (три верикальные точки) – Окно – Настройка панели навигации формы).

Код процедуры ОбработкаПроведения:

[свернуть]

6.2 Обработка проведения документа РасходнаяНакладная

Код процедуры ОбработкаПроведения

[свернуть]

Особенности:

  1. При обработке проведения не забывать о проверке на "товар - услуга" (услуги в регистр накопления ОстаткиНоменклатуры не пишутся, и т.д.).
  2. Сформировать движения (через конструктор, табличная часть выбирается только тогда, когда из неё заполняются измерения!) и определить методику контроля остатков:
      • если для заполнения набора записей данные регистра не нужны – новая (если новая и приход – то контроль не нужен);
      • если для заполнения набора записей данные регистра нужны - старая (если используются два регистра, то возможен вариант использования разных методик).

Порядок действий:

  1. Определить текущий метод списания себестоимости.
    Код

    [свернуть]
  2. Очистить движения регистров.
    Код

    [свернуть]
  3. Устанавливаем на регистры блокировку: 
    • копируем из Синтакс-помощника;
    • пока закомментируем (т.к. данных пока нет, определим позже, по данным запроса);
      Код

      [свернуть]
  4. Получить из регистра данные для проведения: 
    • запросом с обработкой результатов получаем данные для проведения из табличной части и регистра накопления ОстаткиНоменклатуры.Остатки(с отбором ВидНоменклатуры <> Услуга):
      1. выбираем Номенклатура, Количество, Номенклатура.Представление, Сумма;
      2. группируем по Номенклатура (убираем возможные дубли);
      3. суммируем по Количество (определяем общее количество списываемой номенклатуры для контроля остатков), Сумма (определяем сумму продажи);
      4. ставим условия:
        • Ссылка на эту РасходнуюНакладную;
        • условие на  ВидНоменклатуры при отборе ставить не будем, т.к. в регистр Продажи должны писаться не только Товары, но и Услуги;
      5. помещаем во временную таблицу;
      6. индексируем по Номенклатура (будем далее соединять по этому полю);
      7. добавляем второй запрос пакета запросов для получения данных из регистра накопления ОстаткиНоменклатуры.Остатки;
      8. добавляем временную таблицу, выбираем НоменклатураНоменклатура.Представление(представления нужны для вывода сообщений), Количество, СуммаВидНоменклатуры;
      9.  добавляем регистр накопления, устанавливаем параметры виртуальной таблицы;
        Рисунки

        [свернуть]
      10. выбираем из регистра КоличествоОстаток, СебестоимостьОстаток (для контроля остатков), обернуть в ЕСТЬNULL() (т.к. левое соединение будет);
      11. связь таблиц по номенклатуре, ЛЕВОЕ соединение;
      12. на вкладке "Порядок" добавить поле Партия.МоментВремениСортировка -  Возрастание (для ФИФО);
      13. на вкладке "Итоги" построим иерархию для партий товаров:
        • "Группировочное поле" - Номенклатура;
        • "Итоговое поле" - СУММА(КоличествоОстаток) из регистра, МАКСИМУМ(Количество) из документа - именно их мы будем сравнивать при контроле остатков, МАКСИМУМ(Сумма) - сумма продажи;
      14. закрываем конструктор запросов.
    • устанавливаем параметры запроса:
      1. МоментВремени как МоментВремени();
      2. Ссылкакак Ссылка();
    • откорректируем текст запроса по учетной политике (ФИФО или ЛИФО);

      Код

      [свернуть]
      Код запроса

      [свернуть]
    • выполняем запрос и обходим группы номенклатуры;
      Код

      [свернуть]
    • выполняем контроль остатков по сгруппированным в ИТОГАХ номенклатурным позициям (детальные записи при нехватке обходить смысла нет);
      Код

      [свернуть]
    • списываем номенклатуру по партиям с контролем "проблемы копеек" и записываем движения в регистр ОстаткиНоменклатуры (только, если не Услуга);
      Код

      [свернуть]
    • записываем движения в регистр Продажи и взводим флаги на запись;
      Код

      [свернуть]
    • раскомментировать код блокировки и ввести правильные данные;
      Код

      [свернуть]
  5. Завести пользовательские данные в режиме 1С Предприятие, провести документ, проверить движения (добавить ссылку на соответствующий регистр в форму документа: (три верикальные точки) – Окно – Настройка панели навигации формы).
    [свернуть]
7. Сделать отчет по задаче

Видео https://youtu.be/KoYAofD5qws

  1. Создать новый отчет ОтчетПоЗадачеОУ1, разместить в нужной подсистеме (например, ОУ).
  2. Добавить новый НаборДанных-запрос.
  3. В конструкторе запроса:
    • добавить таблицу регистр ПродажиОбороты;
    • выбрать из него поля Номенклатура, КоличествоОборот, СебестоимостьОборот, СуммаПродажиОборот (для удобства можно переименовать, убрав ...Оборот);
    • в параметрах виртуальной таблицы регистра ПродажиОбороты указать параметры &НачалоПериода и &КонецПериода ;
  4. На вкладке Вычисляемые поля добавить вычисляемое поле Прибыль, которое рассчитывается как «Сумма продаж» – «Себестоимость» (поле Выражение), установить соответствующий заголовок.
  5. Добавить ресурсы (все).
  6. На вкладке Параметры добавить СтандартныйПериод ;
    Рисунок

    Добавление СтандартныйПериод

    [свернуть]
  7. На вкладке Настройки добавить в отчет:
      1. новую группировку (детальные записи, не выбирая поле), без иерархии, установить для неё имя Заголовок;
      2. внизу выбрать Отчет, перейти на вкладку Другие настройкиВыводить параметры - выбрать  Не выводить ;
      3. внизу выбрать <Детальные записи> (Заголовок), перейти на вкладку Другие настройки - (в самый низ) - Вариант использования группировки - выбрать  Дополнительная информация ;
      4. новую группировку Номенклатура, без иерархии;
    • вверху на  вкладке Макеты добавить заголовок (как в задании):
      1. добавить макет группировки, выбрать группировку Заголовок;
      2. в табличном документе в ячейке размещаем текст заголовка из задания с параметрами ("Продажи за период с [НачалоПериода] по [КонецПериода]"), форматируем шрифт как  в задании, связываем эту ячейку с макетом Заголовок в поле Область , в свойствах ячейки меняем заполнение на Шаблон ;
      3. связываем параметры [НачалоПериода] и [КонецПериода] шаблона с соответствующими параметрами отчета (в папке ПараметрыДанных);
      4. форматируем вывод даты в свойсвах ячейки (Формат - Дата) как в задании.
  8. Окончательно внешний вид отчета (например, выравнивание в колонках для шапки таблицы и данных в колонках) настраивается в режиме Предприятие через меню "Ещё" - "Изменить вариант" - "Условное оформление".

[свернуть]

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.