При интеграции 1С с веб-сайтами всегда встает вопрос о передачи некоторых данных на веб-сервер. Будь то это передача параметров запроса для получения данных от веб-сервера в 1С или же передача данных из 1С, которые должны быть сохранены или каким-то образом обработаны на веб-сервере. Передаваться могут как простые данные в виде строк, чисел, так и целые файлы (изображения, XML-файлы и прочее). Для передачи и получения файлов и данных на веб-сервер в 1С используется объект HTTPСоединение.
Создание и инициализация HTTP соединения в 1С
Для инициализации HTTP соединения в 1С необходимо создать объект HTTPСоединение и в конструкторе указать параметры HTTP соединения.
<Сервер> (обязательный) - адрес сервера, с которым необходимо установить соединение.
<Порт> (необязательный) - порт сервера, с которым устанавливается соединение.
Значение по умолчанию зависит от защищенности соединения (80 для незащищенного и 443 для SSL-соединения).
<ИмяПользователя> (необязательный) - имя пользователя на указанном сервере.
<Пароль> (необязательный) - пароль пользователя на указанном сервере.
<Прокси> (необязательный). Тип - ИнтернетПрокси. Прокси, используемый для соединения с сервером.
<ЗащищенноеСоединение> (необязательный). Тип - Булево. Определяет используемый протокол -
http или https. По умолчанию Ложь.
Ниже приведен примеры создания HTTPСоединения с сайтом http://www.mysite.ru/.
Передача данных на веб-сервер из 1С методом GET.
Для передачи данных на веб-сервер из 1С методом GET используется процедура Получить() объекта HTTPСоединение.
<Источник> (обязательный). Тип - Строка. Адрес ресурса на сервере.
<ИмяВыходногоФайла> (обязательный). Тип - Строка. Имя файла на диске, в который
помещаются данные, полученные от сервера (ответ сервера).
<Заголовки> (необязательный). Тип - Строка. Заголовки, добавляемые к запросу на сервер.
Текстовые пары вида <Заголовок>:<Значение>, разделенные комбинацией ВК + ПС.
(подробнее о заголовках будет сказано ниже).
Рассмотрим параметры процедуры Получить() более подробно:
В качестве источника указывается строка с адресом запроса, идущая после названия домена и символа "/". Так, если необходимо отправить данные на адрес https://www.mysite.com/getusers.php, то при создании HTTP соединения в конструкторе HTTPСоединение в поле "Сервер" указывается "www.mysite.com", признак защищенного соединения устанавливается в Истина, а в процедуре Получить() в параметре Источник указывается "getUsers.php".
В поле ИмяВыходногоФайла указывает имя файла на диске, в который будут сохранены данные, полученные от сервере в результате запроса. Так, например, если сервер возвращает список пользователей в формате XML, то на диск в указанный файл будет сохранен XML файл со списком пользователей.
О заголовках более подробно будет сказано ниже.
Так же, при запросе к веб-серверу зачастую передаются дополнительные данные (параметры) для этого запроса. Параметры от адреса источника отделяются символом "?". Каждый параметр задается в формате <Имя_Параметры>=<Значение_Параметры>. Параметры от адреса источника отделяются символом "?". Сами же параметры отделяются друг от друга символом "&". В результате строка адреса источника может выглядеть следующим образом: getUsers.php?owner_id=263544&count=100.
Ниже приведен пример, поясняющий все выше сказанное.
Заголовки HTTP
Ниже приведена общая информация о HTTP заголовках из википедии.
Заголовки HTTP (англ. HTTP Headers) — это строки в HTTP-сообщении, содержащие разделённую двоеточием пару имя-значение. Формат заголовков соответствует общему формату заголовков текстовых сетевых сообщений ARPA. Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой.
Все заголовки разделяются на четыре основных группы:
General Headers (рус. Основные заголовки) — должны включаться в любое сообщение клиента и сервера.
Request Headers (рус. Заголовки запроса) — используются только в запросах клиента.
Response Headers (рус. Заголовки ответа) — только для ответов от сервера.
Entity Headers (рус. Заголовки сущности) — сопровождают каждую сущность сообщения.
Именно в таком порядке рекомендуется посылать заголовки получателю.
Более подробно о заголовках HTTP можно прочитать здесь. Так же можно ознакомится со списком заголовков HTTP.
От себя лишь добавлю, что, если это явно не указано в требованиях к отправке данных веб-серверу заголовки HTTP для метода GET можно не указывать. Для метода POST обычно нужно указать заголовки Content-Type (тип передаваемых данных, например: "Content-Type: text/html;charset=utf-8") и Content-Length (размер передаваемых данных в байтах, например: "Content-Length: 1348").
Напомню, что HTTP заголовки в 1С указываются строкой в виде текстовых пар "<Заголовок>:<Значение>", разделенных комбинацией символов ВК+ПС.
Также заголовки можно задать типом Соответствие, где в качестве ключа указывается заголовок, а в качестве значения - значение заголовка.
Ниже приведены поясняющие примеры:
Передача данных на веб-сервер из 1С методом POST.
Общие сведения.
Для передачи данных на веб-сервер из 1С методом POST используется процедура ОтправитьДляОбработки() объекта HTTPСоединение.
<Источник> (обязательный) - Имя файла-источника, который будет отправлен
на сервер для обработки.
<АдресРесурса> (обязательный). Тип - строка. Адрес ресурса на сервере,
в который посылаются данные из источника.
<ИмяВыходногФайла> (обязательный) - Имя файла на диске, в который записываются
полученные с сервера данные.
<Заголовки> (необязательный). Тип - строка. Заголовки, добавляемые к запросу на сервер.
Текстовые пары вида <Заголовок>:<Значение>, разделенные комбинацией ВК + ПС.
(подробнее о заголовках будет сказано ниже).
Рассмотрим параметры процедуры ОтправитьДляОбработки() подробнее:
В качестве источника указывается файл, содержимое которого необходимо отправить на сервер для обработки. Подробнее о формировании содержимого файла-источника будет сказано ниже.
Поле АдресРесурса аналогично полю Источник процедуры Получить(), т.е. указывается строка с адресом запроса, идущая после имени домена и символа "/".
Поле ИмяВыходногоФайла также аналогично одноименному полю процедуры Получить(), т.е. содержит имя файла, в котором будут сохранены данные, полученные от сервера в результате обработки исходных данных.
О заголовках было упомянуто выше. Напомню лишь, что для метода POST обычно указываются заголовки Content-Type и Content-Length. В качестве параметра заголовка Content-Length указывается размер файла-источника, преобразованный с помощью функции XMLСтрока().
Ниже приведен пример, поясняющий все выше сказанное.
Передача параметров методом POST.
Для передачи параметров, аналогично методу GET, можно сформировать строку параметров, записать их в текстовый файл и отправить этот файл на сервер для обработки. Ниже приведен пример аналогичный примеру отправки методом GET, но теперь те же данные отправляются методом POST.
Передача файлов методом POST.
Зачастую данные для обработки задаются не виде строки параметров разделенных "&", как в рассматриваемых выше примерах, а виде файла определенного формата, например XML или JSON. Рассмотрим пример отправки данных на веб-сервер для обработки методом POST, которые задаются в формате XML. Например, сервер может добавить ваш комментарий к материалу. В описании процедуры добавлении сказано, что данные необходимо отправлять по адресу www.mysite.com/addComment.php. Сами данные должны быть переданы в следующем виде:
где:
<ID_Пользователя> - id пользователя на сайте, от имени которого добавляется комментарий;
<ID_Материала> - id материала на сайте, к которому добавляется комментарий;
<Текст_Комментария> - текст комментария.
Предположим, что нам уже известны id пользователя и материала и они хранятся в переменных user_id и post_id. Ниже приведен пример, решающий нашу задачу.
Загрузка файлов (изображений, документов и т.п.) на веб-сервер методом POST.
Зачастую возникает необходимость загрузки файлов на веб-сервер. Это может быть, например, изображение к статье на сайте, или фотография для альбома, или архив для файлообменника. Ранее мы рассматривали передачу методом POST параметров или просто файлов. Таким же образом можно и передавать двоичные файлы. Но как быть, если файлы необходимо отправлять вместе с параметрами? Для возможности отправки файлов в этом случае используется HTTP заголовок ContentType:multipart/form-data. Следует заметить, что обычно таким способом передаются файлы через веб-браузеры. Т.е. когда на сайте вы выбираете файл и нажимаете кнопку "Загрузить", то файл передается способом описанным ниже. При таком способе сам файл также задается как переменная, т.е., например, файл передается через параметр file или image. Однако, мы не можем просто передать file=<Двоичные_Данные>. А вот как все таки передать файл мы и рассмотрим ниже.
Для возможности вместе с параметрами передавать и двоичные данные (файлы) необходимо сформировать HTTP заголовок Content-Type следующим образом:
Content-Type: multipart/form-data, boundary=<уникальные_данные>
где <уникальные_данные> - это любой набор цифр и/или символов, который будет служить для отделения значений друг от друга. Значение boundary должно быть уникальным в пределах пересылаемой информации, т.е. таких символов не должно встречаться в пересылаемых файлах и переменных.
Bounday можно сформировать, например, таким образом
Все данные отделяются друг от друга разделителем boundary. Начинать разделитель нужно с "--":
В конце данных нужно закрыть разделитель, добавили в конце разделителя "--", т.е. вид будет "--<boundary>--".
Итак, например, нам нужно передать на веб-сервер текстовый файл через параметр "text", его описание через параметр "desc" и id пользователя через параметр "uid", для которого будет загружен наш файл.
Предположим, что файл содержит следующий текст: Мороз и солнце; день чудесный!
Еще ты дремлешь, друг прелестный -
Пора, красавица, проснись:
Открой сомкнуты негой взоры
Навстречу северной Авроры,
Звездою севера явись!
Описание должно содержать "Стих А.С. Пушкина", а id пользователя равно "0123456". Тогда файл должен быть сформирован следующим образом (для упрощения предположим, что bounday мы уже сформировали и он равен "ccf8111910")
А теперь перейдем непосредственно к 1С. Пусть у нас будет форма с реквизитами "Пользователь", "Описание" и "ИмяФайла". Реализуем отправку данных, описанным выше способом
Передача текстовых файлов таким способом проблем не вызывает. Сложнее дело обстоит с файлами, содержащими двоичные данные (изображения, архивы и т.п.). Все дело в том, что в 1С просто нет методов для чтение двоичных файлов в строку. Если мы делаем обмен со своим сайтом, которые сами и разрабатывали, то можно просто преобразовать файл в строку Base64 при помощи процедуры Base64Строка(), а на стороне сервера преобразовать строку Base64 обратно.
А как же быть если мы загружаем файл на сторонний сервер, который принимает файл как есть без преобразование его в строку Base64(). В это случае можно пойти на хитрость. В 1С есть процедура ОбъединитьФайлы(), которая объединяет несколько файлов на диске в один результирующий файл
<ИменаЧастей> (обязательный). Тип - Массив. Массив имен частей файлов, которые
требуется объединить. Объединение будет происходить в порядке, в котором заданы
имена файлов в массиве.
<ИмяРезультирующегоФайла> (обязательный). Тип - Строка. Имя файла, который будет
создан в результате объединения файлов.
Т.е. мы можем сформировать текстовый файл с запросом, объединить его с файлом(-ами), которые необходимо передать на веб-сервер и передать уже файл, получившийся в результате объединения исходных файлов. Ниже демонстрируется процесс передачи двух zip архивов на сервер с дополнительными параметрами user_id и post_id.
Ну вот, вроде бы, и все, что я хотел рассказать о способах передачи файлов и данных на веб-сервер из 1С. Если что-то не понятно, что-то хотите уточнить или нашли ошибки - пишите в комментариях.
Автор: Павел
В качестве примера использования можно указать вот такую ситуацию: в зависимости от типа клиента (договора, документа и т.п) формируются разные тексты договоров с разным количеством таблиц. В реальности, конечно должены использоваться и макет и описанные здесь динамические механизмы.
В моем примере я заранее создал новый пустой документ. Тестировалось на Office 2007.
Часто при создании документа из макета используют метод замены кусков текста. В примере представлен другой вариант выполнения того же действия - с использованием закладок. Также представлен пример построения нумерованного списка, вставки картинки, настройки ее параметров.
Пример использования описанных возможностей прост. При формировании коммерческого предложения бывает необходимо описать список условий, добавить изображение образца продукции.
Для отображения закладок включите эту опцию в настройках вашего Word'а.
В моем примере я заранее создал новый пустой документ, путь к документу и картинке прописан в тексте. Не забудте указать свои пути.
Появилась необходимость выложить часть данных из 1С в открытый доступ большому числу пользователей.
Что бы не нарушать условий лицензирования и обеспечить безопасность данных, было принято решение развернуть новую базу на MySQL. Так как особо модерировать ее никто не хочет, пришлось сделать управление MySQL-ной БД из 1С, и начал с создания структуры БД. Итак: Создаем 2 справочника неирархических, один подчинен другому.
а. Таблицы
б. Колонки
Таблицы - реквизиты:
Автокод - Булево (Определяет необходимость нумеровать запись уникальным кодом, или отдать нумерование на откуп MySQL)
Таблицы - колонки:
ТипДанных - Число (в коде определим тип хранящихся данных по числу)
Длина - Число (длина хранящихся данных)
МожетБытьНоль - булево (может ли хранится пустое значение)
Связь - СсылкаНа таблицу (С которой есть связь все к одному)
Заполняем значениями справочники...
Теперь подключаемся:
Сначала удалим таблицы если они есть:
Теперь приступим к созданию таблиц БД:
И под закуску недостающие функции, использованные в основном тексте:
Предполагается что название таблиц идут с префиксом например: prefix_NameTable
Обработка демонстрирует простейший пример работы с 2-мя текстовыми процессорами - OpenOffice.org Writer и Microsoft Office Word. Нужно запустить файл обработки, в качестве шаблона она будет использовать файл "Primer.doc", который находится в одном каталоге с обработкой: Скачивать файлы может только зарегистрированный пользователь!
Файл Шаблона - Primer.doc:
От: {Организация}
Кому: {Контрагент}
Ждем акт сверки взаиморасчетов!
Директор /{Директор}/
Необходимо заменить в шаблоне ключевые слова в скобках {}, на указанные значения, вот примерный код обработки:
Эффективность торговой деятельности и работы предприятия во многом определяется разумной политикой ценообразования. Для помощи пользователям в решении этой задачи в состав программы «1С:Управление торговлей 8» включен функционал ценообразования. В данной статье речь пойдет о хранении и формировании цен в данной конфигурации.
В программе реализовано 2 схемы хранения цен.
Схемы хранения цен
Для схемы «Цены поставщиков (конкурентов)» используются объекты: справочник «Контрагенты», справочник «Типы цен номенклатуры контрагентов», регистр сведений «Цены номенклатуры контрагентов» и документ «Установка цен номенклатуры контрагентов» (далее - 1-ая схема).
Для схемы «Цены предприятия» используются объекты: справочник «Типы цен номенклатуры», регистр сведений «Цены номенклатуры» и документ «Установка цен номенклатуры» (далее - 2-ая схема).
Для обеих схем ведется учет изменения цен во времени.
Рассмотрим пример формирования закупочной и розничной цены. Допустим, что один товар приходит в течение некоторого времени от разных поставщиков. Если в документе «Поступление товаров и услуг» по нажатию на кнопку «Цены и валюта» установить флажок «Регистрировать цены поставщика», то автоматически будут записаны все цены по 1-ой схеме.
Документ "Поступление товаров и услуг"
Далее на основании документа поступления надо ввести документ «Установка цен номенклатуры», в котором уже зарегистрировать цены предприятия (закупочную (заполнится автоматически при указании в справочнике «Типы цен номенклатуры контрагентов» в соответствующий реквизит) и розничную (рассчитается по заданному в справочнике «Типы цен номенклатуры» алгоритму). Можно увидеть, что с течением времени закупочная цена будет постоянно меняться, а розничная – перерассчитываться. В то время, как у поставщиков данного товара цена на него может оставаться постоянной. Т.е. закупочная цена – это цена, по которой товар пришел в последний раз. Чтобы проанализировать, у кого из поставщиков самая выгодная цена на интересующий нас товар, можно воспользоваться отчетом «Анализ цен».
Для назначения разных отпускных цен разным покупателям нужно воспользоваться схемой 1. Чтобы нужный тип цен автоматически подставлялся в расходные документы, нужно его указать в соответствующем реквизите договора с покупателем.
Реквизиты договора с покупателем
Также в договоре можно указать дополнительные условия, где можно назначить одному покупателю разные типы цен на разные группы товара.
В обновлении 10.3.10 типовой конфигурации «Управление торговлей, ред.10.3» порядок заполнения платежных поручений на уплату платежей в бюджет приведен в соответствие с Приказом Минфина РФ №102н от 01.10.2009 «О внесении изменений в приказ Министерства финансов РФ от 24.11.2004 №106н «Об утверждении Правил указания информации в полях расчетных документов на перечисление налогов, сборов и иных платежей в бюджетную систему РФ».
Перечисление денежных средств в бюджет и внебюджетные фонды, в таможню, по аренде государственного имущества и подобные платежи в адрес разного рода государственных структур оформляются документом «Платежное поручение исходящее».
Для оформления платежа можно:
- выбрать операцию «Перечисление налога»;
- выбрать другую операцию документа, перейти на закладку «Перечисление в бюджет» и установить флажок «Перечисление в бюджет».
Исключения: закладка «Перечисление в бюджет» невидима при выборе вида операции «Перевод на другой счет» и «Перечисление денежных средств подотчетнику».
ПЕРЕЧИСЛЕНИЕ НАЛОГА
Для перечисления таможенного платежа в документе «Платежное поручение исходящее» нужно выбрать вид операции «Перечисление налога», указать налоговый орган и сумму платежа.
На закладке «Перечисление в бюджет» нужно заполнить поля 101, 104 – 110 платежного поручения.
Порядок заполнения этих реквизитов соответствует Приказу Минфина РФ №102н от 01.10.2009 «О внесении изменений в приказ Министерства финансов РФ от 24.11.2004 №106н «Об утверждении Правил указания информации в полях расчетных документов на перечисление налогов, сборов и иных платежей в бюджетную систему РФ».
Правила заполнения полей 104 – 110 определяются выбранным в платежном поручении видом перечисления в бюджет:
- Налоговый платеж - используется для перечисления в бюджет налогов, сборов и других платежей, администрируемых налоговыми органами;
- Таможенный платеж - используется для перечисления в бюджет таможенных и иных платежей от внешнеэкономической деятельности;
- Иной платеж - используется для всех прочих перечислений денежных средств в бюджет (при аренде или покупке имущества, за услуги, оказанные государственными органами, административные платежи и сборы и т.д.). Вид перечисления «Иной платеж» устанавливается по умолчанию для всех видов операции, кроме операции «Перечисление налога».
ПЕРЕЧИСЛЕНИЕ ТАМОЖЕННОГО ПЛАТЕЖА
Для перечисления таможенного платежа в документе «Платежное поручение исходящее» нужно выбрать вид операции «Прочие расчеты с контрагентами», указать контрагента (таможню), сумму платежа, договор (с видом «Прочее»). Затем перейти на закладку «Перечисление в бюджет» и на этой закладке установить флажок «Перечисление в бюджет», указать вид перечисления «Таможенный платеж», заполнить другие необходимые реквизиты.
Перечисление таможенного платежа
Платежное поручение распечатывается или передается в программу «Клиент-банка». При поступлении выписки банка в платежном поручении ставится флажок «Оплачено».
ПЕРЕЧИСЛЕНИЕ ПЛАТЕЖА ЗА АРЕНДУ ГОСУДАРСТВЕННОГО ИМУЩЕСТВА
Для перечисления платежа за аренду госимущества в документе «Платежное поручение исходящее» нужно выбрать вид операции «Оплата поставщику», указать контрагента (госучреждение, управляющее имуществом), сумму платежа, договор (с видом «С поставщиком»). Затем перейти на закладку «Перечисление в бюджет» и на этой закладке установить флажок «Перечисление в бюджет», указать вид перечисления «Иной платеж», заполнить другие необходимые реквизиты.
Перечисление платежа за аренду государственного имущества
Платежное поручение распечатывается или передается в программу «Клиент- банка». При поступлении выписки банка в платежном поручении ставится флажок «Оплачено».
Учет налога на добавленную стоимость сложен, и правила бухгалтерского учета не предусматривают регистрации ряда событий, важных для расчетов по НДС. Поэтому конфигурация «1С:Бухгалтерия предприятия» все события, имеющие отношение к НДС, учитывает на регистрах.
Остановимся подробнее на некоторых элементах из списка регистра накопления подсистемы учета НДС:
- Регистр «НДС начисленный» предназначен для хранения информации о суммах НДС, начисленных к уплате в бюджет.
- Регистр «НДС предъявленный» предназначен для хранения информации о суммах НДС, предъявленных поставщиками приобретенных ценностей.
- Регистр «НДС расчеты с покупателями» предназначен для хранения информации о расчетах с покупателями для целей учета НДС. По сравнению со счетами учета расчетов с покупателями, содержит более подробную информацию о том, какие поступления оплат от покупателей относятся к конкретным документам реализации товаров (работ, услуг), а какие еще «не привязаны» к документам реализации.
- Регистр «НДС расчеты с поставщиками» предназначен для хранения информации о расчетах с поставщиками для целей учета НДС. По сравнению со счетами бухгалтерского учета расчетов с поставщиками, содержит более подробную информацию о том, какие оплаты поставщикам относятся к конкретным документам поступления товаров (работ, услуг).
- Регистр «НДС продажи» предназначен для хранения информации о записях книги продаж. По данным этого регистра строится отчет «Книга продаж» без всякой дополнительной обработки данных.
- Регистр «НДС покупки» предназначен для хранения информации о записях книги покупок. По данным этого регистра строится отчет «Книга покупок» без дополнительной обработки данных.
- Регистр «НДС с авансов» предназначен для хранения информации о суммах НДС, начисленного с полученных и выданных авансов и предоплат.
Проверять НДС можно (и нужно) не только с помощью стандартных бухгалтерских отчетов, но и универсальными отчетами «Остатки и обороты», «Список/кросс-таблица» (меню «Отчеты» - «Прочие»).
Рассмотрим несколько проверок:
1. Регистр «НДС начисленный» - Отчет «Остатки и обороты». Если есть остатки, то эти суммы не попали в книгу продаж и в декларацию по НДС. Такие суммы могут относиться только к операциям реализации, осуществленным до 01.01.2006, при условии, что налоговая база по НДС до 01.01.2006 определялась по оплате. В этом случае остаток по регистру и остаток по сч. 76.Н «Расчеты по НДС, отложенному для уплаты в бюджет» должны совпадать.
2. Регистр «НДС предъявленный» - Отчет «Остатки и обороты». Остатки должны совпадать с остатками по сч. 19 «НДС по приобретенным ценностям». Обороты по расходу в регистре должны совпадать с оборотом по кредиту 19 сч., по приходу – с оборотом по дебету 19 сч.
3. Регистр «НДС с авансов» - Отчет «Остатки и обороты» по виду ценности «Авансы полученные». Остатки должны совпадать с остатками на счете 76.АВ «НДС по авансам и предоплатам».
4. Регистр «НДС покупки» - Отчет «Список/кросс-таблица». Должно соблюдаться соответствие оборотов по дебету сч. 68.02 «Налог на добавленную стоимость» в корреспонденции со сч. 19.
5. Регистр «НДС расчеты с покупателями» - Отчет «Остатки и обороты». Остаток по регистру должен совпадать с остатком по сч. 62 «Расчеты с покупателями и заказчиками».
Разумеется, приведенный перечень проверок далеко не полный, его можно расширять в соответствии с необходимостью организаций.
Возникает вопрос, по каким причинам возможны расхождения между счетами бухгалтерского учета и регистрами подсистемы учета НДС? Одна из самых распространенных – формирование проводок по НДС или по взаиморасчетам с контрагентами за реализованные/приобретенные ценности с помощью ручных операций. Результатом таких действий станет некорректное автоматическое заполнение регламентных документов учета НДС, таких как «Регистрация оплаты поставщику для НДС», «Регистрация оплаты от покупателей для НДС», «Формирование записей книги покупок», «Формирование записей книги продаж». Для корректного отражения в регистрах учета НДС для таких операций в систему существуют соответствующие документы, например «Корректировка долга», «Списание НДС».
Также встречаются ситуации, когда в документы реализации или поступления, платежные поручения вносятся изменения после формирования регламентных документов по учету НДС.
Если подобные ошибки произошли в текущем периоде, поправить ситуацию можно, перезаполнив регламентные документы по НДС.
Для исправления ошибок, допущенных в прошлом периоде, можно использовать документ «Корректировка записей регистров».
Допустим, что организацией были приобретены ТМЦ (в программе поступление отражено документом «Поступление товаров и услуг»), НДС по которым не может быть принят к вычету, и с помощью ручной операции был отнесен в дебет сч. 91. В этом случае в регистре «НДС предъявленный» останется остаток. При заполнении документа «Формирование записей книги покупок» в него будет попадать НДС по вышеуказанному поступлению, и если не удалить вручную этот НДС из документа, при проведении сформируется проводка по возмещению НДС, и на сч. 19 образуется кредитовый остаток. Поправить ситуацию можно с помощью документа «Корректировка записей регистров» (меню «Операции» – «Документы» – «Корректировка записей регистров»).
В документе необходимо перейти на закладку «Регистры накопления», нажать кнопку «Настройка состава регистров», в открывшемся окне проставить галочку у регистра «НДС предъявленный». В таблице добавить строку с видом движения «Расход» и заполнить остальные поля в соответствии с документом оприходования ТМЦ.
С помощью данного документа можно корректировать любые регистры. Документ рекомендуется использовать очень осторожно, в случае некорректного его заполнения в регистрах может возникнуть еще большее несоответствие с данными бухгалтерского учета.
Часто при создании документа из макета используют метод замены кусков текста. В примере представлен другой вариант выполнения того же действия - с использованием закладок. Также представлен пример построения нумерованного списка, вставки картинки, настройки ее параметров.
Пример использования описанных возможностей прост. При формировании коммерческого предложения бывает необходимо описать список условий, добавить изображение образца продукции.
Для отображения закладок включите эту опцию в настройках вашего Word'а.
В моем примере я заранее создал новый пустой документ, путь к документу и картинке прописан в тексте. Не забудьте указать свои пути.
Тестировалось на Office 2007.
Некоторые переменные переименованы по стандарту Office: Text --> S_election. Doc --> ThisDocument.
Вот текст модуля:
Написал Nikola23 - http://infostart.ru/public/68072/
Конечно метод дубовенький, расчитан тока на русскую версию, но можно и допеределать.
Не стал писать код определения пишущего сидирома и возможности записи (хотя на отсутствие диска или невозможность записать ОС сама укажет)...
Автор: smaharbA
Режим предназначен для выполнения конфигуратором административных функций без участия пользователя. Данный режим применяется в специальных случаях. Например, с его помощью можно организовать специальный ярлык на рабочем столе Windows для создания резервной копии информационной базы 1С:Предприятия. При этом пользователю не нужно будет выполнять никаких действий по выбору необходимой функции в конфигураторе и указанию параметров необходимых для сохранения информационной базы. Данный режим может использоваться для организации автоматического выполнения административных функций в определенный момент времени. Для этого используется любое программное обеспечение, имеющее возможность планирования и запуска задач в определенное время. Например, может быть организовано автоматическое создание резервной копии в ночное время суток
Пакетный режим предназначен для выполнения следующих действий:
-тестирование и исправление информационной базы;
-выгрузка данных;
-сохранение данных;
-автообмен распределенной информационной базы (режим доступен, если установлена компонента «Управление распределенными информационными базами»).
Запуск Конфигуратора в пакетном режиме
Для работы Конфигуратора в пакетном режиме следует в командной строке запуска 1С:Предприятия, кроме параметра CONFIG, указывающего на то, что система 1С:Предприятие запускается в режиме «Конфигуратор», указать параметр /@ФайлПакетногоРежима. ФайлПакетногоРежима - это имя файла, содержащего параметры пакетного запуска. Все необходимые функции, которые должны быть выполнены Конфигуратором в пакетном режиме, описываются в этом файле.
Имя файла может задаваться как абсолютным путем, так и относительным.
В случае задания относительным путем файл ищется программой сначала в рабочем каталоге пользователя, затем в каталоге информационной базы, а затем в том каталоге, из которого запускается 1С:Предприятие.Для того, чтобы при пакетном режиме не выдавался диалог запуска 1С:Предприятия и диалог авторизации, в строке запуска должны быть указаны все необходимые параметры:
-параметр CONFIG;
-каталог информационной базы (параметр /D);
-имя пользователя, если для данной информационной базы ведется список пользователей (параметр /N);
-пароль пользователя, если для пользователя задан пароль (параметр /Р).
Файл пакетного режима имеет по умолчанию расширение .prm, если используется другое расширение, то оно должно явно указываться в имени файла.
Ниже приведен пример строки запуска Конфигуратора в пакетном режиме:
c:\1cv7\bin\1cv7.exe CONFIG /Dc:\1cv7\db /NПопов /PSekret /@C:\lCV7\CMD\Backup
Структура файла пакетного режима.
Файл пакетного режима является текстовым файлом и может создаваться и модифицироваться любым текстовым редактором. Структура файла включает секции и параметры, определенные для каждой секции. Секция задается отдельной строкой с именем секции в прямоугольных скобках. Параметры задаются отдельными строками после строки соответствующей секции с указанием имени параметра и значением, отделенным знаком «=». Основная секция General, описывает общие параметры пакетного режима и необходимость выполнения отдельных функций пакетного режима. Остальные секции содержат параметры, описывающие особенности выполнения конкретных функций.
Секция General [General]
Данная секция предназначена для описания общих параметров пакетного режима и необходимости выполнения отдельных функций.
Output=Имя_файла
Указывает файл, в который будет дополнительно направляться вывод записей о выполняемых действиях в пакетном режиме. Имя файла может указываться как абсолютным путем, так и относительно каталога, в котором расположен файл параметров. Формат файла дополнительного вывода совпадает с форматом вывода в журнал регистрации. Если параметр не указан, то дополнительный вывод производиться не будет. В любом случае вывод производится в журнал регистрации
Quit=Значение
Указывает, нужно ли завершать выполнение Конфигуратора после выполнения действий пакетного режима.
Если задано Y или 1, после выполнения действий пакетного режима, программа будет завершена, а если 0 или N, то нет.
Если параметр не задан, то программа будет завершена.
CheckAndRepair=Значение
Указывает, нужно ли выполнять тестирование и исправление информационной базы.
Если задано Y или 1, тестирование и исправление будет выполняться, а если 0 или N, то нет.
Если параметр не задан, то тестирование и исправление выполняться не будет.
UnloadData =3начение
Указывает, нужно ли выполнять выгрузку информационной базы.
Если задано Y или 1, выгрузка будет выполняться, а если 0 или N, то нет.
Если параметр не задан, то выгрузка выполняться не будет.
SaveData=Значение
Указывает, нужно ли выполнять сохранение информационной базы.
Если задано Y или 1, сохранение будет выполняться, а если 0 или N, то нет.
Если параметр не задан, то сохранение выполняться не будет.
AutoExchange=Значение
Указывает, нужно ли выполнять автообмен в распределенной информационной базе.
Если задано Y или 1, автообмен будет выполняться, а если 0 или N, то нет.
Если параметр не задан, то автообмен выполняться не будет.
Подробное описание работы с распределенными информационными базами приведено в книге «Управление распределенными информационными базами».
Секция CheckAndRepair [CheckAndRepair]
Данная секция предназначена для описания выполнения тестирования и исправления информационной базы.
Repair=Значение
Параметр указывает, должно ли выполняться исправление информационной базы.
Если задано значение Y или 1, то будет выполняться тестирование и исправление обнаруженных ошибок в информационной базе.
Если задано значение N или 0, то будет производиться только тестирование.
Если параметр не задан, то будет производиться тестирование и исправление.
PhysicalIntegrity=Значение
Параметр указывает, следует ли производить проверку физической целостности таблиц информационной базы.
Если задано Y или 1, проверка будет производиться, если N или 0, то нет.
Если параметр не задан, проверка будет производиться.
Reindex=Значение
Параметр указывает, следует ли производить реиндексацию таблиц информационной базы.
Если задано Y или 1, реиндексация будет производиться, если N или 0, то нет.
Если параметр не задан, реиндексация будет производиться.
Если установлен режим исправления, то рекомендуется установить и режим реиндексации.
LogicalIntegrity=Значение
Параметр указывает, следует ли производить проверку логической целостности таблиц информационной базы.
Если задано Y или 1, проверка будет производиться, если N или 0, то нет.
Если параметр не задан, проверка будет производиться.
RecalcSecondaries=Значение
Параметр указывает, следует ли производить обновление (пересчет) вторичных данных информационной базы, то есть служебных данных, которые могут быть рассчитаны на основании другой информации, хранящейся в информационной базе.
Если задано Y или 1, обновление будет производиться, если N или 0 - то нет.
Если параметр не задан, обновление будет производиться.
RecalcTotals=Значение
Параметр указывает, следует ли производить пересчет итогов бухгалтерского и оперативного учета.
Если задано Y или 1, пересчет будет производиться, если N или 0 - то нет.
Если параметр не задан, пересчет будет производиться.
Pack=3начение
Параметр указывает, следует ли производить упаковку таблиц информационной базы, то есть освобождать место занятое удаленными записями.
Если задано Y или 1, упаковка будет производиться, если N или 0, то нет.
Если параметр не задан, упаковка не будет производиться.
Данный параметр имеет смысл, только если данные хранятся в формате DBF/CDX.
SkipUnresolved=Значение
Параметр указывает, следует ли пропускать неразрешенные ссылки, или их следует исправлять.
Если задано Y или 1, неразрешенные ссылки будет только диагностироваться, если N или 0, то ссылки будут разрешаться способом, задаваемым параметром CreateForUnresolved (см. ниже).
Если параметр не задан, ссылки будут исправляться.
Параметр имеет смысл только, если проводится тестирование и исправление информационной базы.
CreateForUnresolved=Значение
Параметр указывает способ разрешения неразрешенных ссылок.
Если задано Y или 1, для неразрешенной ссылки будет создан объект соответствующего типа, если N или 0, то ссылка будет очищена.
Если параметр не задан, будет создан объект.
Параметр имеет смысл только, если проводится тестирование и исправление информационной базы.
Reconstruct=Значение
Параметр указывает способ исправления информационной базы в случае, когда данные объекта частично потеряны. Если задано Y или 1, будет создан объект, заполненный имеющимися данными, если N или 0, то данные объекта будут удалены.
Если параметр не задан, будет создан объект.
Параметр имеет смысл только, если проводится тестирование и исправление информационной базы.
Секция UnloadData [UnloadData]
Данная секция предназначена для описания выполнения выгрузки данных информационной базы.
UnloadToFile=Имя_Файла
Параметр указывает имя файла переноса данных, в который будет производиться выгрузка. Может задаваться как абсолютно, так и относительно того каталога, в котором размещается файл параметров.
Параметр должен быть задан обязательно.
IncludeUserDef=Значение
Параметр указывает должен ли в файл переноса данных включаться список пользователей.
Если задано Y или 1, то список пользователей будет включен в файл переноса, если 0 или N, то нет.
Если параметр не задан, то список будет включен в файл переноса.
Password=Пароль
Параметр задает пароль, которым будет закрыт файл переноса данных.
Если параметр не задан, то файл переноса не будет закрыт паролем.
Секция SaveData [SaveData]
Данная секция предназначена для описания выполнения сохранения данных информационной базы.
SaveToFile=Имя_Файла
Параметр указывает имя файла, в который будет производиться сохранение данных. Может задаваться как абсолютно, так и относительно того каталога, в котором размещается файл параметров.
Параметр должен быть задан обязательно.
FileList=Список сохраняемых файлов
Задается как перечисление имен файлов, разделенных пробелами или запятыми. Длинные имена файлов, содержащие пробелы должны заключаться в кавычки "". В именах файлов могут использоваться символы «*» для обозначения групп файлов.
Если параметр не задан, то список сохраняемых файлов будет взят из файла 1CV7FILE.LST, так же как и в случае выполнения сохранения из пункта меню «Администрирование».
Работа в пакетном режиме
Выполнение указанных действий в пакетном режиме производится всегда в строго определенной последовательности, вне зависимости от порядка следования секций и параметров в файле пакетного режима:
1. тестирование и исправление информационной базы;
2. выгрузка данных;
3. сохранение данных;
4. автообмен распределенной информационной базы.
При работе Конфигуратора в пакетном режиме не выполняется выдача предупреждений и запросов, требующих подтверждения пользователя. При возникновении критических ошибок выполнение пакетного режима прекращается. Результаты выполнения пакетного режима можно просмотреть в журнале регистрации и в файле дополнительного вывода, если он был определен в файле параметров пакетного режима.
Комментарий к файлу:
Во время работы будет сформирован лог-файл (Output="D:\Типовые конфигурации\1SBBDemo\log.txt"). Он будет здесь D:\Типовые конфигурации\1SBBDemo\log.tx.
Будет выполнено сохранение данных (SaveData=1) в файл arch.zip (SaveToFile="D:\Типовые конфигурации\1SBBDemo\arch.zip"). После выполения работы - конфигуратор будет закрыт (Quit=1). Информационная база хранится в D:\Типовые конфигурации\1SBBDemo\. Файл пакетного режима харанится в папке базы и называется paket.txt.
Пакетный режим является мощным инструментом. Чаще всего используется для создания архивных копий. Проблема только в том, что он архив делается всегда под одним именем. И чтобы не затирать старые архивы, требуется некоторая изворотливость с конфигурационным файлом пакетного режима. Но здесь огромное поле для фантазии, по этому предоставляю Вам возможность фантазировать.