1С Режим Конфигуратор

       

Дополнение


Сотрудник

С.Сотрудники

Сумма



Число 10.2

+, И

Документ в отдельном журнале.

Приведем форму журнала в вид, нравящийся нам.

Отредактируем форму документа.


Поля АвторДокумента и Курс делаем недоступными. В поля Валюта, ДатаКурса добавляем формулу Валюта(). Вставляем кнопку [Заполнить] с формулой Заполнить(). Вставляем поле текст с формулой Итог("Сумма") – для итога по колонке.

В модуле формы документа пишем:

Перем СтВалюта;

Перем СтДатаКурса;

Перем СтКурс;

//==========================================================

Процедура ВводНового()

  АвторДокумента=СокрЛП(ИмяПользователя());

  ФирмаДокумента=Константа.ОснФирма;

  Валюта=Константа.ОснВалюта;

  ДатаКурса=ДатаДок;

  Курс=1;

  СтВалюта=Валюта;

  СтДатаКурса=ДатаКурса;

  СтКурс=Курс;

КонецПроцедуры

//==========================================================

Процедура ПриОткрытии()

  СтВалюта=Валюта;

  СтДатаКурса=ДатаКурса;

  СтКурс=Курс;

  ПриЗаписиПерепроводить(1);

КонецПроцедуры

//==========================================================

Процедура Валюта()

  КурсС=СтКурс;

  КратС=СтВалюта.Кратность;

  КурсН=Валюта.Курс.Получить(ДатаКурса);

  КратН=Валюта.Кратность;

  Коэфф=Окр((КурсС*КратН)/(КурсН*КратС),6,1);

// переводим в валюту документа

  Курс=КурсН;

  ВыбратьСтроки();

  Пока ПолучитьСтроку()=1 Цикл

    Сумма=Окр(Сумма*Коэфф,2,1);

  КонецЦикла;

  СтВалюта=Валюта;

  СтДатаКурса=ДатаКурса;

  СтКурс=Курс;

КонецПроцедуры

//==========================================================

Процедура Заполнить()

  КурсД=Курс;

  КратД=Валюта.Кратность;

  КурсУ=Константа.ОснВалюта.Курс.Получить(ДатаДок);

  КратУ=Константа.ОснВалюта.Кратность;

  Коэфф=Окр((КурсД*КратУ)/(КурсУ*КратД),6,1); // переводим в валюту документа

  УдалитьСтроки();

// Очищаем табличную часть документа




  БухИтоги=СоздатьОбъект("БухгалтерскиеИтоги");

  БухИтоги.ИспользоватьПланСчетов(ПланыСчетов.Наш);

  БухИтоги.ИспользоватьРазделительУчета(ФирмаДокумента);

  БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудник,,1);

  БухИтоги.ВыполнитьЗапрос(,ТекущаяДата(),"70");

  БухИтоги.ВыбратьСубконто(1);

  Пока БухИтоги.ПолучитьСубконто(1)=1 Цикл

    Сотр=БухИтоги.Субконто(1);

    ИОст=БухИтоги.СКК(1);

    НоваяСтрока();

// Заполняем новыми строками

    Сотрудник=Сотр;

    Сумма=Окр(ИОст*Коэфф,2,1);

  КонецЦикла;

КонецПроцедуры

Напишем модуль проведения документа. Он очень простой.

Процедура ОбработкаПроведения()

  КурсД=Курс;

  КратД=Валюта.Кратность;

  КурсУ=Константа.ОснВалюта.Курс.Получить(ДатаДок);

  КратУ=Константа.ОснВалюта.Кратность;

  Коэфф=Окр((КурсД*КратУ)/(КурсУ*КратД),6,1);

// переводим в валюту документа

  ВыбратьСтроки();

  Пока ПолучитьСтроку() = 1 Цикл

    Операция.НоваяПроводка();

    Операция.Дебет.Счет = СчетПоКоду("70",ПланыСчетов.Наш);

    Операция.Кредит.Счет = СчетПоКоду("50.1",ПланыСчетов.Наш);

    Операция.Дебет.Сотрудник = Сотрудник;

    Операция.Сумма = Окр(Сумма*Коэфф,2,1);

    Операция.Фирма = ФирмаДокумента;

    Операция.Комментарий = "Выплата зарплаты из кассы";

    Операция.НомерЖурнала = "1";

  КонецЦикла;

  Операция.Содержание = "Выплата зарплаты";

  Операция.СуммаОперации = Окр(Итог("Сумма")*Коэфф,2,1);

  Операция.Автор = АвторДокумента;

  Операция.Записать();

КонецПроцедуры

Как видите, все просто и коротко. Проверьте работоспособность документа в 1С:Предприятии. И попробуйте поредактировать операцию, создаваемую документом.

Глава 8

2.42 Отчет по остаткам на складе готовой продукции.

В принципе, конфигурация создана. Осталось только добавить пару отчетиков. Один отчет – Счет60 у нас уже есть. Создадим теперь отчет по остаткам на складе.



Вводим новый отчет "ОстаткиГотовойПродукции".

В модуль формы пишем:

Процедура ПриОткрытии()

  ДатО = РабочаяДата();

КонецПроцедуры

//==========================================================

Процедура Сформировать()

  Таб = СоздатьОбъект("Таблица");

  Таб.ИсходнаяТаблица("Таблица");

  Ит = СоздатьОбъект("БухгалтерскиеИтоги");

  Ит.ИспользоватьПланСчетов(ПланыСчетов.Наш);

  Ит.ИспользоватьРазделительУчета(Константа.ОснФирма);

  Скл="По всем складам";

  Суб=1;

  Если ВСклад.Выбран()=1 Тогда

    Ит.ИспользоватьСубконто(ВидыСубконто.МестоХранения,ВСклад,2);

    Скл="По складу: "+СокрЛП(Строка(ВСклад));

    Суб=2;

  КонецЕсли;

  Ит.ИспользоватьСубконто(ВидыСубконто.Изделие,,1);

  Ит.ВыполнитьЗапрос(,ДатО,"40");

  Таб.ВывестиСекцию("Шапка");

  ИтКол=0;

  ИтСумС=0;

  ИтСумР=0;

  ИтСумН=0;

  Ит.ВыбратьСубконто(Суб);

  Пока Ит.ПолучитьСубконто(Суб)=1 Цикл

    Изд=Ит.Субконто(Суб);

    Цен=Изд.Цена.Получить(ДатО);

    Кол=Ит.СКД(3);

    СумС=Ит.СКД(1);

    СумР=Окр(Кол*Цен,2,1);

    СумН=Окр(СумР*(1+Изд.НДС.Значение/100),2,1);

    ИтКол=ИтКол+Кол;

    ИтСумС=ИтСумС+СумС;

    ИтСумР=ИтСумР+СумР;

    ИтСумН=ИтСумН+СумН;

    Таб.ВывестиСекцию("Строка");

  КонецЦикла;

  Таб.ВывестиСекцию("Подвал");

  Таб.ТолькоПросмотр(1);

  Таб.ПараметрыСтраницы(2);

  Таб.Показать("Сформировать","");

КонецПроцедуры

Делаем шаблон печатной формы



2.43 Отчет по покупателям.

Создадим теперь отчет по 62-ому счету - "Покупатели". В поле ДатН пишем формулу Дат("Н"), а в поле ДатК – Дат("К"). В модуль формы:

Процедура Сформировать()

  Запрос=СоздатьОбъект("Запрос");



// Создаем запрос по базе данных

  ТекстЗапроса="

  |Период с ДатН по ДатК;

  |Пок = Операция.Субконто.Контрагент;

  |Сум = Операция.Сумма;

  |Сч = Операция.Счет;

  |Функция СумСНК = СНК(Сум) когда (Сч=СчетПоКоду(""62""));

  |Функция СумСНД = СНД(Сум) когда (Сч=СчетПоКоду(""62""));

  |Функция СумКО = КО(Сум) когда (Сч=СчетПоКоду(""62""));

// Нас интересуют кредитовые

  |Функция СумДО = ДО(Сум) когда (Сч=СчетПоКоду(""62""));

// и дебетовые обороты

  |Функция СумСКК = СКК(Сум) когда (Сч=СчетПоКоду(""62""));

  |Функция СумСКД = СКД(Сум) когда (Сч=СчетПоКоду(""62""));

  |Условие (Сч=СчетПоКоду(""62""));

// Другие чтоб не лезли... Если не поставить - в отчет

// Поставщики попадут с нулями

  |Группировка Пок упорядочить по Пок.Наименование без Групп;";

  Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда

    Сообщить("Запрос не выполнен");

    Возврат;

  КонецЕсли;

  ИтНачК=0;

  ИтНачД=0;

  ИтИзмК=0;

  ИтИзмД=0;

  ИтКонК=0;

  ИтКонД=0;

// Это переменные для итога

  Таб=СоздатьОбъект("Таблица");

  Таб.ИсходнаяТаблица("");

  Таб.ВывестиСекцию("Шапка");

  Пока Запрос.Группировка(1)=1 Цикл

    Клн=Запрос.Пок;

    НачК=Запрос.СумСНК;

    НачД=Запрос.СумСНД;

    ИзмК=Запрос.СумКО;

    ИзмД=Запрос.СумДО;

    КонК=Запрос.СумСКК;

    КонД=Запрос.СумСКД;

// Получаем разные сальдо и обороты...

    ИтНачК=ИтНачК+НачК;

    ИтНачД=ИтНачД+НачД;

    ИтИзмК=ИтИзмК+ИзмК;

    ИтКонД=ИтКонД+КонД;

    ИтКонК=ИтКонК+КонК;

    ИтИзмД=ИтИзмД+ИзмД;

// Складываем для окончательного итога

    Таб.ВывестиСекцию("Строка");



  КонецЦикла;

  Таб.ВывестиСекцию("Подвал");

  Таб.ТолькоПросмотр(1);

  Таб.ПараметрыСтраницы(1,100,1);

  Таб.Показать("");

КонецПроцедуры

//==========================================================

Процедура Дат(Тип)

// Процедура с переменной

  Если  Тип="Н" Тогда

    Если ДатН > ДатК Тогда

      ДатН=ДатК;

    КонецЕсли;

  ИначеЕсли Тип="К" Тогда

    Если ДатК < ДатН Тогда

      ДатК=ДатН;

    КонецЕсли;

  КонецЕсли;

КонецПроцедуры

//==========================================================

ДатК=ТекущаяДата();

ДатН=НачМесяца(ДатК);

В этом отчете мы воспользовались не привычным нам уже объектом БухгалтерскиеИтоги, а объектом Запрос. С ним мы активно работали в первой методичке.

Создаем шаблон печатной формы

Проверяем работу отчета.

2.44 Новые счета в плане счетов.

Ну, вроде и все, фирма "Magic Inc" автоматизирована. И тут некий клиент узнает, что Бегемот умеет еще и починять примусы. Этот клиент приносит пару примусов и просит их отремонтировать. Что должен сделать бухгалтер. Ну, во-первых завести счет 002 – "Товарно-материальные ценности, принятые на ответственное хранение", счет 23 – "Вспомогательные производства" и счет 71 – "Расчеты с подотчетными лицами". Заведем их в нашу конфигурацию. Эти счета субсчетов иметь не будут.

  • Входим в 1С:Предприятие!!!


  • Открываем план счетов;


  • Добавляем новый счет 23, активный, субконто ВидЗатрат;


  • Добавляем новый счет 71, активно-пассивный, субконто Сотрудник;


  • Добавляем счет 002, активный, забалансовый;


  • Если мы приглядимся к списку счетов, то увидим – счета введенные в Конфигураторе имеют в пиктограмме красную галочку, а введенные в режиме Предприятия – нет.

    А тем временем Бегемот, посланный в магазин за запчастями, приносит на обрывке бумаги:
    Необходимо провести это все через бухгалтерию.

    Операция №1



    Д 002 – 200 руб. Приняты в ремонт 2 примуса.

    Операция №2

    Д 71 К 50 – 100 руб. Выдано Бегемоту под отчет.

    Операция №3

    Д 10 К 71 – 71.67 руб. Приобретены Бегемотом запчасти

    Д 19.3 К 71 – 14.33 руб. НДС за приобретенные запчасти.

    Д 50 К 71 – 14.00 руб. Возвращен Бегемотом остаток из подотчетных сумм.

    Операция №4

    Д 23 К 10 – 71.67 руб. Запчасти переданы в производство

    Операция №5

    Д 23 К 70 – 3 руб. Бегемоту за работу

    Операция №6

    Д 90 К 23 – 74.67 руб. Реализованы услуги по себестоимости

    Д 90 К 99 - 25.33 руб. Прибыль

    Д 90 К 68 – 20 руб. НДС за оказанные услуги

    Д 62 К 90 – 120 руб. На заказчика зачислен долг

    Операция №7

    Д 50 К 62 – 120 руб. Получены деньги

    К 002 – 200 руб. Возвращены примусы

    Операция №8

    Д 68.1 К 19.3 – 14.37 руб. Зачтен НДС за запчасти.

    Операция №9

    Д 70 К 50 – 3 руб. Выплата Бегемоту зарплаты за починку примуса.

    Все вроде замечательно. Но бухгалтер Коровьев отбывает в долгую творческую командировку, руководить хором песни и пляски народов крайнего Юго-Запада. А примусов на починку обещали еще поднести. Бухгалтер может создать кучу корректных проводок и установить в свойствах флаг всегда проверять по ним новые проводки операций и сделать ряд типовых операций, чтобы легче и проще было вводить однотипные операции, но это совсем другая история...

    2.45 Совсем другая история.

    Эта глава напрямую не относится к программированию, но для полноты картины, думается, будет не вредной.

    Корректные проводки – это особый системный списочек проводок, которые главбух фирмы считает правильными (корректными). И ежели мы в настройках параметров системы (меню "Сервис", команда "Параметры"), на закладке "Операция" поставим галочку на настройке "Проверять проводки при записи операции", то при записи операции вводимой вручную будет выполняться контроль проводок с использованием списка корректных проводок (это я содрал из хелпа в 1С).

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



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

  • Через меню "Действие" командой "Новая проводка" введем строку для создания проводки;


  • Сразу укажем фирму – "Magic Inc";


  • Журнал – 1 (кредит 50 счета);


  • Укажем счет дебета – 70, Субконто 1 по этому счету – сотрудники фирмы, здесь мы можем сразу указать Бегемота, а можем и не указывать. Если мы его укажем, то мы можем установить флаг активизации для этого поля – Пропускать, и тогда при вводе опреации на основании типовой, нам не будет предлагаться выбрать сотрудника;


  • Укажем счет кредита – 50.1;


  • Перейдем к сумме проводки. Здесь мы воспользуемся формулой. Установив курсор на поле Сумма в строке проводки перейдем к полю Формула (при этом поле суммы проводки будет обведено синей рамкой). В поле формула пишем: СуммаОперации. Таким образом при вводе суммы операции сумма проводки будет рассчитываться автоматически.


  • Если у нас много проводок, мы можем распределить между ними сумму операции по каким либо правилам. Таким же способом можно рассчитывать поле Валютной суммы.

    Ну и заполним поле комментария к проводке.

    Осталось сохранить внесенные настройки – Меню "Действия" команда "Сохранить".

    Теперь можно проверить, как это все будет работать. Установив курсор в списке типовых операций на нашей операции и через меню "Действия" командой "Ввести операцию" создадим операцию на основе типовой. При заполнении поля суммы операции поле суммы проводки заполнилось автоматически, что нам и требовал

    Зарплата

    Введение

    Компонента Расчет в системе 1С:Предприятие предназначена для реализации сложных периодических расчетов. Обычно она используется для расчета зарплаты.


    Содержание раздела