Университет. Практика 1

1      ВВЕДЕНИЕ

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

Естественно рядовые пользователи и серьезные предприятия хотят, чтобы все настройки и всё то, что было сделано на предыдущей версии было перенесено на новую версию программы.

Такая же ситуация возникла и с 1С:Предприятие. В состав 1С:Предприятие 7.7 входит стандартный конвертор. Но он осуществляет конвертацию только справочников. В нём не предусмотрена конвертация документов.

Но все пользователи 1С:Предприятие 7.7 естественно хотят, чтобы при переходе на 1С:Предприятие 8.0 сохранились все их документы. Поэтому создание программы для переноски документов является важной задачей, имеющей большие перспективы.

2      ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Создать внешнюю обработку в 1С:Предприятие 7.7, осуществляющую выгрузку документов Счёт фактура выданный, Перемещение товаров, Платёжное поручение входящее, в текстовый файл. Формат текстового файла произвольный. Причём при выгрузке полей ссылок на справочники выгружаться должны не сами объекты из справочников, а только их коды.

Создать внешнюю обработку, осуществляющую загрузку документов Счёт фактура выданный, Перемещение товаров, Платёжное поручение входящее Управление торговлей 1С Предприятия 8.0 из текстового файла.

Загрузка документов производится в информационную базу, созданную стандартным конвертором ИБ 1С Предприятия 7.7.

Внешняя обработка, осуществляющая загрузку документов должна создавать отчёт об ошибках, произошедших при загрузке.

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

3      ВЫПОЛНЕНИЕ ЗАДАНИЯ

3.1    Система 1С:Предприятие

Системе 1С:Предприятие является универсальной системой автоматизации экономической и организационной деятельности предприятия. Поскольку такая деятельность может быть довольно разнообразной, система 1С:Предприятие имеет возможность «приспосабливаться» к особенностям конкретной области деятельности, в которой она используется. Для обозначения такой способности используется термин конфигурируемость, то есть возможность настройки системы на особенности конкретного предприятия и класса решаемых задач.

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

Для того чтобы легче понять взаимодействие этих частей системы, сравним её с проигрывателем компакт дисков. Как вы хорошо знаете, проигрыватель служит для того, чтобы слушать музыку. «На вкус и цвет товарищей нет», поэтому существует множество разнообразных компакт-дисков, на которых записаны музыкальные произведения на любой вкус. И для того, чтобы прослушать какую-либо композицию, нужно вставить компакт-диск в проигрыватель, и проигрыватель воспроизведёт записанное вами музыкальное произведение. Более того, современный проигрыватель компакт-дисков даже позволит вам записать собственную подборку музыкальных произведений, т. е. создать новый компакт диск.

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

Возвращаясь к системе 1С:Предприятие можно сказать, что платформа является своеобразным «проигрывателем», а конфигурация – «компакт-диском». Платформа обеспечивает работу конфигурации и позволяет вносить в неё изменения или создавать собственную конфигурацию.

Существует одна платформа (1С:Предприяте 8.0) и множество конфигураций. Для функционирования какого-либо прикладного решения всегда необходима платформа и какая-либо (одна_ конфигурация.

practic1img1

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

 

3.2    Постановка задачи и выбор цели

Создать внешнюю обработку в 1С:Предприятие 7.7, осуществляющую выгрузку документов Счёт фактура выданный, Перемещение товаров, Платёжное поручение входящее, в текстовый файл.

Создать внешнюю обработку, осуществляющую загрузку документов Счёт фактура выданный, Перемещение товаров, Платёжное поручение входящее Управление торговлей 1С Предприятия 8.0 из текстового файла.

Загрузка документов производится в информационную базу, созданную стандартным конвертором ИБ 1С Предприятия 7.7.

3.3    Выбор метода решения задачи

Наиболее лёгким для реализации способом будет перенос через текстовый файл, потому что в 1С:Предприятие 7.7 средства работы с XML отсутствуют.

Потребуется две внешние обработки: одна на встроенном языке 1С:Предприятие 7.7 выполняет выборку документов из базы данных и запись в файл, другая на встроенном языке 1С:Предприятие 8.0 производит чтение данных из файла, их обработку, создание и заполнение документов.

Для решения задачи необходимо выгрузить и загрузить основные поля документа. В данном документа большая часть полей заполняется на основе документа основание, то есть самым главным является осуществить правильную выгрузку и загрузку поля контрагент и документ основание.

Создание выгрузки достаточно простая задача. Для этого просто в текстовый файл записываются коды для полей ссылок и значения для остальных полей.

Однако при загрузке возникает сложность с заполнением поля ДокументОснование. Это поле может ссылаться разные типы документов. Но метод НайтиПоКоду есть только у объекта документ с определённым типом документа. То есть поиск может производиться только по одному типу документа.

Для решения этой проблемы была написана функция, в аргумент которой передаётся название типа документа в 7.7, и которая осуществляет поиск документа в 8.0. Название документа типа документа берётся из выгружаемого файла.

Следующая проблема – несоответствие длины кодов в некоторых справочниках. Например, в 1С:Предприятие 7.7 в справочнике контрагенты длина кода 8, а в 1С:Предприятие 8.0 длина кода только 5. Соответственно при переноске данных длину кода придётся уменьшить, убрав начальные нули.

При этом стандартный конвертор 1С Предприятия 7.7 при конвертации в справочнике контрагенты для каждого кода добавляет префикс Ю — если контрагент является юридическим лицом, Ф – если контрагент является физическим лицом. При уменьшении длины кода описанным выше способом возникает проблема несовпадения кодов. Чтобы её решить необходимо при выгрузке контрагента сразу добавлять такие же префиксы.

Для этого нужно просматривать при выгрузке контрагента вид его реквизит ЮрФизЛицо и добавлять первый символ вида этого реквизита в текстовый файл.

При загрузке документов платёжное поручение входящее возникает кроме описанной выше другая проблема. В Торговля+Склад 1С Предприятия 7.7 документы Платёжное поручение не имели табличной части. А в Управление Торговлей 1С:Предприятие 8.0 имеется табличная часть. При выполнении задания было выяснено, что без заполнения табличной части документ работает неверно, либо вообще не работает.

То есть если не заполнять табличную часть некоторые реквизиты не отображаются, выводятся сообщения об ошибках. Пример: «Не совпадает сумма документа и её расшифровка».

Для того чтобы заставить его работать, нужно заполнить 1 строку табличной части теми же данными, что шапку.

 

3.4    Формат файла выгрузки

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

При загрузке, чтобы определить вид документа необходимо прочитать строку. Затем проверить её содержимое и вызвать соответствующую процедуру.

 

3.4.1    Создание модулей загрузки документов

У документов существуют общие реквизиты. Это реквизиты, которые присутствуют у всех документов. Для загрузки этих реквизитов проще написать отдельную процедуру и затем вызывать их при загрузке определённого документа

При загрузке общих реквизитов из файла считываются следующие реквизиты:

 

Версия 7.7 Версия 8.0
Автор Ответственный
Проект
Фирма Организация
ЮрЛицо
Комментарий Комментарий

 

 

3.4.2    Загрузка документа Счёт фактура выданный

Название в 1С:Предприятие 7.7 – СчетФактураВыданный.

Название в 1С:Предприятие 8.0 – СчетФактураВыданный.

 

При загрузке документа «Счет фактура выданный» из файла считываются значения следующих реквизитов (функция ЗагрузитьДокументСчетФактураВыданынй):

 

Версия 7.7 Версия 8.0 Примечание
Контрагент Контрагент Если не найден, значение устанавливается указанным по умолчанию
Договор ДоговорКонтрагента Если не найден, значение устанавливается указанным по умолчанию
НомерПлатРасчДок НомерПлатежноРасчетногоДокумента
ДокОснование ДокументОснвание

Формат записи в текстовом файле:

3.4.3    Загрузка документа Платёжное поручение входящее

Название в 1С:Предприятие 7.7 – СтрокаВыпискиПриход.

Название в 1С:Предприятие 8.0 – ПлатежноеПоручениеВходящее.

 

При загрузке документов «Платежное поручение входящее» из файла считываются значения следующих реквизитов (функции ЗагрузитьДокументПлатежноеПоручениеВходящее):

 

Версия 7.7 Версия 8.0 Примечание
ДокОснование ДокументОснование
Контрагент Контрагент Если не найден, значение устанавливается указанным по умолчанию
Договор ДоговорКонтрагента Если не найден, значение устанавливается указанным по умолчанию
Сумма СуммаДокумента
Валюта ВалютаДокумента
КодОперации ВидОперации Загружается по старый порядковым номерам.
ДвижениеДенежныхСредств СтатьяДвиженияДененжыхСредств
БанковскийСчет СчетОрганизации

 

Формат текстового файла:

3.4.4    Загрузка документов Перемещение Товаров

Название документа в 1С:Предприятие 7.7 – ПеремещениеТМЦ.

Название документа в 1С:Предпериятие 8.0 – ПеремещениеТоваров.

При загрузке документа «Перемещение Товаров» из файла считываются значения следующих реквизитов (функция ЗагрузитьДокументПеремещениеТоваров):

 

Версия 7.7 Версия 8.0 Примечание
Склад Склад
СкладПолучатель СкладПолучатель
Контрагент Контрагент Если не найден, значение устанавливается указанным по умолчанию
Договор ДоговорКонтрагента Если не найден, значение устанавливается указанным по умолчанию
ТабличнаяЧасть.

Номенклатура

Товары. Номенклатура
ТабличнаяЧасть.

Количество

Товары.Количество
ТабличнаяЧасть.

Единица

Товары. Единица
ТабличнаяЧасть.

Коэффициент

Товары. Коэффициент Если не найден, значение устанавливается указанным по умолчанию

3.5    Объединение загрузки документов в одну внешнюю обработку

Для объединения созданных модулей выгрузки и загрузки документов в одну внешнюю обработку достаточно скопировать процедуры загрузки из отдельных внешних обработок в один модуль. Чтобы распознать процедуру загрузки какого документа следует вызвать необходимо прочитать строку-заголовок из файла и проанализировать её содержимое. Также в ту же внешнюю обработку добавляются модули загрузки документов, созданные Семёновым Е. Ю:

3.6    Разработка интерфейса

Модуль «Загрузка документов» открывается как внешняя обработка.

На форме обработки располагается поле журнала одного из документов. Вид документов, отображаемых в журнале, выбирается переключателем справа от табличного поля (рис 2.1). Над табличным полем располагается командная панель, содержащая основные действия над документами.

practic1img2

Загрузка документов осуществляется нажатием кнопки «Загрузить документы». После нажатие на эту кнопку откроется окно выбора файла, откуда следует загрузить данные.

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

practic1img3

По результатам загрузки формируется отчет по всем ошибкам, случившимся при загрузке. Отчет содержит следующие поля:

  • Тип документа
  • Дата документа
  • Номер документа
  • Загружаемый реквизит
  • Описание ошибки

Строки отчета сгруппированы по типу документа. Красным цветом выделяются строки, содержащие информацию об ошибке, синим – о предупреждении (например, о заполнении реквизита значением по умолчанию). Для каждой строки установлена расшифровка как ссылка на документ, при загрузке которого произошла ошибка: при двойном щелчке левой кнопкой мыши на строке открывается форма соответствующего документа.

Пример отчёта:

practic1img4

4      Руководство пользователя

Интерфейс обработки «Выгрузка документов»:

practic1img5

  1. Поля для ввода периода, за который необходимо выгрузить документы. Если не указаны, берется дата соответственно самого первого или самого последнего документов.
  2. Поле ввода для выбора файла, в который будет произведена выгрузка. При нажатии на кнопку выбора откроется стандартный диалог выбора файла.

Интерфейс обработки «Загрузка документов»:

practic1img6

  1. Табличное поле, содержащее список (журнал) документов в базе данных.
  2. Переключатель для выбора документа, отображаемого в табличном поле (1).
  3. Значения реквизитов по умолчанию, которые будут использоваться в случае неудачного поиска в базе данных.
  4. Кнопка загрузки документов. При нажатии откроется диалог выбора файла, из которого произойдет загрузка.

4.1    Выполнение программы

Для выгрузки документов в файл необходимо:

  1. Запустить «1С: предприятие» версии 7.7, конфигурацию «Торговля и склад, из которой необходимо выгрузить данные».
  2. Открыть внешнюю обработку «Выгрузка документов» (рис 1) .
  3. Указать период, за который требуется выгрузить документы. Если одна или обе из границ периода не указана, будет использоваться соответственно дата самого первого или самого последнего документа.
  4. Ввести имя файла, в который будут выгружены данные.
  5. Нажать кнопку «Сформировать».

 

Для загрузки документов из файла необходимо:

  1. Запустить «1С: предприятие» версии 8.0, открыть конфигурацию «Управление торговлей», в которую необходимо загрузить данные.
  2. Открыть внешнюю обработку «Загрузка документов» (Рис. 2).
  3. Нажать кнопку «Загрузить документы». В открывшемся диалоге выбора файла указать файл, в который были выгружены данные.

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

5      ЛИТЕРАТУРА

  • Радченко Максим Григорьевич 1С:Предприятие 8.0 Практическое пособие разработчика. Примеры и типовые приемы, 2-е стереотипное издание, М.:, ООО «1С-Паблишинг», 2006.-656 с.: ил.
  • Синтаксис помощник 1С:Предприятие 8.0
  • Синтаксис помощник 1С:Предприятие 7.7

 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *