Раз в неделю мы с заботой отбираем самые полезные новости для пользователя 1С!
Служба заботы ООО "Инженер-Центр" :)
Волжский
|Волгоград
|Камышин
Практический пример работы 1С и ИС Дракон
Рассмотрим решение такой простой (на первый взгляд) задачи.
Пользователь захотел организовать в 1С:Бухгалтерии 8 дополнительную аналитику на счёте 26. Это новое субконто 26 счёта «Номенклатура». Спросим нашего пользователя: «Зачем Вам это надо?» И получим разъяснение: на 26 счёте есть субконто «Статья затрат», но этого мало. Потому что разные затраты сворачиваются по нескольким статьям затратам. И непонятно: что списали. А отсюда и непонятно: а правильно ли списали? Но если на 26 счёте будет отдельное субконто «Номенклатура», то мы на нём можем указать: какую Номенклатуру списали на 26 счёт.
Пример: По-старому было: Дебет 26 (Материальные Затраты) Кредит 10.01 (Известь) = 10 000. Формируем Оборотно-сальдовую ведомость по 26 счёту и видим:
26
Материальные затраты 10 000
По-новому будет: Дебет 26 (Материальные Затраты) (Известь) Кредит 10.01 (Известь) = 10 000. Формируем Оборотно-сальдовую ведомость по 26 счёту и видим:
26
Материальные затраты 10 000
Известь 10 000
Теперь мы можем увидеть сколько и какой Номенклатуры было списано на 26 счёт. Можно строить расшифровки по Оборотно-сальдовой ведомости. Смотреть на них, думать, принимать решения.
Вроде бы всё просто.
Открываем План Счетов. Находим 26 счёт. Добавляем на него ещё одно субконто «Номенклатура». Ставим признак, что это оборотное субконто (флаг Только Обороты). И всё.
Можно проверять работу.
Где у нас может использоваться 26 счёт? Обычно в документе «Авансовый отчёт» - закладка «Прочее». В строке этой табличной части есть поле «Счёт», есть поле «Подразделение», есть поле «Субконто». Если заполним поле «Счёт» счётом 26, то в колонке «Субконто» будет два поля: «Статья затрат» и «Номенклатура» (субконто, которое мы добавили 26 счёту). Проведём документ «Авансовый отчёт» - в проводках увидим в дебете 26 счёт и заполненное субконто Номенклатура. Работает!
Где у нас ещё может использоваться 26 счёт? В документе «Поступление Товаров и Услуг» - закладка «Услуги». На закладке «Услуги» мы указываем поступление разных услуг, например, «Услуги связи». 26 счёт мы указываем в поле «Счёт затрат», Номенклатуру, например, ту же услугу «Услуги связи» мы укажем в поле субконто. Проведём документ «Поступление Товаров и Услуг». И увидим, в проводках в дебете 26 счёт и заполненное субконто Номенклатура. Работает! Но если субконто Номенклатура не заполним, то оно так и останется пустым в проводках, сформированных документом.
А где у нас ещё может использоваться 26 счёт? В документе «Требование-накладная». И тут нас ожидает неприятный сюрприз. Счёт затрат – наш 26 счёт – в документе «Требование-накладная» можно указать двумя способами: 1) на закладке «Счёт затрат» - со всеми субконто счёта 26, и 2) в табличной части «Материалы», но только с одним субконто – «Статьи Затрат». Субконто Номенклатура в этом случае в табличной части нет! Какой вариант предложить пользователю?
Рассмотрим первый вариант. Заполняем на закладке «Счёт затрат» поле «Счет затрат» и все остальные поля, включая поле Номенклатура. Но ведь у нас в Требовании-Накладной много материалов. И каждый материал должен сесть отдельной проводкой в дебет 26 счёта в субконто «Номенклатура». И мы не можем на закладке «Счёт затрат» указать какой-то конкретный материал, иначе он сядет в каждую проводку в дебет 26 счёта. Везде один и тот же материал – это неправильно и наша аналитика Номенклатура на 26 счёте в этом случае теряет смысл! Поэтому не будем заполнять поле Номенклатура – оставим его пустым. Проведём документ «Требование-Накладная». И чудо! Во всех проводках у нас есть дебет 26 счёта и в субконто Номенклатура этого счёта сидит соответствующая Номенклатура из табличной части. Ура! Работает!
Рассмотрим второй вариант. Ставим в документе «Требование-Накладная» флажок «Счета затрат на закладке материалы». Вся табличная часть «Материалы» заполняется счётом затрат, который введен нами на закладке «Счёт затрат» - нашим 26 счётом. Но поля для нашего субконто «Номенклатура» в табличной части нет. Всё равно проводим документ «Требование-Накладная». И опять чудо! Во всех проводках у нас есть дебет 26 счёта и в субконто Номенклатура этого счёта сидит соответствующая Номенклатура из табличной части. Ура! Опять работает!
Надо будет не забыть и проинформировать пользователя об этих особенностях работы программы.
Где ещё можем встретить 26 счёт? В ручной Операции. Но там пользователь сам заполняет и сам указывает нужные субконто. Что введёт дебет проводки ОперацииБух, то и получится.
Больше документов, где может быть использован счёт 26 в голову не приходит. Поэтому поступим просто: в Конфигураторе в Документах будем искать поле с названием «Субконто2». Если такое поле будет, то значит мы можем в этом документе вводить 26 счёт и заполнять его второе субконто «Номенклатура». Ищем такие документы:
Авансовый отчёт – мы его уже проверили.
Ввод начальных остатков – не трогаем, потому что наше субконто Номенклатура – это оборотное субконто и остатков по нему нет, только обороты.
Корректировка Поступления – табличная часть Услуги. Возможно!
Отражение НДС к вычету – табличная часть Товары и Услуги. Возможно!
Отчёт Комиссионера о продажах – в шапке. Вообще-то это счёт для списания комиссионного вознаграждения комиссионеру. И вряд ли оно будет списано на 26 счёт. Но даже если кто-то использует здесь 26 счёт, то субконто Номенклатура не будет здесь заполняться. Хватает и аналитики по статье затрат. Не трогаем этот документ.
Отчет Производства за Смену – табличная часть услуги. Тоже вряд ли, но кто его знает. Будем считать, что возможно!
Поступление Товаров и Услуг – с ним уже разобрались.
Распределение НДС – табличная часть «Счета учёта расходов» и «Распределяемый НДС». Думаю, что можно его исключить. Он опирается на уже существующие проводки.
Требование-Накладная – в шапке. Но с этим разобрались.
Итак, у нас остаются следующие документы:
Авансовый отчёт – табличная часть Прочие.
Корректировка Поступления – табличная часть Услуги.
Отражение НДС к вычету – табличная часть Товары и Услуги.
Отчет Производства за Смену – табличная часть Услуги.
Поступление Товаров и Услуг – с ним уже разобрались.
Требование-Накладная – в шапке.
В этих документах пользователь может столкнуться с нашим 26 счётом и его новым субконто «Номенклатура». И затруднений в работе с новым субконто у пользователя не возникнет. Субконто будет заполняться. Проводки будут формироваться правильно. По проводкам пользователь отчётами будет получать нужную информацию. Задача выполнена?
Но тут у пользователя возникает нехороший вопрос: а как быть с прошлыми периодами? У пользователя есть интерес просматривать обороты 26 счёта по списанной на него Номенклатуре и в прошлых периодах.
Заставить пользователя заполнять всё руками? Долго.
Написать программу, которая заполнит пустое субконто Номенклатура у 26 счёта и проведёт документы? Опасное это дело проводить документы прошлых периодов. Многое может поменяться, а вся отчётность уже сдана. Кроме этого проводки некоторых документов могли быть подвергнуты ручному редактированию. И попытка провести такой документ не приведёт нас к изменению проводок.
Написать программу, которая откорректирует проводки у документов, аккуратно заполнив только нужное нам субконто Номенклатура 26 счёта? Нормальный вариант. А если пользователь захочет провести этот документ заново? Пропадёт наша корректировка?
Поэтому надо совместить два варианта: корректировать субконто Номенклатура в документе и в проводках. Документ только записывать. Хорошо, что в 3.0 не используется свойство формы ПриЗаписиПерепроводить.
На этом решении и остановимся.
Теперь нам надо объяснить пользователю как ему придётся работать с документами в условиях, когда на счёте 26 появился новый субконто «Номенклатура». Как мы уже для себя выяснили: пользователь может работать с 26 счётом в следующих документах:
· Авансовый отчёт – табличная часть Прочие.
· Корректировка Поступления – табличная часть Услуги.
· Отражение НДС к вычету – табличная часть Товары и Услуги.
· Отчет Производства за Смену – табличная часть Услуги.
· Поступление Товаров и Услуг – с ним уже разобрались.
· Требование-Накладная – в шапке.
И нам теперь необходимо внятно изложить эту работу в виде Дракон-схемы.
Что мы и делаем:
Теперь перед написанием нашей программы подумаем: как пользователь делал бы корректировку документов прошлого периода. Наверное, это было бы так:
1. Пользователь открывает документ, где есть проводка по дебету 26 счёта.
2. Заполняет пустые субконто «Номенклатура» у 26 счёта. Делает он это по алгоритму заполнения новых документов, который мы нарисовали выше.
3. После этого ставит проводки документа на ручное редактирование.
4. И начинает сличать те строки, которые он заполнил в документе и проводки с 26 счётом по дебету. Сличает по:
a. Счёту = 26,
b. Подразделению, указанному в строке.
c. Статье Затрат.
d. Сумме в строке.
5. Если есть совпадение по этим полям строки документа и проводки, то в проводку переносится поле Номенклатура из строки документа.
6. Но есть исключения из общего ряда документов:
a. Если попадаем на документ Требование-Накладная, то правим только проводки и по очень простой схеме:
i. В дебет 26 счёта в субконто Номенклатура ставим то же самое значение Номенклатуры, что и в кредите счёта этой проводки.
b. Если попадаем на документ «Отчет Производства за Смену» и на Закладке «НДС» есть счёт 26, тогда надо думать какую Номенклатуру для субконто выбрать. И как править проводки.
7. После всего этого идёт запись документа и проводок.
Набросаем схему действий пользователя по исправлению документов прошлых периодов руками:
Для написания нашей программы, которая будет искать в прошлых периодах незаполненное субконто Номенклатура для счёта 26 и пытаться его заполнить мы должны изложить такой же, только другой, алгоритм.
1. Пойдём от проводок.
2. Ищем в заданном периоде проводки с дебетом 26 счёта и пустым субконто Номенклатура. Группируем их по Регистратору.
3. Перебираем Регистраторы с проводками 26 счёта по дебету.
4. Если это Авансовый Отчёт, то выбираем из табличной части той же, что мы указали в алгоритме для пользователя, мы выбираем строки со счётом 26:
a. Начинаем перебор выбранных строк.
i. В текущей строке заполняем Субконто «Номенклатура» для 26 счёта, значением поля «Номенклатура» из этой же строки.
ii. Формируем отбор из полей строки табличной части «Прочие»: по счёту = 26, Подразделению, Статье затрат, Сумме.
iii. Находим у текущего Регистратора проводку с такими же полями по Дебету и Сумме.
iv. Меняем эту проводку. Добавляем субконто «Номенклатура» из строки «Прочие».
b. Если перебор строк закончен, то записываем Документ и записываем измененные Проводки.
5. Если это Корректировка Поступления – выбираем из табличной части «Услуги» строки со счётом 26.
a. Начинаем перебор выбранных строк.
i. В текущей строке заполняем Субконто «Номенклатура» для 26 счёта, значением поля «Номенклатура» из этой же строки.
ii. Формируем отбор из полей строки табличной части «Услуги»: по счёту = 26, Подразделению, Статье затрат, Сумме.
iii. Находим у текущего Регистратора проводку с такими же полями по Дебету и Сумме.
iv. Меняем эту проводку. Добавляем субконто «Номенклатура» из строки «Услуги».
b. Если перебор строк закончен, то записываем Документ и записываем измененные Проводки.
6. Если это «Отражение НДС к вычету» – выбираем из табличной части «Товары и Услуги» строки со счётом 26.
a. Начинаем перебор выбранных строк.
i. В текущей строке заполняем Субконто «Номенклатура» для 26 счёта, значением поля «Номенклатура» из этой же строки.
ii. Формируем отбор из полей строки табличной части «Товары и Услуги»: по счёту = 26, Подразделению, Статье затрат, Сумме.
iii. Находим у текущего Регистратора проводку с такими же полями по Дебету и Сумме.
iv. Меняем эту проводку. Добавляем субконто «Номенклатура» из строки «Товары и Услуги».
b. Если перебор строк закончен, то записываем Документ и записываем измененные Проводки.
7. Если это «Поступление Товаров и Услуг» – выбираем из табличной части «Услуги» строки со счётом 26.
a. Начинаем перебор выбранных строк.
i. В текущей строке заполняем Субконто «Номенклатура» для 26 счёта, значением поля «Номенклатура» из этой же строки.
ii. Формируем отбор из полей строки табличной части «Услуги»: по счёту = 26, Подразделению, Статье затрат, Сумме.
iii. Находим у текущего Регистратора проводку с такими же полями по Дебету и Сумме.
iv. Меняем эту проводку. Добавляем субконто «Номенклатура» из строки «Услуги».
b. Если перебор строк закончен, то записываем Документ и записываем измененные Проводки.
8. Если это «Отчет Производства за Смену» – выбираем из табличной части «Услуги» строки со счётом 26.
a. Начинаем перебор выбранных строк.
i. В текущей строке заполняем Субконто «Номенклатура» для 26 счёта, значением поля «Номенклатура» из этой же строки.
ii. Формируем отбор из полей строки табличной части «Услуги»: по счёту = 26, Подразделению, Статье затрат, Сумме.
iii. Находим у текущего Регистратора проводку с такими же полями по Дебету и Сумме.
iv. Меняем эту проводку. Добавляем субконто «Номенклатура» из строки «Услуги».
b. Если перебор строк закончен, то записываем Документ и записываем измененные Проводки.
9. Если это «Отчет Производства за Смену» – и мы нашли 26 счёт в реквизите СчетСписанияНДС, то пусть пользователь сам решает, как из этого выкручиваться. Пусть сам перезаполняет и сам проводит документ. Сообщить ему об этом.
10. Если это Требование-Накладная, то документ трогать не будем. Выберем только проводки с дебетом 26 счёта. Заполняем субконто «Номенклатура» из Дебета счёта 26 значением субконто Номенклатура из Кредита этой же проводки.
11. Если это операция, введённая вручную, то
a. Формируем отбор проводок в Набор Записей по Дебету счёта = 26.
b. Заполняем субконто Номенклатура дебета счёта 26 значением субконто Номенклатура из кредита счёта этой же проводки.
c. Записываем изменённые проводки.
Нарисуем этот алгоритм: