четверг, 18 сентября 2008 г.

среда, 17 сентября 2008 г.

1C7.7. Регламентированная отчетность

Новую регл. отчетность можно взять с сайта ИТС для зарегистрированных партнеров или с диска ИТС

1)http://partweb.1c.ru/PartnerSupport/GeneralPartnerSupportInfo.aspx

2) Ввести login и password партнера

3)файлы техподдержки вновь ввести login и password партнера

4) Выбрать, например "Регламентированные отчеты за 2 квартал 2008г"

5)General.rp08q2.005 - полный дистрибут

General.rp08q2.GRP - папка

6) Отчеты - регламентированные - Загнрузить - Servis.exe

Из текстового файла, который идет вместе с отчетностью

  Фирма "1С", Москва. Август 2008 года

  Формы отчетности за II квартал 2008 года
  (новый формат распространения)
  1С:Бухгалтерия 7.7
  Обновление 08q2005 от 18.08.2008 г.
  (только изменения)

  ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ ТЕКСТ ДО КОНЦА ПРЕЖДЕ,
  ЧЕМ ПРОДОЛЖАТЬ РАБОТУ!

  Этот файл содержит описание процесса подключения форм
отчетности для:
  - 1С:Бухгалтерия 7.7 Базовая версия;
  - 1С:Бухгалтерия 7.7 Стандартная версия;
  - 1С:Бухгалтерия ПРОФ версия 7.7
  - 1С:Предприятие. Бухгалтерский учет. Типовая
  конфигурация 7.7 сетевая версия
  - 1С:Предприятие 7.7 для SQL. Бухгалтерский учет. Типовая
  конфигурация
  - 1С:Предприятие 7.7 ПРОФ. Комплексная поставка
  - 1С:Предприятие 7.7 (сетевая версия). Комплексная поставка
  - 1С:Предприятие 7.7 для SQL. Комплексная поставка
  - 1С:Предприятие 7.7 + MS Windows 2000 + MS SQL Server 7.0.
  (5 пользователей). Комплексная поставка
  - 1С:Предприятие 7.7 + MS Windows 2000 + MS SQL Server 7.0.
  (5 пользователей). Бухгалтерский учет. Типовая
  конфигурация
  - 1С:Предприятие 7.7 + MS NT Server 4.0 + MS SQL Server 7.0.
  (5 пользователей). Комплексная конфигурация "Бухгалтерия +
  Торговля + Склад + Зарплата + Кадры"
  - 1С:Предприятие 7.7 + MS NT Server 4.0 + MS SQL Server 7.0.
  (5 пользователей). Бухгалтерский учет. Типовая
  конфигурация
  - 1С:Предприятие 7.7 + MS SQL Server 7.0 (5 пользователей).
  Комплексная поставка
  - 1С:Предприятие 7.7 + MS SQL Server 7.0. Бухгалтерский
  учет. Типовая конфигурация. (5 пользователей) СD
  - 1C:Налогоплательщик 7.7 CD (начиная с обновления 18)
  - 1C:Налогоплательщик 7.7 Сетевая версия (начиная с
  обновления 18)
  - 1С:Предприятие 7.7. Конфигурация "Производство + Услуги +
  Бухгалтерия", ред. 2.8

  Указанные программы должны использовать конфигурации:
  - Бухгалтерский учет. Типовая конфигурация, ред. 4.2 (релиз
  7.70.434 и старше)
  - Бухгалтерский учет. Типовая конфигурация, ред. 4.4
  - Комплексная конфигурация "Бухгалтерия + Торговля + Склад +
  Зарплата + Кадры" ред. 4.0 и старше (релиз 7.70.432 и
  старше)
  - Конфигурация "Производство + Услуги + Бухгалтерия",
  ред. 2.5 и старше (релиз 7.70.262 и старше)
  - Конфигурация "1С:Налогоплательщик" редакция 2 (релиз
  7.70.203 и старше)

Внимание!
Для работы с налоговыми декларациями образца 2005-2008 годов
необходимо использовать релиз 7.70.025 (или старше)
платформы "1С:Предприятие 7.7"! В случае использования
предыдущих релизов платформы при открытии некоторых разделов
указанных деклараций будет выдаваться сообщение "Неверный
формат файла", и раздел открываться не будет.

Внимание!
Начиная с комплекта отчетности за 3 квартал 2007 года, в формы
налоговых деклараций образца 2005-2008 годов включена поддержка
единого модуля печати машиночитаемых форм разработки ФНС РФ.

Для применения данной технологии необходимо установить на
компьютере единый модуль печати машиночитаемых бланков разработки
ФНС РФ (модуль необходимо скачать отсюда
http://www.gnivc.ru/lib/modyl.rar) и шаблоны машиночитамых форм
(опубликованы здесь http://www.gnivc.ru/lib/shabl.rar). Описание
порядка установки библиотеки приведено в документе "Инструкция по
составлению отчетности" (документ расположен в верхней части
списка отчетов в окне "Регламентированная отчетность").

Подробная информация о порядке использования единого модуля
печати машиночитаемых форм разработки ФНС РФ размещена на сайте
для бухгалтеров БУХ.1С (www.buh.ru).

Внимание!
Для использования налоговых деклараций образца 2004-2007 года
необходимо, чтобы в операционной системе был установлен шрифт
EanGnivc.
Порядок установки шрифта описан ниже в разделе "Установка шрифта
EanGnivc".


  Поставка

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

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


  Подключение форм отчетности

  Подключение форм отчетности выполняется в режиме
"Регламентированные отчеты". Для вызова этого режима выполните
следующее:
  - выберите пункт "Регламентированные отчеты" в меню "Отчеты"
  главного меню программы
  или
  - выберите пункт "Отчеты" в меню "Операции" главного меню
  программы;
  - в списке выберите строку "Регламентированные отчеты";
  - нажмите кнопку "OK".

  В диалоге режима "Регламентированные отчеты" нажмите кнопку
"Загрузить". Будет вызван стандартный диалог открытия файла, в
котором следует выбрать и открыть любой файл с расширением EXE
(например, файл Service.exe).
  После этого в диалоге "Регламентированные отчеты" будет
показан список форм отчетности, входящих в поставку. Галочками
отмечены те формы, которые необходимо загрузить. Устанавливая или
снимая галочки у нужных форм, вы можете выбрать требуемые формы
для загрузки.
  После выбора форм, для выполнения загрузки следует нажать
кнопку "ОК".
  После этого выполняется загрузка новых форм отчетности.
Процесс загрузки занимает некоторое время. При загрузке комплекта
отчетности с дискет, программа будет просить вставить в дисковод
очередную дискету.
  После загрузки будет опять открыт диалог режима работы
с регламентированной отчетностью.
  В списке отчетов всегда есть инструкция по работе с формами
отчетности - она расположена в списке отчетов самой первой.
Откройте ее и выполните изложенные в ней указания и рекомендации.


  Установка шрифта EanGnivc

  Налоговые декларации, введенные для представления отчетности
с 2004 года, на каждом листе содержат уникальный штрихкод листа.
В формах регламентированной отчетности, распространяемых фирмой
"1С", для отображения штрихкода используется специальный шрифт
EanGnivc, который должен быть установлен в операционной системе.
  Если этот шрифт не установлен, штрихкоды в налоговых
декларациях отображаться не будут. Однако, если вы уже выполняли
установки этого шрифта, повторно выполнять такую установку уже не
надо, и нижележащий текст можно пропустить.

  Файл шрифта EANG000.ttf после установки комплекта
регламентированной отчетности размещается в подкаталоге
ExtForms\RP08Q2.GRP каталога информационной базы.
  Для установки шрифта выполните следующие действия:
  - откройте Панель управления (Control Panel) операционной
  системы, для этого нажмите кнопку "Пуск", выберите команды
  "Настройка" (Settings) и "Панель управления" (Control
  Panel);
  - в Панели управления дважды щелкните значок "Шрифты"
  (Fonts);
  - в меню "Файл" (FilE) выберите команду "Установить шрифт"
  (Install New Font);
  - в поле со списком "Диски" (Drives) выберите нужный диск;
  - в поле "Папки" (Folders) откройте каталог, в котором
  находится файл EANG000.ttf
  - в списке "Список шрифтов" (List of fonts) выберите строку
  "EanGnivc (True Type)" и нажмите кнопку OK.


  Дополнительные рекомендации

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


  Подключение форм отчетности вручную

  Если по каким-либо причинам загрузка нового комплекта форм
отчетности в режиме "Регламентированные отчеты" не была
выполнена, формы отчетности можно подключить вручную. Для этого:
  - перейдите в каталог ExtForms, расположенный в каталоге с
  вашей информационной базой;
  - в каталоге ExtForms создайте каталог с именем RP08Q2.GRP;
  - в каталог RP08Q2.GRP скопируйте все файлы с расширением
  *.EXE и файл Ver.id, расположенные на дискетах комплекта
  поставки регламентированной отчетности;
  - последовательно запустите все файлы *.EXE на
  выполнение. При запуске каждого файла он начнет распаковку
  формы отчетности и запись ее на диск;

Если в каталоге RP08Q2.GRP уже есть какие-либо файлы
отчетов, программа распаковки выдаст на экран запрос такого вида:

  RpList.txt [YNA]?

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

  Y (Yes, Да) - если вы ХОТИТЕ ЗАМЕНИТЬ файл отчета, который
  уже есть у вас на диске, новым файлом,
  извлеченным из архива;
  N (No, Нет) - если вы НЕ хотите заменять файл отчета,
  который находится у вас на диске, новым
  файлом, извлеченным из архива.

  Если вы ответили на запрос "Y" или "N", программа распаковки
в дальнейшем также будет требовать ответа на запрос всякий раз,
когда имя извлекаемого из архива файла совпадает с тем, который
уже существует на диске.

  A (Always, Всегда) - если вы хотите заменить этот и все
  оставшиеся файлы отчетов, находящиеся у
  вас на диске, новыми файлами,
  извлекаемыми из архива.

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

  - после окончания распаковки удалите из каталога RP08Q2.GRP
  все файлы с расширением *.EXE;
  - перейдите в программу, в которой вы используете
  регламентированную отчетность (например, "1С:Бухгалтерия
  7.7") и вызовите режим "Регламентированные отчеты" (если
  режим "Регламентированные отчеты" уже вызван, закройте его
  и вызовите вновь). В списке "Группа отчетов" должна
  появиться новая строка "Отчетность за 2 квартал 2008
  года". Перейдите в эту группу отчетов и нажмите кнопку
  "Восстановить исходный список" (квадратная кнопка
  справа).


General.rp08q2.UPD - обновление

четверг, 11 сентября 2008 г.

1С 8.1. OLE COM Запрос Уникальный идентификатор



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

1) В бухгалтерии в модуле внешнего соединения создаем процедуру

#Если ВнешнееСоединение Тогда

//Возвращает строковое представление уникального идентификатора
Функция СРШ_ВернутьСтроковоеПредставлениеУникальногоИдентификатора(мУникальныйИдентификатор) Экспорт
 Возврат(Строка(мУникальныйИдентификатор));
КонецФункции

#КонецЕсли

2) Обработка, модуль формы

перем Бух;перем СоответствиеКодов; //Код - КодБух (справочник СтатьиДвиженияДС), Значение КодКазн (справочник СРШ_СтатьиБюджета) 
перем ЛогСозданныхДокументов;

//Подключаем 1С-бухгалтерию по OLE в серверном варианте
Функция ПодключитьИБ()
 
 //НовыйПодключенныйОбъект = Новый COMОбъект("V8.Application"); 
 НовыйПодключенныйОбъект = Новый COMОбъект("V81.COMConnector"); 
 Бух = НовыйПодключенныйОбъект.Connect("Srvr=" + СокрЛП(Сервер) + ";Ref=" + СокрЛП(ИмяИБ) + ";Usr=" + """"+ СокрЛП(Пользователь) + """"+";Pwd=" + """"+СокрЛП(Пароль) + """"+";");
 
 Если Бух = 0 Тогда
  Сообщить("Ошибка открытия ИБ !", "!");
  Возврат Ложь;
 Иначе
  Сообщить("Подключена ИБ", СтатусСообщения.Информация); 
 КонецЕсли;  
 
 Возврат Истина;
 
КонецФункции

Процедура ПутьКФайлуСоответствияНачалоВыбора(Элемент, СтандартнаяОбработка)
 
 ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
 ДиалогФыбораФайла.Фильтр = "Файл Excel(*.xls)|*.xls";
 ДиалогФыбораФайла.Заголовок = "Выбор файла импорта";
 ДиалогФыбораФайла.ПроверятьСуществованиеФайла = Истина;
 
 Если ДиалогФыбораФайла.Выбрать() Тогда
  Элемент.Значение = ДиалогФыбораФайла.ПолноеИмяФайла;
 КонецЕсли;
 
КонецПроцедуры

Процедура ПриОткрытии()
 
 Если НЕ ЗначениеЗаполнено(ДатаКон) Тогда
  ДатаКон = КонецДня(РабочаяДата);
 КонецЕсли;
 
 Если НЕ ЗначениеЗаполнено(ДатаНач) Тогда
  ДатаНач = НачалоДня(НачалоМесяца(ДобавитьМесяц(ДатаКон,-9))); 
 КонецЕсли;
 
 Если НЕ ЗначениеЗаполнено(ДатаДок) Тогда
  ДатаДок = КонецДня(РабочаяДата);
 КонецЕсли;
 
 Если НЕ ЗначениеЗаполнено(Филиал) Тогда
  Филиал = Справочники.Организации.НайтиПоКоду("000000006");
 КонецЕсли;
 
КонецПроцедуры

Функция ПроверитьЗаполненеОбязательныхРеквизитов()
 
 Для каждого ЭлементФормы Из ЭтаФорма.ЭлементыФормы Цикл
  Если ТипЗнч(ЭлементФормы) = Тип("ПолеВвода") Тогда
  Если ЭлементФормы.АвтоОтметкаНезаполненного Тогда
  Если Не ЗначениеЗаполнено(ЭлементФормы.Значение) Тогда
  Возврат Ложь;
  КонецЕсли;
  КонецЕсли;
  КонецЕсли;
 КонецЦикла;
 
 Возврат Истина;
 
КонецФункции

Процедура КоманднаяПанель1Сформировать(Кнопка)
 
 Если Не ПроверитьЗаполненеОбязательныхРеквизитов()Тогда
  Сообщить("Для выполнения обработки необходимо заполнить все обязательные поля.", СтатусСообщения.Важное);
  Возврат;
 КонецЕсли;
 
 Если Не ПодключитьИБ() Тогда
  Сообщить("Обработка не может быть выполнена, так как ИБ не подключена!", СтатусСообщения.Важное); 
  Возврат;
 КонецЕсли;
 
 ЗагрузитьXLSФайл();
 
 Сформировать_СРШ_КарточкаБюджетногоСоответствия();//Формируем документ
 ВывестиЛогСозданныхДокументов();
КонецПроцедуры

Процедура ЗагрузитьXLSФайл()
 
 СоответствиеКодов = Новый Соответствие;
 
 Попытка
  Excel = Новый COMОбъект("Excel.Application");
  Excel.Visible = Ложь;
  Excel.DisplayAlerts = Ложь;
  WorkBooks = Excel.WorkBooks.Open(ПутьКФайлуСоответствия, 0, True);
  Worksheet = WorkBooks.Worksheets(2);
 Исключение
  Сообщить("Ошибка открытия файла: "+ОписаниеОшибки(), СтатусСообщения.Важное);
  Возврат ;
 КонецПопытки;
 
 ОК = Истина;
 // Последняя строка данных
 Cells = Worksheet.Cells.SpecialCells(11);
 мНомерПоследнейСтроки = Cells.Row;
 мТекСтр=8;
 Пока мТекСтр<= мНомерПоследнейСтроки Цикл
  Состояние("Обрабатывается строка xls-файла №" + Строка(мТекСтр));
  Попытка
  мКодБух = СокрЛП(Worksheet.Cells(мТекСтр,2).Text);
  мКодКазн = СокрЛП(Worksheet.Cells(мТекСтр,10).Text);
  Исключение
  Сообщить("Ошибка при чтении строки "+ Строка(мТекСтр)+" файла " + ПутьКФайлуСоответствия, СтатусСообщения.ОченьВажное);
  мТекСтр=мТекСтр+1;
  Продолжить;
  КонецПопытки;
  СоответствиеКодов.Вставить(мКодБух,мКодКазн);
  мТекСтр=мТекСтр+1;
 КонецЦикла;
 
 WorkBooks.Close();
 
 Возврат;
 
КонецПроцедуры

//Формирование документов СРШ_КарточкаБюджетногоСоответствия
Процедура Сформировать_СРШ_КарточкаБюджетногоСоответствия()
 
 ЛогСозданныхДокументов = Новый СписокЗначений;
 
 СписокСчетовДт = Бух.NewObject("СписокЗначений");
 СписокСчетовКт = Бух.NewObject("СписокЗначений");
 СписокОрганизаций = Бух.NewObject("СписокЗначений");
 МассивСубконтоДт = Бух.NewObject("Массив");
 МассивСубконтоКт = Бух.NewObject("Массив");
 
 
 
 ПланСчетовХозрасчетный = Бух.ПланыСчетов.Хозрасчетный;
 ВидыСубконтоХозрасчетные = Бух.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные;
 СправочникОрганизации = Бух.Справочники.Организации;
 
 СписокСчетовДт.Добавить(ПланСчетовХозрасчетный.НайтиПоКоду("60"));
 СписокСчетовКт.Добавить(ПланСчетовХозрасчетный.НайтиПоКоду("50"));
 СписокСчетовКт.Добавить(ПланСчетовХозрасчетный.НайтиПоКоду("51"));
 СписокСчетовКт.Добавить(ПланСчетовХозрасчетный.НайтиПоКоду("52"));
 
 СписокОрганизаций.Добавить(СправочникОрганизации.НайтиПоКоду("ЦО "));
 СписокОрганизаций.Добавить(СправочникОрганизации.НайтиПоКоду("МФ "));
 
 
 МассивСубконтоДт.Добавить(ВидыСубконтоХозрасчетные.Контрагенты);
 МассивСубконтоДт.Добавить(ВидыСубконтоХозрасчетные.Договоры);
 
 МассивСубконтоКт.Добавить(ВидыСубконтоХозрасчетные.СтатьиДвиженияДенежныхСредств);
 
 Запрос = Бух.NewObject("Запрос");
 Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач));
 Запрос.УстановитьПараметр("ДатаКон", Новый Граница(КонецДня(ДатаКон), ВидГраницы.Включая));
 Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
 Запрос.УстановитьПараметр("СписокСчетовДт",СписокСчетовДт);
 Запрос.УстановитьПараметр("СписокСчетовКт",СписокСчетовКт);
 Запрос.УстановитьПараметр("МассивСубконтоДт",МассивСубконтоДт);
 Запрос.УстановитьПараметр("МассивСубконтоКт",МассивСубконтоКт);
 Запрос.УстановитьПараметр("СписокОрганизаций",СписокОрганизаций);
 
 
 ТекстЗапроса = "ВЫБРАТЬ
 | ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
 | ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Договор,
 | ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК СтатьяДвиженияДС,
 | ХозрасчетныйОборотыДтКт.СуммаОборот,
 | ХозрасчетныйОборотыДтКт.ВалютаДт.Код КАК КодВалюты
 |ИЗ
 | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, , СчетДт В ИЕРАРХИИ (&СписокСчетовДт), &МассивСубконтоДт, СчетКт В ИЕРАРХИИ (&СписокСчетовКт), &МассивСубконтоКт, Организация В (&СписокОрганизаций)) КАК ХозрасчетныйОборотыДтКт";
 
 
 Запрос.Текст = ТекстЗапроса;
 Выборка = Запрос.Выполнить().Выбрать();
 
 Пока Выборка.Следующий() Цикл
  
  КодВалБух = Выборка.КодВалюты;
  Если КодВалБух = NULL Тогда
  КодВалБух = "643";
  КонецЕсли;
  
  ВалютаСсылка = Справочники.Валюты.НайтиПоКоду(КодВалБух);
  
  Если НЕ ЗначениеЗаполнено(ВалютаСсылка) Тогда
  Сообщить("В Казначействе не найден элемент справочника Валюты с кодом " + Выборка.КодВалюты);
  Продолжить;
  КонецЕсли;
  
  СтрокаGUIDКонтрагенты = Бух.СРШ_ВернутьСтроковоеПредставлениеУникальногоИдентификатора(Выборка.Контрагент.УникальныйИдентификатор());
  НовыйGUIDКонтрагент = Новый УникальныйИдентификатор(СтрокаGUIDКонтрагенты);
  
  
  КонтрагентСсылка = Справочники.СРШ_Контрагенты.ПолучитьСсылку(НовыйGUIDКонтрагент);
  Если (КонтрагентСсылка = Справочники.СРШ_Контрагенты.ПустаяСсылка()) Или (КонтрагентСсылка.Наименование ="") Тогда
  Сообщить("Для контрагента из бухгалтерии 8.1: " + Выборка.Контрагент.Наименование + " не найдено соответствие в справочнике СРШ_Контрагенты в Казначействе", СтатусСообщения.Важное); 
  Продолжить;
  Иначе 
  //Сообщить ("Опознали контрагента" + Строка(Выборка.Контрагент.Наименование), СтатусСообщения.Информация);
  КонецЕсли;
  
  
  СтрокаGUIDДоговоры = Бух.СРШ_ВернутьСтроковоеПредставлениеУникальногоИдентификатора(Выборка.Договор.УникальныйИдентификатор());
  НовыйGUIDДоговор = Новый УникальныйИдентификатор(СтрокаGUIDДоговоры);
  
  
  ДоговорСсылка = Справочники.СРШ_Договоры.ПолучитьСсылку(НовыйGUIDДоговор);
  
  
  Если ((ДоговорСсылка = Справочники.СРШ_Договоры.ПустаяСсылка()) Или (ДоговорСсылка.Наименование ="") )Тогда
  Сообщить("Для договора из бухгалтерии 8.1: " + Выборка.Договор.Наименование + " не найдено соответствие в справочнике СРШ_Договоры в Казначействе", СтатусСообщения.Важное); 
  Продолжить;
  Иначе
  //Сообщить("Опознан договор " + Выборка.Договор.Наименование);
  КонецЕсли;
  
  //Проверяем статью движения ДС
  КодСБКазн = СоответствиеКодов[СокрЛП(Выборка.СтатьяДвиженияДС.Код)];
  Если КодСБКазн= Неопределено Тогда
  Сообщить("Для статьи бюджета с кодом "+ СокрЛП(Выборка.СтатьяДвиженияДС.Код) + " из бухгалтерии не найден соответствующий код в файле " + ПутьКФайлуСоответствия, СтатусСообщения.Важное);  
  Продолжить;
  КонецЕсли;
  
  СтатьяБюджетаСсылка = Справочники.СРШ_СтатьиБюджета.НайтиПоКоду(КодСБКазн);
  
  Если Не ЗначениеЗаполнено(СтатьяБюджетаСсылка) Тогда
  Сообщить("Для статьи бюджета с кодом "+ Выборка.СтатьяДвиженияДС.Код + " из бухгалтерии не найден элемент справочника СРШ_СтатьиБюджета с кодом " + КодСБКазн, СтатусСообщения.Важное);  
  Продолжить;
  Иначе
  //Сообщить("Опознана статья бюджета " + Строка(СтатьяБюджетаСсылка));
  КонецЕсли;
  
  //Создаем документ
  СоздатьДокумент_СРШ_КарточкаБюджетногоСоответствия(ВалютаСсылка, КонтрагентСсылка, ДоговорСсылка,СтатьяБюджетаСсылка);
  
 КонецЦикла;
 
КонецПроцедуры

//Непосредственно создает документ
Процедура СоздатьДокумент_СРШ_КарточкаБюджетногоСоответствия(ВалютаСсылка, КонтрагентСсылка, ДоговорСсылка,СтатьяБюджетаСсылка)
 
 Док = Документы.СРШ_КарточкаБюджетногоСоответствия.СоздатьДокумент();
 
 Док.Дата = ДатаДок;
 Док.Филиал = Филиал;
 Док.СтатьяБюджета = СтатьяБюджетаСсылка;
 Док.Контрагент = КонтрагентСсылка;
 Док.Договор = ДоговорСсылка;
 Док.ВалютаДокумента = ВалютаСсылка;
 Док.Статус = Перечисления.СРШ_СтатусыДокумента.Оформляется;
 Док.БюджетныйГод = Справочники.Периоды.НайтиПоНаименованию(Строка(Формат(Год(ДатаДок),"ЧГ=0")), Ложь);//ищем по левой части
 
 Попытка
  Док.Записать();
 Исключение
 КонецПопытки;
 
 ЛогСозданныхДокументов.Добавить("Создан документ:" + Строка(Док) + " Контрагент:" + Строка(КонтрагентСсылка) + 
 " Договор: " + Строка(ДоговорСсылка) + " Статья бюджета:" + Строка(СтатьяБюджетаСсылка));
 
КонецПроцедуры

Процедура ВывестиЛогСозданныхДокументов()
 
 Для каждого СтрокаЛога Из ЛогСозданныхДокументов Цикл
 Сообщить(Строка(СтрокаЛога), СтатусСообщения.Информация); 
 КонецЦикла;
  
КонецПроцедуры

Процедура ПутьКФайлуСоответствияОткрытие(Элемент, СтандартнаяОбработка)
 
 СтандартнаяОбработка = Ложь;
 ЗапуститьПриложение(Элемент.Значение);
 
КонецПроцедуры

Процедура Кнопка1Нажатие(Элемент)
 ЗагрузитьXLSФайл()
КонецПроцедуры

Процедура КнопкаНастройкаПериодаНажатие(Элемент)
 
 
 СтарДатаНач = ДатаНач;
 СтарДатаКон = ДатаКон;
 НП = Новый НастройкаПериода;
 НП.ВариантНастройки = ВариантНастройкиПериода.Период;
 НП.ВариантНачала = ВариантГраницыИнтервала.Год;
 НП.ВариантОкончания = ВариантГраницыИнтервала.Год;
 НП.РедактироватьКакИнтервал = Ложь;
 НП.ДатаНачала = ДатаНач;
 НП.ДатаОкончания = ДатаКон;
 
 Если НП.Редактировать()Тогда
  ДатаНач = НП.ПолучитьДатуНачала();
  ДатаКон = НП.ПолучитьДатуОкончания();
 КонецЕсли;
 
 мГод = Год(ДатаНач);
 мНачалоГода = Дата(мГод,1,1);
 мКонецГода = Дата(мГод,12,31);
 
КонецПроцедуры








четверг, 4 сентября 2008 г.

1С7.7.Бухгалтерский запрос. Использование методов.

В бухгалтерском запросе в методах типа СКК(), СКД() в общем случае следует указывать вид итогов. Например СКД(3) - сальдо конечное дебетовое по количеству

1С7.7. Работа с забалансовым счетом.Бухгалтерский запрос

Важно. Использовать метод Ит.Опции(1), чтобы расчитывались итоги по забалансовому счету

//******************************************************************************
Процедура СнятьЗаказы(МестоХранения,ДатаДок)//МАК
 
 Если ПустоеЗначение(СниматьАвтоматически) = 1 Тогда
  Возврат; 
 КонецЕсли;  
 
 Если ПустоеЗначение(МестоХранения) = 1 Тогда
  Сообщить("Автоматическое снятие заказов не выполнено, так в текущем документе как не заполнено место хранения", "!");
  Возврат;
 КонецЕсли;
 
 Если ПустоеЗначение(КолДней) = 1 Тогда
  Сообщить("Автоматическое снятие заказов не выполнено, так как не заполнено количество дней", "!");
  Возврат;
 КонецЕсли;
 
 
 СнятиеЗаказа = СоздатьОбъект("Документ.фармСнятиеЗаказа");
 //смотрим остатки на дату документа
 //Можно брать именно дату документа, а не позицию, так как анализируются заказы, отстоящие от даты не менее, чем на 1 день
 
 ВидСубконто_МестаХранения = ВидыСубконто.МестаХранения; 
 ВидСубконто_фармЗаказы = ВидыСубконто.фармЗаказы; 
 ВидСубконто_фармГруппыНоменклатуры = ВидыСубконто.фармГруппыНоменклатуры;
 
 
 Ит = СоздатьОбъект("БухгалтерскиеИтоги");
 Ит.Опции(1);//учитываем забалансовые счета
 Ит.ИспользоватьСубконто(ВидСубконто_МестаХранения,МестоХранения, 2); //Отбираем по субконто "МестаХранения" 
 Ит.ИспользоватьСубконто(ВидСубконто_фармЗаказы,, 1); //Разворачиваем по субконто "фармЗаказы" 
 Ит.ИспользоватьСубконто(ВидСубконто_фармГруппыНоменклатуры,, 1); //Разворачиваем по субконто "фармЗаказы" 
 Ит.ВыполнитьЗапрос(, ДатаДок, СчетПоКоду("ЗАК"),,, 1,, "4"); //Остатки и обороты по счету в целом, рассчитываем количество 
 
 //Выбираем контрагентов 
 Ит.ВыбратьСубконто(1);
 
 Если Ит.ПолучитьСубконто(1) = 1 Тогда //МестаХранения
  Ит.ВыбратьСубконто(2);//фармЗаказы 
  Пока Ит.ПолучитьСубконто(2) = 1 Цикл //фармЗаказы
  Если Ит.СКД(3)<=0 Тогда //Берем СКД по количеству (это 3)  
  Продолжить; //Заказ уже снят
  КонецЕсли;  
  мЗаказ = Ит.Субконто(2); 
   
  Если мЗаказ.ДатаДок > ДатаДок - КолДней Тогда
  Продолжить;
  КонецЕсли;
   
  СнятиеЗаказа.Новый();
  СнятиеЗаказа.МестоХранения = МестоХранения;
  СнятиеЗаказа.ДокументОснование = мЗаказ; 
  СнятиеЗаказа.Поставщик = мЗаказ.Поставщик;
   
  //Сообщить(Строка(мЗаказ) + " " + Строка(Ит.СКД(3)));
   
  Ит.ВыбратьСубконто(3);//ВидСубконто_фармГруппыНоменклатуры
   
  Пока Ит.ПолучитьСубконто(3) = 1 Цикл //ВидСубконто_фармГруппыНоменклатуры  
  Если Ит.СКД(3)<=0 Тогда //Берем СКД по количеству (это 3)  
  Продолжить; //Заказ уже снят
  КонецЕсли;
  Группа = Ит.Субконто(3);  
  //Сообщить(Строка(Группа) + " " + Строка(Ит.СКД(3)));
  СнятиеЗаказа.НоваяСтрока();
  СнятиеЗаказа.Группа = Группа;
  СнятиеЗаказа.Количество = Ит.СКД(3);
  КонецЦикла; //ВидСубконто_фармГруппыНоменклатуры
  Попытка
  СнятиеЗаказа.Записать();
  СнятиеЗаказа.Провести(); 
  Сообщить("Создан и проведен документ " + Строка(СнятиеЗаказа), "i");
  Исключение
  КонецПопытки;
   
  КонецЦикла; //фармЗаказы
 КонецЕсли;
 
КонецПроцедуры
//******************************************************************************