ASP на блюдечке

Что такое "Документация по 1С"?
Думаю те кому она нужна - знают, а иначе зачем было закачивать?

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

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

Шлите примеры, советы, полезности, статьи и давайте ссылки на свои и не свои сайты. От вас самих зависит наполняемость документации. Авторы! Дайте вторую жизнь вашим произведениям! Присылайте статьи!

Предупреждение

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

Тем не менее, все права защищены, и принадлежат авторам статей.

Ваш Deep Hacker. ©2001


Домашние страницы

Авторские страницы

Название | Описание

Сайты посвященные 1С:Предприятию

Название | Описание

Сайты фирм-франчайзи

Название | Описание


1С-Предприятие. Документация | Конфигурирование и администрирование. Оглавление

Конфигурирование и администрирование

Введение

  • Структура Руководства
  • Что вы должны знать
  • Принятые обозначения

Глава 1. Концепция системы 1С:Предприятие

  • Краткое описание понятий (объектов) системы
    • Базовые объекты
    • Компонента «Бухгалтерский учет»
    • Компонента «Оперативный учет»
    • Компонента «Расчет»
  • Типы данных, используемые системой
  • Технологические средства конфигурирования и администрирования системы 1С:Предприятие

Глава 2. Основные понятия системы 1С:Предприятие

  • Понятие «метаданные»
    • Объект метаданных
    • Свойства объекта метаданных
    • Форма объекта метаданных
    • Агрегатные объекты метаданных
    • Основные виды объектов метаданных
    • Типизированные и типообразующие объекты метаданных
    • Метаданные
  • Конфигурация
  • Модуль

Глава 3. Метаданные

  • Управление объектами метаданных
  • Создание объекта метаданных
  • Конструкторы объектов метаданных
  • Редактирование объекта метаданных
    • Окно редактирования
    • Палитра свойств
    • Редактирование списков объектов метаданных
  • Свойства объектов метаданных
  • Удаление объекта метаданных
  • Редактирование форм объекта метаданных
    • Работа с формами списка
  • Создание описания объекта метаданных

Глава 4. Работа с конфигурацией

  • Свойства конфигурации
  • Глобальный модуль
  • Общие таблицы
  • Библиотека картинок
  • Копирование объектов метаданных
  • Конструкторы
  • Поиск в конфигурации
    • Поиск в дереве метаданных
    • Поиск во всех текстах
    • Поиск ссылок на объект метаданных
  • Описание структуры метаданных
  • Сохранение конфигурации
  • Загрузка изменений
  • Сравнение и объединение конфигураций
    • Условия сравнения
    • Запуск режима сравнения и объединения конфигураций
    • Окно «Объединение конфигураций»
    • Режим объединения
    • Просмотр изменений
    • Отбор объектов и запуск процесса объединения
  • Сведения об авторе конфигурации
    • Редактирование информации об авторе конфигурации
    • Изменение заставки системы 1С:Предприятие
    • Защита паролем информации об авторе конфигурации
    • Сохранение информации об авторе конфигурации
  • Поддержка национальных языков
    • Задание кодовой страницы и порядка сортировки информационной базы
    • Изменение кодовой страницы и порядка сортировки информационной базы
    • Отрицательные последствия смены порядка сортировки
    • Проверка совпадения установок

Глава 5. Константы

  • Константы в системе 1С:Предприятие
  • Управление списком констант
  • Свойства константы

Глава 6. Справочники

  • Справочники в системе 1С:Предприятие
  • Управление списком справочников
  • Свойства справочника
  • Работа с реквизитами справочника
    • Свойства реквизита справочника
  • Создание форм справочника
  • Конструктор справочника

Глава 7. Документы

  • Документы в системе 1С:Предприятие
  • Управление списком документов
  • Свойства документа
  • Разработка структуры документа
    • Свойства реквизита документа
  • Документ «Операция»
  • Модуль документа
  • Общие реквизиты
    • Управление списком общих реквизитов
    • Свойства общего реквизита
  • Нумераторы
    • Управление списком нумераторов
    • Свойства нумератора
  • Последовательности документов
    • Управление списком последовательностей документов
    • Свойства последовательности документов
    • Работа с последовательностями документов
  • Ввод документов «на основании»
    • Организация ввода документов «на основании»
    • Конструктор ввода на основании
  • Подчиненные документы
  • Конструктор документа

Глава 8. Журналы документов

  • Журналы в системе 1С:Предприятие
  • Ведение списка журналов
  • Создание журнала
  • Редактирование журнала
  • Графы журнала документов
    • Редактирование графы журнала документов
  • Графы отбора
    • Назначение граф отбора
    • Управление списком граф отбора
    • Редактирование графы отбора
  • Создание формы журнала документов
  • Организация отбора документов
    • Отбор по общим реквизитам
    • Отбор по графам отбора
    • Закладки отбора
  • Конструктор журнала документов

Глава 9. Перечисления

  • Перечисления в системе 1С:Предприятие
  • Управление списком перечислений
  • Редактирование перечисления
    • Управление значениями перечисления
    • Редактирование свойств значения перечисления

Глава 10. Отчеты и обработки

  • Отчеты и обработки в системе 1С:Предприятие
  • Управление списком отчетов
  • Редактирование свойств отчета
  • Создание формы отчета
  • Внешние отчеты (обработки)
    • Создание внешнего отчета (обработки)
    • Использование внешних отчетов (обработок)
    • Редактирование внешнего отчета (обработки)
    • Описание внешнего отчета (обработки)
    • Защита паролем внешнего отчета (обработки)
    • Внешние отчеты (обработки) и объекты метаданных
  • Конструктор макета отчета
    • Запуск Конструктора макета отчета
    • Выбор вида отчета
    • Создание диаграммы
    • Завершение работы Конструктора
    • Результаты работы Конструктора

Глава 11. Организация бухгалтерского учета в системе 1С:Предприятие

  • Обзор
  • Планы счетов
  • Аналитический учет
  • Количественный учет
  • Валютный учет
  • Операции и проводки
  • Ведение консолидированного учета

Глава 12. Планы счетов

  • Планы счетов в системе 1С:Предприятие
  • Управление списком планов счетов
  • Свойства планов счетов
  • Создание форм планов счетов
  • Редактирование плана счетов
    • Редактирование свойств плана счетов
    • Редактирование списка счетов (субсчетов)
    • Редактирования свойств счета (субсчета)

Глава 13. Виды субконто

  • Виды субконто в системе 1С:Предприятие
  • Управление списком видов субконто
  • Свойства вида субконто
  • Конструктор вида субконто

Глава 14. Операции и проводки

  • Основные принципы
    • Понятие «Операция»
    • Формирование операции документом
    • Ручной ввод операции
    • Понятие «Проводка»
    • Формы операции и проводок
  • Свойства операции
  • Графы журнала операций
    • Редактирование графы журнала операций
  • Форма операции
  • Форма журнала операции
  • Свойства проводки
  • Представление
  • Формы журнала проводок

Глава 15. Регистры

  • Регистры в системе 1С:Предприятие
  • Управление списком регистров
  • Редактирование регистра
  • Разработка структуры регистра
    • Свойства измерения (ресурса, реквизита)
    • Удаление измерения (ресурса, реквизита)
    • Упорядочивание списка измерений (ресурсов, реквизитов)

Глава 16. Журналы расчетов

  • Журналы расчетов в системе 1С:Предприятие
  • Управление списком журналов расчета
  • Свойства журнала расчетов
  • Создание формы журнала расчетов
  • Конструктор журнала расчетов

Глава 17. Виды и группы расчетов

  • Виды расчетов в системе 1С:Предприятие
  • Управление списками видов расчетов и групп расчетов
  • Свойства вида расчета
  • Управление входимостью расчетов в группы
  • Модуль расчета
  • Правила перерасчета
    • Управление списком правил перерасчета
    • Свойства правил перерасчета

Глава 18. Календари

  • Календари в системе 1С:Предприятие
  • Управление списком календарей
  • Свойства календаря
  • Автозаполнение

Глава 19. Редактор форм

  • Вызов редактора форм
  • Окно редактора форм
  • Подокна в редакторе форм
  • Добавление, копирование и удаление листов
  • Настройка совместного использования таблицы и диалога
  • Редактирование формы объекта метаданных

Глава 20. Индивидуальный пользовательский интерфейс

  • Ведение списка пользовательских интерфейсов
    • Создание пользовательского интерфейса
    • Копирование пользовательского интерфейса
    • Удаление пользовательского интерфейса
    • Сортировка списка пользовательских интерфейсов
    • Сохранение списка пользовательских интерфейсов
  • Редактирование свойств пользовательского интерфейса
  • Редактирование пользовательского интерфейса

Глава 21. Редактор меню

  • Вызов редактора меню
  • Создание меню
    • Создание меню «вручную»
    • Копирование элементов меню
    • Свойства элемента меню
    • Удаление элемента меню
    • Создание меню с помощью Конструктора меню
  • Изменение структуры меню
  • Проверка созданного меню

Глава 22. Редактор панелей инструментов

  • Вызов редактора панелей инструментов
  • Ведение списка панелей инструментов
    • Создание новой панели инструментов
    • Копирование панелей инструментов
    • Удаление панели инструментов
    • Сортировка панелей инструментов
    • Свойства панели инструментов
  • Библиотека пиктограмм
  • Редактирование панели инструментов
    • Создание кнопки панели инструментов
    • Создание разделителя кнопок
    • Изменения порядка расположения кнопок
    • Редактирование свойств кнопки
    • Изменение образа кнопки
    • Удаление кнопки

Глава 23. Пользовательские права

  • Ведение списка наборов прав
    • Создание набора прав
    • Копирование набора прав
    • Удаление набора прав
    • Упорядочивание списка наборов прав
    • Сохранение списка наборов прав
  • Редактирование свойств набора прав
  • Определение прав
    • Редактор пользовательских прав
    • Назначение прав
    • Характеристики прав
    • Права на внешние отчеты (обработки)

Глава 24. Редактор диалогов

  • Что такое «диалог»?
  • Элементы диалога
  • Создание диалога
    • Понятие «шаблона окна диалога»
    • Редактирование шаблона окна диалога
  • Редактирование диалога
    • Разметка
    • Слои
    • Создание элементов диалога
    • Выделение элементов диалога
    • Перемещение, копирование и изменение размеров элементов диалога
    • Выравнивание элементов диалога
    • Удаление элементов диалога
    • Отмена сделанных изменений
    • Назначение порядка обхода элементов диалога
  • Свойства элементов диалога
    • Общие свойства элементов диалога
    • Свойства шаблона окна диалога
    • Свойства элемента «Текст»
    • Свойства элемента «Кнопка»
    • Свойства элемента «Переключатель»
    • Свойства элементов типа «Список» и «Поле со списком»
    • Свойства элемента «Рамка группы»
    • Свойства элемента «Реквизит»
    • Свойства элемента «Таблица»
    • Свойства колонки элемента «Таблица»
    • Свойства элемента «Дерево»
    • Свойства элемента «Флажок»
    • Свойства элемента «Картинка»
    • Свойства элемента «Таблица значений»
  • Особенности использования элементов диалога
    • Работа с элементом типа «Флажок»
    • Использование элементов типа «Переключатель»
    • Работа с элементом типа «Таблица»
    • Вызов диалога в модальном режиме
  • Проверка диалога

Глава 25. Редактор текстов

  • Редактирование модулей
    • Выделение цветом синтаксических конструкций
    • Форматирование модуля
    • Переход по процедурам и функциям модуля
    • Синтаксический контроль модуля
    • Синтаксический контроль запросов
    • Вызов Отладчика
  • Конструктор запросов
    • Вызов Конструктора запросов
    • Работа с Конструктором запросов
    • Выход из Конструктора запросов
  • Конструктор бухгалтерских запросов
    • Вызов Конструктора бухгалтерских запросов
    • Выбор вида отчета
    • Схема «Оборотка»
  • Конструктор формирования операции
  • Конструктор движений регистров
  • Редактирование текстовых документов
    • Создание или открытие текстового документа
  • Подокна в редакторе текстов
  • Ввод и редактирование текста
  • Поиск и замена
  • Сохранение текстового документа
  • Печать текстового документа

Глава 26. Табличный редактор

  • Что такое таблица в системе 1С:Предприятие
  • Два режима работы таблицы
    • Таблица как итог отчета
    • Таблица в режиме ввода данных
  • Общие принципы создания шаблона
  • Работа с таблицами
    • Совместная работа таблицы и диалога
    • Создание или открытие табличного документа
    • Сохранение табличного документа
    • Просмотр таблицы
    • Выделение ячеек, строк и столбцов таблицы
    • Имена
    • Поиск и замена
    • Изменение высоты строк и ширины столбцов
  • Ввод текста в ячейку
  • Свойства ячеек таблицы
  • Панель формул
  • Перемещение и копирование ячеек
  • Добавление и удаление ячеек
  • Работа с секциями таблицы
    • Создание секции
    • Переименование и удаление секций
    • Изменение размеров секций. Вложенные и внешние секции
  • Использование графических объектов
    • Создание графических объектов
    • Выделение графических объектов
    • Перемещение и копирование графических объектов
    • Изменение размеров графических объектов
    • Изменение порядка расположения графических объектов
    • Удаление графических объектов
    • Имена графических объектов
    • Свойства графических объектов
  • Работа с OLE-объектами
  • Работа с диаграммой
    • Основные принципы и понятия
    • Настройка диаграммы
  • Конструктор печати
    • Результат работы Конструктора печати
  • Настройка печати
    • Колонтитулы
    • Разбиение на страницы
    • Автоматическое повторение строк и столбцов
    • Задание области печати
    • Настройка параметров страницы
    • Печать табличного документа

Глава 27. Администрирование

  • Ведение списка пользователей
    • Создание нового пользователя
    • Копирование пользователя
    • Установка пароля
    • Удаление пользователя
    • Упорядочивание списка пользователей
    • Сохранение списка пользователей
    • Редактирование свойств пользователя
  • Тестирование и исправление информационных баз
    • Принципы работы процедуры тестирования
    • Запуск процедуры
    • Сообщения при тестировании
  • Пакетный режим
    • Запуск Конфигуратора в пакетном режиме
    • Структура файла пакетного режима.
    • Работа в пакетном режиме
  • Настройка параметров журнала регистрации

Глава 28. Сохранение и восстановление данных

  • Сохранение данных
  • Восстановление данных

Глава 29. Сервисные возможности

  • Служебные окна
  • Настройка параметров Конфигуратора
    • Установка параметров модулей
    • Установка параметров текста
    • Установка параметров интерфейса
    • Настройка параметров Синтакс-Помощника
  • Калькулятор
  • Календарь
  • Временная блокировка
  • Синтакс-Помощник
    • Окно Синтакс-Помощника
    • Параметры Синтакс-Помощника
    • Копирование элементов встроенного языка
    • Поиск в Синтакс-Помощнике
  • Шаблоны
    • Ведение списка шаблонов
    • Создание нового шаблона
    • Копирование шаблона
    • Удаление шаблона
    • Упорядочивание списка шаблонов
    • Сохранение списка шаблонов
    • Редактирование шаблона
    • Управляющие конструкции шаблона
    • Использование шаблонов
  • Панели инструментов
    • Виды панелей инструментов
    • Управление панелями инструментов
    • Редактирование панелей инструментов
    • Параметры панелей инструментов
  • Сравнение файлов
  • «Советы дня»
  • Запуск системы 1С:Предприятие, Отладчика и Монитора пользователей

Глава 30. Конвертирование данных из предыдущих версий программ «1С»

  • Запуск конвертора
    • Выбор варианта конвертирования
  • Преобразование базы данных 1С:Бухгалтерия 6.0 в конфигурацию
    • Назначение конвертора
    • Установка параметров конвертора
    • Краткое описание процесса конвертирования
    • Рекомендации по изменению конфигурации после выполнения конвертирования
  • Загрузка базы данных 1С:Бухгалтерии 6.0 в конфигурацию
    • Общее описание процесса преобразования
    • Анализ остатков
    • Настройка переноса констант
    • Настройка переноса субконто
    • Настройка переноса остатков и проводок по счетам
    • Выполнение преобразования
    • Действия после выполнения конвертирования
  • Методика конвертирования данных программы 1С:Зарплата для DOS
    • Рекомендации

Глава 31. Отладчик

  • Использование Отладчика
  • Запуск Отладчика
  • Список модулей
  • Окно модуля
  • Точка останова
  • Пошаговое выполнение
  • Табло
  • Диалог «Выражение»
  • Стек вызовов
  • Замеры производительности
  • Настройка интерфейса

Глава 32. Монитор пользователей

  • Запуск системы 1С:Предприятие в режиме «Монитор»
  • Активные пользователи и Журнал регистрации
  • Архивирование журнала регистрации

Приложение 1. Реструктуризация информационной базы


1С-Предприятие. Документация | Технология создания внешних компонент. Оглавление.

Технология создания внешних компонент

Примечание: Файлы примеров компонент включены в файл документации. Возьмите их сдесь

Введение

  • Версии компонент
  • Что Вы должны знать
  • Структура руководства

Часть 1. Внешние компоненты

  • Внешние компоненты
  • Средства встроенного языка 1С:Предприятия, предназначенные для работы с внешними компонентами.
    • ЗагрузитьВнешнююКомпоненту
    • ПодключитьВнешнююКомпоненту
    • ОбработкаВнешнегоСобытия
  • Разработка внешней компоненты
    • Создание OLE-объекта внешней компоненты
    • Инициализация и выгрузка компоненты
      • HRESULT Init(IDispatch *pBackConnection)
      • HRESULT Done(void)
      • HRESULT GetInfo(SAFEARRAY **pInfo)
  • Страница свойств
  • Расширение встроенного языка
    • HRESULT RegisterExtensionAs(BSTR *pExtensionName):
  • Свойства расширения
    • HRESULT GetNProps(long *plProps)
    • HRESULT FindProp(BSTR pszPropName,long*plPropNum)
    • HRESULT GetPropName(long lPropNum,long lAliasNum,BSTR *pPropName)
    • HRESULT GetPropVal(long lPropNum,VARIANT *pvPropVal)
    • HRESULT SetPropVal(long lPropNum, VARIANT *pvPropVal)
    • HRESULT IsPropReadable(long lPropNum, BOOL *pboolPropReadable)
    • HRESULT IsPropWritable(long lPropNum, BOOL *pboolPropWritable)
  • Методы расширения
    • HRESULT GetNMethods(long *plMethods)
    • HRESULT FindMethod(BSTR bstrMethodName,long *plMethNum)
    • HRESULT GetMethodName(long lMethodNum, long lAliasNum,BSTR *pbstrMethName)
    • HRESULT GetNParams(long lMethodNum, long *plMethParams)
    • HRESULT GetParamDefValue(long lMethodNum, long lParamNum,VARIANT *pvParamDefVal)
    • HRESULT HasRetVal(long lMethodNum,BOOL *pboolHasRetVal)
    • HRESULT CallAsProc(long lMethodNum, SAFEARRAY **pVars)
    • HRESULT CallAsFunc(long lMethodNum, VARIANT *pRetValue, SAFEARRAY**pVars)
  • Использование типа OLE VARIANT при обмене данными
  • Вызов функции компоненты
  • Возвращение значений из компоненты
  • Вызов метода объекта 1С:Предприятия из компоненты
  • OLE интерфейсы 1C:Предприятия
  • Сохранение параметров объекта компоненты
    • HRESULT RegisterProfileAs(BSTR bstrProfileName)
  • Информационные сообщения о работе объекта
    • HRESULT AddError(BSTR pszPropName, LPEXCEPINFO pExcepInfo)
  • Внешние события
    • HRESULT SetEventBufferDepth(long lDepth)
    • HRESULT GetEventBufferDepth(long *plDepth)
    • HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData)
    • HRESULT CleanBuffer()
  • Работа с строкой состояния
    • HRESULT SetStatusLine(BSTR bstrStatusText)
    • HRESULT ResetStatusLine()
  • Создание окон в среде 1С:Предприятия
    • Модальные диалоги
    • Немодальные диалоги
    • Формы
    • HRESULT GetAppMainFrame(HWND *pHWnd)
    • HRESULT GetAppMDIFrame(HWND *pHWnd)
    • HRESULT CreateAddInWindow(BSTR bstrProgID, BSTR bstrTitle, long lStyles,long lExStyles, RECT *rctSize, long lFlags, HWND *pHwnd, IDispatch **pDisp)
  • Доступ к 1С:Предприятию через механизм OLE Automation
  • Доступ к методам интерфейсов 1С:Предприятия через OLE Automation

Часть 2. Примеры внешних компонент.

  • Структура каталогов.
  • Описание конфигураций.
    • Конфигурация для 1С:Предприятия 7. 5.
    • Конфигурация для 1С:Предприятия 7. 7.
  • Описание компонент
    • Компонента SAMPLE
    • Компонента SAMPLE2
  • Microsoft Visual C++ 50
    • Компонента SAMPLE
    • Компонента SAMPLE2
  • Microsoft Visual Basic 5.0 и 6.0 (Enterprise Edition)
    • Общая часть компонент
    • Компонента SAMPLE
    • Компонента SAMPLE2
  • Borland Delphi 3.0 и 4.0
    • Общая часть компонент.
    • Компонента SAMPLE
    • Компонента SAMPLE2
  • Шаблоны
  • Рекомендации по построению компоненты

Часть 3. Введение в OLE

  • Интерфейсы в OLE
  • Объекты OLE
  • OLE Automation
  • Active Documents
  • Литература


1С-Предприятие. Документация | SQL - Особенности установки и конфигурирования: Оглавление

1C: Предприятие для SQL. Особенности

Введение

  • Структура руководства
  • Что вы должны знать
  • Изменения и дополнения
  • Соглашения

Глава 1 Принципы построения системы 1C:Предприятие для SQL

  • Общее описание
  • Особенности хранения данных в системе 1С: Предприятие для SQL
  • Преимущества использования специализированных серверов баз данных
  • Структура программных средств
  • Требования к аппаратуре и программному обеспечению

Глава 2 Установка системы 1C:Предприятие для SQL

  • Общее описание
  • Особенности установки MS SQL Server 6.5 для совместной работы с системой 1С:Предприятие для SQL.
  • Установка ODBC 3.5
  • Установка клиентской части MS SQL Server
  • Установка 1C:Предприятие 7.5 для SQL. MS SQL Server

Глава 3 Работа с системой 1C:Предприятие для SQL

  • Общее описание
  • Инициализация информационной базы
  • Перенос информационной базы из формата системы 1C:Предприятие 7.5 в формат системы 1С:Предприятие 7.5 для SQL
  • Каталог информационной базы и база данных на сервере
  • Длина реквизитов текстового типа
  • Особенности пользовательского интерфейса
  • Особенности выполнения транзакций
  • Работа системы 1С:Предприятие для SQL в распределенных информационных базах
  • Резервное копирование данны


1С-Предприятие. Документация | Описание внешней компоненты V7Plus.dll. Оглавление

Описание внешней компоненты V7Plus

Оглавление

Введение

Свойства и методы объекта V7Mail

  • Назначение и порядок использования
  • Настройка параметров объекта
  • Тип почты
    • MAPI
    • 1C:Электронная почта
  • Описание атрибутов и методов объекта V7Mail
    • Атрибуты
      • Заголовок
      • Текст
      • ДатаОтправки
    • Методы
      • Подключиться
      • Отключиться
      • НовоеСообщение
      • ДобавитьАдрес
      • ДобавитьФайл
      • Послать
      • ВыбратьСообщения
      • ПолучитьСообщение
      • ПрочитатьСообщение
      • АдресОтправителя
      • ПолучитьФайл
      • УдалитьСообщение
  • Примеры
  • Особенности работы с различными клиентами MAPI.
    • Outlook Express 5.0.
    • Outlook 97.
    • Outlook 2000.
    • Netscape Messenger.

Свойства и методы объекта V7HttpReader

  • Краткие сведения о протоколе HTTP
  • Назначение и порядок использования
  • Описание атрибутов и методов объекта V7HttpReader
    • Атрибуты
      • КоличествоПопытокАвторизации
      • СтрокаСостоянияОтвета
    • Методы
      • Пользователь
      • Получить
      • ПолучитьКакФайл
      • ПолучитьКакСтроку
      • ПолучитьКакОбъект
      • ОтправитьДляОбработки
      • УдалитьЗаголовкиЗапроса
      • УстановитьЗаголовокЗапроса
      • ПолучитьЗаголовокОтвета
      • ПолучитьСодержаниеЗаголовкаОтвета

Атрибуты объекта V7SysInfo.

  • Назначение объекта компоненты V7SysInfo.
  • Описание атрибутов объекта V7SysInfo
    • Атрибуты
      • ВерсияОС
      • Процессор
      • ОперативнаяПамять
      • РелизПрограммы
      • ИмяФайлаПрограммы
    • Методы
      • ПроверитьИмяФайла
      • СоздатьGUID

Анализатор XML-документов XMLParser

  • Основные понятия и термины
  • Объектная модель анализатора
  • Состав объектной модели
    • Анализатор
      • Методы
        • СоздатьДокумент
        • СоздатьКоллекциюСхем
      • Атрибуты
        • ВерсияАнализатора
        • ВерсияАнализатора
        • ВерсияБазовогоАнализатора
    • Базовый объект - узел
      • Методы
        • КоличествоПодчиненных
        • ПолучитьПодчиненныйПоНомеру
        • ДобавитьПодчиненный
        • УдалитьПодчиненный
        • ВыбратьУзлы
        • ВыбратьУзел
        • СоздатьПодчиненныйЭлемент
        • ПреобразоватьВ_ИД
      • Атрибуты
        • Тип
        • ТипСтрока
        • ПолноеНаименование
        • Наименование
        • Префикс
        • Родитель
        • ДокументВладелец
        • ТипДанных
        • Текст
        • Значение
        • ПредставлениеXML
    • Документ
      • Методы
        • Загрузить
        • Записать
        • ЗагрузитьИзСтроки
        • СоздатьУзел
        • НайтиПоИД
        • Проверить


1С-Предприятие. Документация | Управление распределенными ИБ. Оглавление

Компонента «Управление распределенными ИБ»

Введение

  • Структура Руководства
  • Что вы должны знать
  • Принятые обозначения
  • Используемые термины и сокращения
  • Какие задачи решает компонента «Управление распределенными ИБ»

Глава 1

Установка и подключение компоненты

  • Требования к аппаратно-программному обеспечению
  • Установка
  • Защита от копирования
  • Подключение

Глава 2

Основные принципы работы компоненты

  • Общие принципы
  • Принципы разрешения спорных ситуаций

Глава 3

Инициализация распределенной информационной базы

  • Инициализация центральной ИБ
  • Создание образа периферийной ИБ
  • Инициализация периферийной ИБ
  • Управление структурой распределенной информационной базы
  • Автообмен. Настройка и использование
    • Настройка параметров автообмена на центральной ИБ
    • Настройка параметров автообмена на периферийной ИБ

Глава 4

Выгрузка и загрузка данных

  • Ручная выгрузка и загрузка на периферийной ИБ
  • Ручная выгрузка и загрузка на центральной ИБ
  • Автообмен на периферийной ИБ
  • Автообмен на центральной ИБ
  • Выполнение автообмена в пакетном режиме

Глава 5

Управление режимами миграции данных внутри распределенной ИБ

  • Настройка свойств миграции
  • Корректное использование свойств миграции

Глава 6

Средства встроенного языка, ориентированные на работу с распределенной ИБ

  • Системные функции
    • ТекущаяИБКод
    • ТекущаяИБНаименование
    • ЦентральнаяИБКод
    • ТекущаяИБЦентральная
    • ИБСозданияОбъекта
    • ТекущаяИБТолькоПолучатель
  • Методы агрегатных объектов
    • РегистрацияИзменений

Глава 7

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

  • Номера документов и коды элементов справочников
  • Методы исключения коллизий
  • Настройка пользовательского интерфейса
  • Настройка прав доступа
  • Использование средств встроенного языка
  • Методы исключения некорректного использования свойств миграции

  • Дополнение


1С-Предприятие. Документация | Web-расширение. Оглавление

Web-расширение

Введение

  • Структура описания
Интернет-технологии
  • Общие понятия и термины
  • Web-серверы
  • Браузеры
  • Web-приложения
Web-приложения
  • Область использования Web-приложений
  • Архитектура Web-приложений
  • Cookies
  • Построение Web-приложения
Серверные технологии
  • Свойства браузеров
  • Интернет-магазины
Технология ASP
  • ASP-страницы
  • Приложение
  • Пользовательские сессии
  • Объекты
    • Request
    • Cookies
    • QueryString
    • ServerVariables
    • Response
    • Cookies
    • Buffer
    • Write
    • Clear
    • End
    • Flush
    • Redirect
    • Server
    • ScriptTimeout
    • CreateObject
    • URLEncode
    • MapPath
    • Session
    • SessionID
    • Timeout
    • Abandon
    • Value
    • Application
    • Lock
    • Unlock
    • Value

Установка и запуск

  • Microsoft Internet Information Server
  • Установка IIS
    • Windows NT 4.0
    • Windows 2000
  • Web-приложения
    • Создание приложения
    • Остановка приложения
    • Пользовательский контекст
    • Остановка и перезапуск IIS
    • Управление "устареванием" страниц
    • Frontpage
        • Windows NT 4.0
        • Windows 2000
  • Web-расширение
    • 1С:Предприятие 7.7
    • Настройка DCOM
  • Соединение с 1C Предприятием
    • Настройка DCOM
    • Файл параметров
    • Файл соединения
    • Настройка DCOM
    • Интеграция ASP и 1C:Предприятия 7.
Возможности Web-расширения
    • Создание ASP-страниц
    • Сессия и модуль сессии
      • WebНачатьСессию
      • WebЗавершитьСессию
    • Использование табличных документов 1C:Предприятия 7.7

Пример Web-приложения «Портал реализатора»

  • Конфигурация
  • Контроль работы с порталом
  • Режимы работы портала
    • Информация
    • Список заказов
    • Данные о реализации
    • Список реализации
    • Инвентаризация
    • Список инвентаризаций
    • Отчет о расчетах по реализации
    • Отчеты о реализации
    • Прайс-лист
  • Страницы портала
    • Общие страницы
      • Common.css
      • Global.asa
      • Main.asp (frameset)
      • Menu.htm
      • Default.asp
      • Exit.asp
    • Информация
      • Info.asp
    • Заказ
      • Order.asp
      • Ord_Cat.asp
      • Ord_FG.asp
      • Ord_Item.asp
      • Ord_List.asp
    • Данные о реализации
      • Sale. asp
      • SalJList.asp
    • Инвентаризация
      • Inventor, asp
      • Inv_List.asp
    • Отчет о расчетах по реализации
      • CFA.asp
      • CFAJSet.asp
      • CFA_Data.asp
    • Отчет о реализации
      • Report.asp
      • Rep_Set.asp
      • RepJData.asp
      • Price.asp
  • Модуль сессии
  • Используемые приемы программирования
    • Фреймы
    • Вызовы функций с других страниц
    • Передача параметров между страницами
    • Навигация по справочнику
    • Выбор из справочника
    • Выбор из списка документов
    • Использование табличных документов для генерации HTML-страниц
    • Управление созданием таблицы
    • Приемы JavaScript


1С-Предприятие. Документация | Описание типовой конфигурации "Зарплата и Кадры"

Описание типовой конфигурации "Зарплата и Кадры".

Введение

Пользователи, их права и интерфейсы

Администратор

Главный бухгалтер

Расчетчик

Кадровик

Перед началом работы

Концепция программы

Системы и формы оплаты труда

Отработанное время

Штатное расписание

Кадровый учет

Исходные данные для проведения расчетов

Помощники

План счетов и экспорт проводок в бухгалтерские программы

Северные и районные особенности

Военнослужащие

Использование классификаторов

Использование расширенных возможностей расчета заработной платы и кадрового учета

Настройка на конкретное предприятие

Стартовый помощник

Путеводитель

После запуска программы

Настройки

Общие настройки

Настройки пользователей

Настройка параметров отчетов

Формирование структуры предприятия

Категории

Должности

Формирование штатного расписания

Помощник заполнения штатного расписания

Штатное расписание

Изменение штатного расписания

Виды расчетов

Назначение хозяйственной операции

Назначение типа дохода

Назначение базы начислений

Редактирование свойств вида расчетов

Ввод и описание дополнительных начислений и Удержаний

Районные коэффициенты и северные надбавки

Районные коэффициенты

Северные надбавки

Средний заработок

Вспомогательные справочники для расчета зарплаты

Разряды рабочих

Прогрессивный коэффициент

Справочник работ (технологических операций) и сдельных расценок

Проценты выслуги

Особенности бюджетных организаций

Единая тарифная сетка

Налоги и отчисления с фонда оплаты труда

Особенности настройки расчета оплаты труда военнослужащих

Сведения о банках

Формирование списка сотрудников

Помощник приема на работу

Прием на работу

Сведения о сотрудниках

Редактирование общих данных

Совместительство

Вычеты по налогу на доходы физических лиц

Дотации на питание и проезд

Кадровые данные

В группе реквизитов «Пенсионный фонд» вводится следующая ин формация

Ввод адресов сотрудников и адресные классификаторы

Ввод информации об удостоверении личности и прочих документах сотрудников

Состав семьи

Трудовая деятельность

Образование

Аттестация

Квалификация

Переподготовка

Кадровые классификаторы

Учебные заведения

Ввод начальных данных для расчетов

Ввод данных с начала года до начала расчетов в налоговую карточку

Особенности ввода данных с начала года при расчете налога на доходы физических лиц по фактически полученным доходам

Ввод справки о доходах на предыдущем месте работы

Ввод данных о прочих физических лицах

Договор купли-продажи

От начала месяца до выплаты зарплаты

Помощник расчетов

Начало расчетного периода

Смена периода расчета

Начало расчетного месяца

Работа с кадровыми приказами

Помощник приема на работу

Зачисление на работу

Кадровые перемещения

Увольнение

Договора гражданско-правового характера

Приказ по предприятию

Учет отработанного времени

Графики сменной работы

Журнал расчетов «Зарплата»

Ввод начислений и удержаний

Помощник ввода начислений и удержаний

Начисления и удержания на одного сотрудника

Начисления и удержания списком

Ввод отклонений

Помощник ввода документов-отклонений

Ввод больничных листов

Ввод отпуска

Ввод оплаты по среднему заработку

Невыходы на работу

Приказ о работе в праздники

Оплата сверхурочных часов

Удержания длительного действия

Исполнительные листы

Ссуда предприятия

Перечисление зарплаты в банк

Ввод нарядов

Бригадные наряды

Сдельные наряды

Использование справочника сдельных расценок

Ввод табеля отработанного времени

Выполнение расчетов

Выплата денег через кассу (перечисление на счет в банке)

Помощник выплаты зарплаты

Платежная ведомость

Процедура оплаты платежной ведомости

Возврат денег в кассу

Рекомендации по частой выплате зарплаты

Ведение депонентов

Депонирование

Справочник депонентов

Выплата с депонента

Ввод книги депонентов

Прочие документы

Единовременные пособия

Ввод прочих начислений

Выплата дивидендов по акциям

Материальная выгода по вкладам (договорам страхования)

Приказ о лишении премии

Расчет оплаты труда на комиссионной основе

Как назначить сотруднику оплату труда на комиссионной основе

Возможные варианты расчета оплаты труда на комиссионной основе

Оплата «процентом от выручки»

Ввод сумм фактической выработки (выручки)

Оплата по окладу плюс процент от выручки

Оплата «процентом от выручки, не менее оклада»

Отчеты

Табель

Расчетные листки

Расчетные ведомости

Алименты

Перечисления в банки

Ведомости по больничным листам

Результаты расчетов в произвольной форме

Налоговая ведомость

О доходах сотрудника

Об итоговых суммах доходов

Отчеты для Пенсионного фонда РФ

Среднесписочная численность

Кадровые отчеты

Список сотрудников в произвольной форме

Экспорт бухгалтерских проводок

Редактирование данных прошлых периодов

Помощник корректировок

Распределение зарплаты по счетам затрат и формирование проводок

Счета

Справочники «Виды аналитики» и «Элементы аналитики»

Хозяйственные операции

Настройка хозоперации видов расчетов

Порядок распределения по счетам

Распределение основных начислений

Интернет-поддержка пользователей

Работа с Интернет-поддержкой

Состав Интернет-поддержки

Посылка мнения на фирму «1С»

Обращение в отдел технической поддержки фирмы «1С»

Ответы отдела технической поддержки фирмы «1С»

1С.RU

Налог на доходы физических лиц

Ставки налога

Классификаторы доходов и вычетов

Справочник «Доходы»

Справочник «Типы скидок»

Справочник «Вычеты»

Назначение типа дохода

Налоговые вычеты сотрудников

Расчет налога на доходы физических лиц по фактически полученным доходам

Начисленные и полученные доходы

Выбор порядка исчисления налога на доходы физических лиц

Рекомендации по расчету налога по полученным доходам

Правила учета доходов при расчете налога по полученным доходам

Ввод начальных данных

Возврат налога на доходы физических лиц

Перерасчет налога по итогам года

Справка о каникулах

Налоги и отчисления во внебюджетные фонды

Налоги и перечисления

Облагаемая база для налогов и взносов

Ввод нового местного налога

Удержания в Пенсионный фонд РФ

Импорт данных

Импорт адресных классификаторов

Импорт из 1С: Налогоплательщика

Загрузка данных из текстового файла

Сервисные возможности

Калькулятор

Календарь

Перерасчет окладов и тарифов

Работа с периодическими реквизитами справочников

Просмотр истории периодических реквизитов

Редактирование истории периодических реквизитов

Комментарий к документам

Блокнот

Правовая поддержка

Дополнение к описанию

Приложение

Список констант конфигурации

Обновление конфигурации

Рекомендации по конфигурированию календарей для многосменной работы

Методика конвертирования данных программы 1С .'Зарплата для DOS

Рекомендации

Нормативные документы


Part0

Введение

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

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

Назначение и краткая характеристика встроенного языка

Встроенный язык системы 1С:Предприятие предназначен для описания (на стадии разработки конфигурации) алгоритмов функционирования прикладной задачи.

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

При своей относительной простоте язык обладает некоторыми объектно-ориентированными возможностями, например, правила доступа к атрибутам и методам специализированных типов данных (документам, справочникам и т. п.) подобны свойствам и методам объектов, используемых в других объектно-ориентированных языках. Однако специализированные типы данных не могут определяться средствами самого языка, а задаются в визуальном режиме конфигуратора.

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

Построение книги

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

Формат описания элементов языка

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

Соглашения и обозначения, принятые в синтаксических диаграммах

В синтаксических диаграммах используются следующие символы:

Символ | Значение
[ ] | В квадратных скобках заключаются необязательные синтаксические элементы.
( ) | Круглые скобки заключают в себе список параметров.
| | Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбрать только один.

Синтаксическая диаграмма описания элемента языка

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

ЭлементЯзыка

Краткое описание того, что делает данный ЭлементЯзыка.

Синтаксис:

ЭлементЯзыка(<Параметр1>, <Параметр2>, ...) [ДобКлючевоеСлово]

Англоязычный Синтаксис: (в случае языковых конструкций)

Keyword(<Параметр1>, <Параметр2>, ...)[AddKeyWord]

Англоязычный синоним: (в случае описания методов, функций и процедур)

Keyword

Параметры:

<Параметр1> краткое описание <Параметра1>.

<Параметр2> краткое описание <Параметра2>.

[ДобКлючевоеСлово] краткое описание ДобКлючевоеСлово.

Возвращаемое значение:

Тип и краткое описание возвращаемого значения.

Описание:

Подробное описание того, что реализует ЭлементЯзыка.

Пример:

· Краткое описание примера

// Исходный текст примера

См. также: Ссылки на другие методы, процедуры или функции.


Part1

Глава 1
Формат исходных текстов программных модулей

Что такое программный модуль?

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

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

Каждый отдельный программный модуль воспринимается системой как единое целое, поэтому все процедуры и функции программного модуля выполняются в едином контексте.

Контекст выполнения программного модуля

Каждый программный модуль связан с остальной частью конфигурации задачи. Эта связь называется контекстом выполнения модуля. Следует различать два вида контекста:

· глобальный контекст задачи;

· локальный контекст выполнения конкретного модуля.

Глобальный контекст образуется:

· значениями системных атрибутов, системными процедурами и функциями;

· значениями заданных в конфигураторе констант, перечислений, регистров, видов расчета, групп видов расчета;

· переменными, процедурами и функциями глобального программного модуля, объявленными с ключевым словом Экспорт.

Глобальный контекст виден всем программным модулям и определяет общую языковую среду конфигурации.

Локальный контекст модуля образуется тем конкретным местом конфигурации задачи, для которого использован программный модуль. Локальный контекст виден только конкретному программному модулю и определяет для модуля набор непосредственно доступных модулю значений агрегатных типов данных, их атрибутов и методов (см. «Виды программных модулей»). Однако, контекст модуля можно передать как объект в виде параметра при вызове процедур и функций (см. «Передача локального контекста программного модуля в качестве параметра»). Кроме того, контекст модуля определяет тот набор методов, которые доступны только в данном контексте (см. «Атрибуты и методы контекста Модуля формы», «Методы контекста Модуля формы элемента справочника» и т. п.). Локальный контекст предназначен для того, чтобы дать возможность управлять частными аспектами поведения задачи, присущими данному модулю.

Виды программных модулей

В системе 1С:Предприятие существуют следующие виды программных модулей (места размещения программных модулей в конфигурации задачи), доступных в конфигураторе:

Размещение

Момент запуска

Контекст выполнения

Глобальный модуль

Размещается в корневом разделе конфигурации: Метаданные.

Запускается при старте всей прикладной задачи.

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

Модуль Формы списка справочника

Размещается в разделе конфигурации: Метаданные — Справочник — Форма списка.

Запускается при вызове формы списка справочника.

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

Модуль Формы группы справочника

Размещается в разделе конфигурации: Метаданные — Справочник — Форма группы.

Запускается при открытии формы группы справочника.

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

Модуль Формы элемента справочника

Размещается в разделе конфигурации: Метаданные — Справочник — Форма элемента.

Запускается при открытии формы элемента справочника.

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

Модуль Формы документа

Размещается в разделе конфигурации: Метаданные — Документ — Форма.

Запускается при открытии формы документа.

В модуле доступны: глобальный контекст, контекст Модуля формы документа, в котором непосредственно доступны реквизиты текущего документа и реквизиты формы документа.

Модуль документа

Размещается в разделе

конфигурации: Метаданные — Документ — Модуль документа.

Запускается при проведении документа, при удалении проведенного документа, при снятии проведения, при выполнении архивации записей журнала расчетов, порожденных документом.

В модуле доступны: глобальный контекст, контекст Модуля документа, в котором непосредственно доступны реквизиты текущего документа.

Модуль Формы журнала документов

Размещается в разделе конфигурации: Метаданные — Журнал — Форма.

Запускается при вызове формы журнала документов.

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

Модуль Формы журнала расчетов

Размещается в разделе конфигурации: Метаданные — Журнал расчетов — Форма.

Запускается при вызове формы журнала расчетов.

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

Модуль Формы списка счетов

Размещается в разделе конфигурации: Метаданные — План счетов.

Запускается при вызове формы списка счетов.

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

Модуль Формы счета

Размещается в разделе конфигурации: Метаданные — Справочник

— счет.

Запускается при открытии формы счета.

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

Модуль Формы журнала операций

Размещается в разделе конфигурации: Метаданные — Журнал операций — Форма.

Запускается при вызове формы журнала операций.

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

Модуль Формы операции

Размещается в разделе конфигурации: Метаданные — Операция.

Запускается при открытии формы операции.

В модуле доступны: глобальный контекст, контекст Модуля формы операции, в котором непосредственно доступны реквизиты текущей операции и реквизиты формы операции.

Модуль Формы журнала проводок

Размещается в разделе конфигурации: Метаданные — Журнал проводок — Форма.

Запускается при вызове формы журнала проводок.

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

Модуль Формы отчета

Размещается в разделе конфигуратора: Метаданные — Отчет — Форма.

Запускается при открытии диалоговой формы подготовки отчета.

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

Модуль Формы обработки

Размещается в разделе конфигуратора: Метаданные — Обработка — Форма.

Запускается при открытии диалоговой формы обработки.

В модуле доступны: глобальный контекст, контекст Модуля формы обработки, в котором непосредственно доступны реквизиты формы.

Модуль вида расчета

Размещается в разделе конфигуратора: Метаданные — Вид расчета — Модуль вида расчета.

Запускается при расчете соответствующих записей журнала расчетов.

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

Формат программного модуля

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

Комментарии

Комментарий используется для размещения в исходном тексте программного модуля всякого рода пояснений к работе модуля. Хорошим тоном программирования считается, когда исходный текст содержит исчерпывающий комментарий с описанием алгоритма. В режиме исполнения программы комментарии пропускаются. В тексте программного модуля комментарий начинается парой символов "//" и заканчивается концом строки. Это значит, что комментарий можно начинать с начала строки или записывать его после оператора на той же строке. После начала комментария писать оператор на той же строке нельзя, необходимо закончить комментарий концом строки.

Пример:

А=В; // Это – комментарий

// Это тоже комментарий

Формат операторов

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

Операторы языка в программном модуле можно подразделить на две категории: операторы объявления переменных и исполняемые операторы.

Операторы объявления переменных создают имена переменных, которыми манипулируют исполняемые операторы.

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

В общем случае формат оператора языка следующий:

~метка:Оператор[(параметры)] [ДобКлючевоеСлово];

В качестве меток используются специальные идентификаторы, начинающиеся с символа '~' (тильда) и состоящие из последовательности букв, цифр и символов '_'. Чтобы пометить оператор, надо поместить перед ним метку и следующий за ней символ ":".

Пример:

~метка:А=В;

Имена переменных, процедур и функций

Именем переменной, объявленной процедуры или функции может быть любая последовательность букв, цифр и знаков подчеркивания "_", начинающаяся с буквы или знака подчеркивания "_". Вновь создаваемые имена не должны совпадать с зарезервированными словами языка или именами существующих процедур и функций, доступных на момент выполнения. Распознавание имен переменных, процедур и функций ведется без учета регистра букв.

Зарезервированные слова

Приведенные далее ключевые слова являются зарезервированными и не могут использоваться в качестве создаваемых имен переменных и объявляемых процедур и функций. В данном варианте языка каждое из ключевых слов имеет два представления — русское и английское. Английское представление является традиционным для языков программирования. Ключевые слова в русском и английском представлении могут свободно смешиваться в одном исходном тексте. Регистр букв ключевых слов не имеет значения. Ниже приведен список ключевых слов в обоих вариантах представления.

Если | If | He | Not | Дата | Date
Тогда | Then | Знач | Val | Формат | Format
ИначеЕсли | Elsif | СтрДлина | StrLen | Разм | Dim
Иначе | Else | СокрЛ | TrimL | Вопрос | Do Query Box
КонецЕсли | Endlf | СокрП | TrimR | Контекст | Context
Цикл | Do | Лев | Left | Перем | Var
Для | For | Прав | Right | Перейти | Goto
По | To | Сред | Mid | Возврат | Return
Пока | While | Цел | Int | Продолжить | Continue
Функция | Function | Окр | Round | Прервать | Break
КонецПроцедуры | EndProcedure | Число | Number | И | And
КонецФункции | EndFunction | Строка | String | Или | Or
Предупреждение | DoMessageBox | КонецЦикла | EndDo | Процедура | Procedure

Структура программного модуля

Структуру программного модуля можно подразделить на следующие разделы:

· раздел определения переменных;

· раздел процедур и функций;

· раздел основной программы.

В конкретном программном модуле любой из разделов может отсутствовать.

Раздел определения переменных размещается от начала текста модуля до первого оператора Процедура или оператора Функция или любого исполняемого оператора. В этом разделе могут находиться только операторы объявления переменных Перем.

Раздел процедур и функций размещается от первого оператора Процедура или оператора Функция до любого исполняемого оператора вне тела описания процедур или функций.

Раздел основной программы размещается от первого исполняемого оператора вне тела процедур или функций до конца модуля. В этом разделе могут находиться только исполняемые операторы. Раздел основной программы исполняется в момент запуска модуля на выполнение (см. «Виды программных модулей»). Обычно в разделе основной программы имеет смысл размещать операторы инициализации переменных какими-либо конкретными значениями, которые необходимо провести до первого вызова любой из процедур или функций модуля.

Специальные символы, используемые в исходном тексте

// | Двумя знаками «косая черта» начинается комментарий. Комментарием считается весь текст от знака "//" до конца текущей строки.
| | Вертикальная черта в начале строки используется только в строковых константах и означает, что данная строка является продолжением предыдущей (перенос строки), (см. «Строковые константы»).
~ | Знаком тильда начинается метка оператора.
: | Двоеточием заканчивается метка оператора.
; | Точка с запятой является символом разделения операторов.
( ) | В круглые скобки заключается список параметров методов, процедур и функций.
[ ] | В квадратные скобки заключается размерность массивов.
, | Запятая разделяет параметры в списке параметров методов, процедур и функций.
" " | В двойные кавычки заключаются строковые константы.
' ' | В одинарные кавычки заключаются константы даты.
. | Десятичная точка в числовых константах. Разделитель, используемый в описаниях агрегатных типов данных.
+ | Символ «плюс» обозначает операцию сложения.
- | Символ «минус» обозначает операцию вычитания.
* | Символ «звездочка» обозначает операцию умножения.
/ | Символ «косая черта» обозначает операцию деления.
> | Правая угловая скобка обозначает логическую операцию «больше».
>= | Логическая операция «больше или равно».
< | Левая угловая скобка обозначает логическую операцию «меньше».
<= | Логическая операция «меньше или равно».
= | Знак равенства обозначает присвоение или логическую операцию «равно».
<> | Две угловые скобки обозначают логическую операцию «не равно».

Процедуры и функции программного модуля

Процедура

Секция описания процедуры.

Синтаксис:

Процедура <Имя_проц>([[Знач] <Парам1>[=<ДефЗнач>],

... , [Знач] <ПapaмN>[=<ДeфЗнaч>]]) [Экспорт]

//Объявления локальных переменных;

//Операторы;

...

[Возврат;]

//Операторы;

...

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

Англоязычный Синтаксис:

Procedure <Имя_проц>([[Val] <Парам1>[=<ДефЗнач>],

... , [Val] <ПарамN>[=<ДефЗнач>]]) [Export]

//Объявления локальных переменных;

//Операторы;

...

[Return;]

//Операторы;

...

EndProcedure

Параметры:

<Имя_проц>

Назначает имя процедуры.

Знач

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

<Парам1>, ..., <ПарамN>

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

=<ДефЗнач>

Необязательная установка значения параметра по умолчанию. Параметры с установленными значениями по умолчанию можно располагать в любом месте списка формальных параметров.

Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа).

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

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

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

Экспорт

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

//Объявления локальных переменных

Объявляются локальные переменные, на которые можно ссылаться только в рамках этой процедуры (см. оператор Перем).

//Операторы

Исполняемые операторы процедуры.

Возврат

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

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

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

Описание:

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

При выполнении оператора Возврат процедура заканчивается и возвращает управление в точку вызова. Если в тексте процедуры не встретился оператор Возврат, то после выполнения последнего исполняемого оператора происходит выполнение неявного оператора Возврат. Конец программной секции процедуры определяется по оператору КонецПроцедуры.

Переменные, объявленные в теле процедуры в разделе Объявления_локальных_переменных, являются локальными переменными данной процедуры, поэтому доступны только в этой процедуре (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).

Замечание: ключевые слова Процедура, КонецПроцедуры, являются не операторами, а операторными скобками, поэтому не должны заканчиваться точкой с запятой (это может приводить к ошибкам выполнения модуля).

См. также: «Передача параметров»

Пример:

Перем Глоб;

// Описание процедуры

Процедура МояПроцедура(Пар1, Пар2, ПарЗ) Экспорт

Глоб = Глоб + Пар1 + Пар2 + ПарЗ;

Возврат;

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

Глоб = 123;

МояПроцедура(5, 6, 7);   // Вызов процедуры

Функция

Секция описания функции.

Синтаксис:

Функция <Имя_функции>([[Знач] <Парам1>[=<ДефЗнач>], ...

, [Знач] <ПарамN> [=<ДефЗнач>]])[Экспорт]

//Объявления локальных переменных;

// Операторы;

...

Возврат <ВозвращаемоеЗначение>;

// Операторы;

...

КонецФункции

Англоязычный Синтаксис:

Function <Имя_функции> ([[Val] <Парам1>[=<ДефЗнач>], ...

, [Val] <ПapaмN> [=<ДефЗнач>]])[Export]

//Объявления локальных переменных;

// Операторы;

...

Return <ВозвращаемоеЗначение>;

// Операторы;

...

EndFunction

Параметры:

<Имя_функции>

Назначает имя функции.

Знач

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

<Парам1>, ..., <ПарамN>

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

=<ДефЗнач>

Необязательная установка значения параметра по умолчанию. Параметры с установленными значениями по умолчанию можно располагать в любом месте списка формальных параметров.

Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа).

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

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

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

Экспорт

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

//Объявления локальных переменных

Объявляются локальные переменные, на которые можно ссылаться только в рамках этой функции (см. оператор Перем).

//Операторы

Исполняемые операторы функции.

Возврат

Ключевое слово, которое завершает выполнение функции и возвращает ВозвращаемоеЗначение в выражение, в котором используется функция. Использование данного ключевого слова в функции обязательно.

<ВозвращаемоеЗначение>

Выражение, значение которого содержит результат обращения к функции.

КонецФункции

Обязательное ключевое слово, обозначающее конец исходного текста функции.

Описание:

Ключевое слово Функция начинает секцию исходного текста функции, выполнение которой можно инициировать из любой точки программного модуля, просто указав Имя_функции со списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в глобальном программном модуле в теле описания функции использовано ключевое слово Экспорт, то это означает, что данная функция является доступной из всех других программных модулей конфигурации. Ключевое слово Экспорт имеет смысл использовать только в глобальном программном модуле.

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

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

Переменные, объявленные в теле функции в разделе Объявления_локальных_переменных, являются локальными переменными данной функции, поэтому доступны только в этой функции (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).

Замечание: ключевые слова Функция, КонецФункции являются не операторами, а операторными скобками, поэтому не должны заканчиваться точкой с запятой (это может приводить к ошибкам выполнения модуля).

См. также: «Передача параметров»

Пример:

Перем Глоб;

// Описание функции

Функция МояФункция(Парам1, Парам2, ПарамЗ) Экспорт

Лок = Глоб + Парам1 + Парам2 + ПарамЗ;

Возврат Лок;

КонецФункции

Глоб = 123;

Рез = МояФункция(5, 6, 7);      // Вызов функции

Предварительное описание процедур и функций

В тексте программного модуля допускается предварительное описание процедур и функций без их определения.

Пример:

· фрагмента текста модуля, содержащий предварительное описание процедуры.

Процедура А(Парам1, Парам2) Далее

Процедура Б()

   Перем АА, ББ;

   ...

   А(АА, ББ);

   ...

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

Процедура А(Парам1, Парам2)

   ...

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

В приведенном фрагменте видно, что обращение к процедуре А (из процедуры Б) предшествует по тексту ее фактическому определению, но перед процедурой Б имеется предварительное описание процедуры А.

Процедура А(Парам1, Парам2) Далее

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

Передача параметров

По умолчанию параметры методов, процедур и функций передаются по ссылке, то есть изменение внутри процедуры или функции значения формального параметра ведет к изменению значения соответствующего фактического параметра. При передаче параметра по значению изменение значения формального параметра никак не влияет на фактический параметр вызова процедуры. Для указания того, что тот или иной параметр следует передавать по значению, следует в исходном тексте процедуры или функции перед именем параметра записать ключевое слово Знач (англоязычный синоним — Val).

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

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

Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа).

Если при вызове метода, процедуры или функции параметры не передаются (пустой список параметров), то, тем не менее, круглые скобки обязательно требуется ставить.

Пример:

Перем Глоб;

// Описание функции

Функция МояФункция(Знач Пар1, Пар2, Пар3) Экспорт

   Лок = Глоб + Пар1 + Пар2 + Пар3;

   Пар1 = 40;

   Возврат Лок;

КонецФункции

Глоб = 123;

А = 10;

Рез = МояФункция(А, 6, 7); // Вызов функции

// Здесь Рез = 146, а переменная А = 10, несмотря на то, что в теле

// функции значение параметра Пар1 изменено на 40

Передача локального контекста программного модуля в качестве параметра

В языке есть возможность передавать локальный контекст программного модуля (см. «Контекст выполнения программного модуля», «Виды программных модулей») в качестве параметра процедуры или функции. Для этого в качестве фактического параметра при вызове процедуры или функции используется ключевое слово Контекст (англоязычный синоним — Context). Данная возможность позволяет, например, написать в глобальном программном модуле процедуры и функции (общие для многих модулей), которые, при их вызове из других модулей, будут исполняться с использованием конкретного локального контекста вызвавшего модуля.

Пример:

· Допустим, у нас есть несколько различных документов, причем у всех есть реквизит "Склад". В каждом программном модуле формы редактирования документа нужна процедура выбора склада. В глобальном программном модуле напишем процедуру:

Процедура УстСклада(Конт) Экспорт

   // создаем объект типа "справочник"

   Скл = СоздатьОбъект("Справочник.Склады");

   // вызываем диалог для выбора элемента Справочника

   Скл.Выбрать("Выберите Склад", "");

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

      // если в диалоге элемент Справочника был выбран,

      // то присваиваем его значение реквизиту Документа,

      // который доступен по локальному контексту

      Конт.Склад = Скл.ТекущийЭлемент();

   КонецЕсли;

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

· Здесь переменная Конт является формальным параметром, которому при вызове процедуры будет присвоен локальный контекст. В данном примере обращение к реквизитам и методам локального контекста происходит «через точку» после идентификатора Конт, например:

Конт.Склад = Скл.ТекущийЭлемент();

· Теперь в любом программном модуле конфигурации (в данном примере в любом Модуле формы документа) для выбора склада можно вызвать процедуру, передав ей свой локальный контекст в качестве параметра:

УстСклад(Контекст);

Пример исходного текста программного модуля

Перем ФлагПроводки; // Флаг проведения Документа

Перем ФлагИзменения; // Флаг изменения Документа

//————————————————————————————————————————————————

Функция КонтрольОстатка()

   // Функция возвращает текущее значение остатка товара на складе

   Ост = Регистр.ОстаткиТоваров.Остаток(Склад, Товар, "ОстатокТовара");

   Возврат Ост;

КонецФункции

//————————————————————————————————————————————————

Процедура УстФлагИзм()

   ФлагИзменения = 1;

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

//————————————————————————————————————————————————

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

   // предопределенная процедура, вызываемая при вводе нового документа

   // установим дату Документа

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

   // установим реквизиты Документа (по умолчанию)

   ТипНакладной = Перечисление.ТипыНакладных.Перемещение;

   Фирма = Константа.ДефФирма;

   Склад = Константа.ДефСклад;

   СкладПолучатель = Константа.ДефСклад;

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

//————————————————————————————————————————————————

Процедура ВыходноеСообщение()

   // процедура, которую мы будем вызывать при нажатии кнопки "ОК"

   Если (ФлагПроводки = 1) И (ФлагИзменения = 1) Тогда

      Предупреждение("Проведенный Документ был изменен! При

            | сохранении обязательно проведите Документ снова!");

   КонецЕсли;

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

//————————————————————————————————————————————————

// При входе в Форму запомним промежуточные переменные

ФлагПроводки = Проведен();

ФлагИзменения = 0;


Part2

Глава 2
Типы данных

Базовые типы данных

В языке поддерживаются следующие базовые типы данных:

· числовой;

· строковый;

· дата.

Числовым типом может быть представлено любое десятичное число. Над данными числового типа определены основные арифметические операции.

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

Типом дата может представляться любая корректная дата.

Правила преобразования типов данных

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

Число -> Строка

Если число не имеет форматных установок, то его строковым представлением является полное представление числа в формате с фиксированной точкой.

Дата -> Строка

Дата преобразованная к строковому типу имеет вид ДД.ММ.ГГ, где ГГ — две цифры года, ММ — числовое обозначение месяца (01, ..., 12), ДД — день месяца.

Строка -> Число

Строка преобразуется в число пока это возможно. Получившееся число считается результатом преобразования. (Например, строка "1.22 Glass" будет преобразована к числу 1.22). Если в начале строки не имеется ничего, что могло бы быть проинтерпретировано как число, то результат равен 0.

Дата -> Число

Результатом данного преобразования является численное представление даты.

Строка -> Дата

Если в начале строки содержится что-то, что может быть проинтерпретировано как строковое представление даты в виде ДД.ММ.ГГ, где ГГ — две цифры года, ММ — числовое обозначение месяца (01, ..., 12), ДД — день месяца, то будет произведено соответствующее преобразование. В противном случае значение даты будет нулевым.

Число -> Дата

Делается попытка взять целую часть Числа и проинтерпретировать как численное представление даты. Если число отрицательно, то итогом является нулевая дата.

Агрегатные типы данных

Агрегатные типы данных — это специализированные типы данных системы 1С:Предприятие, суть которых — отражение объектов предметной области и способ работы с ними.

Работа с агрегатными типами данных имеет существенные отличия от работы с обычными базовыми типами данных. Конкретные значения существующих агрегатных типов данных могут быть определены в программном модуле двумя способами:

· некоторые значения заранее известны в программном модуле из его глобального и локального контекста;

· другие значения могут быть определены с помощью системной функции СоздатьОбъект, которой в качестве параметра передается строка с именем агрегатного типа данных, созданного в конфигураторе.

Каждый агрегатный тип данных, как правило, имеет набор атрибутов и методов.

Атрибуты по свойствам напоминают переменные, т. е. им можно присваивать или читать их значения.

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

Замечание. В тексте программного модуля вызов любого метода можно записывать отдельным оператором программы (как вызов процедуры) даже в том случае, если метод имеет возвращаемое значение. Другими словами, в языке допускается игнорировать возвращаемое значение.

Замечание. Работа с агрегатными типами данных языка напоминает работу с объектными типами в Visual Basic. Атрибуты агрегатного типа данных — аналогичны свойствам объектного типа в Visual Basic. Методы — аналогичны методам объектного типа в VisualBasic.

Замечание. При конфигурировании агрегатных типов данных, например Справочников, Документов, Регистров и т. п. не рекомендуется использовать в качестве идентификаторов создаваемых рекизитов существующие термины названий атрибутов и методов объектов.

Типичная последовательность работы с объектом агрегатного типа данных выглядит следующим образом:

· с помощью функции СоздатьОбъект создается объект агрегатного типа данных, и какой-либо переменной присваивается ссылка на него;

· объект позиционируется на нужном элементе данных;

· производятся различные манипуляции с объектом агрегатного типа данных через вызовы методов и обращения к его атрибутам.

· в случае, если объект агрегатного типа данных больше не нужен, он может быть отсоединен от переменной посредством переприсваивания переменной какого-либо значения базового типа (например, числа 0). Отсоединение объекта выполнять не обязательно.

Пример:

// Создаем объект типа "справочник.Сотрудники"

Сотр = СоздатьОбъект("Справочник.Сотрудники");

// Позиционируем созданный объект Сотр по известному наименованию

Сотр.НайтиПоНаименованию("Петров");

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

   // если сотрудник найден, отобразим его оклад

   Предупреждение("Оклады" + Сотр.Оклад);

Иначе

   Предупреждение("Петров не найден" + " !!!");

КонецЕсли;

// отсоединяем объект

Сотр=0;

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

Замечание. Следует понимать, что в случае, если значение переменной, содержащей ссылку на объект агрегатного типа данных, присвоить другой переменной, то это не означает создание нового объекта, просто другая переменная будет содержать ссылку на тот же объект. Новые объекты создаются только с помощью обращения к функции СоздатьОбъект. Удаление объекта производится самой системой после того, когда не остается ни одной переменной, содержащей ссылку на объект.

Агрегатными типами данных называются следующие типы данных:

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

Справочник — средство для ведения списков однородных элементов данных. Помимо наименования элементов данных, списки могут содержать различную дополнительную информацию. Физическим аналогом справочника может являться картотека. Каждая карточка — это элемент справочника, а сведения, заносимые в карточку, являются реквизитами справочника. Перечень справочников, доступных в конкретной конфигурации, их названия и реквизиты определяются в конфигураторе.

Перечисление — средство работы с элементами данных, список возможных значений которых жестко задан (например, для перечисления «ФормаОплаты» можно задать возможные значения: «Нал», «Безнал»). В отличие от справочников, списки значений в перечислении задаются в процессе их создания в конфигураторе и при выполнении задачи не могут быть изменены. Состав перечислений, доступных в конкретной конфигурации, их названия и допустимые значения определяются в конфигураторе.

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

Регистр — средство обработки и накопления сводной информации оперативного учета. Перечень регистров, доступных в конкретной конфигурации, их названия, измерения, ресурсы и другие свойства определяются в конфигураторе. (Регистры доступны только при наличии компоненты «Оперативный учет»)

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

Счет — это агрегатный тип данных для доступа к объектам данных — бухгалтерским счетам. Бухгалтерские счета используются компонентой «Бухгалтерский учет» системы 1С:Предприятие для идентификации разрезов синтетического учета наличия и движения средств. В общем виде смысл типа данных «Счет» вполне соответвует общепринятому понятию «Счет» в бухгалтерском учете. В конфигурации системы может быть создано несколько планов счетов. План счетов является фактически видом для значений типа «Счет». Например, реквизит типа «Счет» некоторого диалога может иметь конкретный вид (относиться к конкретному плану счетов) или быть неопределенного вида — то есть принимать значение различных планов счетов. (Данные типа Счет доступны только при наличии компоненты. «Бухгалтерский учет»)

ВидСубконто является служебным типом данных. Он предназначен для идентификации Вида субконто, созданного в метаданных. В основном он используется для передачи в качестве параметра различным процедурам и функциям компоненты «Бухгалтерский учет» и для выбора вида субконто в формах. Список возможных значений этого типа данных определен видами субконто, созданными в конфигурации. Значения типа «ВидСубконто» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д. Для получения значения такого типа используется глобальный атрибут ВидыСубконто, который имеет в свою очередь набор атрибутов типа «ВидСубконто» соответствующих имеющимся видам субконто. Кроме того, глобальный атрибут ВидыСубконто имеет методы для обхода всех существующих видов субконто. (Данные типа ВидСубконто доступны только при наличии компоненты «Бухгалтерский учет»)

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

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

ЖурналРасчетов — средство для учета расчетных действий по тем или иным объектам расчета. Каждая строка журнала расчетов соответствует одному расчетному действию — акту расчета, выполняемому по определенному алгоритму (виду расчета), в определенном временном интервале и имеющему результат. (ЖурналыРасчетов доступны только при наличии компоненты «Расчет»)

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

ГруппаРасчетов — тип данных, предназначенный для объединения видов расчета по тому или иному признаку. Перечень групп расчетов, доступных в конкретной конфигурации, их названия и другие свойства определяются в конфигураторе. (ГруппыРасчетов доступны только при наличии компоненты «Расчет»)

Календарь — средство для ведения учета времени по календарным датам. Перечень календарей, доступных в конкретной конфигурации, их названия и другие свойства определяются в конфигураторе. (Календари доступны только при наличии компоненты «Расчет»)

Запрос — средство для выполнения обращения к документам, регистрам, документам, справочникам и журналам расчетов с целью получения сводной информации при формировании выходных отчетов. В программных модулях допускается создавать произвольное число объектов типа Запрос при помощи вызова системной функции СоздатьОбъект.

Текст — средство работы с текстовыми документами. В программных модулях допускается создавать произвольное число объектов типа Текст при помощи вызова системной функции СоздатьОбъект.

Таблица — средство работы с таблицами (отчетами). В программных модулях допускается создавать произвольное число объектов типа Таблица, при помощи вызова системной функции СоздатьОбъект.

СписокЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значения из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗначений при помощи вызова системной функции СоздатьОбъект.

ТаблицаЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значения из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗначений при помощи вызова системной функции СоздатьОбъект.

Картинка — средство для работы с графическими файлами. При добавлении в диалоговых формах и в таблицах полей типа «Картинка», система автоматически создает объекты Картинка, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа Картинка при помощи вызова системной функции СоздатьОбъект.

Периодический — средство для работы с периодическими реквизитами справочников и периодическими константами. В программных модулях допускается создавать произвольное число объектов типа Периодический при помощи вызова системной функции СоздатьОбъект.

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

XBase — средство для работы с файлами баз данных DBF формата непосредственно из встроенного языка системы 1С:Предприятие. В программных модулях допускается создавать произвольное число объектов типа XBase при помощи вызова системной функции СоздатьОбъект.

Англоязычные синонимы названий агрегатных типов данных

Названия агрегатных типов данных | Англоязычные синонимы
Константа | Const
Справочник | Reference
Перечисление | Enum
Документ | Document
Регистр | Register
ПланСчетов | ChartOfAccounts
Счет | Account
ВидСубконто | SubcontoKind
Операция | Operation
БухгалтерскиеИтоги | BookkeepingTotals
ЖурналРасчетов | CalcJournal
ВидРасчета | CalculationKind
ГруппаРасчетов | CalculationGroup
Календарь | Calendar
Запрос | Query
Текст | Text
Таблица | Table
СписокЗначений | ValueList
ТаблицаЗначений | ValueTable
Картинка | Picture
Периодический | Рег1odic
ФС | FS
XBase | Xbase

Атрибуты агрегатных типов данных

Атрибут — свойство агрегатного типа данных. В общем случае атрибуты могут размещаться в правой и в левой части оператора присваивания, в выражениях, быть параметром вызываемых методов, процедур или функций. Имена атрибутов можно использовать для того, чтобы определить или задать текущее значение атрибута конкретного объекта агрегатного типа данных. Некоторые атрибуты доступны только для чтения, это специально указывается при описании этого атрибута в данном руководстве. Атрибуты только для чтения не могут стоять в левой части оператора присваивания.

Доступ к атрибутам конкретного объекта агрегатного типа данных зависит от контекста программного модуля.

Если объект агрегатного типа данных входит (согласно контекста) в набор непосредственно доступных модулю значений агрегатных типов данных, то доступ к атрибуту — просто имя этого атрибута.

В других случаях, доступ к атрибутам конкретного объекта агрегатного типа данных происходит при помощи создания ссылки на объект. Объект агрегатного типа данных создается при помощи функции СоздатьОбъект. Для доступа к атрибуту объекта, имя атрибута пишется через точку после имени переменной, содержащей ссылку на этот объект.

Пример:

*

Спр = СоздатьОбъект("Справочник.Сотрудники");

А = Спр.Выбрать("Выберите объект", 0);

//Выбираем наименование и оклад как атрибуты справочника

Сообщить("Выбран сотрудник " + Спр.Наименование);

Сообщить("Оклад - " + Спр.Оклад );

*

Спр = СоздатьОбъект("Справочник.Сотрудники");

А = Спр.Выбрать("Выберите объект", 0);

Док = СоздатьОбъект("Документ.ПриказНаДоплату");

Док.Новый();

// Устанавливаем атрибут НомерДок

Док.НомерДок = "777";

// Устанавливаем атрибут ДатаДок

Док.ДатаДок = '14.04.96';

Док.ТипРасчета = ВидРасчета.ДоплатаСуммой;

Методы агрегатных типов данных

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

Синтаксис вызова методов конкретного агрегатного типа данных зависит от контекста программного модуля.

Если объект агрегатного типа данных входит (согласно контекста) в набор непосредственно доступных модулю значений агрегатных типов данных, то вызов метода — просто имя этого метода с указанием необходимых параметров.

В других случаях вызов метода конкретного агрегатного типа данных происходит при помощи создания ссылки на объект. Объект агрегатного типа данных создается при помощи функции СоздатьОбъект. Чтобы вызвать метод объекта, имя этого метода (с указанием необходимых параметров) пишется через точку после имени созданного объекта.

См. также: «Передача параметров»

Пример:

Спр = СоздатьОбъект("Справочник.Товары");

А = Спр.Выбрать("Выберите товар", 0);

Доку = СоздатьОбъект("Документ.НаклПрих");

Доку.Новый();                // Вызываем метод

Доку.Склад = 22;

Доку.НомерДок = "777";       // Устанавливаем номер документа

Доку.ДатаДок = '14.04.96';   // Устанавливаем дату документа

Доку.АвтоВремяОтключить();   // Вызываем метод

Доку.УстановитьВремя(17, 30, 00);

Доку.НоваяСтрока();          // Вызываем метод

Доку.Товар = Спр.ТекущийЭлемент();

Доку.Количество = 100;


Part3

Глава 3
Объявление переменных

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

Переменные могут объединяться в массивы. В данной реализации программы предусмотрены только одномерные массивы.

Оператор объявления переменной

Перем

Объявление переменной в явном виде.

Синтаксис:

Перем <Имя_переменной> [[<Размерность>]] [Экспорт];

Англоязычный синоним:

Var:

Параметры

<Имя_переменной> | Имя переменной.
[<Размерность>] | Необязательная числовая константа (записывается в квадратных скобках), указывается только в том случае, если объявляется массив и должна представляться в виде положительного целого числа.
Экспорт | Необязательное ключевое слово Экспорт указывает, что данная переменная станет доступна для других модулей. Использование данного ключевого слова имеет смысл только в глобальном программном модуле.

Описание:

Оператор Перем в явном виде объявляет переменную.

Пример:

Перем Очень_Нужная_Переменная;

Перем Массив_Для_Хранения[10];

Область использования переменной

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

· В разделе определения переменных глобального программного модуля. Если переменные определены с ключевым словом Экспорт (см. оператор Перем), то это будут глобальные переменные.

· В разделе определения переменных модуля. Это переменные модуля.

· В процедуре или функции. Это локальные переменные.

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

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

Локальные переменные доступны в пределах той процедуры или функции, в которой они объявлены.

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

Единственный способ создать для процедуры локальную переменную с именем, совпадающим с именем переменной, определенной как глобальная переменная — это объявить ее явно при помощи оператора Перем.


Part4

Глава 4
Выражения и оператор присваивания

Выражения

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

Арифметические операции

В языке определены следующие виды арифметических операций:

сложение | (Оп1 + Оп2)
вычитание | (Оп1 - Оп2)
умножение | (Оп1 * Оп2)
деление | (Оп1 / Оп2)
остаток от деления | (Оп1 % Оп2)
унарный минус | (-Оп1)

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

Сложение определено для следующих типов операндов: | Число + Число
 | Дата + Число (к дате прибавляется число дней)
Вычитание определено для следующих типов операндов: | Число – Число
 | Дата – Число (от даты отнимается число дней)
 | Дата – Дата (результатом является число дней между датами)
Умножение: | Число * Число
Деление: | Число / Число
Остаток от деления: | Число % Число

Замечание. При выполнении операции % (остаток от деления) оба операнда операции округляются до целого значения.

Операция конкатенации

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

Пример:

· Для того, чтобы удалить ненужные пробелы, используются системные функции СокрЛ и СокрП.

ФИО = СокрП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);

Логические операции

Логическая операция сравнивает операнды и вырабатывает логическое значение: «истина» или «ложь». Существует два вида логических операций: операции сравнения и булевы операции. В операциях сравнения сравниваются два значения. Булевы операции выполняются над логическими значениями, реализуя булеву алгебру. Символы булевых операций могут комбинироваться, образуя составные операции.

Операции сравнения:

В языке определены следующие виды операций сравнения:

больше | (Оп1 > Оп2)
больше или равно | (Оп1 >= Оп2)
равно | (Оп1 = Оп2)
не равно | (Оп1 <> Оп2)
меньше | (Оп1 < Оп2)
меньше или равно | (Оп1 <= Оп2)

Операции сравнения определены для следующих типов операндов:

Больше | Число > Число
 | Строка > Строка
 | Дата > Дата
Больше или равно: | Число >= Число
 | Строка >= Строка
 | Дата >= Дата
Меньше: | Число < Число
 | Строка < Строка
 | Дата < Дата
Меньше или равно: | Число <= Число
 | Строка <= Строка
 | Дата <= Дата
Равно: | Число = Число
 | Строка = Строка
 | Дата = Дата
 | АгрегатныйТип = АгрегатныйТип
Не равно: | Число <> Число
 | Строка <> Строка
 | Дата <> Дата
 | АгрегатныйТип <> АгрегатныйТип

Булевы операции:

В языке определены следующие виды булевых операций:

И или AND | конъюнкция (булево И)
ИЛИ или OR | дизъюнкция (булево ИЛИ)
НЕ или NOT | логическое отрицание (булево отрицание НЕ)

Числовые константы

Константа числового типа представляется в виде:

[‘+’| ‘-’]{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}[.{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}]

Пример:

0   123      -15      +24.11      0.245

Константы даты

Дата задается в формате 'ДД.ММ.ГГ' или 'ДД.ММ.ГГГГ' (дата заключается в одиночные кавычки). Неопределенная дата задается как '00.00.00'.

Пример:

'12.04.95'      '01.01.1996'

Строковые константы

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

Пример:

"Ура заработала"

"Это самая правильная строка"

" "

Кроме того, допускаются «многострочные» строковые константы. В исходном тексте многострочные константы могут задаваться двумя способами:

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

Пример:

Стр = "Первая строка"    // пример строковой константы

"Вторая строка"

"Третья строка";

· Второй вариант: В данном примере значение константы полностью идентично предыдущему примеру. Отличие заключается в том, что каждая отдельная составляющая не замыкается кавычками, а на каждой последующей строке помещен символ переноса строки "|". В этом варианте комментарии между открывающей и закрывающей кавычками не допускаются.

Пример:

Стр = "Первая строка

   |Вторая строка

   |Третья строка";

Строковые выражения

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

Пример:

Стр = СокрП("Фамилия" + ", " + Имя + ", " + " отчество");

Стр1 = "" + Докум.Цена + Валюта.СокрНаим;

Логические выражения

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

Уровни старшинства логических операций:

Уровень 1 | операнды, заключенные в скобки
Уровень 2 | NOT
Уровень 3 | AND
Уровень 4 | OR

Пример:

Стр = "Угадал!";

а = ВвестиСтроку(Стр, "Назови пароль!", 15);

Если (а=1) И ((Стр = "пароль") ИЛИ (Стр = "Пароль")) Тогда

   Сообщить(Стр);

КонецЕсли;

Оператор присваивания

Синтаксис:

<Назначение> = <Источник>;

Параметры:

<Назначение> | В качестве <Назначения> может выступать простая переменная, элемент массива, атрибут агрегатного типа данных (который допускает запись). Элемент массива задается как Имя_массива[Индексное_выражение].
<Источник> | Выражение.

Описание:

Оператор присваивания (символ "=") означает присваивание значения <Источник> переменной, обозначенной как <Назначение>.

Пример:

А = В;

Стр1 = "777";

ДатаДок = '14.04.96';


Part5

Глава 5
Управляющие операторы

Управляющие конструкции

Если

Оператор условного выполнения.

Синтаксис:

Если <Логическое_выражение> Тогда

   //операторы;

[ИначеЕсли <Логическое_выражение> Тогда]

   //операторы;

[Иначе]

   //операторы;

КонецЕсли;

Англоязычный Синтаксис:

If <Логическое_выражение> Then

   //операторы;

[Elsif <Логическое_выражение> Then]

   //операторы;

[Else]

   //операторы;

Endlf;

Параметры:

<Логическое_выражение> | Логическое выражение.
Тогда | Операторы следующие за Тогда выполняются, если результатом логического выражения в конструкции Если является истина.
//операторы | Исполняемый оператор или последовательность таких операторов.
ИначеЕсли | Логическое выражение, следующее за ключевым словом ИначеЕсли вычисляется только тогда, когда условия в Если и всех предшествующих ИначеЕсли оказались ложными. Операторы следующие за конструкцией ИначеЕсли — Тогда выполняются, если результатом логического выражения в данном ИначеЕсли является истина.
Иначе | Операторы, следующие за ключевым словом Иначе выполняются, если результаты логических выражений в конструкции Если и всех предшествующих конструкциях ИначеЕсли оказались ложными.
КонецЕсли | Ключевое слово, которое завершает структуру оператора условного выполнения.

Описание:

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

ИначеЕсли — Тогда.

Пример:

Если (РабочаяДата() > '01.01.95') И (Сег = "Понедельник") Тогда

   Сообщить("Сегодня" + " " + Сег + " " + РабочаяДата());

КонецЕсли;

Пока

Оператор выполнения цикла.

Синтаксис:

Пока <Логическое_выражение> Цикл

   //операторы;

КонецЦикла;

Англоязычный Синтаксис:

While <Логическое_выражение> Do

   //операторы;

EndDo;

Параметры:

<Логическое_выражение> | Логическое выражение.
Цикл | Операторы, следующие за ключевым словом Цикл, выполняются, пока результатом логического выражения является истина.
//операторы; | Исполняемый оператор или последовательность таких операторов.
КонецЦикла | Ключевое слово, которое завершает структуру оператора цикла.

Описание:

Оператор цикла Пока предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл ... КонецЦикла. Цикл выполняется пока логическое выражение — истина. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:

Док = СоздатьОбъект("Документ.БригадныйНаряд");

// Будем просматривать документы в интервале дат

Док.ВыбратьДокументы('11.01.88', '11.01.99');

// Цикл по всем Документам

Пока (Док.ПолучитьДокумент() = 1) Цикл

   // отобразим Документ в строке состояния

   Состояние(Док.Вид() + " " + Док.НомерДок + " " + Док.ДатаДок);

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

   // вложенный цикл по всем строкам Документа

   Пока(Док.ПолучитьСтроку() > 0) Цикл

      Если Док.КодРабот = 104 Тогда

         Сообщить(" " + Док.НомерДок);

      КонецЕсли;

   КонецЦикла;

КонецЦикла;

Для

Оператор выполнения цикла.

Синтаксис:

Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл

   //Операторы;

КонецЦикла;

Англоязычный Синтаксис:

For <Имя_переменной> = <Выражение1> То <Выражение2> Do

   //Операторы;

EndDo;

Параметры:

<Имя_переменной> | Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается при каждом повторении цикла.
<Выражение 1> | Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла.
По | Синтаксическая связка для параметра <Выражение2>.
<Выражение 2> | Максимальное значение счетчика цикла. Когда переменная Имя_переменной становится больше чем <Выражение2>, выполнение оператора цикла Для прекращается. Величина приращения счетчика при каждом выполнении цикла равна 1.
Цикл | Операторы следующие за ключевым словом Цикл выполняются, пока значение переменной Имя_переменной меньше значения <Выражение2>.
//Операторы | Исполняемый оператор или последовательность таких операторов.
КонецЦикла | Ключевое слово, которое завершает структуру оператора цикла.

Описание:

Оператор цикла Для предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл ... КонецЦикла. Перед началом выполнения цикла значение <Выражение1> присваивается переменной <Имя_переменной>. Значение <Имя_переменной> автоматически увеличивается при каждом проходе цикла. Цикл выполняется пока значение переменной <Имя_переменной> меньше или равно значению <Выражение2>. Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:

// Выведем все строки текста

Выв = СоздатьОбъект("Текст");

Выв.Открыть("ТТТ");

Для i = l по Выв.КоличествоСтрок() Цикл

   Сообщить(Выв.ПолучитьСтроку(i));

КонецЦикла;

Попытка

Обработка исключительных ситуаций.

Синтаксис:

Попытка

   // Некоторые действия;

Исключение

   // Обработка исключительной ситуации;

КонецПопытки;

Англоязычный Синтаксис:

Try

   // Некоторые действия;

Except

   // Обработка исключительной ситуации;

EndTry;

Параметры:

// Некоторые действия | Исполняемый оператор или последовательность таких операторов.
// Обработка исключительной ситуации | Исполняемый оператор или последовательность операторов, которые обрабатывают исключительную ситуацию.
Исключение | Операторы, следующие за ключевым словом Исключение выполняются, если при выполнении последовательности операторов <// Некоторые действия> произошла ошибка времени выполнения.
КонецПопытки | Ключевое слово, которое завершает структуру оператора обработки исключительных ситуаций.

Описание:

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

В качестве ошибочных (исключительных) ситуаций воспринимаются ошибки времени выполнения модуля. Не предусмотрено определяемых пользователем исключений.

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

Конструкции Попытка-Исключение-КонецПопытки могут быть вложенными. При этом, при возникновении исключительной ситуации управление будет передано на самый «внутренний» обработчик, начинающийся с ключевого слова Исключение. Последовательность операторов <// Обработка исключительной ситуации> может содержать оператор ВызватьИсключение (англоязычный синоним Raise). Выполнение данного оператора прекращает выполнение последовательности <// Обработка исключительной ситуации> и производится поиск более «внешнего» обработчика. Если таковой есть, то управление передается на его первый оператор. Если нет, то выполнение модуля прекращается с выдачей сообщения о первоначально возникшей ошибке. Оператор ВызватьИсключение может встречаться только внутри операторных скобок Исключение ... КонецПопытки.

В выдаче диагностики помощь может оказать встроенная функция ОписаниеОшибки() (англоязычный синоним GetErrorDescription). Эта функция не имеет параметров, а в качестве значения возвращает описание ошибки, такое же, как было бы выдано в окне сообщений, в случае отсутствия обработчика исключительной ситуации, за исключением описания модуля и строки, в которой ошибка возникла. Применять данную функцию имеет смысл только при выполнении последовательности операторов <// Обработка исключительной ситуации>, так как в ином случае она вернет пустую строку.

Пример:

Процедура СформироватьВЕхсеl()

   Попытка

      // пытаемся обратиться к программе MS Excel

      Табл = СоздатьОбъект("Excel.Application");

   Исключение

      Предупреждение(ОписаниеОшибки() +

           "; Excel не установлен на данном компьютере!");

      Возврат;

   КонецПопытки;

   // Формирование отчета

   ...

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

Управляющие операторы

Перейти

Безусловная передача управления на другой оператор программы.

Синтаксис:

Перейти <Метка>;

Англоязычный синоним:

Goto

Параметры:

<Метка>

Метка другого исполняемого оператора в программе.

Описание:

Безусловная передача управления на другой оператор программы. Оператор Перейти передает управление от одного оператора к другому. <Метка> в этом операторе не должна быть меткой перехода на оператор Процедура или Функция.

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

Оператор безусловного перехода не может быть использован для передачи управления на операторы, находящиеся внутри конструкций: Пока ... КонецЦикла, Для ... КонецЦикла, Если ... ИначеЕсли ... Иначе ... КонецЕсли, Попытка ... Исключение ... КонецПопытки извне этих конструкций.

Пример:

     // Выведем строки текста

     Выв = СоздатьОбъект("Текст");

     Выв.Открыть("ТТТ");

     Для i = l По Выв.КоличествоСтрок() Цикл

        Если i = 10 Тогда

           Перейти ~М1;

        КонецЕсли;

        Сообщить(Выв.ПолучитьСтроку(i));

        Перейти ~М2;

~М1:    Сообщить("Это десятая строка");

~М2: КонецЦикла;

Продолжить

Передача управления в начало цикла.

Синтаксис:

Продолжить;

Англоязычный синоним:

Continue;

Описание:

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

Пример:

// Выведем строки текста начиная с 5

Выв = СоздатьОбъект("Текст");

Выв.Открыть("ТТТ");

Для i = 1 По Выв.КоличествоСтрок() Цикл

   Если i < 5 Тогда

      Продолжить;

   КонецЕсли;

   Сообщить(Выв.ПолучитьСтроку(i));

КонецЦикла;

Прервать

Прерывает выполнение цикла.

Синтаксис:

Прервать

Англоязычный синоним:

Break

Описание:

Прерывает выполнение цикла. Оператор Прервать приводит к немедленному прекращению выполнения цикла и передает управление первому оператору, следующему за конструкцией оператора Пока или Для. Оператор Прервать может использоваться только внутри конструкций операторов цикла Пока и Для.

Пример:

// Выведем строки текста с 1 по 10

Выв = СоздатьОбъект("Текст");

Выв.Открыть("ТТТ");

Для i = l По Выв.КоличествоСтрок() Цикл

   Сообщить(Выв.ПолучитьСтроку(i));

   Если i=10 Тогда

      Прервать;

   КонецЕсли;

КонецЦикла;

Возврат

Завершение процедуры или функции.

Синтаксис:

Возврат [<Выражение>]

Англоязычный синоним:

Return

Параметры:

<Выражение>

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

Описание:

Оператор Возврат завершает выполнение процедуры или функции и передает управление в вызвавшую точку программы. Оператор Возврат обязателен в функции и необязателен в процедуре. Если в процедуре не используется оператор Возврат, то его неявное выполнение происходит вслед за последним исполняемым оператором процедуры. Данный оператор может применяться только в теле описания процедуры или функции, причем <Выражение> может задаваться только в случае использования оператора в контексте функции.

Пример:

Функция ДеньНедели(Номер)

   Если Номер =1 Тогда

      Return "понедельник";

   ИначеЕсли Номер =2 Тогда

      Возврат "вторник";

   ИначеЕсли Номер =3 Тогда

      Возврат "среда";

   ИначеЕсли Номер =4 Тогда

      Возврат "четверг";

   ИначеЕсли Номер =5 Тогда

      Возврат "пятница";

   ИначеЕсли Номер =6 Тогда

      Возврат "суббота";

   ИначеЕсли Номер =7 Тогда

      Возврат "воскресенье";

   Иначе

      Возврат "ошибка";

   КонецЕсли;

КонецФункции

Специальные конструкции языка

#ЗагрузитьИзФайла

Переключение загрузки программного модуля на загрузку из текстового файла.

Синтаксис:

#ЗагрузитьИзФайла <ИмяФайла>

Англоязычный синоним:

ftLoadFromFile

Параметры:

<ИмяФайла>

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

Описание:

Данная конструкция переключает загрузку программного модуля на загрузку из указанного файла. Специальная конструкция #ЗагрузитьИзФайла должна записываться в первой строке программного модуля с первой позиции. Ее использование рекомендуется для отладки, чтобы быстро отлаживать код какого-либо программного модуля без промежуточного сохранения всей конфигурации. Данная конструкция переключает загрузку программного модуля конфигурации на загрузку из указанного файла. Содержимое программного модуля конфигурации при этом игнорируется.

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

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

После окончания отладки текста программного модуля в файле, следует перенести текст из файла в программный модуль конфигурации.

Замечание: #ЗагрузитьИзФайла является не оператором, а специальной конструкцией, поэтому не должна заканчиваться точкой с запятой.

Пример:

#ЗагрузитьИзФайла NEW_MOD.TXT


Part6

Глава 6
Системные константы

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

Строковые системные константы

РазделительСтраниц

Содержит строковое значение перевода страницы текста.

Синтаксис:

РазделительСтраниц

Англоязычный синоним:

PageBreak

Описание:

Системная константа РазделительСтраниц содержит строковое значение перевода страницы текста. Данная системная константа применяется для вставки или поиска в тексте строкового значения перевода страницы текста.

Пример:

Выв=СоздатьОбъект("Текст");

Выв.ДобавитьСтроку("Страница 1");

Выв.ДобавитьСтроку(РазделительСтраниц);

Выв.ДобавитьСтроку("Страница 2");

Выв.Показать();

РазделительСтрок

Содержит строковое значение перевода строки текста.

Синтаксис:

РазделительСтрок

Англоязычный синоним:

LineBreak

Описание:

Системная константа РазделительСтрок содержит строковое значение перевода строки текста. Данная системная константа применяется для вставки или поиска в тексте строкового значения перевода строки текста

Пример:

Выв=СоздатьОбъект("Текст");

Выв.ДобавитьСтроку("Страница 1");

Выв.ДобавитьСтроку(РазделительСтрок);

Выв.ДобавитьСтроку("Страница 2");

Выв.Показать();

СимволТабуляции

Содержит строковое значение символа табуляции.

Синтаксис:

СимволТабуляции

Англоязычный синоним:

TabSymbol

Описание:

Системная константа СимволТабуляции содержит строковое значение символа табуляции. Данная системная константа применяется для вставки или поиска в тексте строкового значения символа табуляции.

Пример:

Выв=СоздатьОбъект("Текст");

Выв.ДобавитьСтроку("Страница 1");

Выв.ДобавитьСтроку(СимволТабуляции);

Выв.ДобавитьСтроку("Страница 2");

Выв.Показать();


Part7

Глава 7
Системные процедуры и функции

Системные процедуры и функции доступны в любом программном модуле конфигурации. Доступ к системным процедурам и функциям в текстах программных модулей непосредственный, т. е. просто имя процедуры или функции (без предварительной ссылки на какой-либо объект).

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

Математические функции

Окр

Округлить число.

Синтаксис:

Окр(<Число1>, [<Число2>], [<Спосо6>])

Англоязычный синоним:

Round

Параметры:

<Число1> | Числовое выражение, значение которого надо округлить.
<Число2> | Необязательный параметр. Числовое выражение, значение которого — формат округления (число знаков дробной части (если <Число2> отрицательно, то округляется до соответствующего количества знаков целой части). Значение этого параметра по умолчанию — 0.
<Способ> | Необязательный параметр. Числовое выражение — способ округления: 0 — если при округлении 1.5 = 1; 1 — если при округлении 1.5 = 2. Значение по умолчанию — 0.

Возвращаемое значение:

Числовое значение результата округления.

Описание:

Функция Окр возвращает числовое значение результата округления <Число1> до <Число2> знаков дробной части (если <Число2> отрицательно, то округляется до соответствующего количества знаков целой части). Параметр <Число2> может быть опущен, при этом принимается, что <Число2> = 0.

Пример:

ОкруглЦена = Окр(ЦЕНА, -2);

Цел

Получить целую часть числа.

Синтаксис:

Цел(<Число>)

Англоязычный синоним:

Int

Параметры:

<Число>

Числовое выражение.

Возвращаемое значение:

Числовое значение целой части переданного в качестве параметра числа.

Описание:

Функция Цел возвращает целую часть переданного в качестве параметра числа, полностью отсекая дробную часть.

Пример:

МожноКупить = Цел(Наличность/Цена);

Мин

Определить минимальное значение.

Синтаксис:

Мин(<Элемент1>, ..., <ЭлементN>)

Англоязычный синоним:

Min

Параметры:

<Элемент1>, ..., <ЭлементN>

Список выражений базовых типов данных.

Возвращаемое значение:

Значение минимального элемента из списка <Элемент1>, ..., <ЭлементN>

Описание:

Функция Мин определяет минимальное значение из списка <Элемент1>, ..., <ЭлементN>.

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

Пример:

МинимЦена = Мин(Цена1, Цена2, ЦенаЗ);

Макс

Определить максимальное значение.

Синтаксис:

Макс(<Элемент1>, ..., <ЭлементN>)

Англоязычный синоним:

Мах

Параметры:

<Элемент1>, ..., <ЭлементN>                Список выражений базовых типов данных.

Возвращаемое значение:

Значение максимального элемента из списка <Элемент1>, ..., <ЭлементN>

Описание:

Функция Макс определяет максимальное значение из списка <Элемент1>, ..., <ЭлементN>.

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

Пример:

МаксимЦена = Макс(Цена1, Цена2, ЦенаЗ);

Лог10

Вычислить десятичный логарифм числа.

Синтаксис:

Лог10(<Число>)

Англоязычный синоним:

Log10

Параметры:

<Число>

Числовое выражение.

Возвращаемое значение:

Числовое значение результата вычисления десятичного логарифма.

Описание:

Функция Лог10 вычисляет и возвращает десятичный логарифм числа. При отрицательном или нулевом значении параметра возвращаемое значение — 0.

Пример:

Шкала = Лог10(Частота);

Лог

Вычислить натуральный логарифм числа.

Синтаксис:

Лог(<Число>)

Англоязычный синоним:

Ln

Параметры:

<Число>

Числовое выражение.

Возвращаемое значение:

Числовое значение результата вычисления натурального логарифма.

Описание:

Функция Лог вычисляет и возвращает натуральный логарифм числа. При отрицательном или нулевом значении параметра возвращаемое значение — 0.

Пример:

Шкала = Лог(Частота);

Строковые функции

СтрДлина

Получить длину строки.

Синтаксис:

СтрДлина(<Строка>)

Англоязычный синоним:

StrLen

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Числовое значение длины строки.

Описание:

Функция СтрДлина получает в качестве параметра строку и возвращает числовое значение ее длины.

Пример:

Длина = СтрДлина("Измерим длину строки");

ПустаяСтрока

Проверить строку на наличие значащих символов.

Синтаксис:

ПустаяСтрока(<Строка>)

Англоязычный синоним:

IsBlankString

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Числовое значение. 1 — пустая строка или только пробелы. 0 — не пустая строка.

Описание:

Функция ПустаяСтрока проверяет переданный параметр <Строка> на наличие значащих символов (любых кроме пробелов) и возвращает число 1, если строка пустая или содержит только пробелы, 0 , если строка не пустая.

Пример:

Если ПустаяСтрока(Буфер) = 1 Тогда

   // если Буфер содержит только пробелы, то его удаляем

   Буфер = "";

КонецЕсли;

СокрЛ

Отбросить в строке стоящие слева пробелы.

Синтаксис:

СокрЛ(<Строка>)

Англоязычный синоним:

TrimL

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция СокрЛ получает в качестве параметра строку, отсекает стоящие слева пробелы и возвращает результирующую строку.

Пример:

СтрЦена = СокрЛ(Цена) + " руб.";

СокрП

Отбросить в строке стоящие справа пробелы.

Синтаксис:

СокрП(<Строка>)

Англоязычный синоним:

TrimR

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция СокрП получает в качестве параметра строку, отсекает стоящие справа пробелы и возвращает результирующую строку.

Пример:

ФИО = СокрП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);

СокрЛП

Отбросить в строке пробелы, стоящие слева и справа.

Синтаксис:

СокрЛП(<Строка>)

Англоязычный синоним:

TrimAll

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция СокрЛП получает в качестве параметра строку, отсекает стоящие слева и справа пробелы, и возвращает результирующую строку.

Пример:

ФИО = СокрЛП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);

Лев

Выбрать в строке символы слева.

Синтаксис:

Лев (<Строка>, <Число>)

Англоязычный синоним:

Left

Параметры:

<Строка> | Строковое выражение.
<Число> | Числовое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция Лев получает в качестве параметра строку, выбирает первые слева символы строки, числом равные <Число>, и возвращает в качестве значения результирующую строку.

Пример:

Фамилия = Лев(ФИО, 15);

Прав

Выбрать в строке символы справа.

Синтаксис:

Прав(<Строка>, <Число>)

Англоязычный синоним:

Right

Параметры:

<Строка> | Строковое выражение.
<Число> | Числовое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция Прав получает в качестве параметра строку, выбирает крайние справа символы строки, числом равные <Число>, и возвращает в качестве значения результирующую строку.

Пример:

Отчество = Прав(ФИО, 15);

Сред

Выбрать подстроку.

Синтаксис:

Сред(<Строка>, <Число1>, <Число2>)

Англоязычный синоним:

Mid

Параметры:

<Строка> | Строковое выражение.
<Число1> | Числовое выражение, начальный номер символа.
<Число2> | Числовое выражение, количество символов.

Возвращаемое значение:

Строковое значение.

Описание:

Функция Сред возвращает подстроку параметра <Строка>, начиная с символа с номером <Число1> общим количеством <Число2>. Позиции в строке считаются, начиная с 1. Параметр <Число2> может быть опущен, тогда выделяются все символы начиная с символа с номером <Число1> до конца строки.

Пример:

Имя = Сред(ФИО, 10, 12);

Найти

Найти вхождение подстроки.

Синтаксис:

Найти(<Строка1>, <Строка2>)

Англоязычный синоним:

Find

Параметры:

<Строка1> | Строковое выражение места поиска.
<Строка2> | Строковое выражение шаблона поиска.

Возвращаемое значение:

Числовое значение позиции первого знака найденной подстроки.

Описание:

Функция Найти находит вхождение строки <Строка2> как подстроки в <Строка1>. Возвращает числовое значение позиции первого знака найденной подстроки (первая позиция имеет индекс 1). Если не находит — возвращает число 0.

Пример:

Симв = Найти(ФИО, "Борис");

СтрЗаменить

Заменить вхождение подстроки другим значением.

Синтаксис:

СтрЗаменить(<СтрИсточник>, <СтрПодстрока>, <СтрЗамены>)

Англоязычный синоним:

StrReplace

Параметры:

<СтрИсточник> | Строковое выражение места поиска.
<СтрПодстрока> | Строковое выражение шаблона поиска.
<СтрЗамены> | Строковое выражение замены.

Возвращаемое значение:

Результирующая строка.

Описание:

Функция СтрЗаменить находит вхождение строки <СтрПодстрока> как подстроки в <СтрИсточник> и заменяет его на <СтрЗамены>. Результирующую строку возвращает в качестве собственного значения. Исходная строка не изменяется.

Пример:

Результат = СтрЗаменить(СтрИсточник, СтрПодстрока, СтрЗамены);

СтрЧислоВхождений

Вычислить число вхождений подстроки.

Синтаксис:

СтрЧислоВхождений(<СтрИсточник>, <СтрПодстрока>)

Англоязычный синоним:

StrCountOccur

Параметры:

<СтрИсточник> | Строковое выражение места поиска.
<СтрПодстрока> | Строковое выражение шаблона поиска.

Возвращаемое значение:

Число вхождений.

Описание:

Функция СтрЧислоВхождений вычисляет число вхождений строки <СтрПодстрока> как подстроки в <СтрИсточник>.

Пример:

Результат = СтрЧислоВхождений(СтрИсточник, СтрПодстрока);

СтрКоличествоСтрок

Определить число строк в многострочном тексте.

Синтаксис:

СтрКоличествоСтрок(<Строка>)

Англоязычный синоним:

StrLineCount

Параметры:

<Строка>

Строковое выражение, в котором строки разделены символами перевода строк.

Возвращаемое значение:

Число строк в многострочном тексте.

Описание:

Функция СтрКоличествоСтрок вычисляет число строк в многострочном тексте (строки разделены символами перевода строк).

Пример:

Рез = СтрКоличествоСтрок(ДлТекст);

См. также: РазделительСтрок

СтрПолучитьСтроку

Получить строку из многострочного текста по номеру.

Синтаксис:

СтрПолучитьСтроку(<Текст>, <НомерСтроки>)

Англоязычный синоним:

StrGetLine

Параметры:

<Текст> | Строковое выражение, в котором строки разделены символами перевода строк.
<НомерСтроки> | Числовое выражение, начальный номер символа.

Возвращаемое значение:

Строковое значение.

Описание:

Функция СтрПолучитьСтроку возвращает строку с номером <НомерСтроки> из многострочного текста <Текст> (строки разделены символами перевода строк).

Пример:

ВтораяСтрока = СтрПолучитьСтроку(ДлТекст, 2);

См. также: РазделительСтрок

Врег

Преобразовать символы строки в верхний регистр.

Синтаксис:

ВРег(<Строка>)

Англоязычный синоним:

UpРег

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

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

Пример:

Загл = ВРег("маленькие");

Нрег

Преобразовать символы строки в нижний регистр.

Синтаксис:

НРег(<Строка>)

Англоязычный синоним:

Lower

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

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

Пример:

Загл = НРег("БОЛЬШИЕ");

OemToAnsi

Преобразовать строку в кодировку ANSI.

Синтаксис:

OemToAnsi(<Строка>)

Англоязычный синоним:

OemToAnsi

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция OemToAnsi используется для перевода строки из DOS-кодировки в Windows-Кодировку. Результирующая строка возвращается в качестве собственного значения. Исходная строка не изменяется.

Пример:

Загл = OemToAnsi(ТекстDOS);

AnsiToOem

Преобразовать строку в кодировку OEM.

Синтаксис:

AnsiToOem(<Строка>)

Англоязычный синоним:

AnsiToOem

Параметры:

<Строка>

Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция AnsiToOem используется для перевода строки из Windows-кодировки в DOS-Кодировку. Результирующая строка возвращается в качестве собственного значения. Исходная строка не изменяется.

Пример:

3aгл = AnsiToOem(TeкстWin);

Симв

Преобразовать код символа в символ.

Синтаксис:

Симв(<КодСимвола>)

Англоязычный синоним:

Chr

Параметры:

<КодСимвола>

Числовое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция Chr преобразует код символа в символ. Возвращает результирующий символ в виде строкового значения.

Пример:

Буква_я = Симв(255);

КодСимв

Преобразовать символ в код символа.

Синтаксис:

КодСимв(<Символ>)

Англоязычный синоним:

Asс

Параметры:

<Символ>

Строковое выражение.

Возвращаемое значение:

Числовое значение.

Описание:

Функция КодСимв преобразует символ в код символа. Возвращает результирующий код символа в виде числового значения.

Пример:

КодБуквы_я = КодСимв("я");

Функции работы с датой

РабочаяДата

Установить/получить текущую рабочую дату.

Синтаксис:

РабочаяДата(<Дата>, <РежимСменыРабДаты>)

Англоязычный синоним:

WorkingDate

Параметры:

<Дата> | Необязательный параметр. Выражение типа «дата».
<РежимСменыРабДаты> | Необязательный параметр. Режим автоматической смены рабочей даты в полночь: 0 — не менять; 1 — менять с предупреждением; 2 — менять автоматически без предупреждения. Если параметр не указан, то режим не меняется и действует установка, выбранная в параметрах системы.

Возвращаемое значение:

Значение текущей рабочей даты (на момент до выполнения функции).

Описание:

При помощи функции РабочаяДата можно установить/получить значение рабочей даты, выбранной в текущем сеансе работы программы (которая может изменяться при помощи главного меню Сервис-Параметры-Общие-РабочаяДата).

Пример:

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

Сотрудник.Оклад.Получить(РабочаяДата());

ТекущаяДата

Возвратить текущую дату.

Синтаксис:

ТекущаяДата()

Англоязычный синоним:

CurDate

Возвращаемое значение:

Результирующая дата.

Описание:

Функция ТекущаяДата возвращает текущую (системную) дату. Возвращаемое значение — результирующая дата.

Пример:

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

ДобавитьМесяц

Добавляет к указанной дате заданное число месяцев.

Синтаксис:

ДобавитьМесяц(<Дата>, <ЧислоМесяцев>)

Англоязычный синоним:

AddMonth

Параметры:

<Дата> | Выражение со значением типа «дата».
<ЧислоМесяцев> | Числовое выражение, задающее число месяцев, добавляемое к дате.

Возвращаемое значение:

Результирующая дата.

Описание:

Функция ДобавитьМесяц добавляет к указанной дате заданное число месяцев.

Пример:

ДатаЧерезТриМесяца = ДобавитьМесяц(РабочаяДата(), 3);

НачМесяца

Определить дату начала месяца.

Синтаксис:

НачМесяца(<Дата>)

Англоязычный синоним:

BegOfMonth

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачМесяца определяет дату начала месяца для указанной даты.

Пример:

ДатаНачалаМесяца = НачМесяца(РабочаяДата());

КонМесяца

Определить дату конца месяца.

Синтаксис:

КонМесяца(<Дата>)

Англоязычный синоним:

EndOfMonth

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонМесяца определяет дату конца месяца для указанной даты.

Пример:

ДатаКонцаМесяца = КонМесяца(РабочаяДата());

НачКвартала

Определить дату начала квартала.

Синтаксис:

НачКвартала(<Дата>)

Англоязычный синоним:

BegOfQuart

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачКвартала определяет дату начала квартала для указанной даты.

Пример:

ДатаНачалаКвартала = НачКвартала(РабочаяДата());

КонКвартала

Определить дату конца квартала.

Синтаксис:

КонКвартала(<Дата>)

Англоязычный синоним:

EndOfQuart

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонКвартала определяет дату конца квартала для указанной даты.

Пример:

ДатаКонцаКвартала = КонКвартала(РабочаяДата());

НачГода

Определить дату начала года.

Синтаксис:

НачГода(<Дата>)

Англоязычный синоним:

BegOfYear

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачГода определяет дату начала года для указанной даты.

Пример:

ДатаНачалаГода = НачГода(РабочаяДата());

КонГода

Определить дату конца года.

Синтаксис:

КонГода(<Дата>)

Англоязычный синоним:

EndOfYear

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонГода определяет дату конца года для указанной даты.

Пример:

ПатаКонцаГода = КонГода(РабочаяДата());

НачНедели

Определить дату начала недели.

Синтаксис:

НачНедели(<Дата>)

Англоязычный синоним:

BegOfWeek

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачНедели определяет дату начала недели для указанной даты.

Пример:

ДатаНачалаНедели = НачНедели(РабочаяДата());

КонНедели

Определить дату конца недели.

Синтаксис:

КонНедели(<Дата>)

Англоязычный синоним:

EndOfWeek

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонНедели определяет дату конца недели для указанной даты.

Пример:

ДатаКонцаНедели = КонНедели(РабочаяДата());

ДатаГод

Определить год указанной даты.

Синтаксис:

ДатаГод(<Дата>)

Англоязычный синоним:

GetYear

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Число со значением определенного года.

Описание:

Функция ДатаГод определяет год указанной даты.

Пример:

ЗначениеГода = ДатаГод(РабочаяДата());

ДатаМесяц

Определить месяц указанной даты.

Синтаксис:

ДатаМесяц(<Дата>)

Англоязычный синоним:

GetMonbh

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Число со значением номера месяца года.

Описание:

Функция ДатаМесяц определяет месяц указанной даты.

Пример:

ЗначениеМесяца = ДатаМесяц(РабочаяДата());

ДатаЧисло

Определить день месяца указанной даты.

Синтаксис:

ДатаЧисло(<Дата>)

Англоязычный синоним:

GetDay

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Число со значением определенного дня месяца.

Описание:

Функция ДатаЧисло определяет день месяца указанной даты.

Пример:

ЗначениеДняМесяца = ДатаЧисло(РабочаяДата());

НомерНеделиГода

Определить номер недели в году для указанной даты.

Синтаксис:

НомерНеделиГода(<Дата>)

Англоязычный синоним:

GetWeekOfYear

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Число со значением определенного номера недели в году.

Описание:

Функция НомерНеделиГода определяет номер недели в году для указанной даты.

Пример:

ЗначениеНедели = НомерНеделиГода(РабочаяДата());

НомерДняГода

Определить день года указанной даты.

Синтаксис:

НомерДняГода(<Дата>)

Англоязычный синоним:

GetDayOfYear

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Число со значением определенного дня года.

Описание:

Функция НомерДняГода определяет порядковый день в году для указанной даты.

Пример:

ЗначениеДняГода = НомерДняГода(РабочаяДата());

НомерДняНедели

Определить день недели указанной даты.

Синтаксис:

НомерДняНедели(<Дата>)

Англоязычный синоним:

GetDayOfWeek

Параметры:

<Дата>

Выражение со значением типа «дата».

Возвращаемое значение:

Число со значением определенного порядкового дня недели.

Описание:

Функция НомерДняНедели определяет день недели указанной даты. Возвращаемое значение — число со значением определенного порядкового дня недели (1 — понедельник, 2 — вторник, ..., 7 — воскресенье).

Пример:

ЗначениеДняНедели = НомерДняНедели(РабочаяДата());

ПериодСтр

Строковое представление периода.

Синтаксис:

ПериодСтр(<ДатаНачалаПериода>, <ДатаКонцаПериода>)

Англоязычный синоним:

Рег1odStr

Параметры:

<ДатаНачалаПериода> | Дата — начальная дата периода.
<ДатаКонцаПериода> | Дата — конечная дата периода.

Возвращаемое значение:

Символьная строка — представление периода.

Описание:

Внутри системы все периоды задаются интервалом дат — дата начала и дата конца. Функция ПериодСтр предназначена для того, чтобы в случае, если период фактически является кварталом, месяцем, полугодием отобразить его соответствующим образом, например "1 квартал 1997 г".

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

Пример:

Дата1='01.01.97';

Дата2='31.03.97';

Сообщить(ПериодСтр(Дата1, Дата2));  //Выводит "1 квартал 1997 г."

НачалоСтандартногоИнтервала

Устанавливает вариант задания начала стандартного интервала отображения журнала документов.

Синтаксис:

НачалоСтандартногоИнтервала(<Вариант>)

Англоязычный синоним:

BegOfStandrdRange

Параметры:

<Вариант>

Необязательный параметр. Выражение со значением типа строка или дата. Возможные строковые значения параметра:

"День", "Месяц", "Квартал", "Год", "Day", "Month", "Quarter", "Year". Значением типа «дата» задается конкретная дата начала интервала журнала документов. Если параметр не задан, то установка сделанная в параметрах системы не меняется, а только возвращается текущий вариант.

Возвращаемое значение:

Возвращает текущий установленный вариант.

Описание:

Функция НачалоСтандартногоИнтервала устанавливает вариант зада ния начала стандартного интервала отображения журнала документов. Вариан может изменяться при помощи главного меню Сервис-Параметры-Общие.

Пример:

НачалоСтандартногоИнтервала("Месяц");

КонецСтандартногоИнтервала

Устанавливает вариант задания конца стандартного интервала ото бражения журнала документов.

Синтаксис:

КонецСтандартногоИнтервала(<Вариант>)

Англоязычный синоним:

EndOfStandardRange

Параметры:

<Вариант>

Необязательный параметр. Выражение со значением типа строка или дата. Возможные строковые значения параметра: "День", "Месяц", "Квартал", "Год", "Day", "Month", "Quarter", "Year". Значением типа «дата» задается конкретная дата конца интервала журнала документов. Если параметр не задан, то установка сделанная в параметрах системы не меняется, а только возвращается текущий вариант.

Возвращаемое значение:

Возвращает текущий установленный вариант.

Описание:

Функция КонецСтандартногоИнтервала устанавливает вариант задания конца стандартного интервала отображения журнала документов. Вариант может изменяться при помощи главного меню Сервис-Параметры-Общие.

Пример:

КонецСтандартногоИнтервала("Месяц");

Функции работы с временем

ТекущееВремя

Возвратить текущее время

Синтаксис:

ТекущееВремя(<Час>, <Мин>, <Сек>)

Англоязычный синоним:

CurrentTime

Параметры:

<Час> | Необязательный параметр. Имя переменной, куда система возвращает числовое значение часа текущего времени.
<Мин> | Необязательный параметр. Имя переменной, куда система возвращает числовое значение минут текущего времени.
<Сек> | Необязательный параметр. Имя переменной, куда система возвращает числовое значение секунд текущего времени.

Возвращаемое значение:

Текущее время в текстовом виде.

Описание:

Функция ТекущееВремя возвращает текущее (системное) время в текстовом виде. Кроме того, если в качестве параметров при вызове функции передать переменные, то функция вернет в них числовые значения текущего часа, минуты, секунды.

Пример:

Сообщить("Сейчас " + ТекущееВремя());

Функции преобразования типов

Дата

Преобразовать параметр в дату.

Синтаксис 1:

Дата(<Параметр>)

Синтаксис 2:

Дата(<Год>, <Месяц>, <Число>)

Англоязычный синоним:

Date

Параметры:

<Параметр> | Числовое выражение.
<Год> | Числовое выражение. Год указывается 4-х знач-ным числом (вместе с веком).
<Месяц> | Числовое выражение.
<Число> | Числовое выражение.

Возвращаемое значение:

Значение типа «дата».

Описание:

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

Пример:

// преобразование из строки

ДатаРожд = Дата('06.03.1958');

Строка

Преобразовать параметр в строку.

Синтаксис:

Строка(<Параметр>)

Англоязычный синоним:

String

Параметры:

<Параметр>

Выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция Строка преобразует параметр в строку, руководствуясь принятыми правилами преобразования типов и возвращает значение строки.

Стр = Строка(ДатаРожд + 1);

Число

Преобразовать параметр в число.

Синтаксис:

Число(<Параметр>)

Англоязычный синоним:

Number

Параметры:

<Параметр>

Выражение.

Возвращаемое значение:

Числовое значение.

Описание:

Функция Число преобразует параметр в число, руководствуясь принятыми правилами преобразования типов и возвращает значение числа.

Пример:

ВР = Число(Вар + Род);

Функции работы с позицией документа

СформироватьПозициюДокумента

Формирует позицию документа согласно переданным параметрам

Синтаксис 1:

СформироватьПозициюДокумента(<Докум>, <ФлагСмещения>)

Синтаксис 2:

СформироватьПозициюДокумента(<Дата>, <Час>, <Мин>, <Сек>, <ФлагКонцаСекунды>)

Англоязычный синоним:

MakeDocPosition

Параметры:

<Докум> | Значение документа (или его позиция), позиция которого определяется.
<ФлагСмещения> | Необязательный параметр. Число: -1 (минус единица) — предыдущая позиция. 1 — следующая позиция. 0 — текущая позиция. Значение по умолчанию — 0. Использование данного параметра позволяет получить предыдущую или последующую позицию от уже имеющейся позиции.
<Дата> | Значение типа «дата», на которую формируется позиция документа.
<Час> | Значение типа «число», которое определяет час, на который формируется позиция документа.
<Мин> | Значение типа «число», которое определяет минуту, на которую формируется позиция документа.
<Сек> | Значение типа «число», которое определяет секунду, на которую формируется позиция документа.
<ФлагКонцаСекунды> | Необязательный параметр. Число: 1 — позиция будет браться от следующей секунды. 0 — позиция от указанной секунды. Значение по умолчанию — 0.

Возвращаемое значение:

Строковое значение — сформированная позиция документа (см. «Позиция документа»).

Описание:

Функция СформироватьПозициюДокумента формирует и возвращает позицию документа согласно переданным параметрам.

Пример:

ПозицияВыбДокум=СформироватьПозициюДокумента(ВыбДокумент);

РазобратьПозициюДокумента

Раскладывает позицию документа на составляющие и возвращает строковое представление позиции документа

Синтаксис:

РазобратьПозициюДокумента(<Позиция>, <Дата>, <Час>, <Мин> , <Сек>, <Документ>)

Англоязычный синоним:

SplitDocPosition

Параметры:

<Позиция> | Строковое значение позиции документа.
<Дата> | Необязательный параметр. Имя переменной, куда система вернет значение даты позиции документа.
<Час> | Необязательный параметр. Имя переменной, куда система вернет числовое значение часа позиции документа.
<Мин> | Необязательный параметр. Имя переменной, куда система вернет числовое значение минуты позиции документа.
<Сек> | Необязательный параметр. Имя переменной, куда система вернет числовое значение секунды позиции документа.
<Документ> | Необязательный параметр. Имя переменной, куда система вернет значение документа данной позиции документа.

Возвращаемое значение:

Представление позиции документа в строковом виде, например: «12.07.98 12:57:14 ПрихНакл 24»

Описание:

Функция РазобратьПозициюДокумента раскладывает позицию документа на составляющие и возвращает строковое представление позиции документа.

Пример:

Позиция = РазобратьПозициюДокумента(ВыбДокумент.ПозицияДокумента());

Процедуры и функции форматирования

Пропись

Задать образец вывода числа прописью.

Синтаксис:

Пропись(<Образец>)

Англоязычный синоним:

Spelling

Параметры:

<Образец>

Необязательный параметр. В данном параметре можно передавать:

-строковое выражение, задающее имя файла прописи (в поставляемом комплекте файлы прописей имеют расширение .SPL);

- объект типа «СписокЗначений» в котором в специальном формате задан образец прописей.

Если параметр <Образец> пустой или состоит из пробелов, то устанавливается образец прописей по умолчанию (файл 1CV7.spl).

Описание:

Процедура Пропись задает образец, в соответствии с которым будут выводиться прописные значения функцией Формат.

В параметре <Образец> может быть передана строка, задающая имя файла прописей. Файл прописей представляет собой текстовый файл специальной структуры, в котором находятся образцы прописей чисел, названия денежной единицы, дат, дней недели и т. п. Пример файла прописей можно посмотреть в поставляемом комплекте (файл lCV7.spl).

Ниже приводится фрагмент текста файла прописей, содержащий образец прописи для валюты мужского рода:

{"Speller",

{"Money",

{"Рубль", "Рубля", "Рублей", "Копейка", "Копейки", "Копеек", "М"}},

Ниже приводится фрагмент текста файла, содержащий образец прописи для валюты женского рода (добавляется параметр "F" в описание названия валюты):

{"Speller",

{"Money",

{"условная единица", "Условные единицы", "Условных единиц", "Сотая", "Сотые",

"Сотых", "F"}},

Кроме того, в параметре <Образец> может быть передан объект типа «СписокЗначений», содержащий в качестве своих значений объекты типа «Список-Значений» каждый из которых содержит набор слов используемых в прописи определенного типа. Типы прописей соответвуют секциям файла SPL:

Money

Numbers

Date

DateRange

WeekDay

Списки значений с наборами слов определенного типа прописей должны следовать либо в строго определенной последовательности, либо значение, являющееся списком значений, должно иметь в качестве своего строкового представления название типа прописи — в этом случае в переданном списке значений могут присутствовать не все списки значений соотвутствующие секциям файла SPL.

В списке значений конкретного типа прописи должны быть слова в последовательности, строго соответвующей последовательности слов в данной секции в файле SPL.

Действие данной процедуры распространяется только на текущий программный модуль.

Пример:

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

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

   // ...

   Пропись("1cue.spl");  // задаем имя файла прописи

   Таб.Опции(0, 0, 0, 0);

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

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

   Пропись("");

   // возвращаем значение прописи по умолчанию

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

Формат

Форматировать переданный параметр.

Синтаксис:

Формат(<Параметр>, <Форматная_строка>)

Англоязычный синоним:

Format

Параметры:

<Параметр> | Выражение.
<Форматная_строка> | Строковое выражение.

Возвращаемое значение:

Строковое значение.

Описание:

Функция Формат форматирует переданный параметр, руководствуясь информацией, содержащейся в параметре <Форматная_строка>. Возвращает сформатированную строку.

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

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

Символы, определяющие тип форматируемых данных:

Ч — число (Англоязычный синоним: N)

С — строка (Англоязычный синоним: S)

Д — дата (Англоязычный синоним: D)

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

Для числовых значений форматная строка должна иметь вид: "Чm.nDT" или "Чm", где т и п— целые числа. Целое положительное число m определяет длину поля в котором будет размещаться строковое представление числа, а целое положительное число n определяет число знаков после десятичной точки. D — представляет собой любой символ (кроме пробела и цифры), которым в сфор-матированной строке целая часть будет отделяться от дробной, а T — символ (также кроме пробела и цифры), которым будут разделяться триады целой части числа. Символы "D" и "Т" являются необязательными.

Если в форматной строке проставить символ "0" (ноль) перед длиной поля, то нулевые значения при выводе будут подавлятся (выводится пустая строка). Пример: "Ч015.2".

Если в форматной строке указано "(0)" перед всеми прочими спецификациями, то все позиции в поле вывода числа, соответствующие незадействованным старшим разрядам будут заполнены символами "0". Например:

Формат(123.15, "Ч(0)10.2") = 0000123.15

Если в форматной строке проставить символ "-" перед длиной поля, то нулевые значения при выводе будут отображаться прочерком. Пример: "4-17.2 ".

В форматной строке для числа можно использовать сдвиг разрядов при выводе. Это позволяет, например, отображать числовое значение в тысячах и т. п. В этом случае форматная строка должна заканчиваться символами ">Х" , где Х — количество сдвигаемых разрядов. Например, форматная строка: "Ч010>3" — означает вывод числа в тысячах (сдвиг на три разряда).

Строковое представление числа всегда является правоустановленным.

Кроме того, возможен вывод денежных величин и просто целых чисел прописью. В этом случае форматная строка должна иметь вид "ЧПДС". Наличие буквы "П" (в английском варианте для аналогичной цели используется буква "S") определяет сам факт вывода числа прописью. Символ "Д" (в английском варианте — "M") обозначает вывод денежной величины и является необязательным. Символ "С" (в английском варианте — "H") также необязателен и означает вывод с копейками.

Для форматирования строк используется следующая форматная строка:

"Сn", где n — положительное целое число определяющее ширину поля, в котором будет размещаться строка. В случае, если ширина поля превосходит длину строки сформатированная строка будет дополнена справа пробелами, если же ширина поля меньше длины строки — строка будет усечена справа.

Для форматирования даты используется форматная строка вида "Д<ПодстрокаФормата>", где <Подстрока Формата> представляет собой строку, определяющую вид сформатированного представления даты:

DDMMYY (ДДММГГ) | дата в виде ДД.ММ.ГГ
DDMMYYYY (ДДММГГГГ) | дата в виде ДД.ММ.ГГГГ
DDMMMMYYYY (ДДММММГГГГ) | дата в виде ДД месяц прописью ГГГГ
(0)DDMMMMYYYY ((0)ДДММММГГГГ) | этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т. е. для чисел меньших 10 спереди будет добавлен 0. Например: Формат('01.01.1999', ' 'Д(0)ДДММММГГГГ' ') = 01 Января 1999 г.
MMMMYYYY (ММММГГГГ) | дата в виде месяц прописью ГГГГ
MMMMYY (ММММГГ) | дата в виде месяц прописью ГГ
ММММ (ММММ) | дата в виде месяц прописью
QQQQYYYY (ККККГГГГ) | дата в виде N квартала ГГГГ
QQQQYY (ККККГГ) | дата в виде N квартала ГГ
QQQQ | дата в виде N квартала
YYYYMMDD (ГГГГММДД) | дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка "19981110"
WWWW (HHHH) | выводит наименование дня недели, соответствующее указанной дате. Наименования дней недели берутся из файла прописи.

Пример:

ДолгКлиента = Строка(Формат(-Долг(), "Ч12.2")) + " " + Валюта.Сокр_назв;

Шаблон

Сформировать строку по шаблону.

Синтаксис:

Шаблон(<Строка_шаблон>)

Англоязычный синоним:

Template

Параметры:

<Строка_шаблон>

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

Возвращаемое значение:

Строковое значение.

Описание:

Функция Шаблон возвращает строковое значение, сформированное в соответствии с заданным параметром <Строка_шаблон>, заменив в ней все встроенные выражения, заключенные в квадратные скобки, на их строковые значения.

Строковое значение параметра <Строка_шаблон> обрабатывается следующим образом: символы "[" , "]" (квадратные скобки) являются специальными символами, которые выделяют поля, содержащие встроенные выражения. Например:

Имя клиента [Имя], телефон: [Телефон]

После встроенного выражения может стоять символ "#", после которого следует Форматная_строка описанная в функции Формат. В этом случае в данное поле будет проставлен результат выражения, обработанный функцией Формат.

Пример:

Стр = Шаблон("Это название услуги: [Услуга.Наименование]");

//   выдает: "Это название услуги: Вывоз мусора"

ФиксШаблон

Сформировать строку по фиксированному шаблону.

Синтаксис:

ФиксШаблон(<Строка_шаблон>)

Англоязычный синоним:

FixTemplate

Параметры:

<Строка_шаблон>

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

Возвращаемое значение:

Строковое значение.

Описание:

Функция ФиксШаблон возвращает строковое значение, сформированное в соответствии с заданным параметром <Строка_шаблон>, заменив в ней все встроенные выражения, заключенные в квадратные скобки, на их значения. В отличие от функции Шаблон, поля замещаются значениями выражений с сохранением своей длины в символах, то есть обрезаются, если поле короче результата вычисления выражения и дополняются пробелами если длиннее. Если результат числовой, то в границах поля строка прижимается к правой границе.

Строковое значение параметра <Строка_шаблон> обрабатывается следующим образом: символы "[" , "]" (квадратные скобки) являются специальными символами, которые выделяют поля, содержащие встроенные выражения. Выделенные поля фиксируют свою длину с учетом ограничивающих скобок. Например:

Имя Клиента [Имя], телефон: [Телефон]

После встроенного выражения может стоять символ "#", после которого следует Форматная_строка описанная в функции Формат. В этом случае в данное поле будет проставлен результат выражения, обработанный функцией Формат.

Пример:

// ниже - пример с дополнением пробелами

Стр = Шаблон("Это название услуги [Услуга.Наименование       ]");

//   выдает: "Это название услуги Вывоз мусора                "

// далее - с сокращением строки

Стр = Шаблон("Это название услуги [Услуга.Наименование]");

//   выдает: "Это название услуги Выполенние формирован"

Функции для вызова диалога ввода данных

ВвестиЗначение

Вызов диалога для ввода значения заданного типа.

Синтаксис:

ВвестиЗначение(<3начение>, <Подсказка>, <Тип>, <Длина>, <Точность>)

Англоязычный синоним:

InputValue

Параметры:

<3начение> | Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное значение.
<Подсказка> | Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.
<Тип> | Строковое выражение — название типа данных, которое требуется ввести. Например: "Строка", "Число", "Справочник.Товары", "Документ . РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Длина вводимого значения (для типов данных «Строка», «Число»).
<Точность> | Необязательный параметр. Количество знаков после десятичной точки (для типа данных «Число»).

Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если нажата кнопка «Отмена»;

Описание:

Функция ВвестиЗначение выполняет вызов диалога для ввода значения заданного типа.

Пример:

Если ВвестиЗначение(Ном, "Введите номер приказа", "Число", 5, 0) = 1 Тогда

   ВыбДок = СоздатьОбъект("Документ.Приказ");

   ВыбДок.НайтиПоНомеру(Строка(Ном), Дата(0));

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

      // . . .

   ИначеЕсли;

      // . . .

   КонецЕсли;

КонецЕсли;

ВвестиЧисло

Вызов диалога для ввода числа.

Синтаксис:

ВвестиЧисло(<Число>, <Подсказка>, <Длина>, <Точность> , <Таймаут>)

Англоязычный синоним:

InputNumeric

Параметры:

<Число> | Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное значение числа.
<Подсказка> | Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.
<Длина> | Длина вводимого числа.
<Точность> | Количество знаков после десятичной точки.
<Таймаут> | Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.

Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.

Описание:

Функция ВвестиЧисло выполняет вызов диалога для ввода числа.

Пример:

Если ВвестиЧисло(Ном, "Введите номер приказа", 5, 0, 10) = 1 Тогда

   ВыбДок = СоздатьОбъект("Документ.Приказ");

   ВыбДок.НайтиПоНомеру(Строка(Ном), Дата(0));

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

      // . . .

   ИначеЕсли;

      // . . .

   КонецЕсли;

КонецЕсли;

ВвестиСтроку

Вызов диалога для ввода строки.

Синтаксис:

ВвестиСтроку(<Строка>, <Подсказка>, <ДлинаСтроки>, <Признак>, <Таймаут>)

Англоязычный синоним:

InputString

Параметры:

<Строка> | Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное строковое значение.
<Подсказка> | Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.
<ДлинаСтроки> | Числовое выражение — длина строки.
<Признак> | Необязательный параметр. Числовое выражение, если 0 — ввод простой строки без разделителей строк, если 1 — ввод многострочного текста с разделителями строк. Значение по умолчанию — 0.
<Таймаут> | Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.

Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.

Описание:

Функция ВвестиСтроку выполняет вызов диалога для ввода строки.

Пример:

Процедура ВводКодовПродукции()

   Если Продукция.Вид = Перечисление.ВидПродукции.Наша Тогда

      НК = Код;

      Если ВвестиСтроку(НК, "Введите код продукции", 40, 1, 9) = 1 Тогда

         Koд = HK;

      КонецЕсли;

   Иначе

      Код = "";

      Возврат;

   КонецЕсли;

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

ВвестиДату

Вызов диалога для ввода даты.

Синтаксис:

ВвестиДату(<Дата>, <Подсказка>, <Таймаут>)

Англоязычный синоним:

InputDate

Параметры:

<Дата> | Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное значение даты.
<Подсказка> | Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.
<Таимаут> | Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.

Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.

Описание:

Функция ВвестиДату выполняет вызов диалога для ввода даты.

Пример:

Процедура ВводДатыСсуды()

   Если ВидРасчета = ВидРасчета.БеспроцентнаяСсуда Тогда

      ДатаСсуды = Дата(0);

      Возврат;

   КонецЕсли;

   Если ДатаСсуды = Дата(0) Тогда

      ДатаСсуды = ДатаДок + 30;

   КонецЕсли;

   Д = ДатаСсуды;

   Если ВвестиДату(Д, "Введите дату ссуды") = 1 Тогда

      ДатаСсуды = Д;

   Иначе

      ВидРасчета = ВидРасчета.БеспроцентнаяСсуда;

   КонецЕсли;

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

ВвестиПериод

Ввод периода в виде диалога.

Синтаксис:

ВвестиПериод(<НачалоПериода>, <КонецПериода>, <Подсказка>)

Англоязычный синоним:

InputРег1od

Параметры:

<НачалоПериода> | Идентификатор переменной, в которую функция возвращает дату начала периода.
<КонецПериода> | Идентификатор переменной, в которую функция возвращает дату конца периода.
<Подсказка> | Необязательный параметр. Строковое выражение, содержащее строку, которая будет выводиться в заголовке окна диалога. Если не указано — стандартная подсказка.

Возвращаемое значение:

Числовое значение: 1 — выбор осуществлен , 0 — выбор не осуществлен (пользователем нажата кнопка «Отмена», клавиша <Esc> или закрыто окно диалога).

Описание:

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

Пример:

Дата1 = '01.01.97';

Дата2 = '31.03.97';

Если ВвестиПериод(Дата1, Дата2, "Введите период отчета") <> 1 Тогда

   Возврат 0;

КонецЕсли;

ВвестиПеречисление

Вызов диалога для ввода перечисления.

Синтаксис:

ВвестиПеречисление(<3начение>, <Подсказка>, <Таймаут>)

Англоязычный синоним:

InputEnum

Параметры:

<3начение> | Имя переменной, ранее объявленной в программном модуле. Переменная должна содержать значение типа «Перечисление» или строковое значение. Если тип передаваемого в качестве параметра значения — перечисление, то вызывается диалог со списком заданного вида перечисления. Если тип передаваемого в качестве параметра значения — строка, то в ней должен быть идентификатор требуемого вида перечисления, как он задан в конфигураторе. В эту же переменную будет помещено выбранное в диалоге значение перечисления.
<Подсказка> | Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.
<Таймаут> | Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.

Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.

Описание:

Функция ВвестиПеречисление выполняет вызов диалога для ввода перечисления.

Пример:

*

Процедура УстПризнак1()

   ВыбПризн = Перечисление.ТипСотрудника.Штатный;

   Если ВвестиПеречисление(ВыбПризн, "Выберите тип") > 0 Тогда

      Тип = ВыбПризн;

   Иначе

      Тип = Перечисление.ТипСотрудника.Штатный;

   КонецЕсли;

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

*

Процедура УстПризнак2()

   ВыбПризн = "ТипСотрудника";

   Если ВвестиПеречисление(ВыбПризн, "Выберите тип") > 0 Тогда

      Тип = ВыбПризн;

   Иначе

      Тип = Перечисление.ТипСотрудника.Штатный;

   КонецЕсли;

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

Процедуры и функции общего назначения

Вопрос

Вывести окно вопроса.

Синтаксис:

Вопрос(<Текст_вопроса>, <Режим>, <Таймаут>)

Англоязычный синоним:

DoQueryBox

Параметры:

<Текст_вопроса> | Строковое выражение текста вопроса.
<Режим> | Числовое или строковое выражение, определяющее режим вывода окна вопроса.
<Таймаут> | Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.

Возвращаемое значение:

Если параметр <Режим> задан числовым значением, то функция возвращает числовое значение:

-1 | Закончилось время ожидания ответа.
1 | Выбрана кнопка «ОК».
2 | Выбрана кнопка «Отмена».
3 | Выбрана кнопка «Стоп».
4 | Выбрана кнопка «Повтор».
5 | Выбрана кнопка «Пропустить».
6 | Выбрана кнопка «Да».
7 | Выбрана кнопка «Нет».

Если параметр <Режим> задан строковым значением, то функция возвращает строковое значение. Язык для возврата такой же, какой использован в пара-метре <Режим>.

Русск. яз. | Англ.яз. | Описание
Таймаут | Timeout | Закончилось время ожидания ответа.
ОК | ОК | Выбрана кнопка «ОК».
Отмена | Cancel | Выбрана кнопка «Отмена».
Стоп | Abort | Выбрана кнопка «Стоп».
Повтор | Retry | Выбрана кнопка «Повтор».
Пропустить | Ignore | Выбрана кнопка «Пропустить».
Да | Yes | Выбрана кнопка «Да».
Нет | No | Выбрана кнопка «Нет».

Описание:

Функция Вопрос выводит на экран окно вопроса. Текст определяется параметром <Текст_вопроса>. Параметр <Режим> определяет варианты возможных ответов.

Если параметр <Режим> задан числовым значением, то возможные варианты передаваемого параметра:

0 | Кнопка «ОК».
1 | Кнопки «ОК» и «Отмена».
2 | Кнопки «Стоп», «Повтор», «Пропустить».
3 | Кнопки «Да», «Нет», «Отмена».
4 | Кнопки «Да», «Нет».
5 | Кнопки «Повтор», «Отмена».

Любое другое числовое значение параметра <Режим> эквивалентно значению 0 (кнопка «ОК»), равно как и отсутствие указанного параметра.

Если параметр <Режим> задан строковым значением, то возможные варианты передаваемого параметра:

Русскоязычное написание | Англоязычное написание
ОК | ОК
ОК+Отмена | OK+Cancel
Стоп+Повтор+Пропустить | Abort+Retry+Ignore
Да+Нет+Отмена | Yes+No+Cancel
Да+Нет | Yes+No
Повтор+Отмена | Retry+Cancel

Пример:

Рез = Вопрос("Вы получили данное сообщение?", 4);

Если Вопрос("Все нормально?", "Да+Нет") = "Да" Тогда

   //  . . .

КонецЕсли;

Предупреждение

Вывести окно предупреждения.

Синтаксис:

Предупреждение(<Текст_сообщения>, <Таймаут>)

Англоязычный синоним:

DoMessageBox

Параметры:

<Текст_сообщения> | Строковое выражение.
<Таймаут> | Необязательный параметр. Числовое выражение интервала времени ожидания в секундах, в течение которого система будет ждать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.

Описание:

Процедура Предупреждение выводит на экран окно предупреждения (MessageBox). Текст определяется параметром <Текст_сообщения>. По поведению данная процедура эквивалентна функции:

Вопрос(<Текст_сообщения>, 0, <Таймаут>), но не возвращает значения.

Если закончилось время ожидания ответа, то окно предупреждения автоматически удаляется с экрана.

Пример:

// Выводим сообщение 5 секунд

Предупреждение("Доброе утро!", 5);

Сообщить

Вывести строку в окно сообщений.

Синтаксис:

Сообщить(<Текст_сообщения>, <ИмиджМаркера>)

Англоязычный синоним:

Message

Параметры:

<Текст_сообщения> | Строковое выражение.
<ИмиджМаркера> | Необязательный параметр. Строковое выражение, которое задает тип пиктограммы выводимой перед сообщением. Возможные значения: "I", "!", "!!", "!!!", "." — обычное сообщение, " " — без маркера.

Описание:

Процедура Сообщить выводит <Текст_сообщения> в окно сообщений. Перед сообщениями можно отображать специальные пиктограммы, которыми можно помечать сообщения различной важности.

Пример:

Сообщить("Доброе утро!", "I");

ОчиститьОкноСообщений

Очистить окно сообщений.

Синтаксис:

ОчиститьОкноСообщений()

Англоязычный синоним:

ClearMessageWindow

Описание:

Процедура ОчиститьОкноСообщений очищает окно сообщений.

Пример:

ОчиститьОкноСообщений();

Состояние

Вывести сообщение в строку состояния.

Синтаксис:

Состояние(Текст_сообщения)

Англоязычный синоним:

Status

Параметры:

<Текст_сообщения>

Строковое выражение.

Описание:

Процедура Состояние выводит строку текста в строку состояния (статус-бар). Текст определяется параметром <Текст_сообщения>.

Пример:

Состояние("Доброе утро!")

? (вычислить выражение по условию)

Вычислить выражение по условию.

Синтаксис:

?(<Логич_выраж>, <Выраж1>, <Выраж2>)

Англоязычный синоним:

?

Параметры:

<Логич_выраж> | Логическое выражение.
<Выраж1> | Выражение.
<Выраж2> | Выражение.

Возвращаемое значение:

Результирующее значение.

Описание:

Функция ? вычисляет значение <Логич_выраж> и если его значение — истина, то возвращает вычисленное значение <Выраж1>. Если значение <Логич_выраж> — ложь, то возвращает вычисленное значение <Выраж2>.

Пример:

Спр.ВыбратьЭлементы();

Пока (Спр.ПолучитьЭлемент() > 0) Цикл

   Состояние(Спр.Наименование);

   Сообщить(Спр.Наименование);

   Sec = ?(Спр.ЭтоГруппа = 1, "Folder", "DL");

   Таб.ВывестиСекцию(Sес + "-V1");

   Таб.ПрисоединитьСекцию(Sec + "-V3");

КонецЦикла;

Сигнал

Вывести звуковой сигнал.

Синтаксис:

Сигнал()

Англоязычный синоним:

Веер

Описание:

Процедура Сигнал издает короткий звуковой сигнал.

Пример:

Сигнал();

Разм

Определить размерность массива.

Синтаксис:

Разм(<Имя_массива>)

Англоязычный синоним:

Dim

Параметры:

<Имя_массива>

Идентификатор массива.

Возвращаемое значение:

Числовое значение размерности массива.

Описание:

Функция Разм возвращает числовое значение размерности массива переданного в качестве параметра.

Пример:

Перем Массив_для_хранения[10];

Размер = Разм(Массив_для_хранения);

Функции среды исполнения

ЗаголовокСистемы

Получить/установить заголовок окна программы.

Синтаксис:

ЗаголовокСистемы(<3аголовок>)

Англоязычный синоним:

SystemCaption

Параметры:

<Заголовок>

Строковое выражение.

Возвращаемое значение:

Строковое значение — заголовок системы до исполнения метода.

Описание:

Метод ЗаголовокСистемы позволяет получить/установить заголовок окна программы.

Пример:

ЗаголовокСистемы("Оптово-розничная конфигурация")

ИмяКомпьютера

Получить сетевое имя компьютера.

Синтаксис:

ИмяКомпьютера()

Англоязычный синоним:

ComputerName

Возвращаемое значение:

Строковое значение — сетевое имя компьютера, работающего в данный момент с программой.

Описание:

Функция ИмяКомпьютера возвращает сетевое имя компьютера, работающего в данный момент с программой.

Пример:

Компьютер = ИмяКомпьютера();

ИмяПользователя

Получить имя пользователя.

Синтаксис:

ИмяПользователя()

Англоязычный синоним:

UserName

Возвращаемое значение:

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

Описание:

Функция ИмяПользователя возвращает имя пользователя (указанное в конфигураторе в списке пользователей), работающего в данный момент с программой.

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

Спр.НайтиПоКоду(ИмяПользователя());

Менеджер = Спр.ТекущийЭлемент();

Если Менеджер.Выбран() = 0 Тогда

   Предупреждение("Не выбран менеджер!");

КонецЕсли;

ПолноеИмяПользователя

Получить полное имя пользователя.

Синтаксис:

ПолноеИмяПользователя()

Англоязычный синоним:

UserFullName

Возвращаемое значение:

Строковое значение, содержащее полное имени пользователя.

Описание:

Функция ПолноеИмяПользователя возвращает полное имя пользователя, указанное в конфигураторе при авторизации доступа.

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

Спр.НайтиПоНаименованию(ПолноеИмяПользователя());

Менеджер = Спр.ТекущийЭлемент();

Если Менеджер.Выбран() = 0 Тогда

   Предупреждение("Не выбран менеджер!");

КонецЕсли;

НазваниеНабораПрав

Получить название набора прав пользователя.

Синтаксис:

НазваниеНабораПрав(<ВыдИспНабПрав>)

Англоязычный синоним:

RightName

Параметры:

<ВыдИспНабПрав>

Выдавать используемый набор прав или нет. Необязательный параметр. Число: 0 — выдает установленный пользователю набор прав; 1 — выдает пустую строку, если пользователю набор прав назначен, но установлен режим отключения контроля набора прав. Значение по умолчанию — 0.

Возвращаемое значение:

Строковое значение, содержащее название набора прав пользователя.

Описание:

Функция НазваниеНабораПрав возвращает название набора прав, заданное пользователю в конфигураторе.

Пример:

МоиПрава = НазваниеНабораПрав();

ПравоДоступа

Проверяет для текущего пользователя наличие права доступа для заданного объекта.

Синтаксис:

ПравоДоступа(<НазваниеПрава>, <Объект>)

Англоязычный синоним:

AccessRight

Параметры:

<НазваниеПрава> | Строка с названием права доступа, как оно выводится в конфигурации (без пробелов).
<Объект> | Строка с наименованием типа и вида объекта (записывается через точку). Для глобальных прав этот параметр не указывается. Для объектов, у которых нет вида, записывается только тип объекта, например, «Операция».

Возвращаемое значение:

Число: 1 — если право доступа есть, иначе 0.

Описание:

Функция ПравоДоступа проверяет для текущего пользователя наличие права доступа для заданного объекта.

Пример:

Доступ = ПравоДоступа("Чтение", "Документ.Счет");

Доступ1 = ПравоДоступа("МонопольныйРежим");

НазваниеИнтерфейса

Получить название интерфейса пользователя.

Синтаксис:

НазваниеИнтерфейса()

Англоязычный синоним:

UserInterfaceName

Возвращаемое значение:

Строковое значение, содержащее название интерфейса пользователя.

Описание:

Функция НазваниеИнтерфейса возвращает название интерфейса, заданное пользователю в конфигураторе.

Пример:

МойИнтерфейс = НазваниеИнтерфейса();

КаталогПользователя

Получить каталог пользователя.

Синтаксис:

КаталогПользователя()

Англоязычный синоним:

UserDir

Возвращаемое значение:

Строковое значение, содержащее имя рабочего каталога пользователя.

Описание:

Функция КаталогПользователя возвращает имя рабочего каталога пользователя, заданный пользователю в конфигураторе.

Пример:

МояДиректория = КаталогПользователя();

КаталогИБ

Получить каталог базы данных.

Синтаксис:

КаталогИБ()

Англоязычный синоним:

IBDir

Возвращаемое значение:

Строковое значение, содержащее имя каталога базы данных.

Описание:

Функция КаталогИБ возвращает имя каталога базы данных.

Пример:

МояБД = КаталогИБ();

КаталогПрограммы

Получить каталог программы.

Синтаксис:

КаталогПрограммы()

Англоязычный синоним:

BinDir

Возвращаемое значение:

Строковое значение, содержащее имя каталога программы.

Описание:

Функция КаталогПрограммы возвращает имя каталога, где размещены исполняемые файлы системы 1С:Предприятие.

Пример:

МояДирПрог = КаталогПрограммы();

КаталогВременныхФайлов

Получить каталог временных файлов.

Синтаксис:

КаталогВременныхФайлов()

Англоязычный синоним:

TempFilesDir

Возвращаемое значение:

Строковое значение, содержащее имя каталога временных файлов.

Описание:

Функция КаталогВременныхФайлов возвращает имя каталога временных файлов, как он установлен в системе 1С:Предприятие. Это может быть каталог, установленный в командной строке запуска системы или, если не указан, то каталог временных файлов установленный в операционной системе.

Пример:

МояВремДир = КаталогВременныхФайлов();

МонопольныйРежим

Определение режима работы программы.

Синтаксис:

МонопольныйРежим()

Англоязычный синоним:

ExclusiveMode

Возвращаемое значение:

Число 1 — если программа запущена в монопольном режиме;

Число 0 — если программа запущена в сетевом режиме.

Описание:

Функция МонопольныйРежим возвращает число 1 — если программа запущена в монопольном режиме и 0 если нет.

Пример:

Процедура Загрузка()

   Если МонопольныйРежим() > 0 Тогда

      ЗагрузитьНаряды();

   Иначе

      Предупреждение("Для запуска этой операции требуется" +

                     "монопольный режим доступа !!!");

   КонецЕсли;

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

ОсновнойЯзык

Определение основного языка конфигурации.

Синтаксис:

ОсновнойЯзык()

Англоязычный синоним:

GeneralLanguage

Возвращаемое значение:

Число 1 — если основной язык конфигурации — русский;

Число 0 — если основной язык конфигурации — английский.

Описание:

При помощи функции ОсновнойЯзык можно прочитать текущее значение основного языка конфигурации.

Замечание: Значение основного языка конфигурации задается в конфигураторе (Метаданные-Глобалъный_модуль-Свойство-Задача-Основной язык).

Значение основного языка конфигурации используется системой в нескольких случаях, а именно, когда система передает в качестве параметра в предопределенную процедуру название объекта конфигурации. В этом случае название агрегатного типа данных передается либо в русском либо в английском написании — в зависимости от текущей установки основного языка конфигурации.

Пример:

*

В данном примере при записи периодического реквизита справочника (через диалоговое окно «История») система передает в предопределенную процедуру строковое значение названия объекта. Нижеследующая процедура определяет, что введено значение курса валюты и сообщает об этом.

Процедура ПриЗаписиИстории(ИмяОбъекта, Объект, Значение, ДатаИстории)

   Если ОсновнойЯзык() = 1 Тогда

      СПР = "Справочник";

   Иначе

      СПР = "Reference";

   КонецЕсли;

   Если ИмяОбъекта = СПР + ".Валюты.Текущ_курс" Тогда

      Сообщить("Добавлено новое значение курса");

      Сообщить("Для валюты " + Объект.Наименование);

      Сообщить("На дату " + ДатаИстории);

      Сообщить("Установлено значение " + Значение);

   КонецЕсли;

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

См. также: ПриУдаленииИстории, ПриЗаписиИстории

Процедуры работы с транзакциями

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

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

Для начала транзакции используется процедура НачатьТранзацию. Для фиксации сделанных в процессе выполнения изменений применяется процедура ЗафиксироватьТранзакцию. Для отмены изменений, сделанных в процессе выполнения транзакции — процедура ОтменитьТранзакцию. Таким образом, все действия с базой данных, выполняемые внутри скобок: НачатьТранзакцию — ЗафиксироватьТранзацию собственно и являются транзакцией.

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

Замечание. В Модуле документа (при проведении документов) в предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система сама по умолчанию выполняет все действия через транзакцию, поэтому никаких специальных действий в этих предопределенных процедурах предпринимать не нужно.

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

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

НачатьТранзакцию

Открыть обработку транзакции.

Синтаксис:

НачатьТранзакцию()

Англоязычный синоним:

BeginTransaction

Описание:

Процедура НачатьТранзакцию открывает транзакцию для обработки информации.

Пример:

Процедура УдалитьПустые()

   Спр = СоздатьОбъект("Справочник.Подразделения");

   Спр.ВыбратьЭлементы();

   НачатьТранзакцию();

   Пока Спр.ПолучитьЭлемент() = 1 Тогда

      Если Спр.Количество = 0 Тогда

         Спр.Удалить();

      КонецЕсли;

   КонецПока;

   ЗафиксироватьТранзакцию();

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

ЗафиксироватьТранзакцию

Завершить успешную транзакцию.

Синтаксис:

ЗафиксироватьТранзакцию()

Англоязычный синоним:

CoinmitTransation

Описание:

Процедура ЗафиксироватьТранзакцию завершает успешную транзакцию.

Пример:

Процедура УдалитьПустые()

   Спр = СоздатьОбъект("Справочник.Подразделения");

   Спр.ВыбратьЭлементы();

   НачатьТранзакцию();

   Пока Спр.ПолучитьЭлемент() = 1 Тогда

      Если Спр.Количество = 0 Тогда

         Спр.Удалить();

      КонецЕсли;

   КонецПока;

   ЗафиксироватьТранзакцию();

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

ОтменитьТранзакцию

Завершить транзакцию без записи изменений.

Синтаксис:

ОтменитьТранзакцию()

Англоязычный синоним:

RollBackTransaction

Описание:

Процедура ОтменитьТранзакцию завершает транзакцию без записи изменений.

Пример:

*

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

Процедура ЗагрузкаКурсовВалют()

   Влт = СоздатьОбъект("Справочник.Валюты");

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

   Текст.Открыть(ИмяФайла);

   Если Текст.КоличествоСтрок() = 0 Тогда

      Сообщить("Текст пустой!");

      Возврат;

   КонецЕсли;

   Успешно = 1;

   НачатьТранзакцию();

   Для Ном = 1 по Текст.КоличествоСтрок() Цикл

      Стр = Текст.ПолучитьСтроку(Ном);

      Если СтрДлина(Стр) = 0 Тогда

         Продолжить;

      КонецЕсли;

      Поле=0;

      Пока СтрДлина(Стр) > 0 Цикл

         Поле = Поле + 1;

         Инд = Найти(Стр, "-");

         Если Инд > 0 Тогда

            Если Инд > 3 Тогда

               Стр1 = Сред(Стр, 2, Инд-3);

               // не берем кавычки спереди и сзади, и символ тильды.

            Иначе

               // если значение поля пропущено

               Стр1 = "";

            КонецЕсли;

            Стр=Сред(Стр, Инд + 1);

            // не берем символ тильды

         Иначе

            Стр = Сред(Стр, 2);

            Инд = Найти(Стр, """");

            Стр1 = Сред(Стр, 1, Инд-1);

           Стр = "";

         КонецЕсли;

         Если Поле = 1 Тогда

            Код = Стр1;

         ИначеЕсли Поле = 2 Тогда

            Курс = Стр1;

         ИначеЕсли Поле = 3 Тогда

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

         КонецЕсли;

      КонецЦикла;

      Влт.ИспользоватьДату(Дата(ДатаКурса));

      Влт.НайтиПоКоду(Код);

      Если Влт.Выбран() > 0 Тогда

         Сообщить(Формат(Ном, "45") + " - загрузка Курса="

              + Формат(Курс, "45") + " от " + ДатаКурса);

         Влт.Текущ_курс = Число(Курс);

         Влт.Записать();

         Сообщить("    – Загружен!");

      Иначе

         Успешно = 0;

         Сообщить("В базе данных нет валюты с кодом " + Код");

         Сообщить("Импорт данных отменён!");

         Прервать;

      КонецЕсли;

      Состояние("Загружено "+Ном+" строк.");

   КонецЦикла;

   Если Успешно = 1 Тогда

      ЗафиксироватьТранзакцию();

   Иначе

      ОтменитьТранзакцию();

   КонецЕсли;

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

Специальные процедуры и функции

СоздатьОбъект

Создает объект агрегатного типа данных и возвращает ссылку на него.

Синтаксис:

СоздатъО6ъект(<ИмяАгрегатногоТипа>)

Англоязычный синоним:

CreateObject

Параметры:

<ИмяАгрегатногоТипа>

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

Возвращаемое значение:

Ссылка на созданный объект агрегатного типа данных.

Описание:

Функция СоздатьОбъект создает объект агрегатного типа данных и возвращает ссылку на него. Данная функция обычно используется одновременно с неявным определением переменной и присвоением ей ссылки на объект агрегатного типа данных.

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

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

Спр.НайтиПоКоду("029");

СтатусВозврата

Установить/определить статуса возврата предопределенной процедуры.

Синтаксис:

СтатусВозврата([<Статус>])

Англоязычный синоним:

ReturnStatus

Параметры:

<Статус>

Необязательный параметр. Числовое выражение. Если задано значение 1, то устанавливается статус возврата — Выполнить Действие. Если задано значение 0, то устанавливается статус возврата — Отменить Действие. Если параметр опущен, то статус возврата предопределенной процедуры не меняется.

Возвращаемое значение:

Число 1 — если статус возврата — Выполнить Действие;

Число 0 — если статус возврата — Отменить Действие.

Описание:

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

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

Замечание: Начальное значение статуса возврата предопределенной процедуры равно 1 (Выполнить Действие), которое устанавливается системой при вызове предопределенной процедуры.

В тексте программного модуля возможно использование данного оператора как процедуры или как функции. При использовании в качестве функции, возвращаемое значение соответствует текущему статусу возврата предопределенной процедуры, которое было до вызова данной функции. В данном случае параметр <Статус> можно опускать.

Если параметр <Статус> задан явно, то после выполнения данной функции статус возврата установится в заданное значение. Пример:

* Если в предопределенной процедуре ПриЗаписи установить статус возврата — 0 (например, если неверно заполнены реквизиты), то документ не будет записываться.

Процедура ПриЗаписи()

   Если Клиент.Выбран() = 0 Тогда

      Предупреждение("Запись отменена! Не задан клиент!");

      СтатусВозврата(0);

   КонецЕсли;

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

* Если в предопределенной процедуре ВводНаОсновании установить статус возврата — 0, то ввод нового документа будет отменен и форма нового документа не откроется.

Процедура ВводНаОсновании(ДокОснование)

   Автор = Пользователь;

   ДокВид = ДокОснование.Вид();

   Если (ДокВид = "Счет") ИЛИ (ДокВид = "Счет_фактура")

        ИЛИ (ДокВид = "РасходнаяКредит") ИЛИ (ДокВид = РасходнаяРеализ") Тогда

      Автор = Пользователь;

      ДокВид = ДокОснование.Вид();

      Фирма = ДокОснование.Фирма;

      Клиент = ДокОснование.Клиент;

      Основание = ДокВид + " № " + ДокОснование.НомерДок;

      Сумма = ДокОснование.Итог("Сумма");

      НДС = ДокОснование.Итог("НДС");

   Иначе

      Предупреждение("Недопустимый вид документа основания!");

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: «Системные предопределенные процедуры»

ОткрытьФорму

Выполняет открытие формы из'встроенного языка.

Синтаксис:

ОткрытьФорму (<Параметр1>, <КонтекстФормы>, < Параметр 3>...)

Англоязычный синоним:

OpenForm

Параметры:

<Параметр1>

В зависимости от типа открываемой формы используется различные значения данного параметра.

Для журналов, отчетов, списков в конце строки описателя формы может быть указан символ "#" с некоторым идентификатором: "#LLLL". Это используется для того, чтобы данная форма открылась в новом окне, а не активизировала существующее окно этой формы, если оно открыто. Где, LLLL — идентификатор, который позволяет открыть новое окно или активизировать уже открытое с этим идентификатором. Если идентификатор не задан, то обязательно открывается новое окно.

<КонтекстФормы>

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

После исполнения данного метода система вернет в данную переменную контекст открытой формы (см. Передача контекста в качестве параметра). С помощью значения этого контекста можно затем произвольно манипулировать открытой формой, пока она открыта. Пока форма открыта, тип значения данного параметра равен 100 (см. ТипЗначения), если закрыта — 0.

<Параметр3>...

В зависимости от типа открываемой формы используется различный состав и значения остальных параметров.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено.

Описание:

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

Замечание. Для журналов, отчетов, списков в конце строки описателя формы может быть указан символ "#" с некоторым идентификатором: "#LLLL". Это используется для того, чтобы данная форма открылась в новом окне, а не активизировала существующее окно этой формы, если оно открыто. Где, LLLL — идентификатор, который позволяет открыть новое окно или активизировать уже открытое с этим идентификатором. Если идентификатор не задан, то обязательно открывается новое окно.

Замечание. Метод ОткрытьФорму нельзя вызывать в «теле» глобального модуля (части глобального модуля, расположенной после последней процедуры). Для его вызова при старте программы следует размещать его в процедуре ПриНачалеРаботыСистемы.

Для открытия разных форм следует использовать разный синтаксис вызова данной функции:

Открытие формы существующего документа.

ОткрытьФорму(<Документ>, <КонтекстФормы>, <РежимПросмотра>)

<Документ> | Значение типа «Документ».
<РежимПросмотра> | Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.
Открытие формы нового документа

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <ДокументОснование>)

<ОписательОбъекта> | Строковое выражение. "Документ.ХХХХХ", где ХХХХХ — идентификатор вида документа;
<ДокументОснование> | Необязательный параметр. Выражение типа «документ», задающий документ-основание для открытия формы ввода нового документа в режиме ввода на основании.

Открытие формы журнала документов.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>)

<ОписательОбъекта>

Строковое выражение.

"Журнал . ХХХХХ. YYYYY", где ХХХХХ — идентификатор журнала документов; YYYYY — идентификатор формы журнала документов;

Кроме того, в качестве идентификатора журнала можно указывать идентификатор конкретного вида документа, тогда откроется журнал просмотра документов именно указанного вида, например:

ОткрытьФорму("Журнал.РасходнаяНакладная")

Открытие формы журнала подчиненных документов.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>)

<ОписательОбъекта> | Строковое выражение. "Журнал.Подчиненные";
<Документ> | Значение типа «документ», задающее документ, для которого будут выводиться подчиненные документы.

Открытие формы существующего элемента справочника.

ОткрытьФорму(<Элемент>, <КонтекстФормы>, <РежимПросмотра>)

<Элемент> | Значение типа «Справочник».
<РежимПросмотра> | Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.

Открытие формы нового элемента справочника.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы> , <ГруппаРодитель>,

<ФлагГруппы>, <ЭлементВладелец>)

<ОписательОбъекта> | Строковое выражение. "Элемент. ХХХХХ", где ХХХХХ — вид справочника;
<ГруппаРодитель> | Необязательный параметр. Выражение типа «справочник», задающий родительскую группу для открытия формы ввода нового элемента (группы) справочника.
<ФлагГруппы> | Необязательный параметр. Числовое выражение, задающее форму ввода нового элемента (группы) справочника: 1 — ввод новой группы, 0 — ввод нового элемента. По умолчанию — 0.
<ЭлементВладелец> | Необязательный параметр. Выражение типа «справочник», задающий элемент справочника-владельца для открытия формы ввода нового элемента (группы) подчиненного справочника.

Открытие формы списка справочника.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>)

<ОписательОбъекта>

Строковое выражение.

"Справочник.ХХХХХ.YYYYY", где ХХХХХ — вид справочника, YYYYY — имя выбранной формы списка справочника;

Открытие формы отчета.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>)

<ОписательОбъекта>

Строковое выражение. "Отчет. ХХХХХ" , где ХХХХХ — вид отчета;

Открытие формы обработки.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>)

<ОписательОбъекта>

Строковое выражение. "Обработка.ХХХХХ", где ХХХХХ — вид обработки;

Открытие формы внешнего отчета.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <ИмяФайла>)

<ОписательОбъекта> | Строковое выражение. "Отчет";
<ИмяФайла> | Строковое выражение — полное имя файла внешнего отчета.

Открытие формы журнала расчетов.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>)

<ОписательОбъекта>

Строковое выражение.

"ЖурналРасчетов. ХХХХХ", где ХХХХХ — вид журнала расчетов;

Открытие формы существующего счета.

ОткрытьФорму(<Счет>, <КонтекстФормы>, <РежимПросмотра>)

<Счет> | Значение типа «Счет».
<РежимПросмотра> | Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.

Открытие формы нового счета.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>)

<ОписательОбъекта>

Строковое выражение.

"Счет. ХХХХХ" , где ХХХХХ — идентификатор плана счетов;

Открытие формы списка счетов (плана счетов).

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>)

<ОписательОбъекта>

Строковое выражение.

"ПланСчетов.ХХХХ.YYYY", где ХХХХХ — идентификатор плана счетов; YYYYY — идентификатор формы плана счетов.

Открытие формы существующей операции.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>, <Проводка>,

<Корреспонденция>, <РежимПросмотра>)

<ОписательОбъекта> | Строковое выражение. "Операция".
<Документ> | Значение типа «документ», операция которого будет открываться.
<Проводка> | Необязательный параметр. Числовое выражение — номер проводки, на которую нужно позиционировать курсор при открытии операции.
<Корреспонденция> | Необязательный параметр. Числовое выражение — номер корреспонденции указанной проводки, на которую нужно позиционировать курсор при открытии операции.
<РежимПросмотра> | Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.

Открытие формы ввода новой операции.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <ТиповаяОперация>)

<ОписательОбъекта> | Строковое выражение. "Операция".
<ТиповаяОперация> | Необязательный параметр. Строковое выражение — наименование типовой операции, которую следует использовать при вводе новой операции. Если значение не задано или пустое, то ввод операции выполняется без использования типовой.

Открытие формы журнала операций.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>, <Пров>, <Корр>)

<ОписательОбъекта> | Строковое выражение. "ЖурналОпераций.YYYYY", где YYYYY — идентификатор формы журнала операций;
<Документ> | Значение типа «документ», операция которого будет использована для первоначального позиционирования.
<Пров> | Номер проводки, которая будет использована для первоначального позиционирования курсора, если в журнале операций используется режим показа проводок.
<Корр> | Номер корреспонденции, которая будет использована для первоначального позиционирования курсора, если в журнале операций используется режим показа проводок.

Открытие формы журнала проводок.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>, <Проводка>,

<Корреспонденция>)

<ОписательОбъекта> | Строковое выражение. "ЖурналПроводок.YYYYY", где YYYYY — идентификатор формы журнала проводок;
<Документ> | Значение типа «документ», операция которого будет использована для первоначального позиционирования.
<Проводка> | Необязательный параметр. Числовое выражение — номер проводки операции, на которую нужно в начале позиционироваться.
<Корреспонденция> | Необязательный параметр. Числовое выражение — номер корреспонденции указанной проводки, на которую нужно в начале позиционироваться.
Открытие окна истории значений периодических констант, реквизитов справочников и счетов.

ОткрытьФорму("История.Константа.<ИдентКонстанты>", , , <УстНаДату>)

ОткрытьФорму("История.Справочник.<ИдентСправочника>, <ИдентРеквизита>", ,

<ЭлементСправочника>, <УстНаДату>)

ОткрытьФорму("История.Счет", , <Счет>, <УстНаДату>)

<ИдентКонстанты> | Идентификатор периодической константы, как он задан в конфигураторе.
<ИдентСправочника> | Идентификатор справочника, как он задан в конфигураторе.
<ИдентРеквизита> | Идентификатор периодического реквизита справочника, как он задан в конфигураторе.
<ЭлементСправочника> | Элемент справочника, для периодического реквизита которого открывается окно истории значений.
<Счет> | Счет, для которого открывается окно истории значений.
<УстНаДату> | Необязательный параметр. Дата, на которую нужно установить курсор при открытии окна.

Замечание. Допустимо включение в описатель открываемой формы уникального имени открываемой формы через символ "#" с некоторым произвольным идентификатором: "#LLLL". В этом случае открываемая форма закрепляется за выбранным объектом и не происходит обновление формы при смене объекта, например при смене текущей строки списка справочника.

Примеры:

Перем Конт;

ОткрытьФорму("История.Справочник.Сотр.Тариф#Ид01", , ТекущийЭлемент());

ОткрытьФорму(Докум, Конт);

ОткрытьФорму("Документ.РасхНакл");

ОткрытьФорму("Журнал.Продажи.КраткаяФорма");

ОткрытьФорму("Отчет", , "С:\lcv7db\extforms\profit.ert");

ОткрытьФормуМодально

Выполняет открытие модальной формы из встроенного языка.

Синтаксис:

ОткрытьФормуМодально(<Параметр1>, <КонтекстФормы>, <ПараметрЗ>...)

Англоязычный синоним:

OpenFormModal

Параметры: см. параметры метода ОткрытьФорму

Возвращаемое значение: см. метод ОткрытьФорму.

Описание:

Функция ОткрытьФормуМодально позволяет открыть модальную форму документа, справочника, журнала документов, и других форм используемых в системе 1С:Предприятие. Синтаксис и описание см. метод ОткрытьФорму.

См. также: ОткрытьФорму

ТипЗначения

Получить тип значения данных.

Синтаксис:

ТипЗначения(<3начение>)

Англоязычный синоним:

ValueType

Параметры:

<3начение>                Выражение, тип данных значения которого надо определить.

Возвращаемое значение:

Функция возвращает числовое значение:

0 — неопределенный тип данных;

1 — числовой тип данных;

2 — строковый тип данных;

3 — тип данных — дата;

10 — агрегатный тип данных «Перечисление»;

11 — агрегатный тип данных «Справочник»;

12 — агрегатный тип данных «Документ»;

13 — агрегатный тип данных «Календарь»;

14 — агрегатный тип данных «ВидРасчета»;

15 — агрегатный тип данных «Счет»;

16 — агрегатный тип данных «ВидСубконто»;

17 — агрегатный тип данных «ПланСчетов»;

100 — так называемый внешний объект. В этот класс попадают все агрегатные объекты, не вошедшие в вышеперечисленный список, такие как «Текст», «Таблица», «Запрос», «ЖурналРасчетов» и т. п.

Описание:

Функция ТипЗначения определяет, к какому типу данных принадлежит переданный параметр <3начение> и возвращает числовой результат:

Пример:

Если ТипЗначения(Код)<>1 Тогда

   Предупреждение("Код имеет не числовой тип !!!");

КонецЕсли;

ТипЗначенияСтр

Получить строковое обозначение типа данных.

Синтаксис:

ТипЗначенияСтр(<3начение>)

Англоязычный синоним:

ValueTypeStr

Параметры:

<3начение>                Выражение, тип данных значения которого надо определить.

Возвращаемое значение:

Функция возвращает строковое значение в русскоязычном или в англоязычном написании — в зависимости от текущей установки основного языка конфигурации:

Русскоязычное | Англоязычное | Описание
Неизвестный Объект | UnknownObject | неопределенный тип данных;
Число | Number | числовой тип данных;
Строка | String | строковый тип данных;
Дата | Date | тип данных — дата;
Перечисление | Enum | агрегатный тип данных «Перечисление»;
Справочник | Reference | агрегатный тип данных «Справочник»;
Документ | Document | агрегатный тип данных «Документ»;
Регистр | Register | агрегатный тип данных «Регистр»;
Календарь | Calendar | агрегатный тип данных «Календарь»;
ВидРасчета | Calculation | агрегатный тип данных «ВидРасчета»;
ЖурналРасчетов | CalcJournal | агрегатный тип данных «ЖурналРасчетов»;
ПланСчетов | ChartOfAccounts | агрегатный тип данных «ПланСчетов»;
Счет | Account | агрегатный тип данных «Счет»,
Операция | Operation | агрегатный тип данных «Операция»;
КорректныеПроводки | CorrectEntries | агрегатный тип данных «КорректныеПроводки»;
БухгалтерскиеИтоги | BookkeepingTotals | агрегатный тип данных «БухгалтерскиеИтоги»;
Таблица | Table | агрегатный тип данных «Таблица»;
Текст | Text | агрегатный тип данных «Текст»;
Запрос | Query | агрегатный тип данных «Запрос»;
СписокЗначений | ValueList | агрегатный тип данных «СписокЗначений»;
ТаблицаЗначений | ValueTable | агрегатный тип данных «ТаблицаЗначений»;
Периодический | Рег1odic | агрегатный тип данных «Периодический»;
Картинка | Picture | агрегатный тип данных «Картинка»;
ГрупповойКонтекст | GroupContext | локальный контекст программного модуля, передаваемый при помощи ключевого слова Контекст или возвращаемый методом ОткрытьПодбор;
OLE | OLE | OLE-объект;

Описание:

Функция ТипЗначенияСтр определяет, к какому типу данных принадлежит переданный параметр <3начение> и возвращает соответствующе строковое значение. Название агрегатного типа данных передается либо в русском либо в английском написании — в зависимости от текущей установки основного языка конфигурации.

Пример:

Предупреждение("Код имеет тип - " + ТипЗначенияСтр(Код));

См. также: ОсновнойЯзык

ПустоеЗначение

Проверить значение любого типа.

Синтаксис:

ПустоеЗначение(<3начение>)

Англоязычный синоним:

Empty Value

Параметры:

<3начение>                Выражение любого типа данных, значение которого проверяется на «пустое».

Возвращаемое значение:

Функция возвращает числовое значение: 1 — значение пустое; 0 — значение не пустое.

Описание:

Функция ПустоеЗначение определяет, является ли пустым переданное в параметре значение. При этом применяется следующее правило:

- значение неопределенного типа — всегда пустое;

- значение типа «строка» проверяется как в методе ПустаяСтрока;

- значение типа «число» проверяется на равенство нулю;

- значение типа «дата» проверяется на пустое значение;

- значения следующих типов: «справочник», «перечисление», «документ», «счет», «вид субконто», «план счетов», «календарь» проверяются как в методах Выбран для соответствующего типа объекта.

Пример:

Если ПустоеЗначение(Код) = 1 Тогда

   Предупреждение("Задайте непустое значение Кода !!!");

КонецЕсли;

ПолучитьПустоеЗначение

Получить пустое значение заданного типа данных.

Синтаксис:

ПолучитьПустоеЗначение(<Тип>)

Англоязычный синоним:

GetEmptyValue

Параметры:

<Тип>

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

Возвращаемое значение:

Функция ПолучитьПустоеЗначение возвращает пустое значение заданного типа данных.

Описание:

Функция возвращает пустое значение заданного типа данных.

Пример:

Если ВыбФирма = ПолучитьПустоеЗначение("Справочник.Фирмы") = 1 Тогда

   Предупреждение("Задайте непустое значение Фирмы");

КонецЕсли;

НазначитьВид

Для значений типа «Документ неопределенного вида», «Справочник неопределенного вида», «Счет неопределенного вида» назначает конкретный вид.

Синтаксис:

НазначитьВид(<3начение>, <Вид>)

Англоязычный синоним:

SetKind

Параметры:

<3начение>

Значение типа документ/справочник/счет неопределенного вида — обычно реквизит документа, справочника или диалога формы.

<Вид>

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

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

Описание:

Процедура НазначитьВид используется для установки значениям типа «Документ неопределенного вида», «Справочник неопределенного вида», «Счет неопределенного вида» конкретный вид. При этом, если существующее значение не соответсвует вновь установленному виду — то оно очищается.

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

Данная процедура может использоваться в сочетании с методом элемента формы НеИзменятьВид. Это возволяет регулировать программно собственно вид, а само значение предоставить выбирать пользователю интерактивно.

Пример:

* Например, реквизиту документа «Контрагент» типа справочник неопределенного вида, в зависимости от значений других реквизитов можно установить вид «Организации» или «Сотрудники».

Процедура ВводНаОсновании(ДокОсн)

   Если ДокОсн.Вид() = "Счет" Тогда

      НазначитьВид(Контрагент, «Организации»);

   Иначе

      НазначитВид(Контрагент, «Сотрудники»);

   КонецЕсли;

   Форма.Контрагент.НеИзменятьВид(1);

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

ЗаписьЖурналаРегистрации

Выводит строку текста в системный журнал регистрации.

Синтаксис:

ЗаписьЖурналаРегистрации(<Коммент>, <ТипСобытия>, <Событие>, <Объект>,
<Категория>)

Англоязычный синоним:

LogMessageWrite

Параметры:

<Коммент> | Строковое выражение, комментарий к событию. Если этот параметр — единственный переданный при вызове метода, то тогда в журнал записывается стандартное дополнительное событие с указанным комментарием.
<ТипСобытия> | Необязательный параметр. Строковое выражение -тип события. По умолчанию или при пустой строке «Дополнительные события».
<Событие> | Необязательный параметр. Строковое выражение -событие. По умолчанию «Дополнительное событие».
<Объект> | Необязательный параметр. Объект события, по умолчанию отсутствует. Для переданных в функцию объектов типа Документ/ Справочник/ Счет представление объекта будет записано автоматически (это не зависит от типа события и самого события).
<Категория> | Необязательный параметр. Число — категория события: 1 — администрирование; 2 — изменение данных; 3 — информация; 4 — предупреждение; 5 — ошибка. Значение по умолчанию 3.

Описание:

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

Системой зарезервированы следующие типы событий/события:

Документ / Открыт | Справочник/СнятаПометакаНаУдаление
Документ / Новый |
Документ / Удален | Константа / ЗначениеЗаписано
Документ / Записан | Константа / ЗначениеУдалено
Документ / НаЗаписан |
Документ / Проведен | ЖурналРасчетов / ИзмененРасчетныйПериод
Документ / ПроведенЗаднимЧислом | ЖурналРасчетов / ОткатНазадРасчетногоПериода
Документ / НеПроведен | ЖурналРасчетов / НеудачнаяПопыткаИзмененияПериода
Документ / СделанНеПроведенным | ЖурналРасчетов / ОтменаРучногоРедактированияРезультата
Документ / ЗаписанИПроведенЗаднимЧислом | ЖурналРасчетов / ИзмененРезультат
Документ / ЗаписанИПроведен |
Документ / ПомеченНаУдаление | Счет / ЗаписанНовый
Документ / СнятаПометакаНаУдаление | Счет / Записан
Документ / ИзмененаОперацияДокумента | Счет / ЗначениеРеквизитаЗаписано
Документ / ПроводкиВключены | Счет / ЗмачениеРеквизитаУдалено
Документ / ПроводкиВыключены | Счет / Удален
Документ / ИзмененоВремя | Счет / ПомеченНаУдаление
Справочник / ЗаписанНовый | Счет / СнятаПометакаНаУдаление
Справочник / Записан |
Справочник / Удален | КорректнаяПроводка / ЗаписанаНовая
Справочник / ЗначениеРеквизитаЗаписано | КорректнаяПроводка / Записана
Справочник / ЗначениеРеквизитаУдалено | КорректнаяПроводка / Удалена
Справочник / ПеренесенВДругуюГруппу |
Справочник / ПомеченНаУдаление | ОбщиеСобытия / ИзменениеТА

Незарезервированные имена позволяют пользователю фактически указывать свои собственные типы событий и события. Это значит, что если в параметре <ТипСобытия> записать "Отчет" а в параметре <Событие> "Сформирован", то при просмотре журнала регистрации можно будет фильтровать по событию «Сформирован» типа событий «Отчет».

Пример:

ЗаписьЖурналаРегистрации("Доброе утро!")

ПрефиксАвтоНумерации

Установить префикс для автоматического создания новых номеров.

Синтаксис:

ПрефиксАвтоНумерации(<ИмяВида>, <Префикс>)

Англоязычный синоним:

AutoNumPrefix

Параметры:

<ИмяВида> | Строковое выражение с полным названием справочника или документа, как он назван в конфигурации.
<Префикс> | Строковое выражение — префикс номеров документов или кодов элементов справочника.

Описание:

Процедура ПрефиксАвтоНумерации устанавливает префикс для автоматического создания новых номеров документов или кодов элементов справочника.

Вызов данного метода может быть использован для установки префикса всем документам или справочникам. При этом используется символ "*" вместо идентификатора вида документа/справочника, например

ПрефиксАвтоНумерации("Документ.*", "ПР-")

Пример:

ПрефиксАвтоНумерации("Документ.РасходнаяНакл", "Рн-");

См. также: ПрефиксНомера, ПрефиксКода, УстановитьНовыйНомер, УстановитьНовыйКод.

ПолучитьЗначенияОтбора

Выбирать все существующие значения отбора.

Синтаксис:

ПолучитьЗначенияОтбора(<ИмяОтбора>, <СписокЗначений> , [<ДатаНач>], [<ДатаКон>])

Англоязычный синоним:

GetSelect ionValues

Параметры:

<ИмяОтбора> | Строковое выражение с полным названием общего реквизита документа или графы отбора, как он назван в конфигурации.
<СписокЗначений> | Идентификатор переменной. Если при вызове метода данная переменная содержит объект типа «СписокЗначений», то система заполнит его всеми возможными существующими значениями отбора. Если при вызове метода данная переменная содержит любое другое значение кроме объекта типа «СписокЗначений», то система сама создаст объект типа «СписокЗначений», заполнит его существующими значениями отбора и присвоит переменной ссылку на этот объект.
<ДатаНач> | Необязательный параметр. Дата начала интервала в котором проводить отбор. Если параметр не задан, то отбор будет производиться по всем данным.
<ДатаКон> | Необязательный параметр. Дата конца интервала в котором проводить отбор. Если параметр не задан или равен 0, то отбор будет производиться до ТА.

Возвращаемое значение:

Числовое значение: 1 — операция выполнена успешно; 0 — операция не выполнена.

Описание:

Функция ПолучитьЗначенияОтбора выбирает все возможные существующие значения отбора <ИмяОтбора>, заполняет выбранными значениями объект типа «СписокЗначений», и передает ссылку на этот объект в переменной <СписокЗначений>.

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

Пример:

// Выбрать существующие значения Авторов документов

ПолучитьЗначенияОтбора("Автор", Спис, , );

См. также: «Работа со Списком Значений»

КомандаСистемы

Вызывает на исполнение команду DOS.

Синтаксис:

КомандаСистемы(<СтрокаКоманды>)

Англоязычный синоним:

System

Параметры:

<СтрокаКоманды>

Строковое выражение, содержащее строку команды.

Описание:

Процедура КомандаСистемы вызывает на исполнение команду, как если бы она была введена в командной строке DOS. При выполнении команды загружается исполняемый файл как «верхняя», активная программа.

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

Если в параметре <СтрокаКоманды> не содержится путь к загружаемой программе в файловой системе к программе, то поиск происходит в следующей последовательности:

- текущий системный каталог;

- каталог Windows;

- системный каталог Windows;

- все каталоги, указанные в переменной PATH;

Пример:

* В данном примере запускается редактор текста notepad.exe и в него загружается файл textl. txt.

КомандаСистемы("notepad textl.txt");

ЗапуститьПриложение

Выполняет запуск внешнего приложения.

Синтаксис:

ЗапуститьПриложение(<СтрокаКоманды>)

Англоязычный синоним:

RunApp

Параметры:

<СтрокаКоманды>

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

Описание:

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

Процедура, кроме того, может открыть файл с помощью ассоциированного для данного вида файлов приложения. (При условии, что таковое установлено на данном компьютере).

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

Если в параметре <СтрокаКоманды> не содержится путь к загружаемой программе в файловой системе к программе, то поиск происходит в следующей последовательности:

- текущий системный каталог;

- каталог Windows;

- системный каталог Windows;

- все каталоги, указанные в переменной PATH;

Пример:

* В данном примере запускается редактор текста notepad.exe и в него загружается файл textl. txt.

ЗапуститьПриложение("notepad textl.txt");

ЗавершитьРаботуСистемы

Выполняет запуск внешнего приложения.

Синтаксис:

ЗавершитьРаботуСистемы(<ФлагСохранения>)

Англоязычный синоним:

ExitSystem

Параметры:

<ФлагСохранения>

Необязательный параметр. Флаг запроса сохранения открытых объектов. Если 0, то не запрашивается сохранение не записанных документов, элементов справочников и т. п. Если 1, то сохранение запрашивается. Значение по умолчанию 1.

Описание:

Процедура ЗавершитьРаботуСистемы вызывает завершение работы системы.

Пример:

ЗавершитьРаботуСистемы(0);

НайтиПомеченныеНаУдаление

Находит все помеченные на удаление объекты.

Синтаксис:

НайтиПомеченныеНаУдаление(<Объекты>)

Англоязычный синоним:

FindMarkedForDelete

Параметры:

<Объекты>

Идентификатор объекта типа «СписокЗначений», в который данная процедура помещает найденные объекты.

Описание:

Процедура НайтиПомеченныеНаУдаление находит все помеченные на удаление объекты и помещает их в список значений.

Пример:

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

НайтиПомеченныеНаУдаление(Список);

НайтиСсылки

Находит ссылки на объекты, переданные в списке значений.

Синтаксис:

НайтиСсылки(<Объекты>, <Ссылки>)

Англоязычный синоним:

FindReferences

Параметры:

<Объекты> | Конкретное значение объекта или объект типа «СписокЗначений», в котором данной процедуре передаются объекты, по которым надо найти ссылки.
<Ссылки> | Идентификатор объекта типа «ТаблицаЗначений», в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. Объект — объект, на который ссылаются; 2. Ссылка — объект, который содержит ссылку; 3. Комментарий — комментарий к ссылке.

Описание:

Процедура НайтиСсылки находит ссылки на переданные в списке объекты, и помещает их в таблицу значений.

Пример:

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

ТаблицаСсылок = СоздатьОбъект("ТаблицаЗначений");

НайтиПомеченныеНаУдаление(Список);

НайтиСсылки(Список, ТаблицаСсылок);

УдалитьОбъекты

Удалить объекты, переданные в списке значений.

Синтаксис:

УдалитьОбъекты(<Объекты>, <Проверять>, <Ссылки>)

Англоязычный синоним:

DeleteObjects

Параметры:

<Объекты> | Конкретное значение объекта или объект типа «СписокЗначений», в котором данной процедуре передаются объекты, которые надо удалить.
<Проверять> | Необязательный параметр. Число: 1 — перед удалением проверяется — нет ли ссылок на удаляемый объект. Если есть, то объект не удаляется, а ссылки помещаются в таблицу значений <Ссылки>. Любое другое число — проверку не выполнять. Значение по умолчанию: 1.
<Ссылки> | Необязательный параметр. Идентификатор объекта типа «ТаблицаЗначений», в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. Объект — объект, на который ссылаются; 2. Ссылка — объект, который содержит ссылку; 3. Комментарий — комментарий к ссылке.

Описание:

Процедура УдалитьОбъекты удаляет объекты, переданные в списке значений.

Пример:

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

ТаблицаСсылок = СоздатьОбъект("ТаблицаЗначений");

НайтиПомеченныеНаУдаление(Список);

УдалитьОбъекты(Список, 1, ТаблицаСсылок);

ОбработкаОжидания

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

Синтаксис:

ОбработкаОжидания([<ИмяПроцедуры>], [<ИнтервалВызова>])

Англоязычный синоним:

IdleProcessing

Параметры:

<ИмяПроцедуры>

Необязательный параметр. Строковое выражение — имя процедуры глобального модуля, которая будет вызываться периодически с интервалом времени <ИнтервалВызова>. Тело процедуры <ИмяПроцедуры> должно быть написано разработчиком конфигурации в глобальном программном модуле.

Если в качестве параметра передается «пустая строка», то ранее запущенный процесс прекращается.

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

<ИнтервалВызова>

Необязательный параметр. Числовое выражение — интервал времени в секундах, с которым периодически будет вызываться процедура глобального модуля <ИмяПроцедуры>.

Если в качестве параметра передается 0 (ноль), то ранее запущенный процесс прекращается.

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

Возвращаемое значение:

Имя процедуры глобального модуля, которая назначена для периодического запуска (на момент до исполнения процедуры).

Описание:

Функция ОбработкаОжидания инициирует периодический вызов процедуры глобального модуля <ИмяПроцедуры> с интервалом времени <ИнтервалВызова>.

Пример:

Процедура СформироватьТекущийОтчетПродаж

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

ОбработкаОжидания("СформироватьТекущийОтчетПродаж", 60);

Процедуры и функции обработки значений

ЗначениеВСтрокуВнутр

Преобразование значения объекта агрегатного типа из внутреннего представления в строковое.

Синтаксис:

ЗначениеВСтрокуВнутр(<Выражение>)

Англоязычный синоним:

ValueToStringInternal

Параметры:

<Выражение>

Выражение, вычисленное значение которого следует перевести в строковое представление. В качестве параметра для данного метода допускается передавать значения любых типов данных, доступных в конфигурации, как базовых, так и агрегатных типов данных, за исключением тех типов данных, которые не имеют собственно значения — это касается таких объектов как «Периодический», «Таблица», «ФС», «Запрос», «XBase» и т. п. Однако, объекты типа «СписокЗначений» и «ТаблицаЗначений» использовать можно — они преобразуются в строковое представление.

Возвращаемое значение:

Результирующее строковое значение.

Описание:

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

Замечание: Строковое представление агрегатного типа данных имеет специальный системный формат, т. к. предназначено не для отображения, а просто для возможности выполнения строковых операций с объектами (в рамках одной конфигурации), например при упаковке нескольких объектов в одну строку. Данный системный формат использует внутренний системный идентификатор данных, поэтому этот формат предназначен для работы в рамках единой информационной базы. При распаковке такого строкового представления функция ЗначениеИзСтрокиВнутр восстанавливает значение объекта по его системному идентификатору.

Пример:

* Допустим, в конфигурации формируется отчет с использованием объекта «Таблица». Для обеспечения возможности получать дополнительные сведения по отчету, в таблицах есть возможность в каждой ячейке хранить вычисляемое значение, которое можно затем использовать для обработки. Однако, в ячейке таблицы можно хранить только одно значение. В случае, если все же для обработки необходимо иметь несколько значений, то их можно с помощью метода ЗначениеВСтрокуВнутр упаковать в одну строку. Например, в ячейке таблицы запишем формулу значения ячейки в следующем виде:

ЗначениеВСтрокуВнутр(Запрос.Клиент) + РазделительСтрок +
ЗначениеВСтрокуВнутр(Запрос.Товар)

Процедура обработки значения ячейки должна в себе содержать алгоритм распаковки значений с использованием метода ЗначениеИзСтрокиВнутр.

Процедура ОбработкаЯчейкиТаблицы(Значение, ФлагСтандартнойОбработки)

   Если ТипЗначенияСтр(Значение) = "Строка" Тогда

      Орг = ЗначениеИзСтрокиВнутр(СтрПолучитьСтроку(Значение, 1));

      Тов = ЗначениеИзСтрокиВнутр(СтрПолучитьСтроку(Значение, 2));

      Если Тов.Выбран() = 0 Тогда

         Возврат;

      КонецЕсли;

      Карт(Орг, Тов);

      ФлагСтандартнойОбработки = 0;

      Возврат;

   КонецЕсли;

   ФлагСтандартнойОбработки = 1;

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

См. также: ЗначениеИзСтрокиВнутр, ЗначениеТекущейЯчейки, ОбработкаЯчейкиТаблицы

ЗначениеИзСтрокиВнутр

Преобразование значения объекта агрегатного типа из строкового системного представления во внутреннее.

Синтаксис:

ЗначениеИзСтрокиВнутр(<СистСтрока>)

Англоязычный синоним:

ValueFromStringInternal

Параметры:

<СистСтрока>

Строковое выражение, представление объекта агрегатного типа данных в системном строковом виде.

Возвращаемое значение:

Объект агрегатного типа данных, который получен из строкового системного представления.

Описание:

Применять функцию ЗначениеИзСтрокиВнутр имеет смысл только в особых случаях. Например, если требуется несколько объектов упаковать в одну строку. При помощи функции ЗначениеВСтрокуВнутр объекты можно преобразовать в строковые значения, которые затем можно объединить в единую строку операцией конкатенации. В дальнейшем эту строку можно будет разобрать на составляющие и сделать обратное преобразование при помощи функции ЗначениеИзСтрокиВнутр.

Замечание: Строковое представление агрегатного типа данных имеет специальный системный формат, т. к. предназначено не для отображения, а просто для возможности выполнения строковых операций с объектами (в рамках одной конфигурации), например при упаковке нескольких объектов в одну строку. Данный системный формат использует внутренний системный идентификатор данных, поэтому этот формат предназначен для работы в рамках единой информационной базы. При распаковке такого строкового представления функция ЗначениеИзСтрокиВнутр восстанавливает значение объекта по его системному идентификатору.

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

ВосстановитьЗначение("СистСтрокаМойСпис", ИдентМойСпис);

Пример: См. предыдущий пример

См. также: ЗначениеВСтрокуВнутр, ЗначениеТекущейЯчейки

ЗначениеВСтроку

Преобразование значения из внутреннего представления в строковое.

Синтаксис:

ЗначениеВСтроку(<Объект>)

Англоязычный синоним:

ValueToString

Параметры:

<Объект>

Значение, которое следует перевести в строковое представление. В качестве параметра для данного метода допускается передавать значения любых типов данных, доступных в конфигурации, как базовых, так и агрегатных типов данных, за исключением тех типов данных, которые не имеют собственно значения — это касается таких объектов как «Периодический», «Таблица», «ФС», «Запрос», «XBase» и т. п. Однако, объекты типа «СписокЗначений» и «ТаблицаЗначений» использовать можно — он преобразуется в строковое представление.

Возвращаемое значение:

Строковое представление переданного значения.

Описание:

Применять функцию ЗначениеВСтроку имеет смысл только в особых случаях. Например, если требуется несколько объектов упаковать в одну строку. При помощи функции ЗначениеВСтроку объекты можно преобразовать в строковые значения, которые затем можно объединить в единую строку операцией конкатенации. В дальнейшем эту строку можно будет разобрать на составляющие и сделать обратное преобразование при помощи функции ЗначениеИзСтроки.

Замечание: Строковое представление имеет специальный системный формат, т. е. предназначено не для отображения, а просто для возможности выполнения строковых операций с объектами, например при экспорте-импорте информации между разными конфигурациями (например, при помощи OLE). При преобразовании агрегатных типов данных, данный системный формат использует идентификаторы объектов, как они даны в конфигураторе, а также значения кода (для элементов справочников) и номера (для документов), поэтому при передаче такого строкового представления в другую (похожую) конфигурацию функция ЗначениеИзСтроки сделает попытку восстановить значение объекта по его строковому описанию.

Пример:

СтрДок = ЗначениеВСтроку(ВыбДокумент);

См. также: ЗначениеИзСтроки

ЗначениеИзСтроки

Преобразование из строкового системного представления во внутреннее значение объекта.

Синтаксис:

ЗначениеИзСтроки(<СистСтрока>)

Англоязычный синоним:

ValueFromString

Параметры:

<СистСтрока>

Строковое выражение, содержащее представление объекта, полученное ранее при помощи метода ЗначениеВСтроку.

Возвращаемое значение:

Значение, которое получено из строкового системного представления.

Описание:

Применять функцию ЗначениеИзСтроки имеет смысл только в особых случаях. Например, если требуется несколько объектов упаковать в одну строку. При помощи функции ЗначениеВСтроку объекты можно преобразовать в строковые значения, которые затем можно объединить в единую строку операцией конкатенации. В дальнейшем эту строку можно будет разобрать на составляющие и сделать обратное преобразование при помощи функции ЗначениеИзСтроки.

Замечание: Строковое представление агрегатного типа данных имеет специальный системный формат, т. е. предназначено не для отображения, а просто для возможности выполнения строковых операций с объектами, например при экспорте-импорте информации между разными конфигурациями (например, при помощи OLE). При преобразовании агрегатных типов данных, данный системный формат использует идентификаторы объектов, как они даны в конфигураторе, а также значения кода (для элементов справочников) и номера (для документов), поэтому при передаче такого строкового представления в другую (похожую) конфигурацию функция ЗначениеИзСтроки сделает попытку восстановить значение объекта по его строковому описанию.

Пример:

Док = ЗначениеИзСтроки(СтрДок);

См. также: ЗначениеВСтроку

ЗначениеВФайл

Сохраняет значение в файле.

Синтаксис:

ЗначениеВФайл(<ИмяФайла>, <3начение>, <Формат>)

Англоязычный синоним:

ValueToFile

Параметры:

<ИмяФаила> | Строковое выражение, задающее имя файла.
<3начение> | Значение, которое следует сохранить в файле. В качестве параметра для данного метода допускается передавать значения любых типов данных, доступных в конфигурации, как базовых, так и агрегатных типов данных, за исключением тех типов данных, которые не имеют собственно значения — это касается таких объектов как «Периодический», «Таблица», «ФС», «Запрос», «XBase» и т. п. Однако, объекты типа «СписокЗначений» и «ТаблицаЗначе-ний» использовать можно.
<Формат> | Необязательный параметр. Число: 1 — сохранение во внутреннем формате; иначе во внешнем. Значение по умолчанию: 1.

Возвращаемое значение:

Число: 1 — функция выполнена успешно; 0 — функция не выполнена.

Описание:

Функция ЗначениеВФайл позволяет сохранить любое значение в файле. В дальнейшем этот файл можно будет распаковать и сделать обратное преобразование при помощи функции ЗначениеИзФайла.

Пример:

Результат = ЗначениеВФайл(ВыбИмяФайла, ВыбДокумент);

См. также: ЗначениеИзФайла

ЗначениеИзФайла

Восстанавливает значение из файла.

Синтаксис:

ЗначениеИзФайла(<ИмяФайла>, <3начение>, <Формат>)

Англоязычный синоним:

ValueFromFile

Параметры:

<ИмяФайла> | Строковое выраженние, задающее имя файла.
<3начение> | Необязательный параметр. Идентификатор переменной, куда система вернет значение, которое получено из файла.
<Формат> | Необязательный параметр. Число: 1 — сохранение во внутреннем формате; иначе во внешнем. Значение по умолчанию: 1.

Возвращаемое значение:

Значение, которое получено из файла.

Описание:

Функция ЗначениеИзФайла восстанавливает значение из файла, которое упаковано туда при помощи функции ЗначениеВФайл.

Пример:

Док = ЗначениеИзФайла(ВыбИмяФайла);

См. также: ЗначениеВФайл

СохранитьЗначение

Сохранить для пользователя некоторое значение между сеансами.

Синтаксис:

СохранитьЗначение(<Идентификатор>, <3начение>)

Англоязычный синоним:

SaveValue

Параметры:

<Идентификатор> | Строковое выражение, наименование сохраняемого значения. Данное наименование используется для идентификации сохраняемых значений.
<3начение> | Выражение любого типа. Объекты типа «Список-Значений» и «ТаблицаЗначений» использовать можно.

Описание:

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

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

Пример:

СохранитьЗначение("МойСклад", Склад);

См. также: ВосстановитьЗначение

ВосстановитьЗначение

Восстановить сохраненное для пользователя значение.

Синтаксис:

ВосстановитьЗначение(<Идентификатор>)

Англоязычный синоним:

RestoreValue

Параметры:

<Идентификатор>

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

Возвращаемое значение:

Значение, сохраненное для пользователя.

Описание:

Применять функцию ВосстановитьЗначение следует, например, если требуется восстановить ранее запомненное (в предыдущем сеансе работы) некоторые значение системы.

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

Замечание. При использовании метода ВосстановитьЗначение() для значения типа «СписокЗначений», являющимся реквизитом формы, его идентификатор следует передавать в качестве второго параметра. В этом случае метод следует использовать как процедуру, т. е. не использовать возвращаемое значение. ВосстановитьЗначение("СистСтрокаМойСпис", ИдентМойСпис);

Пример:

ДефСклад = ВосстановитьЗначение("МойСклад");

См. также: СохранитьЗначение

Процедуры и функции компоненты «Оперативный учет»

ПолучитьТА

Получить дату и время Точки Актуальности итогов в текстовом виде. Данная функция используется только при наличии компоненты. «Оперативный учет».

Синтаксис:

ПолучитьТА()

Англоязычный синоним:

GetAP

Возвращаемое значение:

Строковое значение, содержащее дату и время ТА.

Описание:

Функция ПолучитьТА возвращает дату и время Точки Актуальности итогов в текстовом виде.

Пример:

Дата_И_Время_ТА = ПолучитьТА();

ПолучитьДатуТА

Получить дату Точки Актуальности итогов. Данная функция используется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьДатуТА()

Англоязычный синоним:

GetDateOfAP

Возвращаемое значение:

Значение типа «дата», содержащее дату ТА.

Описание:

Функция ПолучитьДатуТА возвращает значение (типа «дата») даты Точки Актуальности итогов.

Пример:

Дата_ТА = ПолучитьДатуТА();

ПолучитьВремяТА

Получить значение времени Точки Актуальности итогов. Данная функция используется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьВремяТА(<Часы>, <Минуты>, <Секунды>)

Англоязычный синоним:

GetTimeOfAP

Параметры:

<Часы> | Идентификатор переменной, в которую метод возвращает строковое значение часа ТА.
<Минуты> | Идентификатор переменной, в которую метод возвращает строковое значение минут ТА.
<Секунды> | Идентификатор переменной, в которую метод возвращает строковое значение секунд ТА.

Возвращаемое значение:

Строковое значение времени ТА в виде " ЧЧ. MM. СС".

Описание:

Функция ПолучитьВремяТА записывает значение времени Точки Актуальности итогов в передаваемые при вызове параметры.

Пример:

ПолучитьВремяТА(Час, Минута, Секунда);

ПолучитьДокументТА

Получить документ, который стоит на ТА. Данная функция используется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьДокументТА()

Англоязычный синоним:

GetDocOfAP

Возвращаемое значение:

Значение типа «документ», который стоит на ТА.

Описание:

Функция ПолучитьДокументТА возвращает документ, который стоит на ТА, если он есть.

Пример:

ПоследнийДок = ПолучитьДокументТА();

ПолучитьПозициюТА

Получить позицию Точки Актуальности итогов. Данная функция используется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьПозициюТА()

Англоязычный синоним:

GetAPPosition

Возвращаемое значение:

32-х символьное строковое значение позиции ТА.

Описание:

Функция ПолучитьПозициюТА возвращает 32-х символьное строковое значение позиции ТА.

Пример:

ПозицияТА = ПолучитьПозициюТА();

УстановитьТАна

Изменить положение Точки Актуальности итогов. Данный метод используется только при наличии компоненты «Оперативный учет». Данный метод используется только в монопольном режиме доступа.

Синтаксис:

УстановитьТАна(<ПоложениеТА>]

Англоязычный синоним:

SetAPToBeg

Параметры:

<ПоложениеТА>

Выражение типа дата, документ или позиция документа, на начало которого устанавливается ТА.

Описание:

Метод УстановитьТАна изменяет положение Точки Актуальности итогов на начало даты или документа <ПоложениеТА>. Данный метод используется только в монопольном режиме доступа.

Пример:

УстановитьТАна(ВыбДокумент);

УстановитьТАпо

Изменить положение Точки Актуальности итогов. Данный метод используется только при наличии компоненты «Оперативный учет». Данный метод используется только в монопольном режиме доступа.

Синтаксис:

УстановитьТАпо(<ПоложениеТА>)

Англоязычный синоним:

SetAPToEnd

Параметры:

<ПоложениеТА>

Выражение типа дата, документ или позиция документа, на конец которого устанавливается ТА.

Описание:

Метод УстановитьТАпо изменяет положение Точки Актуальности итогов на конец даты или документа <ПоложениеТА>. Данный метод используется только в монопольном режиме доступа.

Пример:

УстановитьТАпо(ВыбДокумент);

Процедуры и функции компоненты «Бухгалтерский учет»

Процедуры и функции этого раздела используются только при наличии компоненты «Бухгалтерский учет».

ВыбранныйПланСчетов

Возвращает план счетов, выбранный пользователем в параметрах системы.

Синтаксис:

ВыбранныйПланСчетов()

Англоязычный синоним:

DefaultChartOfAccounts

Возвращаемое значение:

Значение типа «ПланСчетов».

Описание:

Функция ВыбранныйПланСчетов позволяет определить текущее значение параметра «Основной план счетов», выбранное пользователем при работе с системой.

Пример:

Сч = СоздатьОбъект("Счет");

Сч.ИспользоватьПланСчетов(ВыбранныйПланСчетов());

ОсновнойПланСчетов

Возвращает план счетов, установленный в конфигурации в качестве основного.

Синтаксис:

ОсновнойПланСчетов()

Англоязычный синоним:

MainChartOfAccounts

Возвращаемое значение:

Значение типа «ПланСчетов».

Описание:

Функция ОсновнойПланСчетов выдает план счетов установленный в конфигурации в качестве основного.

Пример:

Сч = СоздатьОбъект("Счет");

Сч.ИспользоватьПланСчетов(ОсновнойПланСчетов());

СчетПоКоду

Поиск бухгалтерского счета по коду.

Синтаксис:

СчетПоКоду(<КодСчета>[, <ПланСчетов>])

Англоязычный синоним:

AccountByCode

Параметры:

<КодСчета> | Символьное выражение — код счета.
<ПланСчетов> | Значение типа «План Счетов» — план счетов, в котором выполняется поиск. Если параметр не указан, поиск выполняется в основном плане счетов, заданном в метаданных.

Возвращаемое значение:

Значение типа «Счет».

Описание:

Метод СчетаПоКоду позволяет найти значение типа «Счет» по коду счета, указанному в виде символьной строки.

Пример:

// При проведении документа формируем проводку

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

Операция.Дебет.Счет = СчетПоКоду("51");

НачалоПериодаБИ

Возвращает дату начала периода бухгалтерских итогов.

Синтаксис:

НачалоПериодаБИ()

Англоязычный синоним:

BeginOfРег1odBT()

Возвращаемое значение:

Значение типа «Дата» — дата начала периода бухгалтерских итогов.

Описание:

Метод НачалоПериодаБИ возвращает дату начала периода бухгалтерских итогов, заданную в режиме «Настройка параметров системы».

Пример:

Дата1 = НачалоПериодаБИ();

КонецПериодаБИ

Возвращает дату конца периода бухгалтерских итогов.

Синтаксис:

КонецПериодаБИ()

Англоязычный синоним:

EndOfРег1odBT()

Возвращаемое значение:

Значение типа «Дата» — дата конца периода бухгалтерских итогов.

Описание:

Метод КонецПериодаБИ возвращает дату конца периода бухгалтерских итогов, заданную в режиме «Настройка параметров системы».

Пример:

Дата2 = КонецПериодаБИ();

КонецРассчитанногоПериодаБИ

Возвращает последнюю дату рассчитанных бухгалтерских итогов.

Синтаксис:

КонецРассчитанногоПериодаБИ()

Англоязычный синоним:

EndOfCalculatedРег1odBT()

Возвращаемое значение:

Значение типа «Дата» — последняя дата рассчитанных бухгалтерских итогов.

Описание:

Метод КонецРассчитанногоПериодаБИ возвращает последнюю дату рассчитанных бухгалтерских итогов, заданную в режиме «Управление бухгалтерских итогов» при работе в режиме «1С:Предприятие».

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

Пример:

Если Дата2 > КонецРассчитанногоПериодаБИ() Тогда

   Сообщить("Период не рассчитан!");

   Возврат;

КонецЕсли;

НазначитьСчет

Назначает счет значению типа «Вид субконто».

Синтаксис:

НазначитьСчет(<ВидСубконто>, <Счет>[, <НомерСубконто>])

Англоязычный синоним:

SetAccount

Параметры:

<ВидСубконто> | Значение типа «ВидСубконто», переданное по ссылке — обычно реквизит диалога формы.
<Счет> | Значение типа «Счет».
<НомерСубконто> | Значение типа «Число» — номер субконто для данного счета.

Описание:

Данная процедура используется для организации выбора значения типа «Вид субконто» в диалоге формы применительно к конкретному счету, то есть организовать выбор видов субконто конкретного счета. В качестве первого параметра передается собственно реквизит диалога, а в качестве второго — счет. Вызов данной процедуры ограничивает выбор вида субконто видами, заданными для конкретного счета. Кроме того, само значение вида субконто очищается, если данный вид субконто не используется для указанного счета. Если указан параметр НомерСубконто, то значение вида субконто будет автоматически установлено в соответствии с настройкой субконто указанного счета с данным номером.

Пример:

Процедура ПриВыбореСчета()

   НазначитьСчет(ВыбВидСубконто1, Счет, 1);

   НазначитьСчет(ВыбВидСубконто2, Счет, 2);

   НазначитьСчет(ВыбВидСубконтоЗ, Счет, 3);

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

ВвестиПланСчетов

Выбрать план счетов из существующих планов счетов в диалоге.

Синтаксис:

ВвестиПланСчетов(<ПланСчетов>, <Подсказка>, <Таймаут>)

Англоязычный синоним:

InputChartOfAccounts

Параметры:

<ПланСчетов> | Значение типа «План счетов», переданное по ссылке (идентификатор переменной). В данное значение будет осуществлен возврат выбранного значения.
<Подсказка> | Строковое выражение, содержащее строку, которая будет выводиться в заголовке окна диалога.
<Таймаут> | Числовое выражение — интервал времени ожидания ответа пользователя в секундах. Если параметр опущен или равен 0 — ожидание бесконечно. Необязательный параметр.

Возвращаемое значение:

Числовое значение: 1 — выбор осуществлен , 0 — выбор не осуществлен (пользователем нажата кнопка «Отмена», клавиша <Esc> или закрыто окно диалога).

Описание:

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

Пример:

Перем ВыбПлан;

Если ВвестиПланСчетов(ВыбПлан, "Введите план счетов") = 1 Тогда

   ...

КонецЕсли;

ВвестиВидСубконто

Выбрать вид субконто из существующих видов субконто в диалоге.

Синтаксис:

ВвестиВидСубконто(<ВидСубконто>, <Подсказка>, [<Счет>], [<Таймаут>])

Англоязычный синоним:

InputSubcontoKind

Параметры:

<ВидСубконто> | Значение типа «ВидСубконто», переданное по ссылке (идентификатор переменной). В данное значение будет осуществлен возврат выбранного значение вида субконто.
<Подсказка> | Строковое выражение, содержащее строку, которая будет выводиться в заголовке окна диалога выбора вида субконо.
<Счет> | Значение типа «Счет». Если данное значение указано выбор будет ограничен видами субконто, заданными для указанного счета. Необязательный параметр.
<Таймаут> | Числовое выражение — интервал времени ожидания ответа пользователя в секундах. Если параметр опущен или равен 0 — ожидание бесконечно. Необязательный параметр.

Возвращаемое значение:

Числовое значение: 1 — выбор осуществлен , 0 — выбор не осуществлен (пользователем нажата кнопка «Отмена», клавиша <Esc> или закрыто окно диалога).

Описание:

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

Пример:

Перем ВыбВидСубк;

Если ВвестиВидСубконто(ВыбВидСубк, "Введите вид убконто", ВыбСчет) = 1 Тогда

   ...

КонецЕсли;

МаксимальноеКоличествоСубконто

Максимальное количество видов субконто, которые могут быть заданы для счетов.

Синтаксис:

МаксимальноеКоличествоСубконто()

Англоязычный синоним:

MaxSubcontoCount

Возвращаемое значение:

Число — максимальное количество видов субконто.

Описание:

Метод МаксимальноеКоличествоСубконто выдает значение параметра «Максимальное количество субконто», указанное в метаданных в настройке планов счетов. Фактически она позволяет определить, сколько видов субконто может быть задано для счета.

Пример:

Если МаксимальноеКоличествоСубконто() < 2 Тогда

   Форма.ВидСубк2.Видимость(0);

КонецЕсли;

Процедуры и функции компоненты «Расчет»

ОсновнойЖурналРасчетов

Устанавливает основной журнал расчетов. Используется только при наличии компоненты «Расчет».

Синтаксис:

ОсновнойЖурналРасчетов(<ЖурналРасч>)

Англоязычный синоним:

BasicCalcJournal

Параметры:

<ЖурналРасч>

Строковое значение — идентификатор журнала расчетов, как он задан при конфигурировании.

Возвращаемое значение:

Значение текущего журнала расчетов.

Описание:

Функция ОсновнойЖурналРасчетов устанавливает основной журнал расчетов. По умолчанию основной журнал расчетов — первый в списке журналов расчетов.

Пример:

ОсновнойЖурналРасчетов("Основной");


Part8

Глава 8
Системные предопределенные процедуры

Системные предопределенные процедуры предназначены для того, чтобы дать возможность программно обрабатывать системные события, возникающие при интерактивных действиях пользователя, таких как ввод нового, изменение, удаление. Исключение составляют только предопределенные процедуры Модуля документа: ОбработкаПроведения, ОбработкаУдаленияПроведения, АрхивироватьДокумент, которые вызываются как при интерактивном, так и при программном возникновении события.

ВНИМАНИЕ! Системные предопределенные процедуры не являются встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком конфигурации в соответствующих программных модулях.

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

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

Предопределенные процедуры Глобального модуля

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

ПриНачалеРаботыСистемы

Предопределенная процедура при начале работы задачи.

Синтаксис:

ПриНачалеРаботыСистемы()

Англоязычный синоним:

OnStartSystem

Описание:

Вызов предопределенной процедуры ПриНачалеРаботыСистемы производится системой 1С:Предприятие неявно при начале работы с программой. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если время доступа данного пользователя к системе истекло), то пользователь не сможет войти в программу.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриНачалеРаботыСистемы()

   Курс = Константа.ОсновнаяВалюта.Текущ_Курс.Получить(ТекущаяДата();

   Предупреждение("Добро пожаловать! Сегодня " + " " + ТекущаяДата() +

         РазделительСтрок + "Сейчас установлен курс доллара=" + Курс), 7);

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

См. также: СтатусВозврата

ПриЗавершенииРаботыСистемы

Предопределенная процедура при завершении работы задачи.

Синтаксис:

ПриЗавершенииРаботыСистемы()

Англоязычный синоним:

OnFinishSystem

Описание:

Вызов предопределенной процедуры ПриЗавершенииРаботыСистемы производится системой 1С:Предприятие неявно при завершении работы пользователя с системой. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если пользователь не выполнил какие-либо штатные операции), то работа системы не будет завершена, т. е. пользователь не сможет выйти из программы.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриЗавершенииРаботыСистемы()

   Предупреждение("До свидания !", 2);

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

См. также: СтатусВозврата

ПриУдаленииДокумента

Предопределенная процедура при удалении документа и при отмене пометки на удаление.

Синтаксис:

ПриУдаленииДокумента(<УдалДокум>, <Режим>)

Англоязычный синоним:

OnDeleteDoc

Параметры:

<УдалДокум> | Значение удаляемого документа.
<Режим> | Значение флага непосредственного удаления: 1 — непосредственное удаление; 0 — пометка на удаление.

Описание:

Вызов предопределенной процедуры ПриУдаленииДокумента производится системой 1С:Предприятие неявно при интерактивном удалении документа и в случае отмены пометки на удаление. В этом случае, условия вызова можно узнать методом ПометкаУдаления документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если не истек срок хранения документа), то удаление документа не будет выполнено.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриУдаленииДокумента(Док, Реж)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если (Док.Вид() = "РасходнаяНакл") И (Реж = 1) Тогда

         Предупреждение("У вас нет права удалять накладную!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУдаленииЭлемента

Предопределенная процедура при удалении элемента справочника и при отмене пометки на удаление.

Синтаксис:

ПриУдаленииЭлемента(<УдалЭлем>, <Режим>)

Англоязычный синоним:

OnDeleteItem

Параметры:

<УдалЭлем> | Значение удаляемого элемента справочника.
<Режим> | Значение флага непосредственного удаления: 1 — непосредственное удаление; 0 — пометка на удаление.

Описание:

Вызов предопределенной процедуры ПриУдаленииЭлемента производится системой 1С:Предприятие неявно при интерактивном удалении элемента справочника и в случае отмены пометки на удаление. В этом случае, условия вызова можно узнать методом ПометкаУдаления элемента справочника. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если нарушается ссылочная целостность системы), то удаление элемента справочника не будет выполнено.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриУдаленииЭлемента(Элем, Реж)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если (Элем.Вид() = "Товар") И (Реж = 1) Тогда

         Предупреждение("У вас нет права удалять Товар!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриОткрытииИстории

Предопределенная процедура при открытии окна «История» значения периодического реквизита элемента справочника или константы.

Синтаксис:

ПриОткрытииИстории(<ТипОбъекта>, <Объект>, <ТолькоПросмотр>)

Англоязычный синоним:

OnOpenHistory

Параметры:

<ТипОбъекта> | Название периодического объекта конфигурации, как оно задано в конфигураторе (например, "Справочник.Валюты.ТекущийКурс" или " Константа. ИмяДиректора"). Строковое название агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага основного языка системы (см. ОсновнойЯзык).
<Объект> | Элемент справочника, для которого выполняется открытие окна истории периодического реквизита. Имеет смысл только для периодических реквизитов справочников, а не для констант.
<ТолькоПросмотр> | Флаг установки режима "только просмотр" для окна истории значения. Если значение этого параметра установить в 1 (в предопределенной процедуре), то окно истории будет открыто только для чтения. Установка значения в 0 — введет режим по умолчанию (определенный правами). Уже открытое окно истории соответствующим образом изменит режим (если это случай, когда процедура обрабатывает не открытие окна, а смену отображаемого объекта). Значение по умолчанию — 0.

Описание:

Вызов предопределенной процедуры ПриОткрытииИстории производится системой 1С:Предприятие неявно при при открытии окна «История» значения периодического реквизита элемента справочника или константы. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю запрещено изменение периодических реквизитов), то запись нового периодического значения не будет выполнена.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриОткрытииИстории(ТипОб, Об, ФлагРежима)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если (ТипОб = "Справочник.Валюты.ТекКурс") И

           (Об = Константа.ОсновнаяВалюта)) Тогда

         Предупреждение("У вас нет права просматривать историю курса!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата, ОсновнойЯзык

ПриЗаписиИстории

Предопределенная процедура при записи в окне «История» значения периодического реквизита элемента справочника или константы.

Синтаксис:

ПриЗаписиИстории(<ТипОбъекта>, <Объект>, <3начение>, <ДатаИстории>)

Англоязычный синоним:

OnWriteHistory

Параметры:

<ТипОбъекта> | Название периодического объекта конфигурации, как оно задано в конфигураторе (например, "Справочник.Валюты.ТекущийКурс" или "Константа. ИмяДиректора"). Строковое название агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага основного языка системы (см. ОсновнойЯзык).
<Объект> | Элемент справочника, для которого выполняется изменение периодического реквизита. Имеет смысл только для периодических реквизитов справочников, а не для констант.
<3начение> | Значение периодической записи.
<ДатаИстории> | Дата периодической записи.

Описание:

Вызов предопределенной процедуры ПриЗаписиИстории производится системой 1С:Предприятие неявно при интерактивной записи нового периодического значения в окне «История». Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю запрещено изменение периодических реквизитов), то запись нового периодического значения не будет выполнена.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриЗаписиИстории(ТипОб, Об, Значен, ДатаИстор)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если (ТипОб = "Справочник.Валюты.ТекКурс") И

           (Об = Константа.ОсновнаяВалюта) И (ДатаИстор > РабочаяДата()) Тогда

         // Записывается курс для валюты, которая записана в Константе

         Предупреждение("У вас нет права устанавливать курс на будущую дату!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

Ом. также: СтатусВозврата, ОсновнойЯзык

ПриУдаленииИстории

Предопределенная процедура при удалении в окне «История» значения периодического реквизита элемента справочника или константы.

Синтаксис:

ПриУдаленииИстории(<ТипОбъекта>, <Объект>, <3начение>, <ДатаИстории>)

Англоязычный синоним:

OnDeleteHistory

Параметры:

<ТипОбъекта> | Название периодического объекта конфигурации, как оно задано в конфигураторе (например, "Справочник.Валюты.ТекущийКурс" или " Константа. ИмяДиректора"). Строковое название агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага основного языка системы (см. ОсновнойЯзык).
<Объект> | Элемент справочника, для которого выполняется изменение периодического реквизита. Имеет смысл только для периодических реквизитов справочников, а не для констант.
<3начение> | Значение периодической записи.
<ДатаИстории> | Дата периодической записи.

Описание:

Вызов предопределенной процедуры ПриУдаленииИстории производится системой 1С:Предприятие неявно при интерактивном удалении периодической записи в окне «История». Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю запрещено изменение периодических реквизитов), то удаления периодического значения не будет выполнено.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриУдаленииИстории(ТипОб, Об, Значен, ДатаИстор)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если (ТипОб = "Справочник.Валюты.ТекКурс") И

           (Об=Константа.ОсновнаяВалюта) И (ДатаИстор < РабочаяДата() - 7) Тогда

         // Удаляется курс для валюты, которая записана в Константе

         Предупреждение("У вас нет права удалять прошлый курс!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата, ОсновнойЯзык

ПриЗаписиКонстанты

Предопределенная процедура при записи значения константы.

Синтаксис:

ПриЗаписиКонстанты(<ИмяКонстанты>, <3начение>)

Англоязычный синоним:

OnWriteConst

Параметры:

<ИмяКонстанты> | Название константы, как оно задано в конфигураторе (например, "СкладПоУмолчанию").
<3начение> | Новое значение константы.

Описание:

Вызов предопределенной процедуры ПриЗаписиКонстанты производится системой 1С:Предприятие неявно при интерактивной записи значения константы. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данное значение константы запрещено), то запись константы не будет выполнена.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриЗаписиКонстанты(ИмяКонстанты, Значение)

   Если ИмяКонстанты = "ТекущийПрефикс" Тогда

      Если НазваниеНабораПрав() = "Продавец" Тогда

         Предупреждение("У вас нет права менять префикс!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриОтменеПроведенияДокумента

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

Синтаксис:

ПриОтменеПроведенияДокумента(<Докум>)

Англоязычный синоним:

OnUnPosting

Параметры:

<Докум>

Значение обрабатываемого документа.

Описание:

Вызов предопределенной процедуры ПриОтменеПроведенияДокумента производится системой 1С:Предприятие неявно при интерактивной попытке выполнить операцию «Сделать непроведенным». Если в данной предопределенной процедуре установить статус возврата — 0 (например, если дата документа меньше некоторой константы), то отмена проведения документа не будет выполнена.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

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

   Если Док.ДатаДок <= Константа.ДатаЗащитыДокументов Тогда

      Предупреждение("Нельзя снимать с проведения архив!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата, СделатьНеПроведенным

ПриИзмененииВремениДокумента

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

Синтаксис:

ПриИзмененииВремениДокумента(<Докум>)

Англоязычный синоним:

OnChangeTimeDoc

Параметры:

<Докум>

Значение обрабатываемого документа.

Описание:

Вызов предопределенной процедуры ПриИзмененииВремениДокумента производится самой системой 1С:Предприятие неявно при интерактивной попытке изменить время документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если время данного документа нельзя менять), изменение времени документа не будет выполнено.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриИзмененииВремениДокумента(Док)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права менять время документа!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУстановкеОтбора

Предопределенная процедура при установке отбора.

Синтаксис:

ПриУстановкеОтбора(<ИмяРеквизОтбора>, <3начение>)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

<ИмяРеквизОтбора> | Строковое значение — название общего реквизита документа (как оно задано в конфигураторе), по которому производится отбор (например, "Автор").
<3начение> | Значение реквизита отбора. Допустим, у документов существует общий реквизит "Автор", по которому решено провести отбор, значит в этом параметре будет передано конкретное значение этого реквизита, по которому решено провести отбор (например, "Сидоров И.А.").

Описание:

Вызов предопределенной процедуры ПриУстановкеОтбора производится самой системой 1С:Предприятие неявно при интерактивной попытке установить отбор документов в журнале. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя устанавливать данное значение отбора документов), установка не будет выполнена.

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

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если (Имя0тбора = "Автор") И (ЗначОтбора <> ТекущПользователь) Тогда

         Предупреждение("У вас нет права просматривать чужие документы!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриСменеРасчетногоПериода

Предопределенная процедура, вызываемая при смене текущего расчетного периода журнала расчетов.

Синтаксис:

ПриСменеРасчетногоПериода(<ЖурналРасчетов>, <Период>)

Англоязычный синоним:

OnРег1odChange

Параметры:

<ЖурналРасчетов> | Журнал расчетов, период которого изменяется (агрегатный объект типа «ЖурналРасче-тов»).
<Период> | Устанавливаемый расчетный период (значение типа «ПериодРасчета»).

Описание:

Вызов предопределенной процедуры ПриСменеРасчетногоПериода на исполнение производится системой 1C:Предприятие неявно при попытке смены текущего расчетного периода любого журнала расчетов. Если в данной предопределенной процедуре установить статус возврата — 0, то текущий расчетный период не будет изменен.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриСменеРасчетногоПериода(ЖР, Период)

   Если ЖР.Вид() = "Зарплата" Тогда

      Предупреждение("Это смена текущего расчетного периода для журнала

                          | Зарплата");

   КонецЕсли;

   Если Период.ДатаНачала <= ЖР.НачалоТекущегоПериода Тогда

      //не позволяем откатывать период назад

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУдаленииСчета

Предопределенная процедура, выполняемая при удалении бухгалтерского счета.

Синтаксис:

ПриУдаленииСчета(<УдалСчет>, <Режим>)

Англоязычный синоним:

OnDeleteAccount

Параметры:

<УдалСчет> | Значение типа «Счет» — удаляемый бухгалтерский счет.
<Режим> | Режим удаления. Может принимать значения: 1 — счет будет удален; 0 — счет будет помечен на удаление.

Описание:

Вызов предопределенной процедуры ПриУдаленииСчета производится системой 1С:Предприятие неявно при интерактивном удалении счета из плана счетов. В качестве параметров в процедуру передаются значение удаляемого счета и режим удаления: непосредственное удаление или пометка на удаление.

Если в данной процедуре установить статус возврата 0 (например, если нарушается ссылочная целостность системы), то счет не будет удален (или помечен на удаление).

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриУдаленииСчета(УдСчет)

   Если УдСчет.Валютный() = 1 Тогда

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриВыклВклПроводокОперации

Предопределенная процедура, выполняемая при выключении или включении проводок.

Синтаксис:

ПриВыклВклПроводокОперации(<Документ>)

Англоязычный синоним:

OnOperEntryOffOn

Параметры:

<Документ>

Значение типа «Документ» — документ, которому принадлежит операция.

Описание:

Вызов предопределенной процедуры ПриВыклВклПроводокОперации производится системой 1С:Предприятие неявно при интерактивном выключении или включении проводок. В качестве параметра в процедуру передается значение документа, которому принадлежит операция.

Если в данной процедуре установить статус возврата 0, то действие не будет выполнено.

Данная предопределенная процедура может располагаться только в глобальном программном модуле.

Пример:

Процедура ПриВыклЗклПроводокОперации(Док)

   Если Док.Вид() <> "Операция" Тогда

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата


Part9

Глава 9
Работа с Константами

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

Константы могут быть периодическими или нет (это задается в конфигураторе при их создании). Периодические константы — это константы, значения которых связаны с датой. При изменении значения периодической константы старое значение сохраняется, просто новое значение действует с указанной даты, а старое до указанной даты.

Пример:

* Изначально значение периодической константы Константа.ИмяДиректора было — "Иванов И. И.". В некоторый момент директор сменился.

Константа.ИмяДиректора.Установить('01.05.96', "Петров П.П.");

* Данный оператор устанавливает новое значение периодической константы с даты '01.05.96', но старое значение — "Иванов И. И." сохраняется до этой даты и может быть получено, например, следующей строкой текста программы:

ПрежнДирект = Константа.ИмяДиректора.Получить('01.01.96');

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

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

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

Константа.<Имя_константы>,

где <Имя_константы> — название конкретной константы, как оно объявлено в окне «Метеданные» конфигуратора.

Англоязычный синоним ключевого слова Константа — Const.

Пример:

* Пример работы с непериодическими константами:

Константа.Организация = "АО СПЕЦСТРОЙКОНСЕРВБАНК";

Константа.Адрес = "г.Москва, Вернадского, 523, 25";

Р_Счет = Константа.НашСчет;

// операторы

Если Всего > Константа.МинимальнаяЗарплата Тогда

   // операторы

Иначе

   // операторы

КонецЕсли;

Методы констант

НазначитьТип

Назначить тип для константы неопределенного типа.

Синтаксис:

НазначитьТип(<ИмяКонстанты>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяКонстанты> | Строковое выражение — название константы неопределенного типа, как она названа в конфигураторе.
<ИмяТипа> | Строковое выражение — название типа данных (или Вид субконто), который назначается константе. Например: "Строка", "Число", "Справочник.Товары", "Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для константы, которой в конфигураторе назначен тип «Неопределенный».

Пример:

Константа.НазначитьТип("ТМЦ", "Справочник.Товары");

УстановитьАтрибут

Установить значение константы по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

Англоязычный синоним:

SetAttrib

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя константы, как оно задано в конфигураторе.
<3начение> | Выражение, содержащее устанавливаемое значение константы.

Описание:

Метод УстановитьАтрибут позволяет установить значение константы по имени идентификатора, как оно задано в конфигураторе.

Пример:

Константа.УстановитьАтрибут("ФлагЗапретаРедактирования", 1);

ПолучитьАтрибут

Получить значение константы по идентификатору.

Синтаксис:

ПолучитьАтрибут(<ИмяАтрибута>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяАтрибута>

Строковое выражение, содержащее имя константы, как оно задано в конфигураторе.

Возвращаемое значение:

Значение константы <ИмяАтрибута>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение константы по идентификатору, как оно задано в метаданных.

Пример:

ФлЗапрРед = Константа.ПолучитьАтрибут("ФлагЗапретаРедактирования");

Методы периодических констант

Получить

Получить значение периодической константы на дату.

Синтаксис:

Получить(<Дата>)

Англоязычный синоним:

GetValue

Параметры:

<Дата>

Выражение со значением требуемой даты.

Возвращаемое значение:

Значение константы на заданную дату.

Описание:

Метод Получить возвращает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.

Пример:

// Константа.РазмерКомпенсации - периодическая

// поэтому получим значение этой константы на дату документа

РазмерДК = Константа.РазмерКомпенсации.Получить(ДатаДок);

Если РазмерДК <> 0 Тогда

   Результат = РазмерДК;

Иначе

   // операторы

КонецЕсли;

Установить

Установить значение периодической константы на дату.

Синтаксис:

Установить(<Дата>, <3начение>)

Англоязычный синоним:

SetValue

Параметры:

<Дата> | Выражение со значением требуемой даты.
<3начение> | Новое значение константы.

Описание:

Метод Установить устанавливает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.

Пример:

Константа.РасчетныйСчет.Установить('01.07.96', "77889001");

Константа.Директор.Установить('01.01.85', "Иванов П.С.")


Part10

Глава 10
Работа со Справочниками

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

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

Название и структура каждого конкретного справочника определяется при его создании в конфигураторе. У любого справочника существует два обязательных реквизита, которые создаются автоматически — "Код" и "Наименование". Другие реквизиты справочника, которые могут содержать различную дополнительную информацию помимо наименования, определяются в конфигураторе конкретно для каждого создаваемого справочника.

Реквизиты справочников могут быть периодическими или нет (это задается в конфигураторе при создании реквизита). Периодические реквизиты — это реквизиты, значения которых связаны с датой. При изменении значения периодического реквизита старое значение сохраняется, при этом новое значение действует с указанной даты, а старое — до указанной даты. Работа с периодическими реквизитами осуществляется при помощи методов Получить и ИспользоватьДату, а также при помощи специального агрегатного типа данных — Периодический.

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

Контекст работы со справочниками

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

Если конкретный элемент или группа справочника входит (согласно локального контекста) в набор непосредственно доступных модулю значений агрегатных типов данных (см. «Виды программных модулей»), то обращение к атрибуту, вызов метода для этого элемента или группы справочника — просто имя этого атрибута или метода с указанием необходимых параметров.

Пример:

* В форме редактирования элемента справочника «Сотрудники» мы имеем непосредственный доступ к текущему элементу (сотруднику) справочника. Значит, чтобы изменить имя текущего сотрудника, просто укажем:

Наименование = "Сидоров С.С.";

Значение элемента или группы справочника может быть получено из других источников, например как реквизит какого-либо документа. Чтобы получить доступ к атрибуту, вызвать метод такой переменной со значением типа «Справочник», имя этого атрибута, метода (с указанием необходимых параметров) пишется через точку после имени реквизита.

Пример:

* Если в документе значение реквизита "Сотрудники" имеет тип «Справочник», имя сотрудника можно узнать следующим образом:

ИмяСотр = Док.Сотрудники.Наименование;

В других случаях доступ к атрибутам, вызов методов конкретного элемента или группы справочника происходит при помощи переменной со ссылкой на объект типа «Справочник». Объект создается функцией СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать атрибут или метод объекта, имя этого атрибута, метода (с указанием необходимых параметров) пишется через точку после имени переменной.

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

Справочник.Имя_Справочника

где <Имя_Справочника> — название справочника, определенное в конфигураторе.

Англоязычный синоним ключевого слова Справочник — Reference. Допускается создавать объект неопределенного вида справочника. В этом случае название конкретного вида справочника в параметре вызова функции СоздатьОбъект опускается. Далее для работы с таким объектом ему надо установить вид справочника при помощи метода Вид.

Пример:

Спр1=СоздатьОбъект("Справочник.Товары");

Спр2=СоздатьОбъект("Справочник.Клиенты");

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

СпрЗ.Вид("Валюты");

Замечание. Следует обратить особое внимание, что переменной может быть присвоена ссылка на позиционируемый объект или само значение элемента справочника (например, переменной может быть присвоено значение реквизита документа, который имеет тип «Справочник»). Использование ссылки, созданной при помощи функции СоздатьОбъект существенно отличается от работы непосредственно со значением элемента справочника. Только при работе со ссылкой на позиционируемый объект типа «Справочник» есть возможность изменять позиционирование (найти-выбрать...) текущего элемента справочника (т. е. осуществлять навигацию по справочнику), создавать новые элементы и удалять существующие. С другой стороны, ссылка не содержит собственно значения элемента справочника, которое можно присвоить чему-либо. Однако, его всегда можно получить используя метод ТекущийЭлемент.

Замечание. Объект, созданный при помощи функции СоздатьОбъект, изначально не спозиционирован, т. е. не указывает на конкретный элемент справочника. Чтобы начать с ним работать, его предварительно надо позиционировать при помощи методов НайтиЭлемент, НайтиПоКоду, ПолучитьЭлемент и т. п.

Пример:

*

//В модуле Формы списков Справочника

// меняем наименование выбранного в списке элемента справочника

Наименование = "Администрация";

*

// В модуле Формы элемента справочника или

// В модуле Формы группы справочника

// при редактирования одного элемента справочника

// меняем наименование обрабатываемого элемента справочника

Наименование = "Бухгалтерия";

*

// В других программных модулях

Спр = СоздатьОбъект("Справочник.Товары");

Спр.Новый();

//задаем реквизиты элемента Справочника, используя атрибуты

Спр.Наименование = "Авто-Элемент";

Спр.Код = 1032;

Спр.Размер = 10045;

Спр.Записать();

Атрибуты справочников

Код

Значение реквизита Код.

Синтаксис:

Код

Англоязычный синоним:

Code

Описание:

Атрибут Код предоставляет доступ к значению обязательного реквизита " Код" выбранного элемента справочника.

Пример:

Спр = СоздатьОбъект("Справочник.Подразделения");

Спр.НайтиПоКоду("29");

Ид = Спр.Код;

Спр.Код = Ид + "5";

Наименование

Значение реквизита Наименование.

Синтаксис:

Наименование

Англоязычный синоним:

Description

Описание:

Атрибут Наименование предоставляет доступ к значению обязательного реквизита "Наименование" выбранного элемента справочника.

Пример:

Спр = СоздатьОбъект("Справочник.Подразделения");

Спр.НайтиПоКоду("29");

Подразделение = Спр.Наименование;

<Реквизит>

Значение реквизита справочника.

Синтаксис:

<Реквизит>

Идентификатор реквизита справочника, как он задан в конфигураторе.

Описание:

Атрибут <Реквизит> предоставляет доступ к значению реквизита выбранного элемента справочника. В тексте программного модуля в качестве названия реквизита подставляется идентификатор конкретного реквизита справочника, созданного в конфигураторе.

Пример:

// В этом примере справочник "Сотрудники" имеет реквизит "Оклад"

Спр = СоздатьОбъект("Справочник.Сотрудники");

Спр.НайтиПоКоду("111");

ОкладСотр = Спр.Оклад;

Спр.Оклад = ОкладСотр * 1.5;

Родитель

Значение родительской группы элемента справочника.

Синтаксис:

Родитель

Англоязычный синоним:

Parent

Описание:

Атрибут Родитель предоставляет доступ к значению родительской группы выбранного элемента справочника.

Данный атрибут может быть изменен только для объектов, созданных функцией СоздатьОбъект.

Пример:

Функция ДатьРодителя(Элем)

   // Справочник Товаров многоуровневый

   // Получая в параметре функции значение товара,

   // надо выдать имя группы товара

   Спр = СоздатьОбъект("Справочник.Товары");

   Спр.НайтиЭлемент(Элем);

   Если Спр.Уровень() > 1 Тогда

      Спр.НайтиЭлемент(Спр.Родитель);

      Возврат "Этот товар принадлежит группе " + Спр.Наименование;

   Иначе

      Возврат "Это товар первого уровня - нет родителя!";

   КонецЕсли;

КонецФункции

Владелец

Значение элемента сопряженного справочника, которому подчинен выбранный элемент текущего справочника.

Синтаксис:

Владелец

Англоязычный синоним:

Owner

Описание:

Атрибут Владелец предоставляет доступ к значению элемента сопряженного справочника, которому подчинен выбранный элемент текущего справочника.

Данный атрибут может быть изменен только для объектов, созданных функцией СоздатьОбъект.

Пример:

Функция ДатьВладельца(Элем)

   // Справочник "Единицы" подчинен Справочнику "Товары"

   // Получая в параметре функции значение Единицы измерения товара,

   // надо выдать имя товара, для которого задана эта единица изм.

   СпрТ = СоздатьОбъект("Справочник.Товары");

   СпрЕ = СоздатьОбъект("Справочник.Единицы");

   СпрЕ.НайтиЭлемент(Элем);

   СпрТ.НайтиЭлемент(СпрЕ.Владелец);

   Возврат "Это единица измерения товара " + СпрТ.Наименование;

КонецФункции

Методы периодических реквизитов

Получить

Получить значение периодического реквизита справочника на дату (или на документ).

Синтаксис:

Получить(<Дата>)

Англоязычный синоним:

GetValue

Параметры:

<Дата>

Необязательный параметр. Выражение со значением требуемой даты или значение типа «документ» (в этом случае возвращается значение на дату и время документа). Значение по умолчанию — ТА.

Возвращаемое значение:

Значение периодического реквизита справочника на заданную дату (или на документ).

Описание:

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

Замечание: Если к объекту типа «справочник» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы выбирать значения периодических реквизитов справочника, нельзя применять к этому же объекту метод Получить, т. е. в такой последовательности эти два метода несовместимы.

Пример:

// при работе в контексте документа, его реквизит "Сотрудник"

// является переменной типа "справочник",

// чтобы получить значение периодического реквизита "Оклад" этого

// справочника, применим функцию Получить

ОкладСотр = Сотрудники.Оклад.Получить(ДатаДок);

См. также: ИспользоватьДату, Установить

Установить

Записать новое значение периодического реквизита справочника на заданную дату.

Синтаксис:

Установить(<Дата>, <3начение>)

Англоязычный синоним:

SetValue

Параметры:

<Дата> | Выражение со значением требуемой даты.
<3начение> | Выражение, содержащее устанавливаемое значение периодического реквизита справочника.

Описание:

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Замечание: Если к объекту типа «справочник» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы записать новые значения периодических реквизитов справочника, нельзя применять к этому же объекту метод Установить, т. е. в такой последовательности эти два метода несовместимы.

Пример:

// при работе в контексте документа, его реквизит "Сотрудник"

// является переменной типа "справочник",

// чтобы установить новое значение периодического

// реквизита "Оклад" этого элемента

// справочника, применим функцию Получить

Сотрудники.Оклад.Установить(ДатаДок, МаксОклад);

См. также: ИспользоватьДату, УстановитьРеквизитСправочника, Получить

Методы справочников

Вид

Определить вид справочника.

Синтаксис:

Вид(<Название>)

Англоязычный синоним:

Kind

Параметры:

<Название>

Необязательный параметр. Строковое выражение с названием вида справочника.

Возвращаемое значение:

Строковое значение, содержащее текущее название вида справочника (на момент до исполнения метода).

Описание:

Метод Вид позволяет установить или получить текущее название вида справочника. В тексте программы метод Вид можно использовать как процедуру или как функцию. Если при вызове метода параметр <Название> задан явно, то вид справочника устанавливается в соответствии с этим параметром. Метод возвращает строку, содержащую текущий (на момент до исполнения метода) идентификатор вида справочника, как он задан в конфигураторе.

Устанавливать новое значение вида справочника допускается только для объектов типа «Справочник» неопределенного вида, созданных при помощи функции СоздатьОбъект.

Пример:

// отобразим вид справочника в строке состояния

Спр1 = СоздатьОбъект("Справочник.Товары");

Состояние(Cnpl.Вид());

Спр2 = СоздатьОбъект("Справочник.Клиенты");

Состояние(Спр2.Вид());

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

СпрЗ.Вид("Валюты");

Состояние(СпрЗ.Вид());

ПредставлениеВида

Определить пользовательское представление вида справочника.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида справочника (синоним справочника или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское представление вида справочника, как он задан в конфигураторе.

Пример:

// отобразим представление вида справочника в строке состояния

Спр1 = СоздатьОбъект("Справочник.Товары");

Состояние(Cnpl.ПредставлениеВида());

Уровень

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

Синтаксис:

Уровень()

Англоязычный синоним:

Level

Возвращаемое значение:

Числовое значение номера уровня текущего элемента справочника.

Описание:

Метод Уровень возвращает номер уровня текущего элемента справочника в структуре дерева многоуровневого справочника.

Пример:

Спр = СоздатьОбъект("Справочник.Подразделения");

Спр.ИспользоватьДату(РабочаяДата());

Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент() > 0 Цикл

   Сообщить(Строка(Спр.Наименование + Спр.Код + Спр.Уровень());

КонецЦикла;

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

Англоязычный синоним:

SetAttrib

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.
<3начение> | Выражение, содержащее устанавливаемое значение реквизита.

Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Тов.УстановитьАтрибут("ЦенаРозн", ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

ПолучитьАтрибут(<ИмяРеквизита>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяРеквизита>

Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.

Возвращаемое значение:

Значение реквизита <ИмяРеквизита>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Тов.ПолучитьАтрибут("ЦенаРозн");

ЭтоГруппа

Проверить принадлежность к группам.

Синтаксис:

ЭтоГруппа()

Англоязычный синоним:

IsGroup

Возвращаемое значение:

Числовое значение: 1 — если выбранный элемент справочника является группой , 0 — если выбранный элемент справочника обычный элемент.

Описание:

Метод ЭтоГруппа возвращает числовое значение 1 — если выбранный элемент справочника является группой , 0 — если выбранный элемент справочника обычный элемент.

Пример:

* В данном примере мы просматриваем весь справочник "Сотрудники" и для групп сотрудников выводим в таблицу секцию "Группа", а для сотрудников выводим секцию " Элемент"

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

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

Сотр = СоздатьОбъект("Справочник.Сотрудники");

Сотр.ВыбратьЭлементы();

Пока Сотр.ПолучитьЭлемент() > 0 Цикл

   Если Сотр.ЭтоГруппа() = 1 Тогда

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

   Иначе

      Таб.ВывестиСекцию("Элемент");

   КонецЕсли;

КонецЦикла;

См. также: ПринадлежитГруппе

ПринадлежитГруппе

Проверить принадлежность к группе.

Синтаксис:

ПринадлежитГруппе(<Группа>)

Англоязычный синоним:

BelongsToGroup

Параметры:

<Группа>

Выражение со значением группы справочника.

Возвращаемое значение:

Числовое значение: 1 — если выбранный элемент справочника принадлежит указанной группе, 0 — если нет.

Описание:

Метод ПринадлежитГруппе проверяет, принадлежит ли указанной группе текущий элемент справочника (не важно, на каком нижестоящем уровне он находится). Возвращаемое числовое значение: 1 — если да; 0 — если нет.

Пример:

// выведем в отчет только те подразделения, которые

// принадлежат группе ВыбГруппа

Процедура ВывестиНаПечать()

   // . . .

   Возврат;

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

...

Спр = СоздатьОбъект("Справочник.Подразделения");

// Задаем выборку в порядке кодов Спр.ПорядокКодов();

Спр.ВыбратьЭлемернты();

Пока Спр.ПолучитьЭлемент() = 1 Цикл

   Если Спр.ПринадлежитГруппе(ВыбГруппа) = -1 Тогда

      ВывестиНаПечать();

   КонецЕсли;

КонецЦикла;

См. также: ЭтоГруппа

Выбран

Проверить факт выбора элемента справочника.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если элемент справочника выбран (спозиционирован); 0 — если не выбран.

Описание:

Метод Выбран возвращает число со значением 1 — если элемент справочника выбран (спозиционирован), 0 — если элемент справочника не выбран.

Пример:

// В диалоге формирования некоторого отчета

// ВыбСклад - реквизит диалога типа «справочник.Склад»

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

   // Если Склад в диалоге не выбран, то формируем без условий

   Заг1 = "По всем складам.";

Иначе

   // если в диалоге выбран Склад

   // то формируем отчет только по выбранному складу

   Заг1 = "Отчет по складу " + ВыбСклад.Наименование;

КонецЕсли;

Выбрать

Выбрать элемент справочника в диалоге.

Синтаксис:

Выбрать(<Подсказка>, <Форма Списка>)

Англоязычный синоним:

Choose

Параметры:

<Подсказка> | Текст заголовка окна диалога выбора. Может использоваться в качестве подсказки конечному пользователю.
<ФормаСписка> | Строковое выражение идентификатора той формы списка справочника (как он объявлен в конфигураторе), которая должна использоваться для выбора. Если это значение пустое, то используется форма списка по умолчанию.

Возвращаемое значение:

Числовое значение: 1 — если элемент выбран; 0 — если не выбран.

Описание:

Метод Выбрать вызывает диалоговое окно для выбора элемента и затем позиционирует справочник на выбранном элементе. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// данная процедура присваивает некоторому реквизиту "Фирма"

// значение из Справочника.Фирмы

Процедура УстФирмы()

   // Создадим объект требуемого справочника

   Фрм = СоздатьОбъект("Справочник.Фирмы");

   // реквизиты справочника могут быть периодическими

   // поэтому установим дату выборки периодических реквизитов

   Фрм.ИспользоватьДату(ДатаДок);

   // Вызываем диалог выбора элемента Справочника

   Если Фрм.Выбрать("Выберите фирму", "") > 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

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

См. также: ВидыДляВыбора

ВидыДляВыбора

Установка выбираемых видов для справочника неопределенного вида.

Синтаксис:

ВидыДляВыбора(<СписокВидов>)

Англоязычный синоним:

KindsForChoise

Параметры:

<СписокВидов>

Необязательный параметр. Строковое выражение, содержащее список видов выбираемых справочников, разделенных запятыми.

Возвращаемое значение:

Строковое значение, содержащее текущий список видов выбираемых справочников, разделенных запятыми (на момент до исполнения метода).

Описание:

Метод ВидыДляВыбора устанавливает выбираемые виды для объекта-справочника неопределенного вида. Данный метод обычно используется до начала интерактивного позиционирования элемента справочника, например, при помощи метода Выбрать.

Данный метод может использоваться только для объектов-справочников неопределенного вида, либо созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «справочник неопределенного вида», то интерактивный выбор элемента справочника будет производиться только среди установленных видов справочников.

Пример:

// данная процедура присваивает некоторому реквизиту "Фирма"

// значение из Справочника.Фирмы

Процедура УстФирмы()

   // Создадим объект требуемого справочника

   Фрм = СоздатьОбъект("Справочник");

   // реквизиты справочника могут быть периодическими

   // поэтому установим дату выборки периодических реквизитов

   Фрм.ВидыДляВыбора("Фирмы");

   Фрм.ИспользоватьДату(ДатаДок);

   // Вызываем диалог выбора элемента справочника

   Если Фрм.Выбрать("Выберите фирму", "") > 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

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

См. также: Выбрать

ВыборГруппы

Установить режим выборки групп.

Синтаксис:

ВыборГруппы(<Режим>)

Англоязычный синоним:

SelectGroup

Параметры:

<Режим>

Необязательный параметр. Числовое выражение:

1 — выбирать группы; 0—не выбирать группы.

Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполнения метода).

Описание:

Метод ВыборГруппы устанавливает режим выборки групп. Данный метод может применяться как для позиционируемых объектов, созданных функцией СоздатьОбъект, так и для элементов диалога для полей типа «справочник» (см. «Методы элементов диалога»).

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

Пример:

* Если в форме документа необходимо, чтобы какой-либо реквизит "Статус" типа «справочник» мог принимать значения как элемента, так и группы, то этому реквизиту следует установить:

Статус.ВыборГруппы(1);

*

Спр = СоздатьОбъект("Справочник.Сотрудники");

// Задаем выборку без групп

Спр.ВыборГруппы(0);

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока (Спр.ПолучитьЭлемент() > 0) Цикл

   Состояние(Спр.Наименование);

КонецЦикла;

ТекущийЭлемент

Получить значение элемента справочника.

Синтаксис:

ТекущийЭлемент()

Англоязычный синоним:

Currentltem

Возвращаемое значение:

Значение элемента справочника.

Описание:

Метод ТекущийЭлемент возвращает значение элемента справочника в целом, как объекта. Данный метод применяется, например, если нужно элемент справочника передать как параметр в вызове какого-либо метода или присвоить какому-либо реквизиту.

Пример:

// данная процедура присваивает некоторому реквизиту "Фирма"

// значение из справочника "Фирмы"

Процедура УстФирмы()

   // Создадим объект требуемого справочника

   Фрм = СоздатьОбъект("Справочник.Фирмы");

   // Вызываем диалог выбора элемента справочника

   Если Фрм.Выбрать("Выберите фирму", "") > 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

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

ПолныйКод

Определить полный код элемента справочника.

Синтаксис:

ПолныйКод()

Англоязычный синоним:

FullCode

Возвращаемое значение:

Строковое значение, содержащее полный код выбранного элемента справочника.

Описание:

Метод ПолныйКод возвращает строку, содержащую полный код выбранного элемента справочника (с кодами групп всех вышестоящих уровней, разделенными символом "/").

Пример:

ПолнКод = Спр.Подразделения.ПолныйКод();

См. также: НайтиПоКоду

ПолноеНаименование

Определить полное наименование элемента справочника.

Синтаксис:

ПолноеНаименование()

Англоязычный синоним:

FullDescr

Возвращаемое значение:

Строковое значение, содержащее полное наименование выбранного элемента справочника.

Описание:

Метод ПолноеНаименование возвращает строку, содержащую полное наименование выбранного элемента справочника (с наименованиями групп всех вышестоящих уровней, разделенными символом "/").

Пример:

ПолнИмя = Спр.Подразделения.ПолноеНаименование();

См. также: НайтиПоНаименованию

НайтиЭлемент

Найти элемент справочника по значению.

Синтаксис:

НайтиЭлемент(<Элемент>)

Англоязычный синоним:

Findltem

Параметры:

<Элемент>

Выражение со значением элемента справочника.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиЭлемент выполняет поиск элемента справочника по значению, заданному параметром <Элемент>, и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// НашБанк должен иметь тип «справочник.Банки»

Бнк = СоздатьОбъект("Справочник.Банки");

Бнк.ИспользоватьДату(ДатаДок);

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

   // Позиционируем созданный объект Бнк на заданном элементе

   Бнк.НайтиЭлемент(НашБанк);

   Процент = Бнк.Процент;

   НазваниеБанка = Бнк.Наименование;

КонецЕсли;

См. также: ТекущийЭлемент

НайтиПоКоду

Найти элемент справочника по коду.

Синтаксис:

НайтиПоКоду(<Код>, <ФлагПоиска>)

Англоязычный синоним:

FindByCode

Параметры:

<Код>

Выражение со значением искомого кода.

<ФлагПоиска>

Необязательный параметр. Числовое выражение — флаг поиска: 0 — поиск во всем справочнике вне зависимости от родителя; 1 — поиск внутри установленного подчинения (родителя); 2 — поиск по полному коду.

Значение по умолчанию: 0 — для справочников, у которых код уникален во всем справочнике; 2 — для справочников, у которых код уникален в группе.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоКоду выполняет поиск элемента справочника по значению кода, заданному параметром <Код>, и позиционирует объект справочник на этом элементе. Если справочник многоуровневый, то полный код выбираемого элемента можно задавать, разделяя коды уровней символом "/".

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// Контекст журнала расчетов.

// Реквизит Подразд имеет тип «справочник»

Пдр = СоздатьОбъект("Справочник.Подразделения");

Пдр.ИспользоватьДату(ДатаДок);

Если Документ.Подразд <> 0 Тогда

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

   Пдр.НайтиПоКоду(Документ.Подразд);

   Если Пдр.Выбран() > 0 Тогда

      Сообщить("Есть такое подразделение !")

   Иначе

      Сообщить("Нет такого подразделения!")

   КонецЕсли;

КонецЕсли;

См. также: ПолныйКод

НайтиПоНаименованию

Найти элемент справочника по наименованию.

Синтаксис:

НайтиПоНаименованию(<Наименование>, <Режим>, <ФлагПоиска>)

Англоязычный синоним:

FindByDescr

Параметры:

<Наименование> | Строковое выражение с наименованием искомого элемента справочника.
<Режим> | Необязательный параметр. Числовое выражение — режим поиска: 1 — поиск внутри установленного подчинения (родителя); 0 — поиск во всем справочнике вне зависимости от родителя. Значение по умолчанию — 1.
<ФлагПоиска> | Необязательный параметр. Числовое выражение — флаг поиска: 1 — найти точное соответствие наименования; 0 — найти наименование по первым символам. Значение по умолчанию — 0.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоНаименованию выполняет поиск элемента справочника по наименованию, заданному параметром <Наименование> и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

Спр.ИспользоватьДату(ДатаДок);

// Позиционируем созданный объект Спр по известному наименованию

Спр.НайтиПоНаименованию("Иванов", 1);

Если Спр.Выбран() > 0 Тогда

   Оклад=Спр.Оклад;

   Подразделение = Спр.Подразделение;

Иначе

   Предупреждение("Нет у нас Ивановых!");

КонецЕсли;

См. также: ПолноеНаименование

НайтиПоРеквизиту

Найти элемент справочника по значению реквизита.

Синтаксис:

НайтиПоРеквизиту(<ИмяРеквизита>, <3начение>, <ФлагГлобальногоПоиска>)

Англоязычный синоним:

FindByAttribute

Параметры:

<ИмяРеквизита> | Строковое выражение с наименованием реквизита.
<3начение> | Значение реквизита для поиска.
<ФлагГлобальногоПоиска> | Числовое выражение. Если 0, то поиск должен выполняться в пределах подчинения справочника, если 1, то поиск должен выполняться по всему справочнику.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоРеквизиту выполняет поиск первого элемента с указанным значением заданного реквизита и позиционирует объект справочник на этом элементе.

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

Спр.ИспользоватьДату(ДатаДок);

// Позиционируем созданный объект Спр по реквизиту

Спр.НайтиПоРеквизиту("СерияПаспорта", "XXVII-OP", 1);

Если Спр.Выбран() > 0 Тогда

   Имя = Спр.Наименование;

Иначе

   Предупреждение("Не найден сотрудник с таким паспортом!");

КонецЕсли;

ВыбратьЭлементы

Открыть выборку элементов справочника

Синтаксис:

ВыбратьЭлементы(<Режим>)

Англоязычный синоним:

SelectItems

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — выбирать элементы с учетом иерархии; 0 — выбирать элементы без учета иерархии. Значение по умолчанию — 1.

Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один элемент;

Число 0 — если действие не выполнено или в выборке нет ни одного элемента.

Описание:

Метод ВыбратьЭлементы предоставляет возможность выбирать элементы (открывает выборку) при помощи метода ПолучитьЭлемент.

Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего справочника в порядке, установленном заранее при помощи методов: ПорядокНаименований, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Акц = СоздатьОбъект("Справочник.Акционеры");

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

Акц.ИспользоватьДату(ДатаОтчета);

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

// Открываем выборку Акц.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока Акц.ПолучитьЭлемент() > 0 Цикл

   Если Акц.ЭтоГруппа() = 1 Тогда

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

   Иначе

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

   КонецЕсли;

КонецЦикла;

См. также: ПолучитьЭлемент, ПорядокНаименований, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату.

ВыбратьЭлементыПоРеквизиту

Открыть выборку элементов справочника по значению реквизита.

Синтаксис:

ВыбратьЭлементыПоРеквизиту(<ИмяРеквизита>, <3начение>, <РежимИерархии>,
 <РежимГрупп>)

Англоязычный синоним:

Select ItemsByAttribute

Параметры:

<ИмяРеквизита> | Строковое выражение с именем реквизита справочника, который задает порядок обхода элементов справочника.
<3начение> | Значение реквизита для выборки.
<РежимИерархии> | Необязательный параметр. Числовое выражение: 1 — выбирать элементы с учетом иерархии; 0 — выбирать элементы без учета иерархии. Значение по умолчанию — 1.
<РежимГрупп> | Числовое выражение: 1 — выбирать среди групп справочника; 0 — выбирать среди элементов справочника.

Возвращаемое значение:

Число; 1 — если действие выполнено и в выборке есть хотя бы один элемент; 0 — если действие не выполнено или в выборке нет ни одного элемента.

Описание:

Метод ВыбратьЭлементыПоРеквизиту предоставляет возможность выбирать элементы (открывает выборку) при помощи метода ПолучитьЭлемент.

Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего справочника, имеющих значение реквизита <ИмяРеквизита> равным <3начение>, в порядке, установленном параметрами <РежимИерархии> и <РежимГрупп>, а также согласно установкам, сделанным заранее при помощи методов:

ПорядокНаименований,

ПорядокКодов,

ВключатьПодчиненные,

ИспользоватьРодителя,

ИспользоватьВладельца,

ИспользоватьДату.

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Акц = СоздатьОбъект("Справочник.Акционеры");

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

Акц.ИспользоватьДату(ДатаОтчета);

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

// Открываем выборку

Акц.ВыбратьЭлементыПоРеквизиту("Отдел", НомерОтдела, 1, 0);

// Цикл получения элементов справочника

Пока Акц.ПолучитьЭлемент() > 0 Цикл

   Если Акц.ЭтоГруппа() = 1 Тогда

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

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

   КонецЕсли;

КонецЦикла;

См. также: ПолучитьЭлемент, ПорядокНаименований, ПорядокКодов, ОбратныйПорядок, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату

ОбратныйПорядок

Установить порядок выборки элементов справочника.

Синтаксис:

ОбратныйПорядок(<Режим>)

Англоязычный синоним:

BackwardOrder

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — выбирать элементы справочника в обратном порядке; 0 — выбирать элементы справочника в прямом порядке. Значение по умолчанию — 1.

Возвращаемое значение:

Текущее значение порядка выборки элементов справочника (на момент до исполнения метода): 1 — обратный порядок выборки элементов справочника; 0 — выборка элементов справочника в прямом порядке.

Описание:

Метод ОбратныйПорядок устанавливает порядок выборки элементов справочника. Данный метод обычно используется до вызова одного из методов: ВыбратьЭлементы, ВыбратьЭлементыПоРеквизиту который фактически открывает выборку. Дальнейшая выборка при помощи ПолучитьЭлемент будет происходить в заданном порядке выборки.

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

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

Акц = СоздатьОбъект("Справочник.Акционеры");

Акц.ИспользоватьДату(ДатаОтчета);

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

// Открываем выборку Акц.ВыбратьЭлементы();

Акц.ПорядокКодов();

Акц.ОбратныйПорядок(1);

// Цикл получения элементов справочника.

Пока Акц.ПолучитьЭлемент() > 0 Цикл

   Если Акц.Это Группа() = 1 Тогда

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

   Иначе

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

   КонецЕсли;

КонецЦикла;

См. также: ВыбратьЭлементы, ПолучитьЭлемент, ПорядокНаименований, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату

ПолучитьЭлемент

Получить из выборки следующий элемент справочника.

Синтаксис:

ПолучитьЭлемент(<Режим>)

Англоязычный синоним:

Getltem

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — надо включать в выборку все подчиненные элементы, если 0 — не надо включать подчиненные элементы. Значение по умолчанию — 1.

Возвращаемое значение:

Числовое значение: 1 — если элемент выбран успешно, 0 — если элемент не выбран (отсутствует).

Описание:

Метод ПолучитьЭлемент выбирает следующий элемент справочника в последовательности выборки, открытой перед этим при помощи метода ВыбратьЭлементы.

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

Пример:

Спр = СоздатьОбъект("Справочник.ОсновныеСредства");

// Задаем выборку в порядке кодов

Спр.ПорядокКодов();

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока Спр.ПолучитьЭлемент() > 0 Цикл

   Сообщить("===" + Спр.Наименование);

КонецЦикла;

См. также: ВыбратьЭлементы, ПолучитьЭлемент, ПорядокНаименований, ОбратныйПорядок, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату

ИспользоватьДату

Установить дату выборки периодических реквизитов справочника.

Синтаксис:

ИспользоватьДату[<Дата>, <УстСразу>)

Англоязычный синоним:

UseDate

Параметры:

<Дата> | Необязательный параметр. Выражение со значением типа «дата».
<УстСразу> | Необязательный параметр. Число: если 1, то дата, переданная в качестве параметра, будет установлена уже в текущей выборке; если 0 — то дата, переданная в качестве параметра будет установлена при следующей выборке. Значение по умолчанию — 0. Например: если "Цена" — периодический реквизит справочника, то Спр.ИспользоватьДату(Д1, 1); Спр.ВыбратьЭлементы(); А = Спр.Цена; — возвращает значение на дату Д1 Спр.ИспользоватьДату(Д2, 1); Б = Спр.Цена; — возвращает значение на дату Д2! Если <УстСразу> — 0 (или опущен), то Спр.ИспользоватьДату(Д1); Спр.ВыбратьЭлементы(); А = Спр.Цена; — возвращает значение на дату Д1 Спр.ИспользоватьДату(Д2); Б=Спр.Цена; — тоже возвращает значение на дату Д1! Спр.ВыбратьЭлементы(); В=Спр.Цена; — только теперь возвращает значение на Д2.

Возвращаемое значение:

Текущее значение используемой даты (на момент до исполнения метода).

Описание:

Метод ИспользоватьДату устанавливает для объекта типа «справочник» дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов справочника.

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

Замечание: Если к объекту типа «справочник» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы выбирать значения периодических реквизитов справочника, нельзя применять к этому же объекту методы Получить и Установить, т. е. в такой последовательности эти методы несовместимы.

Замечание: Данный метод имеет следующую особенность применения: его нельзя использовать «через две точки». Например, если в документе с именем "ДокНакл" есть реквизит "Фирма" типа «справочник», у которого есть периодические реквизиты НДС и СН, то следующий оператор:
ДокНакл.Фирма.ИспользоватьДату(Дата);
работать не будет. В данном случае следует просто использовать промежуточную переменную, например:
ФирДок = ДокНакл.Фирма;
ФирДок.ИспользоватьДату(РабочаяДата());
НДСДок = ФирДок.НДС;

Пример:

// Здесь мы работаем в локальном контексте модуля Формы

// редактирования документа.

// Реквизит "Должность" в документе является справочником,

// у которого "МинОкл" - периодический реквизит

Длж = СоздатьОбъект("Справочник.Должности");

Длж.ИспользоватьДату(ДатаДок);

Длж.НайтиЭлемент(Должность);

Сообщить(Длж.Наименование + " Минимальный оклад" + Строка(Длж.МинОкл));

См. также: Получить, Установить, НайтиЭлемент, ВыбратьЭлементы

ИспользоватьВладельца

Установить выборку подчиненного справочника.

Синтаксис:

ИспользоватьВладельца(<Владелец>, <ФлагИзменения>)

Англоязычный синоним:

UseOwner

Параметры:

<Владелец> | Необязательный параметр. Выражение со значением элемента справочника-владельца.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения владельца. 1 — пользователь может изменить владельца интерактивно, 0 — пользователь не может интерактивно изменить владельца. Этот параметр используется в случае использовсния данного метода для объектов типа «справочник», которые являются реквизитами формы или реквизитами диалога.

Возвращаемое значение:

Значение элемента справочника-владельца для текущего подчиненного справочника (на момент до исполнения метода).

Описание:

Метод ИспользоватьВладельца может применяться к объектам типа «справочник» в двух случаях:

  • Для объектов, созданных функцией СоздатьОбъект, метод ИспользоватьВладельца устанавливает элемент справочника-владельца (которому подчинен текущий подчиненный справочник) в качестве параметра выборки. Данный метод используется до вызова метода ВыбратьЭлементы, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить только среди тех элементов текущего подчиненного справочника, для которых владельцем является заданное значение элемента справочника-владельца <Владелец>. При записи нового элемента текущего справочника данный метод также задает владельца для нового элемента.
  • Для объектов типа «справочник», которые являются реквизитами формы (например, в форме документа — реквизит документа типа «справочник») или реквизитами диалога (например, в форме отчета — реквизит диалога типа «справочник») метод ИспользоватьВладельца позволяет программно установить некоторое значение справочника-владельца в качестве владельца, который будет использован при интерактивном выборе значения данного реквизита.

Пример:

// Процедура выводит список детей сотрудника

// Справочник детей подчинен справочнику сотрудников

Процедура ВыводСпискаДетей(Сотр)

   СпрД = СоздатьОбъект("Справочник.Дети");

      // в качестве параметра функции ИспользоватьВладельца

      // передаем параметр, переданный в процедуру

   СпрД.ИспользоватьВладельца(Сотр);

   Сообщить("Дети сотрудника " + Сотр.Наименование);

   СпрД.ВыбратьЭлементы();

   Пока СпрД.ПолучитьЭлемент() > 0 Цикл

      Сообщить(СпрД.Наименование);

   КонецЦикла;

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

Пример:

// В форме элемента справочника Товары есть реквизит Единица,

// который имеет тип подчиненного справочника «Единицы»

// здесь мы можем задать ему в качестве владельца текущий элемент:

Единица.ИспользоватьВладельца(ТекущийЭлемент());

См. также: ВыбратьЭлементы, ПолучитьЭлемент, СоздатьОбъект

ИспользоватьРодителя

Установить выборку по группе справочника.

Синтаксис:

ИспользоватьРодителя(<Группа>)

Англоязычный синоним:

UseParent

Параметры:

<Группа>

Необязательный параметр. Выражение со значением группы справочника.

Возвращаемое значение:

Значение текущей группы для справочника (на момент до исполнения метода).

Описание:

Метод ИспользоватьРодителя устанавливает группу текущего справочника в качестве параметра выборки.

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

При добавлении нового элемента текущего справочника данная установка также будет являться свойством нового элемента.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// Это процедура формирования отчета - "Список сотрудников"

// ВыбСотр - реквизит диалога типа «справочник.Сотрудники»

Процедура ВыводСпискаСотрудников()

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

   Спр = СоздатьОбъект("Справочник.Сотрудники");

   Спр.ИспользоватьДату(ДатаОтчета);

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

      // если сотрудник в диалоге не выбран,

      // то формируем отчет без условий

      Заг = "По всем сотрудникам";

   ИначеЕсли ВыбСотр.ЭтоГруппа() = 1 Тогда

      // если в диалоге выбрана группа сотрудников, то

      // задаем выборку элементов справочника из одной группы

      Спр.ИспользоватьРодителя(ВыбСотр);

      // Задаем выборку всех подчиненных элементов справочника

      Заг = "По сотрудникам группы " + ВыбСотр.Наименование;

   Иначе

      // если в диалоге выбран сотрудник, то

      // формируем отчет только по нему

      Спр.НайтиЭлемент(ВыбСотр);

      Заг = "По сотруднику " + ВыбСотр.Наименование;

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

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

      Перейти ~MET;

   КонецЕсли;

   ЧислоСтрок = 0;

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

   // Открываем выборку Спр.ВыбратьЭлементы();

   Пока Спр.ПолучитьЭлемент() > 0 Цикл

      ЧислоСтрок = ЧислоСтрок + 1;

      Если Спр.ЭтоГруппа() = 1 Тогда

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

      Иначе

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

      КонецЕсли;

      Состояние("В отчет выведено "+ЧислоСтрок+" строк.");

   КонецЦикла;

~MET:

   //Вызов выходного отчета в окно просмотра и редактирования.

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

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать("Список товаров по каталогу", "");

   ВыбТовар = 0;

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

См. также: ВыбратьЭлементы, ПолучитьЭлемент, СоздатьОбъект

ВключатьПодчиненные

Установить флаг выборки всех подчиненных элементов.

Синтаксис:

ВключатьПодчиненные(<Режим>]

Англоязычный синоним:

IncludeChildren

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: если 1 — надо включать в выборку все подчиненные элементы, если 0 — не надо включать подчиненные элементы.

Возвращаемое значение:

Текущее числовое значение режима выборки подчиненных элементов справочника (на момент до исполнения метода).

Описание:

Метод ВключатьПодчиненные устанавливает флаг выборки всех подчиненных элементов (то есть раскручивания дерева справочника глубже текущего уровня).

Данный метод используется до вызова метода ВыбратьЭлементы, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего справочника в соответствии с установленным режимом выборки <Режим>. По умолчанию в выборку всегда включаются подчиненные элементы, поэтому реально имеет смысл применять данный метод только в том случае, если надо отменить включение подчиненных.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// Это процедура формирования отчета - "Список Товаров"

// ВыбТовар - реквизит диалога типа «справочник.Товар», которым

// задается группа товаров для отображения.

//В процедуру передается параметр Режим, которым задается,

// отображать или нет вложенные подгруппы товаров выбранной группы

Процедура ВыводСпискаТоваров(Режим)

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

   Тов = СоздатьОбъект("Справочник.Товары");

   Тов.ИспользоватьДату(ДатаОтчета);

   Если ВыбТовар.Выбран() = 0 Тогда

      //если товар в диалоге не выбран, то формируем отчет без условий

      Заг = "По всем товарам.";

   ИначеЕсли ВыбТовар.ЭтоГруппа() = 1 Тогда

      // если в диалоге выбрана группа товаров, то

      // Задаем выборку элементов Справочника из одной группы

      Тов.ИспользоватьРодителя(ВыбТовар);

      Заг = "По товарам группы " + ВыбТовар.Наименование;

      // Задаем выборку всех подчиненных элементов Справочника

      Тов.ВключатьПодчиненные(Режим);

   Иначе

      // если в диалоге выбран товар, то

      // формируем отчет только по этому товару

      Тов.НайтиЭлемент(ВыбТовар);

      Заг = "По товару " + ВыбТовар.Наименование;

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

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

      Перейти ~MET;

   КонецЕсли;

   ЧислоСтрок = О;

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

   // Открываем выборку

   Тов.ВыбратьЭлементы();

   Пока Тов.ПолучитьЭлемент() > 0 Цикл

      ЧислоСтрок = ЧислоСтрок + 1;

      Если Тов.ЭтоГруппа() = 1 Тогда

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

      Иначе

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

      КонецЕсли;

      Состояние("В отчет выведено " + ЧислоСтрок + " строк.");

   КонецЦикла;

   //Вызов выходного отчета в окно просмотра и редактирования.

~MET:

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

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать("Список товаров по каталогу", "");

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

См. также: ВыбратьЭлементы, ПолучитьЭлемент, СоздатьОбъект

ПорядокКодов

Установить порядок выборки по возрастанию кода.

Синтаксис:

ПорядокКодов()

Англоязычный синоним:

OrderByCode

Описание:

Метод ПорядокКодов устанавливает режим выборки элементов справочника в порядке возрастания кодов элементов.

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

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

// Задаем выборку в порядке кодов Спр.ПорядокКодов();

// Открываем выборку Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока (Спр.ПолучитьЭлемент() > 0) Цикл

   Состояние(Спр.Наименование);

КонецЦикла;

ПорядокНаименований

Установить порядок выборки по возрастанию наименования.

Синтаксис:

ПорядокНаименований()

Англоязычный синоним:

OrderByDescr

Описание:

Метод ПорядокНаименований устанавливает режим выборки элементов справочника в порядке возрастания наименования элементов.

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

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

// Задаем выборку в порядке наименований

Спр.ПорядокНаименований();

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока (Спр.ПолучитьЭлемент() > 0) Цикл

   Состояние(Спр.Наименование);

КонецЦикла;

ПорядокРеквизита

Установить порядок выборки по возрастанию значения реквизита.

Синтаксис:

ПорядокРеквизита(<ИмяРеквизита>)

Англоязычный синоним:

OrderByAttribute

Параметры:

<ИмяРеквизита>

Строковое выражение с именем реквизита справочника, который задает порядок обхода элементов справочника.

Описание:

Метод ПорядокРеквизита устанавливает режим выборки элементов справочника в порядке возрастания значения указанного реквизита <ИмяРеквизита>.

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

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

Данный метод может использоваться только для объектов, созданных Функцией СоздатьОбъект.

Пример:

Спр = СоздатьОбъект("Справочник.Сотрудники");

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

Спр.ПорядокРеквизита("Оклад");

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока Спр.ПолучитьЭлемент() = 1 Цикл

   Состояние(Спр.Наименование + " - " + Спр.Оклад);

КонецЦикла;

Новый

Добавить новый элемент справочника.

Синтаксис:

Новый()

Англоязычный синоним:

New

Описание:

Метод Новый инициализирует создание нового элемента справочника. Собственно запись нового элемента происходит при вызове метода Записать. После инициализации создания нового элемента справочника, как правило, производится заполнение его реквизитов с последующим вызовом метода Записать.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура ВводСотрудника()

   Спр = СоздатьОбъект("Справочник.Сотрудники");

   // добавляем новый элемент справочника

   Спр.Новый();

   // Определяем реквизиты нового элемента справочника

   Спр.Наименование = ФИО;

   Спр.Код = ТН;

   Спр.Оклад = Оклад;

   Спр.Аванс = Аванс;

   // ...

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

   Спр.Записать();

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

НоваяГруппа

Добавить новую группу справочника.

Синтаксис:

НоваяГруппа()

Англоязычный синоним:

NewGroup

Описание:

Метод НоваяГруппа добавляет пустую запись новой группы в справочник. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура ВводГруппыСотрудников()

   Спр = СоздатьОбъект("Справочник.Сотрудники");

   // добавляем новую группу справочника

   Спр.НоваяГруппа();

   // Определяем реквизиты новой группы справочника

   Спр.Наименование = "Расчетчик3";

   Спр.Код = 3;

   // Записываем на диск

   Спр.Записать();

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

ПрефиксКода

Установить для справочника текущий префикс кода.

Синтаксис:

ПрефиксКода(<Префикс>)

Англоязычный синоним:

CodePrefix

Параметры:

<Префикс>

Необязательный параметр. Строковое выражение — новый префикс кодов элементов справочника.

Возвращаемое значение:

Строковое значение текущего префикса кодов элементов справочника (на момент до исполнения метода).

Описание:

Метод ПрефиксКода устанавливает новый текущий префикс для автоматического создания кодов элементов справочника.

Пример:

ПрефиксКода("01-");

См. также: ПрефиксАвтоНумерации, УстановитьНовыйКод

УстановитьНовыйКод

Установить новый код с префиксом кода для справочника.

Синтаксис:

УстановитьНовыйКод(<Префикс>)

Англоязычный синоним:

SetNewCode

Параметры:

<Префикс>

Строковое выражение — префикс кода элемента справочника.

Описание:

Метод УстановитьНовыйКод устанавливает новый код элемента справочника с префиксом <Префикс>.

Пример:

УстановитьНовыйКод("01-");

См. также: ПрефиксАвтоНумерации, ПрефиксКода

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяРеквизита> | Строковое выражение — название реквизита справочника неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> | Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту справочника. Например: "Строка", "Число", "Справочник.Товары", "Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

Номенклатура.НазначитьТип("ТМЦ", "Справочник.Товары");

Записать

Записать (обновить) элемент справочника.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать выполняет запись (обновление) элемента справочника.

Замечание. Если этот метод применяется в Модуле формы элемента справочника непосредственно к элементу справочника локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой "#Записать".

Пример:

Процедура ВводСотрудника()

   Спр = СоздатьОбъект("Справочник.Сотрудники");

   // добавляем новый элемент справочника

   Спр.Новый();

   // Определяем реквизиты нового элемента справочника

   Спр.Наименование = ФИО;

   Спр.Код = ТН;

   Спр.Оклад = Оклад;

   Спр.Аванс = Аванс;

   // ...

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

   Спр.Записать();

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

Удалить

Удалить элемент справочника.

Синтаксис:

Удалить(<Режим>)

Англоязычный синоним:

Delete

Параметры:

<Режим>

Числовое выражение: 1 — непосредственное удаление; 0 — пометка на удаление. Необязательный параметр. Значение по умолчанию — 1.

Описание:

Метод Удалить удаляет (или делает пометку на удаление) текущий элемент или группу справочника.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

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

Пример:

Процедура УдалениеСотрудника(Сотр)

   Спр = СоздатьОбъект("Справочник.Сотрудники");

   Если Сотр.Выбран() > 0 Тогда

      // позиционируем справочник на заданном элементе

      Спр.НайтиЭлемент(Сотр);

      Если Спр.Выбран() > 0 Тогда

         Если Вопрос("Удалять??? ", 1) = 1 Тогда

            // удаляем элемент справочника

            Спр.Удалить(1);

         КонецЕсли;

      Иначе

         Предупреждение("Некого удалять!");

      КонецЕсли;

   КонецЕсли;

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

См. также: ПометкаУдаления, СнятьПометкуУдаления

Блокировка

Установить/прочитать режим блокировки.

Синтаксис:

Блокировка(<ВклВыкл>)

Англоязычный синоним:

Locking

Параметры:

<ВклВыкл>

Необязательный параметр. Число: 1 — включить; 0 — выключить.

Возвращаемое значение:

Если при вызове метода параметр <ВклВыкл> не задан, то возвращается режим блокировки до выполнения метода. Число: 1 — заблокирован; 0 — свободен.

Если при вызове метода параметр <ВклВыкл> задан, то возвращается результат выполнения метода блокировки. Число: 1 — успешно; 0 — не получилось.

Описание:

Метод Блокировка позволяет установить/прочитать режим блокировки. Пример:

Блокировка(0);

ПометкаУдаления

Прочитать флаг пометки удаления элемента справочника.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

Числовое значение: 1 — если на элементе справочника стоит пометка удаления; 0 — если нет пометки удаления.

Описание:

Метод ПометкаУдаления позволяет прочитать значение пометки удаления текущего элемента справочника.

Пример:

Процедура УсловноеУдалениеСотрудника(Сотр)

   Спр = СоздатьОбъект("Справочник.Сотрудники");

   Если Сотр.Выбран() > 0 Тогда

      // позиционируем справочник на заданном элементе

      Спр.НайтиЭлемент(Сотр);

      Если Спр.Выбран() > 0 Тогда

         Если Вопрос("Удалять??? ", 1) = 1 Тогда

            Если Спр.ПометкаУдаления() = 1 Тогда

               Предупреждение("Уже помечен на удаление!");

            Иначе

               // удаляем элемент справочника

               Спр.Удалить(0);

            КонецЕсли;

         КонецЕсли;

      Иначе

         Предупреждение("Некого удалять!");

      КонецЕсли;

   КонецЕсли;

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

См. также: Удалить, СнятьПометкуУдаления

СнятьПометкуУдаления

Снять пометку удаления элемента справочника.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущего элемента справочника.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура ВосстановлениеУдаленныхСотр(Сотр)

   Спр = СоздатьОбъект("Справочник.Сотрудники");

   Если Сотр.Выбран() > 0 Тогда

      // позиционируем справочник на заданном элементе

      Спр.НайтиЭлемент(Сотр);

      Если Спр.Выбран() > 0 Тогда

         Если Спр.ПометкаУдаления() = 1 Тогда

            // восстанавливаем элемент справочника

            Спр.СнятьПометкуУдаления();

         КонецЕсли;

      КонецЕсли;

   КонецЕсли;

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

См. также: Удалить, ПометкаУдаления

Методы контекста Модуля формы элемента справочника

Описанные в данном разделе методы доступны только в контексте Модуля формы элемента справочника (см. «Виды программных модулей»).

Модифицированность

Возвратить признак изменения реквизитов в текущей форме элемента справочника.

Синтаксис:

Модифицированность()

Англоязычный синоним:

Modify

Возвращаемое значение:

Числовое значение: 1 — если реквизиты текущей формы элемента справочника были изменены; 0 — если нет.

Описание:

Метод Модифицированность возвращает признак изменения (в режиме исполнения он отображается символом (*) в заголовке окна формы).

Замечание. Данный метод доступен только в контексте Модуля формы элемента справочника (см. «Виды программных модулей»). Действие данного метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

ИспользоватьДату

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

Синтаксис:

ИспользоватьДату(<Дата>, <Обновить>)

Англоязычный синоним:

UseDate

Параметры:

<Дата> | Выражение со значением типа «дата». Дата, на которую будут записываться периодические реквизиты элемента справочника, форма которого открыта.
<Обновить> | Необязательный параметр. Число: 1 — обновить периодические реквизиты формы на заданную дату; 0 — не обновлять периодические реквизиты формы. Значение по умолчанию — 0;

Возвращаемое значение:

Значение используемой даты (на момент до исполнения метода).

Описание:

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

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

Замечание. Данный метод доступен только в контексте Модуля формы элемента справочника (см. «Виды программных модулей»). Действие данного метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

// Здесь мы работаем в локальном контексте модуля Формы

// элемента справочника.

// в справочнике есть несколько реквизитов,

// которые являются периодическими реквизитами.

// В форме существует элемент диалога ВыбДата типа «Дата»

Если Число(ВыбДата) <> 0 Тогда

   // задано некоторое значение ВыбДата

   ИспользоватьДату(ВыбДата);

КонецЕсли;

СохранениеПериодическихРеквизитов

Установить режим отображения диалога сохранения периодических реквизитов при записи элемента справочника.

Синтаксис:

СохранениеПериодическихРеквизитов(<ВариантВызова>, <Список>)

Англоязычный синоним:

Рег1odicAttributesSaving

Параметры:

<ВариантВызова>

Число, определяет вариант вызова метода: 0 — отключить автоматический режим определения списка измененных реквизитов и показ диалога (параметр <Список> не используется);

1 — включить автоматический режим определения списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов);

2 — включить автоматический режим определения списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов);

3 — выполнить определение списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов);

4 — выполнить определение списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов);

5 — выдать/установить список сохраняемых периодических реквизитов. Метод возвращает установленный список периодических реквизитов, которые будут записываться на момент до вызова метода. Если параметр <Список> указан, то устанавливается список периодических реквизитов, которые должны быть записаны.

<Список>

Необязательный параметр. Строковое выражение, в котором через запятую перечислены имена периодических реквизитов справочника, которые должны выводится в диалоге (если диалог показывается), или по которым будет записан элемент истории (если диалог не показывается). По умолчанию предполагается, что в списке все периодические реквизиты справочника. Если указан символ "*", то считается, что в список включены все периодические реквизиты справочника.

Описание:

Метод СохранениеПериодическихРеквизитов управляет режимом ав-томатического определения списка измененных периодических реквизитов, показом диалога для выбора записываемых периодических реквизитов, а также предоставляет доступ непосредственно к списку записываемых периодических реквизитов.

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

Замечание. Данный метод доступен только в контексте Модуля формы элемента справочника (см. «Виды программных модулей»). Действие данного метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

// Здесь мы работаем в локальном контексте модуля Формы

// элемента справочника.

// в справочнике есть несколько реквизитов,

// которые являются периодическими реквизитами.

СохранениеПериодическихРеквизитов(1, "ЦенаРозн, ЦенаОптов");

ПросмотрИстории

Установить список периодических реквизитов, просмотр истории которых допускается.

Синтаксис:

ПросмотрИстории(<СписокРеквизитов>)

Англоязычный синоним:

ViewHistory

Параметры:

<СписокРеквизитов>

Строка со списком идентификаторов (через запятую) тех реквизитов, просмотр истории которых допускается.

Возвращаемое значение:

Текущий (на момент до вызова метода) список реквизитов, просмотр истории которых допускается просмор истории.

Описание:

Метод ПросмотрИстории позволяет установить список реквизитов для которых допускается просмор истории .

Замечание. Данный метод доступен только в контексте Модуля формы элемента справочника (см. «Виды программных модулей»). Действие данного метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

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

   ПросмотрИстории;"Оклад, Тариф, Подразделение");

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

Предопределенные процедуры Модуля формы справочника

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях форм справочника (см. «Виды программных модулей»). К ним относятся программные модули: Модуль формы элемента справочника, Модуль формы группы справочника.

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Системные предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ВводНового

Предопределенная процедура при вводе нового элемента справочника.

Синтаксис:

ВводНового(<ПризнКопирования>, <ОбъектКопирования>)

Англоязычный синоним:

InputNew

Параметры:

<ПризнКопирования> | Признак того, что объект введен копированием. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак может быть использован для анализа необходимости инициализации реквизитов нового объекта.
<ОбъектКопирования> | Объект, который был скопирован.

Описание:

Вызов процедуры ВводНового производится в системе 1С:Предприятие неявно в момент выбора пункта меню "Действия" — "Новый" при работе со справочниками. Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) реквизитов нового элемента справочника. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя вводить новые элементы), ввода нового элемента и открытие его формы не будет выполнено.

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

Пример:

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

   Оклад = 1000000;

   Пдр = СоздатьОбъект("Справочник.Подразделения");

   Пдр.НайтиПоКоду(1);

   Подразделение = Пдр.ТекукщийЭлемент();

   Город = Константа.НашГород;

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

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи элемента справочника.

Синтаксис:

ПриЗаписи(<СписокПериодРекв>)

Англоязычный синоним:

OnWrite

Параметры:

<СписокПериодРекв>

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

Описание:

Вызов предопределенной процедуры ПриЗаписи производится системой 1С:Предприятие при интерактивной записи элемента справочника. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять некоторые элементы справочника), то запись элемента справочника не будет выполнена.

Данная предопределенная процедура может располагаться в следующих программных модулях: Модуль формы элемента справочника, Модуль формы группы справочника, Модуль формы списка справочника (см. Виды программных модулей).

Пример:

Процедура ПриЗаписи (СписокРекв)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если ТекущийЭлемент() = Константа.НашаФирма Тогда

         Предупреждение("У вас нет права менять реквизиты!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

Методы контекста Модуля формы списка справочника

Описанные в данном разделе методы доступны только в контексте Модуля формы списка справочника (см. «Виды программных модулей»).

ИспользоватьДату

Установить дату выборки периодических реквизитов формы списка справочника.

Синтаксис:

ИспользоватьДату(<Дата>)

Англоязычный синоним:

UseDate

Параметры:

<Дата>

Выражение со значением типа «дата»

Возвращаемое значение:

Значение даты выборки периодических реквизитов формы списка справочника.

Описание:

Метод ИспользоватьДату устанавливает для формы списка справочника дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов справочника.

Данный метод доступен только в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится только к текущему справочнику, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

ИспользоватьДату(ДатаДок);

ИспользоватьВладельца

Установить владельца для формы списка подчиненного справочника.

Синтаксис:

ИспользоватьВладельца(<Владелец>, <ФлагИзменения>)

Англоязычный синоним:

UseOwner

Параметры:

<Владелец> | Необязательный параметр. Выражение со значением элемента справочника — нового владельца. Если параметр не задан, то значение владельца не меняется.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения владельца, 1 — пользователь может изменить владельца интерактивно, 0 — пользователь не может интерактивно изменить владельца. Если параметр не задан, то значение флага не меняется.

Возвращаемое значение:

Значение владельца для формы списка подчиненного справочника (до применения метода).

Описание:

Метод ИспользоватьВладельца устанавливает элемент связанного справочника (которому подчинен текущий справочник) в качестве владельца для формы списка подчиненного справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему подчиненному справочнику, который доступен в локальном контексте Модуля формы списка справочника.

При добавлении нового элемента текущего справочника данный параметр также будет являться свойством нового элемента.

Пример:

ИспользоватьВладельца(Сотр, 0);

ИспользоватьРодителя

Установить родителя для формы списка справочника.

Синтаксис:

ИспользоватьРодителя(<Родитель>, <ФлагИзменения>)

Англоязычный синоним:

UseParent

Параметры:

<Родитель> | Необязательный параметр. Выражение со значением группы справочника- нового родителя. Если параметр не задан, то значение родителя не меняется.
<ФлагИзменения > | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения родителя. 1 — пользователь может изменить родителя интерактивно, 0 — пользователь не может интерактивно изменить родителя. Если параметр не задан, то значение флага не меняется.

Возвращаемое значение:

Значение родителя для формы списка справочника (до применения метода).

Описание:

Метод ИспользоватьРодителя устанавливает группу справочника в качестве родителя для формы списка справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему справочнику, который доступен в локальном контексте Модуля формы списка справочника.

При добавлении нового элемента текущего справочника данный параметр также будет являться свойством нового элемента.

Пример:

ИспользоватьРодителя(ВыбГруппаСотр, 1);

ИерархическийСписок

Установить режим иерархического списка справочника.

Синтаксис:

ИерархическийСписок(<ФлагИерархСписка>, <ФлагИзменения>)

Англоязычный синоним:

HierarchicalList

Параметры:

<ФлагИерархСписка> | Флаг иерархического списка. 1 — иерархический список; 0 — неиерархический список.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения флага иерархического списка. 1 — пользователь может изменить иерархичность интерактивно, 0 — пользователь не может интерактивно изменить иерархичность.

Возвращаемое значение:

Значение флага иерархического списка для формы списка справочника (до применения метода).

Описание:

Метод ИерархическийСписок устанавливает режим иерархического списка справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

ИерархическийСписок(1, 1);

ВыборГруппы

Установить режим выборки групп.

Синтаксис:

ВыборГруппы(<Режим>)

Англоязычный синоним:

SelectGroup

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — выбирать группы; 0 — не выбирать группы.

Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполнения метода).

Описание:

Метод ВыборГруппы устанавливает режим выборки групп для формы списка справочника, которая открыта в режиме выбора или подбора элемента.

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

Пример:

// Задаем выборку без групп

ВыборГруппы(0);

РедактироватьВДиалоге

Установить способ редактирования элементов справочника.

Синтаксис:

РедактироватьВДиалоге(<Способ>, <Разрешение>)

Англоязычный синоним:

EditInForm

Параметры:

<Способ> | Необязательный параметр. Способ редактирования элемента справочника: 1 — в диалоге; 0 — в строке.
<Разрешение> | Необязательный параметр. Флаг разрешения пользователю менять способ редактирования: 1 — разрешить; 0 — запретить.

Возвращаемое значение:

Значение установленного на данный момент способа редактирования элементов справочника (до применения метода).

Описание:

Метод РедактироватьВДиалоге устанавливает способ редактирования элементов справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

ТекСп = РедактироватьВДиалоге();

// какой сейчас способ?

РедактироватьВДиалоге(1);

// установить редактирование в диалоге

РедактироватьВДиалоге(1, 0);

// установить редактирование в диалоге

// и запретить его менять

СохранениеПериодическихРеквизитов

Установить режим отображения диалога сохранения периодических реквизитов при записи элемента справочника.

Синтаксис:

СохранениеПериодическихРеквизитов(<ВариантВызова>, <Список>)

Англоязычный синоним:

Рег1odicAttributesSaving

Параметры:

<ВариантВызова>

Число, определяет вариант вызова метода:

0 — отключить автоматический режим определения списка измененных реквизитов и показ диалога (параметр <Список> не используется);

1 — включить автоматический режим определения списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов);

2 — включить автоматический режим определения списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов);

3 — выполнить определение списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов);

4 — выполнить определение списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов);

5 — выдать/установить список сохраняемых периодических реквизитов. Метод возвращает установленный список периодических реквизитов, которые будут записываться на момент до вызова метода. Если параметр <Список> указан, то устанавливается список периодических реквизитов, которые должны быть записаны.

<Список>

Необязательный параметр. Строковое выражение, в котором через запятую перечислены имена периодических реквизитов справочника, которые должны выводится в диалоге (если диалог показывается), или по которым будет записан элемент истории (если диалог не показывается). По умолчанию предполагается, что в списке все периодические реквизиты справочника. Если указан символ "*", то считается, что в список включены все периодические реквизиты справочника.

Описание:

Метод СохранениеПериодическихРеквизитов управляет режимом автоматического определения списка измененных периодических реквизитов, показом диалога для выбора записываемых периодических реквизитов, а также предоставляет доступ непосредственно к списку записываемых периодических реквизитов.

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

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

СохранениеПериодическихРеквизитов(1, "ЦенаРозн, ЦенаОптов");

Сортировка

Установить способ сортировки элементов справочника.

Синтаксис:

Сортировка(<Способ>, <Разрешение>)

Англоязычный синоним:

SortOrder

Параметры:

<Способ> | Строка с именем устанавливаемой сортировки. Это может быть (в зависимости от языка по умолчанию) "Код\Code", "Наименование\Description" или имя реквизита по которому устанавливается сортировка.
<Разрешение> | Необязательный параметр. Флаг разрешения пользователю менять способ сортировки: 1 — разрешить; 0 — запретить.

Возвращаемое значение:

Возвращает текущее значение установленного на данный момент способа сортировки элементов справочника (до применения метода).

Описание:

Метод Сортировка позволяет установить способ сортировки элементов справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»).

Пример:

// установить сортировку по наименовнаию и запретить ее менять

Сортировка("Наименование", 0);

// получить текущее значение сортировки и установить сортировку по

// реквизиту "Оклад"

СтСорт = Сортировка("Оклад");

УстановитьОтбор

Установить отбор списка справочника.

Синтаксис:

УстановитьОтбор(<ИмяОтбора>, <3начение0тбора>)

Англоязычный синоним:

SetSelection

Параметры:

<ИмяОтбора> | Строковое выражение — строка с именем реквизита справочника (по которому возможен отбор — флажок свойств «Отбор по реквизиту»), по которому установлен отбор. Если это значение пустое, то отбор отключается.
<ЗначениеОтбора> | Необязательный параметр. Значение отбора.

Описание:

Метод УстановитьОтбор принудительно устанавливает отбор для списка справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

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

   Перем Тип;

   Перем Знач;

   БылОтбор = ПолучитьОтбор(Тип, Знач);

   Если .... Тогда

      // что-нибудь проверяем

      УстановаитьОтбор("Имя", "Коля");

   ИначеЕсли БылОтбор = 1 Тогда

      // вернем назад

      УстановитьОтбор(Тип, Знач);

   КонецЕсли;

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

ПолучитьОтбор

Возвратить текущее значение отбора списка справочника.

Синтаксис:

ПолучитьОтбор(<ИмяОтбора>, <3начение0т6ора>)

Англоязычный синоним:

GetSelection

Параметры:

<ИмяОтбора> | Имя переменной, куда вернется строковое значение имени отбора.
<ЗначениеОтбора> | Имя переменной, куда вернется значение отбора.

Возвращаемое значение:

Числовое значение: 1 — есть отбор; 0 — если нет отбора.

Описание:

Метод ПолучитьОтбор возвращает текущее значение отбора списка справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

См. пример для предыдущей функции.

ВидыОтбора

Установить доступные виды отборов списка справочника для вызова их в интерактивном режиме.

Синтаксис:

ВидыОтбора(<СписокИменОтборов>)

Англоязычный синоним:

KindsOfSelection

Параметры:

<СписокИменОтборов>

Строка со списком (через запятую) имен тех реквизитов, отбор по которым допускается, или символ "*" — для всех видов отборов.

Возвращаемое значение:

Строковое значение, содержащее текущий список имен отборов, разделенных запятыми (на момент до исполнения метода).

Описание:

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

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

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

   ВидыОтбора("Имя, Оклад");

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

ЗакладкиОтбора

Установить в форме списка справочника закладки для интерактивного осуществления отбора.

Синтаксис:

ЗакладкиОтбора(<ИмяОтбора>, <3начение0тбора>)

Англоязычный синоним:

TabCtrlSelection

Параметры:

<ИмяОтбора> | Строковое выражение, содержащее имя отбора.
<ЗначениеОтбора> | Значение отбора, который будет установлен первоначально.

Описание:

Метод ЗакладкиОтбора устанавливает в форме списка справочника закладки для интерактивного осуществления отбора.

Данный метод доступен только в контексте Модуля формы списка справочника (см. «Виды программных модулей»).

Пример:

ЗакладкиОтбора("Имя", "Коля");

ИспользоватьСписокЭлементов

Реализует фильтрацию элементов справочника используя нединамический фильтр.

Синтаксис:

ИспользоватьСписокЭлементов (<СписокЗначений>)

Англоязычный синоним:

UseItemList

Параметры:

<СписокЗначений>

Необязательный параметр. Значение типа «СписокЗначений». Должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.

Описание:

Метод ИспользоватьСписокЭлементов реализует фильтрацию элементов справочника. Устанавливает нединамический фильтр.

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

После вызова метода ИспользоватьСписокЭлементов форма списка справочника не позволяет вводить новый элемент, копировать и т. п.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

Процедура УстановитьФильтр(ВыбПризнак)

   Список.СоздатьОбъект("СписокЗначений");

   Буфер = СоздатьОбъект("Справочник.Главн");

   // отбираем только те элементы, которые могут отображаться в текущем списке

   Буфер.ИспользоватьРодителя(ИспользоватьРодителя());

   Буфер.ВключатьПодчиненные(0);

   Буфер.ВыбратьЭлементы();

   Пока Буфер.ПолучитьЭлемент() = 1 Цикл

      // отбираем только те элементы, которые удовлетворяют заданному признаку

      Если (Буфер.Признак = ВыбПризнак) Тогда

         Список.ДобавитьЗначение(Буфер.ТекущийЭлемент());

      КонецЕсли;

   КонецЦикла;

   ИспользоватьСписокЭлементов(Список);

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

ПросмотрИстории

Установить список периодических реквизитов, просмотр истории которых допускается.

Синтаксис:

ПросмотрИстории(<СписокРеквизитов>)

Англоязычный синоним:

ViewHistory

Параметры:

<СписокРеквизитов>

Строка со списком идентификаторов (через запятую) тех реквизитов, просмотр истории которых допускается.

Возвращаемое значение:

Текущий (на момент до вызова метода) список реквизитов, просмотр истории которых допускается просмор истории.

Описание:

Метод ПросмотрИстории позволяет установить список реквизитов для которых допускается просмор истории .

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

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

   ПросмотрИстории("Оклад, Тариф, Подразделение");

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

Предопределенные процедуры Модуля формы списка справочника

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы списка справочника (см. «Виды программных модулей»).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ПриВводеСтроки

Предопределенная процедура при вводе новой строки списка справочника.

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

Вызов предопределенной процедуры ПриВводеСтроки производится в системе 1С:Предприятие при интерактивном вводе новой строки (до начала ввода) в форме списка справочника. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя вводить новые строки списка справочника), то новая строка списка справочника не будет инициирована.

Данная предопределенная процедура может располагаться в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриВводеСтроки()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права добавлять строки!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой строки списка справочника.

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

Вызов предопределенной процедуры ПриРедактированииНовойСтроки производится в системе 1С:Пред приятие в момент начала интерактивного редактирования новой строки списка справочника (после того, как новая строка уже заведена). Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) реквизитов нового элемента справочника. В данной предопределенной процедуре установка статуса возврата не

имеет смысла, т. к. отказаться от ввода новой строки в этот момент уже невозможно.

Данная предопределенная процедура может располагаться в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированииНовойСтроки()

   Оклад = 100000;

   Пдр = СоздатьОбъект("Справочник.Подразделения");

   Пдр.НайтиПоКоду(1);

   Подразделение = Пдр.ТекукщийЭлемент();

   Город = Константа.НашГород;

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

ПриНачалеРедактированияСтроки

Предопределенная процедура при начале редактирования существующей строки списка справочника.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

Вызов предопределенной процедуры ПриНачалеРедактированияСтроки производится в системе 1С:Пред приятие в момент начала интерактивного редактирования существующей строки списка справочника (кроме новой). Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять значения реквизитов справочника), запись не будет изменена.

Данная предопределенная процедура может располагаться в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права менять реквизиты!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи строки списка справочника.

Синтаксис:

ПриЗаписи(<СписокПериодРекв>)

Англоязычный синоним:

OnWrite

Параметры:

<СписокПериодРекв>

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

Описание:

Вызов предопределенной процедуры ПриЗаписи производится системой 1С:Предприятие при интерактивной записи строки списка справочника. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять некоторые элементы справочника), то запись строки списка справочника не будет выполнена.

Формальный параметр <СписокПериодРекв> используется в теле процедуры для обработки события интерактивной записи строки списка справочника.

Данная предопределенная процедура может располагаться в следующих программных модулях: Модуль формы элемента справочника, Модуль формы группы справочника, Модуль формы списка справочника, Модуль формы списка справочника (см. Виды программных модулей).

Пример:

Процедура ПриЗаписи (СписокРекв)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если ТекущийЭлемент() = Константа.НашаФирма Тогда

         Предупреждение("У вас нет права менять реквизиты!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриПереносеЭлементаВДругуюГруппу

Предопределенная процедура переноса элемента справочника в другую группу.

Синтаксис:

ПриПереносеЭлементаВДругуюГруппу(<Элемент>, <Группа>)

Англоязычный синоним:

OnMoveIntoOtherGroup

Параметры:

<Элемент> | Значение элемента справочника, который переносится.
<Группа> | Значение группы справочника, в которую переносится элемент справочника.

Описание:

Вызов предопределенной процедуры ПриПереносеЭлементаВДругуюГруппу производится в системе 1С:Предприятие при интерактивном переносе элемента справочника в другую группу. Если в данной предопределенной процедуре установить статус возврата — 0, то перенос не будет произведен.

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриПереносеЭлементаВДругуюГруппу()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права менять группуi", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриВыбореРодителя

Предопределенная процедура выбора родительской группы справочника.

Синтаксис:

ПриВыбореРодителя(<Элемент>)

Англоязычный синоним:

OnSetParent

Параметры:

<Элемент>

Значение элемента справочника, который интерактивно устанавливается в качестве родителя.

Описание:

Вызов предопределенной процедуры ПриВыбореРодителя производится в системе 1С:Предприятие при интерактивной смене родительской группы справочника (выбор следующего или предыдущего уровня). Если в данной предопределенной процедуре установить статус возврата — 0, то выбор родительской группы не будет произведен.

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриВыбореРодителя(Родитель)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если Родитель = ЗапрещеннаяГруппа Тогда

         Предупреждение("Вам запрещено просматривать эту группу!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриВыбореВладельца

Предопределенная процедура выбора владельца подчиненного справочника.

Синтаксис:

ПриВыбореВладельца(<Элемент>)

Англоязычный синоним:

OnSetOwner

Параметры:

<Элемент>

Значение элемента справочника, который интерактивно устанавливается в качестве владельца подчиненного справочника.

Описание:

Вызов предопределенной процедуры ПриВыбореВладельца производится в системе ЮПредприятие при интерактивном выборе владельца подчиненного справочника (при интерактивной смене владельца, т. е. смене позиции в справочнике-владельце, которая приводит к смене отображаемых в подчиненном справочнике элементов). Если в данной предопределенной процедуре установить статус возврата — 0, то выбор владельца подчиненного справочника не будет произведен.

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриВыбореВладельца(Владелец)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если Владелец = ЗапрещенныйВладелец Тогда

         Предупреждение("Нельзя просматривать эти элементы!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриСменеИерархии

Предопределенная процедура смены режима отображения иерархии справочника.

Синтаксис:

ПриСменеИерархии(<Способ>)

Англоязычный синоним:

OnHierarchyChange

Параметры:

<Способ>

Значение устанавливаемого (тот, который пользователь хочет установить) способа просмотра справочника: 1 — иерархических список; 0 — все элементы сразу.

Описание:

Вызов предопределенной процедуры ПриСменеИерархии производится в системе 1С:Предприятие при интерактивной смене режима отображения иерархии справочника (пункт меню «Иерархический список»). Если в данной предопределенной процедуре установить статус возврата — 0, то смена режима отображения иерархии справочника не будет произведена.

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриСменеИерархии(ВыбСпособ)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("Нельзя менять режим просмотра 1", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУстановкеОтбора

Предопределенная процедура при установке отбора справочника.

Синтаксис:

ПриУстановкеОтбора(<ТипОтбора>, <3начение0тбора>)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

<ТипОтбора> | Строковое значение — тип устанавливаемого отбора (имя реквизита справочника по которому устанавливается отбор).
<3начение0тбора> | Устанавливаемое значение отбора.

Описание:

Вызов предопределенной процедуры ПриУстановкеОтбора производится в системе 1С:Предприятие при интерактивной установке отбора любым способом (отбор, быстрый отбор, отбор по значению, история отбора) и при отключении отбора. Если в данной предопределенной процедуре установить статус возврата — 0, то установка отбора справочника не будет произведена.

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриУстановкеОтбора(ВыбСпособ)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("Нельзя устанавливать отбор;", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата


Part11

Глава 11
Работа с Перечислениями

Перечисление — средство работы с элементами данных, список возможных значений которых жестко задан в конфигурации. Например, для перечисления "ТипСотрудника" можно задать возможные значения: "Штатный", "Совместитель".

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

Контекст работы с перечислениями

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

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

Перечисление.<Имя_Переч>.<Значение_Переч>,

где <Имя_Переч> — имя вида перечисления, <Значение_Переч> — конкретное значение данного вида перечисления.

Англоязычный синоним ключевого слова Перечисление — Enum.

Пример:

Если Док.Сотрудник.Тип = Перечисление.ТипСотрудника.Штатный Тогда

   Льготы = 1;

Иначе

   Льготы = 0;

КонецЕсли;

Объект Перечисление является частью глобального контекста программы 1С:Предприятие. Этот объект в качестве своих атрибутов имеет значения объектов конкретных видов перечислений, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту перечисления конкретного вида по его имени.

Перечисление конкретного вида в качестве своих атрибутов имеет конкрет-йьте значения перечислений. Кроме того, этот объект имеет методы КоличествоЗначений, ЗначениеПоНомеру и ЗначениеПоИдентификатору которые позволяют получить доступ к конкретному значению перечисления.

Конкретное значение перечисления имеет методы Вид, ПредставлениеВида, Выбран, ПорядковыйНомер, Идентификатор.

Методы перечислений

ПолучитьАтрибут

Получить доступ к объекту перечисления конкретного вида по его имени.

Синтаксис:

ПолучитьАтрибут(<ИмяПеречисления>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяПеречисления>

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

Возвращаемое значение:

Объект перечисления конкретного вида.

Описание:

Метод ПолучитьАтрибут позволяет получить доступ к объекту перечисления конкретного вида по его имени, как оно задано в конфигураторе.

Этот метод применяется только к объекту глобального контекста Перечисление.

Пример:

Булево = Перечисление.ПолучитьАтрибут("Булево");

КоличествоЗначений

Определить общее количество значений в данном виде перечисления.

Синтаксис:

КоличествоЗначений()

Англоязычный синоним:

Count

Возвращаемое значение:

Число общего количества значений в данном виде перечисления.

Описание:

Метод КоличествоЗначений применяется к конкретному виду перечисления и позволяет определить общее количество значений в данном виде перечисления.

Пример:

// отобразим все значения перечисления

Всего = Перечисление.ВидыТоваров.КоличествоЗначений();

Пока Ном = 1 По Всего Цикл

   Сообщить(Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном));

КонецЦикла;

ЗначениеПоНомеру

Определить значение перечисления, соответствующее номеру позиции в конфигураторе.

Синтаксис:

ЗначениеПоНомеру(<Номер>)

Англоязычный синоним:

ValueByIndex

Параметры:

<Номер>

Числовое выражение. Номер позиции значения перечисления, заданный в конфигураторе.

Возвращаемое значение:

Значение перечисления, соответствующее номеру заданной позиции.

Описание:

Метод ЗначениеПоНомеру применяется к конкретному виду перечисления и позволяет определить значение перечисления, соответствующее номеру позиции в конфигураторе.

Пример:

См. предыдущий пример.

ЗначениеПоИдентификатору

Определить значение перечисления, соответствующее идентификатору в конфигураторе.

Синтаксис:

ЗначениеПоИдентификатору(<Идентификатор>)

Англоязычный синоним:

ValueByIdentifier

Параметры:

<Идeнтификaтop>

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

Возвращаемое значение:

Значение перечисления, соответствующее идентификатору в конфигураторе. Если не найдено — то пустое значение.

Описание:

Метод ЗначениеПоИдентификатору применяется к конкретному виду перечисления и позволяет определить значение перечисления, соответствующее идентификатору в конфигураторе.

Пример:

См. предыдущий пример.

Вид

Определить название вида перечисления.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строковое значение, содержащее название вида перечисления.

Описание:

Метод Вид позволяет определить название вида перечисления, как оно задано в конфигураторе.

Пример:

// отобразим вид перечисления в строке состояния

Состояние(ИзмерениеТовара.Вид());

ПредставлениеВида

Определить пользовательское представление вида перечисления.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида перечисления (синоним перечисления или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское представление вида перечисления, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния

Состояние(ИзмерениеТовара.ПредставлениеВида());

Выбран

Возвратить флаг выбора элемента перечисления.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если элемент перечисления выбран (спозиционирован); 0 — если не выбран.

Описание:

Метод Выбран возвращает число со значением 1 — если элемент перечисления выбран (спозиционирован), 0 — если элемент перечисления не выбран.

Пример:

// В диалоге формирования некоторого отчета

// ВыбЕдИзмер — реквизит диалога типа «Перечисление.Единицы»

Если ВыбЕдИзмер.Выбран() = 0 Тогда

   // Если единица измерений в диалоге не выбрана, то формируем отчет без условий

   Заг1 = "По всем единицам измерения.";

Иначе

   // если в диалоге выбрана единица измерений

   // то формируем отчет только по выбранным единицам

   Заг1 = "Отчет по товарам с единицей измерения " + ВыбЕдИзмер;

КонецЕсли;

ПорядковыйНомер

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

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

Строковое значение, содержащее название вида перечисления.

Описание:

Метод ПорядковыйНомер определяет порядковый номер значения в перечеслении, как он задан в конфигураторе. Значения перечисления нумеруются с 1.

Пример:

// отобразим порядковый номер значения перечисления

Сообщить(Перечисление.Единицы.Штука.ПорядковыйНомер());

Идентификатор

Возвращает строку — идентификатор значения перечисления.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

Строковое значение — идентификатор значения перечисления как он задан в метаданных.

Описание:

Метод Идентификатор возвращает строку — идентификатор значения перечисления как он задан в метаданных.

Пример:

// отобразим все идентификаторы перечисления

Всего = Перечисление.ВидыТоваров.КоличествоЗначений();

Пока Ном = 1 По Всего Цикл

   ВидТов = Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном);

   Сообщить(ВидТов.Идентификатор());

КонецЦикла;


Part12

Глава 12
Работа с Документами

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

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

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

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

Как правило, в шапке содержатся реквизиты, которые являются общими для всего документа. Реквизиты шапки принадлежат всему документу в целом и принимают только одно значение.

Например, в случае расчета заработной платы, документ «Больничный лист» в заголовочной части может содержать процент оплаты, сведения о сотруднике.

Многострочная (табличная) часть документа представляет собой список однотипных строк. Реквизиты табличной части принадлежат строке документа, т. е. каждая строка содержит свои собственные значения этих реквизитов.

Например, в уже упоминавшемся больничном листе табличная часть — это набор данных за прошлые расчетные периоды, предназначенные для расчета средней заработной платы.

Контекст работы с документами

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

Если конкретный документ входит (согласно локального контекста) в набор непосредственно доступных модулю значений агрегатных типов данных (см. «Виды программных модулей»), то доступ к атрибуту, вызов метода для этого документа — просто имя этого атрибута, метода с указанием необходимых параметров.

Пример:

* В форме редактирования документа «Накладная» мы имеем непосредственный доступ к текущему документу (накладной). Значит, чтобы изменить номер накладной, запишем:

НомерДок = "12345678";

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

ФИО = "Иванов И.И.";

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

Пример:

* Допустим, у документа «Счет» есть реквизит «Накладная», который имеет тип «Документ.РасхНакл». Номер накладной можно получить следующим образом:

НомерРасхНакл=Документ.Счет.Накладная.НомерДок;

* Допустим, значение реквизита «Приказ» справочника «ПриказыНаДоплату» имеет тип «Документ.ПриказНаДоплату». Тогда номер приказа можно получить следующим образом:

Спр = СоздатьОбъект("Справочник.ПриказыНаДоплату");

// ...

Номер = Спр.Приказ.НомерДок;

В других случаях, доступ к атрибутам, вызов методов конкретного документа происходит при помощи переменной со ссылкой на объект типа «Документ». Объект создается функцией СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать атрибут или метод объекта, имя этого атрибута, метода (с указанием необходимых параметров) пишется через точку после имени ссылки.

При создании ссылки на объект типа «Документ» при помощи функции СоздатьОбъект в качестве имени документа может выступать ключевое слово Документ или полное имя вида документа.

Полное имя вида документа записывается следующим образом:

Документ.<Имя_Документа>

где <Имя_Документа> — имя вида документа, как он объявлен в конфигураторе.

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

Англоязычный синоним ключевого слова Документ — Document.

Замечание: Следует обратить особое внимание, что переменная типа «Документ», созданная функцией СоздатьОбъект — это ссылка на список документов в отличие от переменных содержащих само значение объекта (например, переменной может быть присвоено значение реквизита справочника, который имеет тип «Документ»). Использование ссылки на список документов, созданной при помощи функции СоздатьОбъект существенно отличается от работы со значением типа «Документ». Только при работе со ссылкой на список документов разрешено изменять позицию (найти-выбрать...) текущего элемента в списке (т. е. осуществлять позиционирование по списку документов), создавать новые, изменять и удалять существующие документы. С другой стороны, ссылка на список документов не содержит собственно значения конкретного документа, которое можно присвоить чему-либо. Однако, его всегда можно получить, используя функцию ТекущийДокумент.

Замечание. Объект, созданный при помощи функции СоздатьОбъект, изначально не определен, т. е. не содержит никакого значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный документ) при помощи процедур НайтиДокумент, НайтиПоНомеру, ПолучитьДокумент и т. п..

Пример:

*

Док = СоздатьОбъект("Документ");

Док1 = СоздатьОбъект("Документ.БольничныйЛист");

Док2 = СоздатьОбъект("Документ.ПриказНаДоплату");

ДокЗ = СоздатьОбъект("Документ.ПриказПоОтпуску");

Док4 = СоздатьОбъект("Документ.ПрихНакладн");

Док5 = СоздатьОбъект("Документ.Списание");

*

// В модуле формы документа

// меняем номер обрабатываемого документа

НомерДок = "12345";

*

// В других модулях имена атрибутов, процедур и функций документов

// записываются через точку после имени переменной

// со значением типа "Документ".

Док = СоздатьОбъект("Документ.ПриказыДоплат");

// создаем новый документ

Док.Новый();

Док.ОбщийРазмер = 12000000;

// меняем номер Документа

Док.НомерДок = "12345";

// меняем дату документа

Док.ДатаДок = '14.04.96';

// создаем новую строку в спецификации документа

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

Док.Сотр = СпрСотрудн.ТекущийЭлемент();

Док.Процент = 15;

// ...

// записываем документ

Док.Записать();

Позиция документа

Все документы в системе 1С:Предприятие располагаются на временной оси. Основными характеристиками расположения документа на временной оси являются дата и время документа. Дата документа доступна через атрибут ДатаДок, а работа со временем документа осуществляется при помощи методов УстановитьВремя, ПолучитьВремя и предопределенной процедуры ПриИзмененииВремениДокумента. Кроме даты и времени в системе 1С:Предприятие существует понятие позиции документа.

Позиции документа — это строковое значение специального формата длиной 32 символа. Позиция документа однозначно характеризует расположение документа на оси времени относительно других документов, т. е. позиция документа заключает в себе и дату и время (с точностью до секунды), плюс некоторые дополнительные данные, определяющие взаимное расположение документов в пределах одной секунды. Позиции документов можно сравнивать (>; <), определяя какой документ раньше, какой позже. Позиции документов можно сортировать по возрастанию или по убыванию. Кроме того, можно получить позицию точки актуальности (ПолучитьПозициюТА) и позицию границы последовательности (ПолучитьПозицию). Позицию документа можно получить при помощи метода Позиция.

Многие методы могут в качестве парамера воспринимать кроме документа или даты позицию документа.

См. также:

СформироватьПозициюДокумента, РазобратьПозициюДОкумента, ПолучитьПозициюТА, ПолучитьПозицию, ВыбратьДокументы, ВыбратьПодчиненныеДокументы, ВыбратьПоЗначению, РассчитатьРегистрыНа, РассчитатьРегистрыПо, УстановитьТАна, УстановитьТАпо, ВыбратьДвижения, ВыбратьДвиженияСОстатками, ВыполнитьЗапрос, Рассчитать, ВыбратьОперации, ВыбратьОперацииСПроводками, ВыбратьПоЗначению

Атрибуты документов

НомерДок

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

Синтаксис:

НомерДок

Англоязычный синоним:

DocNum

Описание:

При помощи атрибута НомерДок можно получать и задавать значение номера выбранного документа.

Пример:

Основание = Вид() + " № " + СокрП(НомерДок) + " от " + ДатаДок;

ДатаДок

Дата документа

Синтаксис:

ДатаДок

Англоязычный синоним:

DocDate

Описание:

Атрибут ДатаДок задает значение даты выбранного документа.

Пример:

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

   // устанавливаем дату документа

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

   Подразделение = Константа.АУП;

   Валюта = Константа.ДефВалютаЗакупки;

   Валюта.ИспользоватьДату(ДатаДок);

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

   Курс = Валюта.Текущ_курс;

   Фирма = Константа.ДефФирма;

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

<Реквизит>

Значение реквизита документа.

Синтаксис:

<Реквизит>

Идентификатор реквизита документа, как он задан в конфигураторе.

Описание:

Атрибут <Реквизит> задает значение реквизита текущего документа. В тексте программного модуля используется идентификатор конкретного реквизита документа, созданного в конфигураторе. Реквизиты многострочной части документа имеют смысл только при выбранной строке многострочной части документа.

Пример:

// предопределенная процедура ввода нового документа

// ТипСотр, Оклад — реквизиты документа

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

   // Установим дату документа

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

   ТипСотр = Перечисление.ТипСотрудника.Штатный;

   Оклад = Сотр.Оклад.Получить(ДатаДок);

   ПризнакНакладной = Перечисление.ПризнРасхНакл.Продажа;

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

НомерСтроки

Синтаксис:

НомерСтроки

Англоязычный синоним:

LineNum

Описание:

Атрибут НомерСтроки задает числовое значение номера строки многострочной части выбранного документа. Данный атрибут имеет смысл только при выбранной строке. Присвоение строке нового номера передвигает строку в многострочной части документа.

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

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

   Пока ПолучитьСтроку() > 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

Операция

Атрибут «Операция» предназначен для обращения к бухгалтерской операции документа.

Синтаксис:

Операция

Англоязычный синоним:

Operation

Описание:

Атрибут «Операция» документа используется только в случае, если установлена компонента «Бухгалтерский учет» и только для тех видов документов, для которых в конфигурации установлен признак «Бухгалтерский учет». Он предназначен для обращения к операции документа. Данный атрибут не используется как самостоятельное значение, а позволяет обращаться к атрибутам и методам операции. Описание атрибутов и методов операции см. в разделе «Работа с операциями и проводками».

Пример:

* В форме документа устанавливается содержание операции.

Процедура ПриЗаписи()

   Операция.Содержание = "Износ за " + Формат(ДатаДок, "Д ММММГГТГ");

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

Методы документов

Вид

Название вида документа.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строковое значение, содержащее название вида документа, как он задан в конфи гураторе.

Описание:

Метод Вид возвращает название вида документа, как он задан в конфигураторе.

Пример:

Если (Док.Вид() = "ДоплатаПроцентом") ИЛИ (Док.Вид() = "ДоплатаСуммой") Тогда

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

Иначе

   Предупреждение("Это не доплата!");

КонецЕсли;

ПредставлениеВида

Определить пользовательское представление вида документа.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида документа (синоним документа или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское представление вида документа, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния

Состояние(ВыбДокум.ПредставлениеВида());

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

Англоязычный синоним:

SetAttrib

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.
<3начение> | Выражение, содержащее устанавливаемое значение реквизита.

Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Док.УстановитьАтрибут("ЦенаРозн", ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита но имени идентификатора.

Синтаксис:

ПолучитьАтрибут(<ИмяРеквизита>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяРеквизита>

Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.

Возвращаемое значение:

Значение реквизита <ИмяРеквизита>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаДок = Док.ПолучитьАтрибут("Цена");

Выбран

Возвратить флаг выбора документа.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если документ выбран, 0 — если документ не выбран.

Описание:

Метод Выбран позволяет проверить сам факт позиционирования объекта типа «документ».

Пример:

Док = СоздатьОбъект("Документ.ПрихНакл");

// позиционируем документ по номеру

Док.НайтиПоНомеру("1", 0);

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

    // если документ найден

    // открываем выборку строк спецификации документа

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

    // цикл выбора строк спецификации документа

    Если Док.КоличествоСтрок() > 0 Тогда

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

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

       КонецЦикла;

    КонецЕсли;

КонецЕсли;

Проведен

Возвратить флаг проводки документа.

Синтаксис:

Проведен()

Англоязычный синоним:

IsTransacted

Возвращаемое значение:

Числовое значение: 1 — если документ проведен, 0 — если документ не проведен.

Описание:

Метод Проведен позволяет проверить сам факт проведения документа.

Пример:

Процедура ПолучитьПроведенные()

   Док = СоздатьОбъект("Документ");

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачала, ДатаКонца);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

      Если Док.Проведен() > 0 Тогда

         // для проведенных документов выведем сообщение

         Сообщить(Строка(Док.Вид())+" № "+Док.НомерДок+" от "+Док.ДатаДок);

      КонецЕсли;

   КонецЦикла;

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

ТекущийДокумент

Определить значение текущего документа.

Синтаксис:

ТекущийДокумент()

Англоязычный синоним:

CurrentDocument

Возвращаемое значение:

Значение текущего документа.

Описание:

Метод ТекущийДокумент возвращает значение позиционированного текущего документа (в целом, как объекта). Данный метод применяется, например, если нужно документ передать как параметр в вызове какого-либо метода или присвоить какому-либо реквизиту.

Пример:

Если Режим = "Подробный" Тогда

   // используем объект типа «документ» неопределенного вида

   Док = СоздатьОбъект("Документ");

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачала, ДатаОкончания);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

      // присвоим переменной ТекДок значение найденного документа

      ТекДок = Док.ТекущийДокумент();

      // ...

   КонецЦикла;

КонецЕсли;

Выбрать

Вызов диалога для выбора документа.

Синтаксис:

Выбрать(<Подсказка>, <ФормаЖурнала>, <КомуПодч>)

Англоязычный синоним:

Choose

Параметры:

<Подсказка>

Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.

<ФормаЖурнала>

Строковое выражение идентификатора той формы журнала документа (как он объявлен в конфигураторе), которая должна использоваться для выбора. Если это значение пустое, то используется форма журнала по умолчанию.. Можно указывать имя объекта в следующем виде:

· "Журнал.ХХХХХ", где ХХХХХ — имя вида соответствующего объекта, как он задан в конфигураторе, например: "Справочник.Товары";

· "Журнал.Подчиненные";

· "ЖурналОпераций";

· "ЖурналОпераций.YYYYY", где YYYYY — имя формы журнала операций, как оно задано в конфигураторе;

<КомуПодч>

Необязательный параметр. Используется при открытии выбора по журналу подчиненных документов, т.е когда второй параметр <ФормаЖурнала> имеет значение "Журнал.Подчиненные". В данном случае в этом параметре передается документ-владелец, по которому следует построить журнал подчиненных документов.

Возвращаемое значение:

Числовое значение: 1 — если документ выбран; 0 — если не выбран.

Описание:

Метод Выбрать вызывает диалоговое окно для выбора документа и затем позиционирует выбранный документ в качестве текущего. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Док = СоздатьОбъект("Документ.НаклПрих");

// вызываем диалог выбора документа

Если Док.Выбрать("Найди документ") > 0 Тогда

   // удаляем выбранный документ

   Док.Удалить();

КонецЕсли;

См. также: ВидыДляВыбора

ВидыДляВыбора

Установка выбираемых видов для объекта типа «документ» неопределенного вида.

Синтаксис:

ВидыДляВыбора(<СписокВидов>)

Англоязычный синоним:

KindsForChoice

Параметры:

<СписокВидов>

Необязательный параметр. Строковое выражение содержащее список видов выбираемых документов, разделенных запятыми.

Возвращаемое значение:

Строковое значение, содержащее текущий список видов выбираемых документов, разделенных запятыми (на момент до исполнения метода).

Описание:

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

Данный метод может использоваться только для объектов типа «документ» неопределенного вида — либо созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «документ» неопределенного вида, то интерактивный выбор будет производиться только среди установленных видов документов.

Пример:

// данная процедура присваивает некоторому реквизиту "НаОсновании"

// значение конкретного документа

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

   // Создадим объект типа «документ» неопределенного вида

   Дкм = СоздатьОбъект("Документ");

   Дкм.ВидыДляВыбора("РасходнаяНакл, Счет");

   // Вызываем диалог выбора документа

   Если Дкм.Выбрать("Выберите документ основания", "") > 0 Тогда

      НаОсновании = Дкм.ТекущийЭлемент();

   КонецЕсли;

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

См. также: Выбрать

Итог

Итоговое значение реквизита документа.

Синтаксис:

Итог(<ИмяРеквизита>)

Англоязычный синоним:

Total

Параметры:

<ИмяРеквизита>

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

Возвращаемое значение:

Числовое значение — сумма по всем строкам табличной части документа для реквизита <ИмяРеквизита>.

Описание:

Метод Итог позволяет определить сумму значений по всем строкам табличной части документа для реквизита <ИмяРеквизита>.

Данный метод может быть использован только для реквизитов табличной части документов, для которых установлено свойство «Итог по колонке» (закладка «Дополнительные» свойств реквизита документа в конфигураторе).

Пример:

Процедура ВычСреднего()

   // вычислим среднюю сумму по наряду

   Сумма = Итог("Сумма");

   Штук = Итог("Штук");

   Если Штук <> 0 Тогда

      Средн = Сумма / Штук;

   Иначе;

      Средн = 0;

   КонецЕсли;

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

КоличествоСтрок

Определить количество строк в документе.

Синтаксис:

КоличествоСтрок()

Англоязычный синоним:

LinesCnt

Возвращаемое значение:

Числовое значение — количество строк в документе.

Описание:

Метод КоличествоСтрок позволяет определить количество строк в многострочной части документа.

Пример:

Сообщить("Документ: " + Вид() + " № " + НомерДок + " от " + ДатаДок +

                    " в документе " + КоличествоСтрок() + " строк");

НайтиДокумент

Найти документ по значению.

Синтаксис:

НайтиДокумент(<Документ>)

Англоязычный синоним:

FindDocument

Параметры:

<Документ>

Выражение, содержащее значение типа «Документ».

Возвращаемое значение:

Число 1 — если действие выполнено (документ найден);

Число 0 — если действие не выполнено.

Описание:

Метод НайтиДокумент выполняет поиск документа по значению, заданному параметром <Документ>. Данный метод используется для позиционирования объекта на конкретный документ.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура УдалДок(Докум)

   Док = СоздатьОбъект("Документ.НаклПрих");

   // позиционируем созданный объект на заданном документе

   Док.НайтиДокумент(Докум);

   Если Док.Выбран() > 0 Тогда

      // если документ найден, то удалим его

      Док.Удалить();

   Иначе

      Предупреждение ("Неверно задан документ!");

   КонецЕсли;

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

НайтиПоНомеру

Найти документ по номеру.

Синтаксис:

НайтиПоНомеру(<Номер>, <Дата>, <ИдентВида>)

Англоязычный синоним:

FindByNum

Параметры:

<Номер> | Строковое выражение, содержащее значение номера искомого документа.
<Дата> | Выражение типа «дата».
<ИдентВида> | Необязательный параметр. Строковое выражение, содержащее идентификатор вида документа или идентификатор Нумератора.

Возвращаемое значение:

Число 1 — если действие выполнено (документ найден);

Число 0 — если действие не выполнено.

Описание:

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

Метод может быть использован для объекта Документ общего вида, тогда для поиска нужно указать в параметре <ИдентВида> идентификатор вида документа или идентификатор Нумератора.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если ВвестиЧисло(Ном, "Введите номер приказа", 5, 0) = 1 Тогда

   Док=СоздатьОбъект("Документ.ПриказыУвольнения");

   // позиционируем документ по заданному номеру

   Док.НайтиПоНомеру(Строка(Ном), Дата(0));

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

      Документ=Док.ТекущийДокумент();

      // ...

   КонецЕсли;

КонецЕсли;

Получить Строку ПоНомеру

Получить строку документа по номеру.

Синтаксис:

ПолучитьСтрокуПоНомеру(<Номер>)

Англоязычный синоним:

GetLineByNum

Параметры:

<Номер>

Выражение, содержащее номер искомой строки.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено.

Описание:

Метод ПолучитьСтрокуПоНомеру устанавливает в качестве текущей строки спецификации документа строку с заданным номером (не порядковым, а тем, который записан в строке, т. к. могут быть пропуски).

Пример:

Процедура УдалЗаданнойСтроки(Док, Стр)

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

      // если переданный параметр содержит значение документа, то

      // найдем в нем строку

      Док.ПолучитьСтрокуПоНомеру(Стр);

      // удалим найденную строку спецификации документа

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

   Иначе

      Предупреждение("Документ не выбран!");

   КонецЕсли;

КонецЕсли;

ВыбратьДокументы

Открыть выборку документов.

Синтаксис:

ВыбратьДокументы(<НачалоВыборки>, <КонецВыборки>)

Англоязычный синоним:

SelectDocuments

Параметры:

<НачалоВыборки> | Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается начало выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.
<КонецВыборки> | Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.

Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один документ;

Число 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьДокументы открывает выборку документов в интервале с <НачалоВыборки> по <КонецВыборки>.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = "Подробный" Тогда

   Док = СоздатьОбъект("Документ");

   // открываем выборку документов

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПодчиненныеДокументы

Открыть выборку подчиненных документов.

Синтаксис:

ВыбратьПодчиненныеДокументы(<НачалоВыборки>, <КонецВыборки>, <Докум>)

Англоязычный синоним:

SelectChildDocs

Параметры:

<НачалоВыборки> | Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается начало выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.
<КонецВыборки> | Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.
<Докум> | Выражение типа «документ», содержащее значение документа-владельца, подчиненные которому будут включаться в выборку.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один документ; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПодчиненныеДокументы открывает выборку всех документов, подчиненных заданному документу <Докум> в интервале с <НачалоВыборки> по <КонецВыборки>. Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

//Проверка того, что по Счету были документы отгрузки

ДокТест = СоздатьОбъект("Документ");

// открываем выборку документов

ДокТест.ВыбратьПодчиненныеДокументы('01.01.80', '31.12.99', ПоСчету);

// получение документа

Если ДокТест.ПолучитьДокумент() = 1 Тогда

   Предупреждение("По данному Счету были отгрузки!");

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоЗначению

Открыть выборку документов по значению.

Синтаксис:

ВыбратьПоЗначению(<НачалоВыборки>, <КонецВыборки>, <ИмяОтбора>, <3нач>)

Англоязычный синоним:

SelectByValue

Параметры:

<НачалоВыборки> | Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается начало выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.
<КонецВыборки> | Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.
<ИмяОтбора> | Строковое выражение, которое содержит либо название «общего реквизита» документов, либо название «графы отбора» журналов, как они заданы в конфигураторе.
<3нач> | Значение отбора, по которому строится выборка документов.

Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один документ; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоЗначению открывает выборку документов в интервале с <НачалоВыборки> по <КонецВыборки>, для которых реквизит отбора <ИмяОтбора> имеет конкретное заданное значение <3нач>.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = "Подробный" Тогда

   Док = СоздатьОбъект("Документ");

   // открываем выборку документов

   Док.ВыбратьПоЗначению(ДатаНачало, ДатаКонец, "Автор", "Сидоров");

   // цикл получения документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоНомеру

Открыть выборку документов по номеру.

Синтаксис:

ВыбратьПоНомеру(<Номер>, <Дата>, <ИдентВида>)

Англоязычный синоним:

SelectByNum

Параметры:

<Номер> | Строковое выражение, содержащее значение номера искомых документов.
<Дата> | Выражение типа «дата».
<ИдентВида> | Необязательный параметр. Строковое выражение, содержащее идентификатор вида документа или идентификатор Нумератора.

Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один документ; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоНомеру открывает выборку всех документов с данным номером одного вида или одного нумератора (например, для поиска всех документов с совпадающими номерами).

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

Метод может быть использован для объекта Документ общего вида, тогда для поиска нужно указать в параметре <ИдентВида> идентификатор вида документа или идентификатор Нумератора.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = "Подробный" Тогда

   Док = СоздатьОбъект("Документ");

   // открываем выборку документов

   Док.ВыбратьПоНомеру("Ав-0005", '01.01.98', "АктПереоценки");

   // цикл получения документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоПоследователыюсти

Открыть выборку документов по заданной последовательности.

Синтаксис:

ВыбратьПоПоследовательности(<НачПериода>, <КонПериода> , <Последоват>)

Англоязычный синоним:

SelectBySequence

Параметры:

<НачПериода> | Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается начало выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.
<КонПериода > | Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.
<Последоват> | Строковое выражение, содержащее идентификатор используемой Последовательности.

Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один документ; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоПоследовательности открывает выборку документов по заданной последовательности.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = "Подробный" Тогда

   Док = СоздатьОбъект ("Документ");

   // открываем выборку документов

   Док.ВыбратьПоПоследовательности(НачД, ПолучитьДокументТА(), "Упр");

   // цикл получения документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ОбратныйПорядок

Установить порядок выборки документов.

Синтаксис:

ОбратныйПорядок(<Режим>)

Англоязычный синоним:

BackwardOrder

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — выбирать документы в обратном порядке даты и времени; 0 — выбирать документы в порядке возрастания даты и времени. Значение по умолчанию — 1.

Возвращаемое значение:

Текущее значение порядка выборки документов (на момент до исполнения метода): 1 — обратный порядок выборки документов; 0 — выборка документов в порядке возрастания даты и времени.

Описание:

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

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

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = "Подробный" Тогда

   Док = СоздатьОбъект("Документ");

   // устанавливаем обратный порядок выборки документов

   Док = ОбратныйПорядок(1);

   // открываем выборку документов

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

УстановитьФильтр

Назначить фильтр выборки документов.

Синтаксис:

УстановитьФильтр(<Проведенные>, <НеПроведенные>, <НеИмеющиеПризнаковУчета>,

<Оперативные>, <Расчетные>, <Бухг>)

Англоязычный синоним:

SetFilter

Параметры:

<Проведенные> | Числовое выражение: 0 — не включать в выборку проведенные документы; 1 — включать.
<НеПроведенные> | Числовое выражение: 0 — не включать в выборку непроведенные документы; 1 — включать.
<НеИмеющиеПризнаковУчета> | Числовое выражение: 0 — не включать в выборку документы не имеющие признаков учета; 1 — включать.
<0перативные> | Числовое выражение: 0 — не включать в выборку оперативные документы; 1 — данный флаг не влияет на выборку; 2 — если оперативный документ, то включается в выборку.
<Расчетные> | Числовое выражение: 0 — не включать в выборку расчетные документы; 1 — данный флаг не влияет на выборку; 2 — если расчетный документ, то включается в выборку.
<Бухг> | Числовое выражение: 0 — не включать в выборку бухгалтерские документы; 1 — данный флаг не влияет на выборку; 2 — если бухгалтерский документ, то включается в выборку.

Описание:

Метод УстановитьФильтр назначает фильтр выборки документов.

Примеры:

· Док.УстановитьФильтр(1, 1, 1, 1, 1, 1) — в выборку включаются все документы;

· Док.УстановитьФильтр(1, 0, 1, 1, 1, 1) — в выборку включаются все проведенные документы;

· Док.УстановитьФильтр(1, 1, 0, 1, 0, 1) — в выборку включаются все документы, имеющие признак оперативный или бухгалтерский или оба, но не имеют признака расчетный;

· Док.УстановитьФильтр(1, 1, 1, 2, 1, 2) — в выборку включаются все документы, имеющие признаки и оперативный и бухгалтерский и те, которые не имеют признаков учета;

· Док.УстановитьФильтр(1, 1, 1, 2, 0, 2) — в выборку включаются все документы, имеющие признаки и оперативный и бухгалтерский, но не имеют признака расчета, и те, которые не имеют признаков учета;

· Док.УстановитьФильтр(1, 0, 0, 0, 1, 0) — в выборку не включаются проведенные документы, если они неоперативные и небухгалтерские и имеют признаки учета, т. е. фактически только проведенные расчетные. Данный метод может использоваться только для документов, созданных функцией СоздатьОбъект.

Пример:

Док = СоздатьОбъект("Документ");

// устанавливаем фильтр выборки документов

Док.УстановитьФильтр(1, 0, 0, 1, 0, 0);

// открываем выборку документов

Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

// цикл получения документов

Пока Док.ПолучитьДокумент() > 0 Цикл

   ТекДок = Док.ТекущийДокумент();

КонецЦикла;

ПолучитьДокумент

Получить из выборки следующий документ.

Синтаксис:

ПолучитьДокумент()

Англоязычный синоним:

GetDocument

Возвращаемое значение:

Числовое значение: 1 — если следующий документ выбран успешно; 0 — если документ не найден (отсутствует).

Описание:

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

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

Пример:

Если Режим = "Подробный" Тогда

   Док = СоздатьОбъект("Документ");

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() > 0 Цикл

   // присвоим переменной ТекДок значение найденного документа

      ТекДок = Док.ТекущийДокумент();

      // ...

   КонецЦикла;

КонецЕсли;

См. также: ВыбратьДокументы

ВыбратьСтроки

Открыть выборку строк многострочной части документа.

Синтаксис:

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

Англоязычный синоним:

SelectLines

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы одна строка; 0 — если действие не выполнено или в выборке нет ни одной строки.

Описание:

Метод ВыбратьСтроки открывает выборку строк многострочной части документа. Непосредственно сама выборка осуществляется при помощи метода ПолучитьСтроку в порядке возрастания номеров строк.

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

   // откроем выборку строк спецификации документа

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

   // цикл получения строк спецификации документа

   Пока ПолучитьСтроку() > 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

ПолучитьСтроку

Получить из выборки следующую строку табличной части документа.

Синтаксис:

ПолучитьСтроку()

Англоязычный синоним:

GetLine

Возвращаемое значение:

Число: 1 — если следующая строка табличной части документа выбрана успешно; 0 — если следующая строка документа не найдена (отсутствует).

Описание:

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

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

   // открываем выборку строк спецификации документа

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

   // цикл выбора строк спецификации документа

   Пока ПолучитьСтроку() > 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар=Товар;

      Регистр.ТовЗап.Количество=Количество;

      Регистр.ТовЗап.Стоимость=Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

Новый

Начать ввод нового документа.

Синтаксис:

Новый()

Англоязычный синоним:

New

Описание:

Метод Новый инициализирует создание нового документа. Собственно запись нового документа в информационную базу происходит при вызове метода Записать. После инициализации создания нового документа, как правило производится заполнение его реквизитов с последующим вызовом метода Записать.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// данная процедура создает документ с № 1, в котором записывает

// все имеющиеся в справочнике должности

Процедура Оприходовать()

   Спр = СоздатьОбъект("Справочник.Должности");

   Док = СоздатьОбъект("Документ.Приказы");

   // найдем документ с № 1

   Док.НайтиПоНомеру("1", 0);

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

      // если документа с № 1 не существует, то создадим его

      Док.Новый();

      Док.НомерДок = "1";

      Док.ДатаДок='01.01.80';

      // запишем все должности в документ

      Спр.ВыбратьЭлементы();

      Пока Спр.ПолучитьЭлемент() > 0 Цикл

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

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

            Док.Должность = Спр.ТекущийЭлемент();

         КонецЕсли;

      КонецЦикла;

      // запишем новый документ на диск

      Док.Записать();

   КонецЕсли;

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

ПрефиксНомера

Установить текущий префикс номера для документа.

Синтаксис:

ПрефиксНомера(<Префикс>)

Англоязычный синоним:

NumPrefix

Параметры:

<Префикс>

Необязательный параметр. Строковое выражение — новый префикс номера для документа.

Возвращаемое значение:

Строковое значение текущего префикса документа (на момент до исполнения метода).

Описание:

Метод ПрефиксНомера устанавливает новый префикс для автоматического создания номера документа.

Данный метод может использоваться только для объектов, созданных Функцией СоздатьОбъект и в основном предназначен для использования при создании новых документов из языка с помощью метода Новый.

Пример:

ПрефиксНомера("Сч-");

См. также: ПрефиксАвтоНумерации, УстановитьНовыйНомер

УстановитьНовыйНомер

Установить новый номер с префиксом номера для документа.

Синтаксис:

УстановитьНовыйНомер(<Префикс>)

Англоязычный синоним:

SetNewNum

Параметры:

<Префикс>

Строковое выражение — префикс номера документа.

Описание:

Метод УстановитьНовыйНомер устанавливает новый номер документа с заданным префиксом <Префикс>. Данный метод производит корректное переприсвоение номера документа (с автоинкрементацией и резервированием номера на время ввода).

Пример:

УстановитьНовыйНомер("01-");

См. также: ПрефиксАвтоНумерации, ПрефиксНомера

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяРеквизита> | Строковое выражение — название реквизита документа неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> | Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту документа. Например: "Строка", "Число", "Справочник.Товары", "Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

Накладная.НазначитьТип("ТМЦ", "Справочник.Товары");

Записать

Записать документ.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать выполняет запись в базу данных текущего нового или измененного документа.

Замечание. Если этот метод применяется в Модуле формы документа непосредственно к документу локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой "#Записать".

Пример:

Док.СоздатьОбъект("Документ.Заказ");

Док.АвтоВремяТекущее();

Док.Новый();

Док.УстановитьНовыйНомер("Прг-");

Док.Клиент = Константа.ОсновнойКлиент;

Док.Количество = 5;

Док.Записать();

Док.Провести(1, "Программно");

Удалить

Удалить документ.

Синтаксис:

удалить(<Режим>)

Англоязычный синоним:

Delete

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — непосредственное удаление; 0 — пометка на удаление. Значение по умолчанию — 1.

Описание:

Метод Удалить удаляет (или делает пометку на удаление) текущий документ. Данный метод разрешено применять только для тех документов, которые либо не проведены, либо они лежат за точкой ТА, т. е. предполагается, что предварительно интерактивно сдвинули ТА назад.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

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

Пример:

Док = СоздатьОбъект("Документ.Приказы");

Если Док.Выбрать("Найди документ") > 0 Тогда

   Док.Удалить(1);

КонецЕсли;

См. также: ПометкаУдаления, СнятьПометкуУдаления

ПометкаУдаления

Прочитать флаг пометки удаления документа.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

Число: 1 — если на документе стоит пометка удаления; 0 — если нет пометки удаления.

Описание:

Метод ПометкаУдаления позволяет прочитать значение пометки удаления документа.

Пример:

Процедура УсловноеУдаление(Докум)

   Док = СоздатьОбъект("Документ");

   Если Докум.Выбран() > 0 Тогда

      // позиционируем документ на переданном значении

      Док.НайтиДокумент(Докум);

      Если Док.Выбран() > 0 Тогда

         Если Вопрос("Удалять??? ", 1) = 1 Тогда

            Если Док.ПометкаУдаления() = 1 Тогда

               Предупреждение("Уже помечен на удаление!");

            Иначе

               // удаляем документ

               Док.Удалить(0);

            КонецЕсли;

         КонецЕсли;

      Иначе

         Предупреждение("Нечего удалять! ");

      КонецЕсли;

   КонецЕсли;

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

См. также: Удалить, СнятьПометкуУдаления

СнятьПометкуУдаления

Снять пометку удаления документа.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущего документа.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура Восстановление(Докум)

   Док = СоздатьОбъект("Документ");

   Если Докум.Выбран() > 0 Тогда

      // позиционируем документ на переданном значении

      Док.НайтиДокумент(Докум);

      Если Док.Выбран() > 0 Тогда

         Если Док.ПометкаУдаления() = 1 Тогда

            // восстанавливаем

            Спр.СнятьПометкуУдаления();

         КонецЕсли;

      КонецЕсли;

   КонецЕсли;

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

См. также: Удалить, ПометкаУдаления

НоваяСтрока

Добавить новую строку в документ.

Синтаксис:

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

Англоязычный синоним:

NewLine

Описание:

Метод НоваяСтрока добавляет новую строку с очередным порядковым номером в многострочную часть документа.

Пример:

Процедура ОбработкаПодбора(Выб, КонФормы)

   Кол=0;

   Если ВвестиЧисло(Кол, "Введите количество", 10, 0) = 1 Тогда

      // добавим новую строку в спецификацию

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

      Работа = Выб;

      Количество = Кол;

      АктивизироватьСтроку();

   КонецЕсли;

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

УдалитьСтроку

Удалить строку документа.

Синтаксис:

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

Англоязычный синоним:

DeleteLine

Описание:

Метод УдалитьСтроку удаляет текущую строку из многострочной части Документа.

Пример:

Процедура УдалЗаданнойСтроки(Док, Стр)

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

      // если переданный параметр содержит значение документа, то

      // найдем в нем строку

      Док.ПолучитьСтрокуПоНомеру(Стр);

      // удалим найденную строку спецификации документа

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

      Предупреждение("Документ не выбран!");

   КонецЕсли;

КонецЕсли;

УдалитьСтроки

Удалить все строки документа.

Синтаксис:

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

Англоязычный синоним:

DeleteLines

Описание:

Метод УдалитьСтроки удаляет сразу все строки из многострочной части документа.

Пример:

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

СортироватьСтроки

Сортировать многострочную часть документа по реквизитам.

Синтаксис:

СортироватьСтроки(<Колонки>)

Англоязычный синоним:

SortLines

Параметры:

<Колонки>

Перечисленные через запятую реквизиты многострочной части документа, по которым следует сортировать. Знаки "+", "-", предшествующие названию реквизита указывают направление сортировки по реквизиту. Знак "*" — сортировать по внутреннему значению реквизита.

Описание:

Метод СортироватьСтроки позволяет сортировать многострочную часть документа по реквизитам.

Пример:

Док = СоздатьОбъект("Документ.Приказы");

Если Док.Выбрать("Найди документ") > 0 Тогда

   Док.СортироватьСтроки("+Сумма, -НДС");

   Док.Записать ();

КонецЕсли;

ПолучитьПозицию

Получить позицию документа.

Синтаксис:

ПолучитьПозицию()

Англоязычный синоним:

GetPosition

Возвращаемое значение:

32-х символьное строковое значение позиции документа.

Описание:

Метод ПолучитьПозицию возвращает позицию документа.

Замечание. Позиция может существовать только у записанного документа.

Пример:

ПозицияДокумента = ВыбДокумент.ПолучитьПозицию();

ПринадлежитПоследовательности

Определить, принадлежит ли последовательности данный документ.

Синтаксис:

ПринадлежитПоследовательности(<Последов>, <НовоеЗначение>)

Англоязычный синоним:

BelongToSequence

Параметры:

<Последов> | Строковое выражение, определяющая Последовательность.
<НовоеЗначение> | Необязательный параметр. Число: 1 — документ принудительно устанавливается как принадлежащий последовательности; 0 — документ принудительно устанавливается как не принадлежащий последовательности. Использование этого параметра разрешено только при проведении документа (в Модуле документа).

Возвращаемое значение:

Число: 1 — если документ принадлежит последовательности; 0 — если не принадлежит.

Описание:

Метод ПринадлежитПоследовательности позволяет определить, принадлежит ли документ заданной последовательности.

Пример:

Если Док.ПринадлежитПоследовательности(«УпрУчет») = 1 Тогда

   Если Последовательность.УпрУчет.Сравнить(Док) = 1 Тогда

      Последовательность.УпрУчет.Установить(Док);

   КонецЕсли;

КонецЕсли;

ИспользоватьЖурнал

Использовать журнал для отбора документов и доступа к графам.

Синтаксис:

ИспользоватьЖурнал(<Журнал>, <ФлагОгрПросм>)

Англоязычный синоним:

UseJournal

Параметры:

<Журнал> | Идентификатор журнала, который предполагается использовать для отбора документов и доступа к графам.
<ФлагОгрПросм> | Необязательный параметр. Число: 1 — если выборка ограничивается документами, входящими в указанный журнал; 0 — если метод используется только для использования граф методом Графа. Значение по умолчанию 1.

Описание:

Метод ИспользоватьЖурнал позволяет при переборе документов командой Выбрать использовать журнал для отбора документов и доступа к графам журнала.

Пример:

Док = СоздатьОбъект("Документ.НаклПрих");

Док.ИспользоватьЖурнал("Приходные");

См. также: Графа

Графа

Выдает значение графы журнала для текущего документа.

Синтаксис:

Графа(<Графа>)

Англоязычный синоним:

Column

Параметры:

<Графа>

Идентификатор графы журнала, который задан методом ИспользоватьЖурнал.

Возвращаемое значение:

Значение заданной графы журнала для текущего документа.

Описание:

Метод Графа позволяет получить значение заданной графы журнала для текущего документа. Данный метод работает только в том случае, если ранее Применен метод ИспользоватьЖурнал.

Пример:

Док = СоздатьОбъект("Документ.НаклПрих");

Док.ИспользоватьЖурнал("Приходные", 0);

док.НайтиДокумент(ВыбДок);

Цена = Док.Графа("Цена");

См. также: ИспользоватьЖурнал

Блокировка

Установить/прочитать режим блокировки.

Синтаксис:

Блокировка(<ВклВыкл>)

Англоязычный синоним:

Locking

Параметры:

<ВклВыкл>

Необязательный параметр. Число: 1 — включить; 0 — выключить.

Возвращаемое значение:

Если при вызове метода параметр <ВклВыкл> не задан, то возвращается режим блокировки до выполнения метода. Число: 1 — заблокирован; 0 — свободен.

Если при вызове метода параметр <ВклВыкл> задан, то возвращается результат выполнения метода блокировки. Число: 1 — успешно; 0 — не получилось.

Описание:

Метод Блокировка позволяет установить/прочитать режим блокировки.

Пример:

Блокировка(0);

ПолучитьВремя

Прочитать время документа.

Синтаксис:

ПолучитьВремя(<Часы>, <Минуты>, <Секунды>)

Англоязычный синоним:

GetTime

Параметры:

<Часы> | Идентификатор переменной, в которую метод возвращает строковое значение минут записи документа.
<Секунды> | Идентификатор переменной, в которую метод возвращает строковое значение секунд записи документа.

Возвращаемое значение:

Строковое значение времени записи документа в виде "ЧЧ.ММ.СС".

Описание:

Метод ПолучитьВремя возвращает время документа в переданные для этого переменные <Часы>, <Минуты>, <Секунды>.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Функция ВремяДокумента(Док)

   Перем Ч;

   Перем М;

   Перем С;

   Если Док.Выбран() > 0 Тогда

      Док.ПолучитьВремя(Ч, М, С);

      Возврат "Документ записан в " + Ч + " час " + М + " мин. " + С + " с";

   Иначе

      Возврат "Документ не выбран!";

   КонецЕсли;

Конецфункции

УстановитьВремя

Установить время документа.

Синтаксис:

УстановитьВремя(<Часы>, <Минуты>, <Секунды>)

Англоязычный синоним:

SetTime

Параметры:

<Часы> | Числовое выражение.
<Минуты> | Числовое выражение.
<Секунды> | Числовое выражение.

Описание:

Метод УстановитьВремя устанавливает время документа в соответствии с заданными параметрами <Часы>, <Минуты>, <Секунды>.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.

Пример:

Док = СоздатьОбъект("Документ.НаклПрих");

Если Док.Выбрать("Найди документ") > 0 Тогда

   Док.УстановитьВремя(13, 0, 0);

КонецЕсли;

См. также: ПриИзмененииВремениДокумента

АвтоВремяНачалоДня

Установить новому документу время на начало дня.

Синтаксис:

АвтоВремяНачалоДня()

Англоязычный синоним:

AutoTimeBegOfDay

Описание:

Метод АвтоВремяНачалоДня устанавливает режим, при котором новому документу записывается время на начало дня.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = "Начало" Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = "Конец" Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = "Текущее" Тогда

      Док.АвтоВремяТекущее();

   Иначе

      Док.АвтоВремяОтключить();

   КонецЕсли;

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

АвтоВремяКонецДня

Установить новому документу время на конец дня.

Синтаксис:

АвтоВремяКонецДня()

Англоязычный синоним:

AutoTimeEndOfDay

Описание:

Метод АвтоВремяКонецДня устанавливает режим, при котором новому документу записывается время на конец дня.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.

Пример:

См. предыдущий пример

АвтоВремяТекущее

Установить новому документу текущее время.

Синтаксис:

АвтоВремяТекущее()

Англоязычный синоним:

AutoTimeCurrent

Описание:

Метод АвтоВремяТекущее устанавливает режим, при котором новому документу записывается текущее время.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = "Начало" Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = "Конец" Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = "Текущее" Тогда

      Док.АвтоВремяТекущее();

   Иначе

      Док.АвтоВремяОтключить();

   КонецЕсли;

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

АвтоВремяПослеТА

Установить новому документу время после ТА.

Синтаксис:

АвтоВремяПослеТА()

Англоязычный синоним:

AutoTimeAfterAP

Описание:

Метод АвтоВремяПослеТА устанавливает режим, при котором, если совпадает дата документа с датой ТА, то новому документу автоматически записывается время после ТА. Метод исполняется только если установлена компонента оперативный учет.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = "Начало" Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = "Конец" Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = "Текущее" Тогда

      Док.АвтоВремяТекущее();

   ИначеЕсли Режим = "ПослеТА" Тогда

      Док.АвтоВремяПослеТА();

   Иначе

      Док.АвтоВремяОтключить();

   КокецЕсли;

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

АвтоВремяОтключить

Отключает режим автоматической установки времени документа.

Синтаксис:

АвтоВремяОтключить()

Англоязычный синоним:

AutoTimeOff

Описание:

Метод АвтоВремяОтключить отключает режим автоматической установки времени нового документа, при этом новые документы заносятся с временем устанавливаемым при помощи метода УстановитьВремя.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.

Пример:

См. предыдущий пример

См. также: УстановитьВремя

Провести

Выполнить проведение документа.

Синтаксис:

Провести(<Режим>, <3нач>)

Англоязычный синоним:

MakeActions

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 0 — проводить документ без сдвига ТА; 1 — проводить непроведенный документ реальным временем (со сдвигом ТА); 2 — перепроводить проведенный документ реальным временем (со сдвигом ТА); 3 —проводить любой (непроведенный, проведенный) документ реальным временем (со сдвигом ТА). Значение по умолчанию — 0.

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

· провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА);

· изменить время документа в рамках текущей даты, чтобы документ стал самым последним и проводился в потоке, т. е. в ТА.

<3нач>

Необязательный параметр. Выражение произвольного типа. Значение данного параметра будет передано системой в качестве параметра при запуске предопределенной процедуры ОбработкаПроведения. Использовать данное значение можно, например, для того, чтобы в процедуре ОбработкаПроведения правильно отработать режим проведения, т. к. это программный, а не интерактивный и не групповой (см. ГрупповаяОбработка) способ проведения. По умолчанию передается пустое значение.

Возвращаемое значение:

Число: 1 — проведение документа завершено успешно; 0 — проведение документа не выполнено.

Описание:

Метод Провести запускает процедуру проведения документа. Возвращаемое значение можно использовать, например, в качестве условия принятия решения при завершении обработки транзакции.

Замечание. Данный метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.

Замечание. Если этот метод применяется в Модуле формы документа непосредственно к документу локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой "#Провести". В этом случае, если параметр <Режим> опущен, то документ проводится в режиме, соответствующем установкам системы меню «Сервис» - «Параметры».

Пример:

Док.СоздатьОбъект("Документ.Заказ");

Док.АвтоВремяТекущее();

Док.Новый();

Док.УстановитьНовыйНомер("Прг-");

Док.Клиент = Константа.ОсновнойКлиент;

Док.Количество = 5;

Док.Записать();

Док.Провести(1, "Программно");

См. также: ОбработкаПроведения, ГруппроваяОбработка

СделатьНеПроведенным

Отменить проведение документа.

Синтаксис:

СделатьНеПроведенным()

Англоязычный синоним:

UnPost

Описание:

Метод СделатьНеПроведенным отменяет проведение документа. Данный метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Док.СоздатьОбъект("Документ.Заказ");

Док.НайтиДокумент(Докум);

Док.СделатьНеПроведенным();

См. также: Провести, ПриОтменеПроведенияДокумента

СравнитьТА

Сравнить дату и время документа с Точкой актуальности итогов.

Синтаксис:

СравнитьТА()

Англоязычный синоним:

CompareWithAP

Возвращаемое значение:

Числовое значение:

· 1(плюс единица) — если дата и время документа больше даты и времени Точки актуальности итогов.

· 0 — если дата и время документа равно дате и времени Точки актуальности итогов.

· -1 (минус единица) — если дата и время документа меньше даты и времени Точки актуальности итогов.

· -2 (минус два) в случае, если новый документ, который сравнивается с ТА, еще не записан, то есть он еще не имеет никакой позиции на оси времени.

Описание:

Метод СравнитьТА сверяет дату и время документа с датой и временем Точки актуальности итогов, позволяя определить положение на оси времени момента записи документа по отношению к текущиму положению ТА.

Пример:

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

   Если СравнитьТА() > 0 Тогда

      // если документ после ТА, вызываем процедуру

      ПроводкаДокументаБудущимЧислом();

   ИначеЕсли СравнитьТА() < 0 Тогда

      // если документ до ТА, вызываем процедуру

      ПроводкаДокументаЗаднимЧислом();

   Иначе

      // если документ в ТА, вызываем процедуру

      ПроводкаДокумента();

   КонецЕсли;

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

СуществуетОперация

Устанавливает (возвращает) признак существования операции у документа.

Синтаксис:

СуществуетОперация(<Признак>)

Англоязычный синоним:

OperExist

Параметры:

<Признак>

Числовое выражение: 1 — существует операция, 0 — не существует операции.

Возвращаемое значение:

Числовое значение — текущее значение признака: 1 — у документа существует операция; 0 — у документа не существует операции.

Описание:

В метаданных для конкретного вида документа (имеющего признак «Бухгалтерский учет») устанавливается режим записи операции. Операция может записываться для документов данного вида в режимах: «Всегда», «Выборочно» и «Только при проведении».

Метод СуществуетОперация применяется в случае использования режима «Выборочно». Он устанавливает признак наличия операции у конкретного документа. Данная возможность позволяет записывать операцию для документов конкретного вида в зависимости от некоторых условий. Для режимов записи операции «Всегда» и «Только при проведении» данный метод смысла не имеет.

Пример:

* Для накладной операция будет записываться только если отгрузка ведется с основного склада.

Процедура ПриЗаписи()

   Если Склад = ОснСклад Тогда

      СуществуетОперация(1);

   Иначе

      СуществуетОперация(0);

   КонецЕсли;

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

ВыгрузитьТабличнуюЧасть

Выгрузить многострочную часть документа в таблицу значений.

Синтаксис:

ВыгрузитьТабличнуюЧасть(<3нач>, <Реквизиты>)

Англоязычный синоним:

UnloadTable

Параметры:

<3нач> | Идентификатор переменной, содержащей значение типа «Таблица значений» или «Список значений», куда нужно выгрузить данные из многострочной части документа. Если переданное значение пустое, то система сама создаст объект типа «Таблица значений». Колонки совмещаются по идентификаторам.
<Реквизиты> | Необязательный параметр. Список реквизитов многострочной части документа через запятую. Данный параметр указывает, какие реквизиты выгружать, если не указано то все. Для номера строки документа в таблице значений создается отдельная колонка с идентификатором "НомерСтрокиДокумента". При задании какие колонки выгружать, для выгрузки номера строки надо указать колонку "НомерСтроки".

Описание:

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

Пример:

ВыбДокум.ВыгрузитьТабличнуюЧасть(ТаблЗнач, "Товар, Сумма, НДС, Цена");

ЗагрузитьТабличнуюЧасть

Загрузить многострочную часть документа из таблицы значений.

Синтаксис:

ЗагрузитьТабличнуюЧасть(<ТаблЗнач>)

Англоязычный синоним:

LoadTable

Параметры:

<ТаблЗнач>

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

Описание:

Метод ЗагрузитьТабличнуюЧасть загружает многострочную часть документа из таблицы значений.

Пример:

ВыбДокум.ЗагрузитьТабличнуюЧасть(ТаблЗнач);

Методы контекста Модуля формы документа

Описанные в данном разделе методы доступны только в контексте Модуля формы документа (см. «Виды программных модулей»).

ПриЗаписиПерепроводить

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

Синтаксис:

ПриЗаписиПерепроводить(<Режтл>)

Англоязычный синоним:

ReMakeActionsWhenWrite

Параметры:

<Режим>

Числовое выражение: 1 — устанавливает флаг обязательного перепроведения при записи уже проведенного документа; 0 — снимает флаг обязательного перепроведения при записи уже проведенного документа.

Описание:

Метод ПриЗаписиПерепроводить устанавливает режим обязательного перепроведения при записи ранее проведенного документа (интерактивный отказ от проведения документа или ошибка модуля приведет к отмене записи отредактированного документа).

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы Пример:

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

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

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

ПроводитьПослеТА

Установить режим проведения документа после ТА.

Синтаксис:

ПроводитьПослеТА(<ФлагДляНеПровДокумента>, <ФлагДляПровДокумента>)

Англоязычный синоним:

PostingAfterTA

Параметры:

<ФлагДляНеПровДокумента> | Режим проведения документа после ТА. Число: -1 (минус единица) — проводить документ всегда задним числом; 0 — при проведении запрашивать режим проведения документа; 1 — проводить документ в реальном потоке времени, т. е. при проведении время документа автоматически устанавливается на время после ТА.
<ФлагДляПровДокумента> | Режим перепроведения документа после ТА. Числовое выражение: -1 (минус единица) — проводить документ всегда задним числом; 1 — проводить документ в потоке.

Возвращаемое значение:

Текущее значение режим перепроведения документа в зависимости от про-веденности.

Описание:

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

· провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА);

· изменить время документа (в рамках текущей даты), чтобы документ стал самым последним и проводился в потоке, т. е. после ТА;

· запросить у пользователя, в каком режиме провести документ.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

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

   ПроводитьПослеТА(1, 1);

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

АктивизироватьСтроку

Установить курсор на указанной строке многострочной части документа.

Синтаксис:

АктивизироватьСтроку(<НомСтроки>)

Англоязычный синоним:

ActivateLine

Параметры:

<НомСтроки>

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

Описание:

Данный метод в основном предназначен для использования в системной предопределенной процедуре ОбработкаПодбора. Метод АктивизироватьСтроку выполняет визуальную активизацию строки документа в форме редактирования документа после выхода из предопределенной процедуры ОбработкаПодбора.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Процедура ОбработкаПодбора(Выб, КонтФормы)

   Кол = 0;

   Если ВвестиЧисло(Кол, "Введите количество", 10, 0) = 1 Тогда

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

      Товар = Выб;

      УстанЦеныРасх(Контекст);

      Количество = Кол;

      Выч_суммы_накл(Контекст);

      АктивизироватьСтроку();

      Активизировать("Цена");

   КонецЕсли;

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

См. также: ОбработкаПодбора

ИзменениеПорядкаСтрок

Установить режим изменения порядка строк в форме документа.

Синтаксис:

ИзменениеПорядкаСтрок(<Разрешить>)

Англоязычный синоним:

ChangeLinesOrder

Параметры:

<Разрешить>

Необязательный параметр. Число: 1 — разрешить изменение порядка строк в документе; 0 — запретить. Если параметр не задан, то режим не меняется.

Возвращаемое значение:

Режим изменения порядка строк до исполнения метода. Число: 1 — разрешено изменение порядка строк в документе; 0 — запрещено.

Описание:

Метод ИзменениеПорядкаСтрок позволяет установить режим изменения порядка строк в форме документа.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

ИзменениеПорядкаСтрок(0);

Модифицированность

Возвратить признак изменения реквизитов текущей формы документа.

Синтаксис:

Модифицированность()

Англоязычный синоним:

Modify

Возвращаемое значение:

Числовое значение: 1 — если реквизиты текущей формы документа были изменены; 0 — если нет.

Описание:

Метод Модифицированность возвращает признак изменения реквизитов формы (в режиме исполнения он отображается символом (*) в заголовке окна формы).

Данный метод доступен только в Модуле формы документа(см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Изм = Модифицированность();

Предопределенные процедуры Модуля формы документа

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы документов (см. «Виды программных модулей»).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ВводНового

Предопределенная процедура при вводе нового документа.

Синтаксис:

ВводНового(<ПризнКопирования>, <ОбъектКопирования>)

Англоязычный синоним:

InputNew

Параметры:

<ПризнКопирования> | Признак того, что объект введен копированием. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак может быть использован для анализа необходимости инициализации реквизитов нового объекта.
<ОбъектКопирования> | Объект, который был скопирован.

Описание:

Вызов процедуры ВводНового производится в системе 1С:Предприятие неявно в момент выбора пункта меню «Действия» — «Новый» при работе с Документами. Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) реквизитов нового документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя вводить документы), ввода нового документа и открытие его формы не будет выполнено.

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

Пример:

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

   Валюта = Константа.ДефВалютаПродажи;

   Валюта.ИспользоватьДату(ДатаДок);

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

   Если Число(Валюта.Код) = Число(Константа.БазоваяВалюта.Код) Тогда

      //У базовой валюты курс = 1, поэтому отображаем курс Основной валюты

      Константа.ОсновнаяВалюта.ИспользоватьДату(ДатаДок);

      Курс = Константа.ОсновнаяВалюта.Текущ_курс;

   Иначе

      Курс = Валюта.Текущ_курс;

   КонецЕсли;

   Фирма = Константа.ДефФирма;

   Клиент = Константа.ДефПокупатель;

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

См. также: СтатусВозврата

ВводНаОсновании

Предопределенная процедура при вводе нового документа на основании.

Синтаксис:

ВводНаОсновании(<ДокументОснование>)

Англоязычный синоним:

InputCausedBy

Параметры:

<ДокументОснование>

Значение документа, на основании которого вводится новый документ.

Описание:

Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта меню «Действия» - «Ввести на основании». В этот момент система подставляет фактическое значение параметра <ДокументОснование>, содержащее документ, на котором находился курсор в момент выполнения данной команды.

Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) реквизитов нового документа, вводимого на основании другого. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя вводить новые документы), ввода нового документа и открытие его формы не будет выполнено.

Процедуру ВводНаОсновании можно размещать только в Модулях форм документов (см. «Виды программных модулей»).

Пример:

Процедура ВводНаОсновании(ДокОснование)

   Если (ДокОснование.Вид() = "ПриходнаяРеализ")

         ИЛИ ДокОснование.Вид() = "РасходнаяРеализ") Тогда

      ПризнакРеализатора = Перечисление.ПризнакиРеализаторов.Реализатор_Клиент;

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

      Валюта = Константа.БазоваяВалюта;

      Валюта.ИспользоватьДату(ДатаДок);

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

      Курс = ДокОснование.Курс;

      НДС = ДокОснование.НДС;

      СН = ДокОснование.СН;

      Фирма = ДокОснование.Фирма;

      Основание = "" + ДокОснование + " от " + ДокОснование.ДатаДок;

      ДокОснование.ВыбратьСтроки();

      Пока ДокОснование.ПолучитьСтроку() = 1 Цикл

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

         Товар = ДокОснование.Товар;

         Цена = ДокОснование.Цена;

         Единица = ДокОснование.Единица;

         Коэффициент = ДокОснование.Коэффициент;

         Количество = ДокОснование.Количество;

         Сумма = ДокОснование.Сумма;

      КонецЦикла;

   Иначе

      Предупреждение("Этот Документ можно вводить только на основании

                       |накладных по реализации!");

      ВводНового();

   КонецЕсли;

   Валюта_Прежн = Валюта;

   Курс_Прежн = Курс;

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

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи документа.

Синтаксис:

ПриЗаписи()

Англоязычный синоним:

OnWrite

Описание:

Вызов предопределенной процедуры ПриЗаписи производится в системе 1С:Предприятие при интерактивной записи документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данно-wy пользователю нельзя изменять реквизиты документа), запись документа не будет выполнена.

Данная предопределенная процедура может располагаться в Модулях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриЗаписи()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права изменять документ!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриНачалеРедактированияСтроки

Предопределенная процедура при редактировании существующей строки документа.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

Вызов предопределенной процедуры ПриНачалеРедактированияСтроки производится в системе 1С:Предприятие в момент начала интерактивного редактирования существующей строки многострочной части документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять документ), то запись не будет изменена.

Данная предопределенная процедура может располагаться в Модулях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права изменит, документ 1", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриВводеСтроки

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

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

Вызов предопределенной процедуры ПриВводеСтроки производится в системе 1С:Предприятие при интерактивном вводе новой строки многострочной части документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять документ), то новая строка не будет инициирована.

Данная предопределенная процедура может располагаться в Модулях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриВводеСтроки()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права добавлять строки!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

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

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

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

Данная предопределенная процедура может располагаться в Модулях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированииНовойСтроки()

   Количество = 10;

   Коэффициент = 1;

   Скидка=0;

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

См. также: СтатусВозврата

ПриОкончанииРедактированияСтроки

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

Синтаксис:

ПриОкончанииРедактированияСтроки(<НовСтр>)

Англоязычный синоним:

OnFinishLineEdit

Параметры:

<НовСтр>

Флаг новой строки. Число: 1 — если произошло окончание ввода новой строки, 0 — если произошло окончание редактирования существующей строки.

Описание:

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

Замечание. Данный метод не вызывается при отказе от ввода новой строки по клавише <Esc>. Однако, метод вызывается при нажатии клавиши <Esc> во время редактирования существующей строки, но при этом последнее значение текущего редактируемого с клавиатуры поля не доступно, т. к. от его значения в данном случае отказываются, т. е. строка доступна в том виде, в котором она собственно и остается в документе.

Данная предопределенная процедура может располагаться в Модулях формы документов (см. «Виды программных модулей»).

Пример:

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

   Если Количество = 0 Тогда

      Количество = 1;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУдаленииСтроки

Предопределенная процедура при удалении строки многострочной части документа.

Синтаксис:

ПриУдаленииСтроки()

Англоязычный синоним:

OnDeleteLine

Описание:

Вызов предопределенной процедуры ПриУдаленииСтроки производится в системе 1С:Предприятие при интерактивном удалении строки многострочной части документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять документ), удаление строки документа не будет выполнено.

Данная предопределенная процедура может располагаться только в Модулях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриУдаленииСтроки()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права удалять строки!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриИзмененииПорядкаСтрок

Предопределенная процедура при изменении порядка строк многострочной части документа.

Синтаксис:

ПриИзмененииПорядкаСтрок(<Действие>)

Англоязычный синоним:

OnChangeLinesOrder

Параметры:

<Действие>

Число: -1 — перемещение строки вверх; 1 — перемещение строки вниз; 0 — перенумерация строк.

Описание:

Вызов предопределенной процедуры ПриИзмененииПорядкаСтрок произ-^дится в системе 1С:Предприятие при интерактивном изменении порядка строк многострочной части документа (перемещения строк вверх-вниз, перенумерация, сортировка). Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять документ), изменении порядка строк документа не будет выполнено.

Данная предопределенная процедура может располагаться только в Модулях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриИзмененииПорядкаСтрок()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права изменять документ!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

Методы контекста Модуля документа

Описанные в данном разделе методы доступны только в контексте Модуля документа (см. «Виды программных модулей»).

ИтогиАктуальны

Возвратить флаг актуальности итогов.

Синтаксис:

ИтогиАктуальны()

Англоязычный синоним:

AreTotalsActual

Возвращаемое значение:

Числовое значение: 1 — итоги актуальны, 0 — нет.

Описание:

Метод ИтогиАктуальны позволяет определить — выполняется ли проведение документа в реальном времени или задним числом (когда нельзя обращаться к текущим остаткам регистров).

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Системные предопределенные процедуры»).

Пример:

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

   // Для расходной накладной ВыбратьСтроки();

   Пока ПолучитьСтроку() > 0 Цикл

      Если ИтогиАктуальны() > 0 Тогда

         // если итоги актуальны,

         // то текущие стоимости берем из текущих остатков

         Регистр.ОстаткиТоваров.Склад = Скпад;

         Регистр.ОстаткиТоваров.Товар = Товар;

         Регистр.ОстаткиТоваров.ОстаткиПолучить();

         Регистр.ОстаткиТоваров.БазоваяСтоимость =

                 Регистр.ОстаткиТоваров.БазоваяСтоимость * Количество *

                 Коэффициент / Регистр.ОстаткиТоваров.ОстатокТовара;

         Регистр.ОстаткиТоваров.ВалютнаяСтоимость =

                 Регистр.ОстаткиТоваров.ВалютнаяСтоимость * Количество *

                 Коэффициент / Регистр.ОстаткиТоваров.ОстатокТовара;

         Регистр.ОстаткиТоваров.ОстатокТовара = Количество * Коэффициент;

         Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();

      Иначе

         // если итоги не актуальны,

         //то стоимости берем из врем. расчета Регистра

         Рег = СоздатьОбъект("Регистр.ОстаткиТоваров");

         Рег.ВременныйРасчет();

         РассчитатьРегистрыНа(ТекущийДокумент());

         Рег.Товар = Товар;

         Рег.Склад = Склад;

         Рег.ОстаткиПолучить();

         Регистр.ОстаткиТоваров.БазоваяСтоимость =

                 Рег.БазоваяСтоимость * Количество * Коэффициент /

                 Рег.ОстатокТовара;

         Регистр.ОстаткиТоваров.ВалютнаяСтоимость =

                 Рег.ВалютнаяСтоимость * Количество * Коэффициент /

                 Рег.ОстатокТовара;

         Регистр.ОстаткиТоваров.ОстатокТовара = Количество * Коэффициент;

         Регистр.ОстаткиТоваров.Склад = Склад;

         Регистр.ОстаткиТоваров.Товар = Товар;

         Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();

      КонецЕсли;

   КонецЦикла;

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

ГрупповаяОбработка

Возвратить флаг групповой обработки.

Синтаксис:

ГрупповаяОбработка()

Англоязычный синоним:

IsGroupPrосеssing

Возвращаемое значение:

Число: 1 — групповое обработка, 0 — проведение документа по одному.

Описание:

Метод ГрупповаяОбработка позволяет определить, выполняется ли проведение документа группой (при помощи режима «Управление итогами») или по одному (интерактивно).

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. гл. «Системные предопределенные процедуры»).

Пример:

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

   Если ГрупповаяОбработка() > 0 Тогда

      // если групповая проводка документов, то вызываем процедуру

      ПроводкаДокументаГруппой();

   Иначе

      // если не групповая проводка документов, то

      ПроводкаДокументаОдиночного();

   КонецЕсли;

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

См. также: ОбработкаПроведения, Провести

НеПроводитьДокумент

Отменить процесс проведения документа.

Синтаксис:

НеПроводитьДокумент()

Англоязычный синоним:

DoNotTransactDoc

Описание:

Метод НеПроводитьДокумент фактически отменяет весь процесс проведения документа (отменяет транзакцию проведения). Вызов данного метода приводит к тому, что все движения регистров, вызванные в предопределенной процедуре ОбработкаПроведения, будут проигнорированы и документ не будет проведен. Метод НеПроводитьДокумент не завершает процедуру ОбработкаПроведения (для завершения процедуры нужно отдельно вызвать Возврат).

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Системные предопределенные процедуры»).

По своему действию данный метод полностью аналогичен вызову системной функции СтатусВозврата с параметром 0, т. е. отменить действие.

Пример:

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

   Если Число(Клиент.Выбран()) > 0 Тогда

      ДвиженияРегистраРеализации();

   Иначе

      Сообщить("Не выбран клиент по реализации!!! Документ не проводится!!!");

      НеПроводитьДокумент();

      Возврат;

   КонецЕсли;

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

См. также:

СтатусВозврата

УстановитьРеквизитСправочника

Записать значение периодического реквизита справочника с привязкой к документу.

Синтаксис:

УстановитьРеквизитСправочника(<ЭлементСправочника>, <НазваниеРеквизита>,

                 <3начение>, <ДатаУстановки>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetRefField

Параметры:

<ЭлементСправочника> | Выражение, задающее элемент справочника, в котором требуется записать новое значение периодического реквизита.
<НазваниеРеквизита> | Строковое выражение — название периодического реквизита справочника (как он назван в конфигураторе) в котором требуется записать новое значение периодического реквизита.
<3начение> | Новое значение периодического реквизита.
<ДатаУстановки> | Выражение типа «дата», на которую требуется установить новое значение периодического реквизита. Этот параметр имеет смысл только для не оперативных документов и позволяет установить значение на другую дату чем дата документа, но тогда с пустым временем.
<ИмяТипа> | Необязательный параметр. Строковое выражение — название типа данных (или Вид субконто).
<Длина> | Необязательный параметр. Число — длина числового или строкового значения.
<Точность> | Необязательный параметр. Число знаков после десятичной точки для числового значения.

Описание:

Метод УстановитьРеквизитСправочника записывает новое значение периодического реквизита справочника с привязкой к документу. Использование Данного метода позволяет вносить изменения в справочники с привязкой к проведению документа. Это значит, что при удалении или редактировании или отказе от проведения документа все сделанные им изменения в справочнике будут корректно отменены. Средства языка позволяют выбирать такие движе-иия справочника по документу или определять документ, который произвел изменения в справочнике (см. «Работа с объектом Периодический»).

Параметры <ИмяТипа>, <Длина> и <Точность> следует указывать при установке значения периодического реквизита справочника имеющего неопределенный тип.

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Системные предопределенные процедуры»).

Пример:

// при работе в контексте документа, его реквизит "Сотрудник"

// является переменной типа "справочник",

// чтобы установить новое значение периодического

// реквизита "Оклад" этого элемента

// справочника с привязкой к документу

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

   // .....

   Моклад = Константа.МаксимальныйОклад;

   УстановитьРеквизитСправочника(Сотрудник, "Оклад", МОклад, ДатаДок);

   // .....

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

ОчиститьДвижения

Удалить движения документа.

Синтаксис:

ОчиститьДвижения(<ВидыДвижений>)

Англоязычный синоним:

ClearActions

Параметры:

<ВидыДвижений>

Необязательный параметр. Строковое выражение, в котором через «;» перечислены виды движений. В качастве видов движений можно задавать следующие строковые значения:

· "Регистр.ХХХХХХ" — движение конкретного регистра, где ХХХХХХ — конкретный вид регистра;

· "Операция" — бухгалтерская операция;

· "Справочник" — все изменения периодических реквизитов справочников;

· "ЖурналРасчетов" — все измененияв журналах расчетов. Если данный параметр не задан, то производится полная очистка всех движений.

Описание:

Метод ОчиститьДвижения удаляет существующие движения документа.

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

Если метод не вызывается при распроведении документа, то существующие движения после распроведения стираются.

Использование данного метода позволяет:

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

· делать движения, анализируя ранее сделанные и уже существующие;

· выполнять распроведение документа, анализируя существующие движения;

· не очищать существующие движения при перепроведении, если это не нужно.

Замечание. Данный метод доступен только при отключенном в конфигурации флаге «Автоматическое удаление движений».

Замечание. Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

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

   ОчиститьДвижения("Операция; Справочник; ЖурналРасчетов");

   ДвиженияРегистровНакладных(Контекст);

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

// —————————————————————————————————————

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

   ОчиститьДвижения();

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

ПривязыватьСтроку

Записывать номер строки документа в движениях документа.

Синтаксис:

ПривязыватьСтроку(<НомерСтроки>)

Англоязычный синоним:

LinkLine

Параметры:

<НомерСтроки>

Выражение, содержащее номер строки документа.

Описание:

Метод ПривязыватьСтроку устанавливает, что при выполнении всех последующих движений регистров, при записи значений периодических реквизитов справочников с привязкой к документу, а также при записи бухгалтерских проводок движения будут записываться с номером строки <НомерСтроки>.

Метод ПривязыватьСтроку может быть использован как системная процедура: тогда он будет устанавливать номер строки для всех регистров по которым выполняются движения, или как метод конкретного регистра: тогда он будет устанавливать номер строки только для данного регистра.

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения.

Пример:

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

   ПривязыватьСтроку(НомерСтроки);

   Регистр.ТовЗап.Склад = Склад;

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

   Пока(ПолучитьСтроку() > 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

Предопределенные процедуры Модуля документа

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях документов (см. «Виды программных модулей»).

Данные предопределенные процедуры вызываются как при интерактивном так и при программном возникновении события.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ОбработкаПроведения

Предопределенная процедура обработки проведения документа.

Синтаксис:

ОбработкаПроведения(<3нач>)

Англоязычный синоним:

Posting

Параметры:

<3нач>

Необязательный параметр. Идентификатор переменной, в которую системой будет передано значение параметра, если проведение документа запущено программно при помощи метода Провести. Использовать данное значение можно, например, для того, чтобы в процедуре ОбработкаПроведения правильно отработать режим проведения, т. к. в случае вызова метода Провести это будет программный, а не интерактивный и не групповой (см. ГрупповаяОбработка) способ проведения документа.

Описание:

Процедура ОбработкаПроведения — предопределенная процедура. Она не является встроенной процедурой языка. Для нее определено только название и синтаксис. Тело процедуры должно быть написано разработчиком конфигурации в Модуле документа (см. «Виды программных модулей»). Собственно говоря, весь алгоритм проведения документа и заключается в данной процедуре.

Вызов процедуры ОбработкаПроведения производится в системе 1С:Предприятие неявно при выполнении проведения документа в любом режиме (интерактивное проведение документа, групповое проведение, программная инициализация проведения при помощи метода Провести). Если проведение документа запущено программно, то система подставляет фактическое значение параметра <3нач>, содержащее значение параметра, заданного при вызове метода Провести.

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выполняет все действия через транзакцию (см. «Процедуры работы с транзакциями»), поэтому никаких специальных действий по обработке транзакций в этих предопределенных процедурах предпринимать не нужно.

Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя проводить документ), то проведение документа не будет выполнено и будет отменена системная транзакция.

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения нельзя использовать элементы интерактивного управления (например, операторы Предупреждение, Вопрос, ВвестиЧисло и т. п.), т. к. в этом случае при открытой транзакции система ожидает отклика пользователя, а все остальные пользователи ждут завершения транзакции (в результате документы у всех остальных пользователей в этот момент не могут проводиться). Если в конфигурации необходимо при проведении документа выдавать пользователю некоторые coofi щения, то следует использовать операторы Сообщить или Состояние

Для корректного выполнения алгоритма проведения документа в Модуле документа доступны методы ИтогиАктуальны и ГрупповаяОбработка, которые позволяют правильно определить режим проведения документа (см. «Работа с документами»).

Данная предопределенная процедура может располагаться только в Модулях документов (см. «Виды программных модулей»).

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

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

   Пока( ПолучитьСтроку() > 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

См. также: СтатусВозврата, МтогиАктуальны, ГрупповаяОбработка, Провести

ОбработкаУдаленияПроведения

Предопределенная процедура обработки удаления проведения документа.

Синтаксис:

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

Англоязычный синоним:

UnPostingProcess

Описание:

Процедура ОбработкаУдаленияПроведения — предопределенная процедура. Она не является встроенной процедурой языка. Для нее определено только название и синтаксис. Тело процедуры должно быть написано разработчиком конфигурации в Модуле документа (см. «Виды программных модулей»). Вызов процедуры ОбработкаУдаленияПроведения производится в системе 1С:Предприятие неявно при отмене проведения документа или при удалении проведенных документов в любом режиме — интерактивно или программно. (см. СделатьНеПроведенным, Удалить).

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выполняет все действия через транзакцию (см. «Процедуры работы с транзакциями»), поэтому никаких специальных действий по обработке транзакций в этих предопределенных процедурах предпринимать не нужно.

Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя отменять проведение документа) то отмена проведения документа не будет выполнена и будет отменена системная транзакция.

Замечание. В предопределенных процедурах ОбработкаУдаленияПроведения и ОбработкаПроведения нельзя использовать элементы интерактивного управления (например, операторы Предупреждение, Вопрос, ВвестиЧисло и т. п.), т. к. в этом случае при открытой транзакции система ожидает отклика пользователя, а все остальные пользователи ждут завершения транзакции (в результате документы у всех остальных пользователей в этот момент не могут проводиться). Если в конфигурации необходимо при проведении документа выдавать пользователю некоторые сообщения, то следует использовать операторы Сообщить или Состояние.

Данная предопределенная процедура может располагаться только в Модулях документов (см. «Виды программных модулей»).

Пример:

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

   // Процедура выполняется при отмене проведения

   // или удалении документа

   // Сотрудник — это реквизит документа

   СпрСотрудники.НайтиЭлемент(Сотрудник);

   // если нашли сотрудника...

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

      // СтРасч — это реквизит документа

      СпрСотрудники.НайтиЭлемент(СтРасч);

      ВозвратРасч = 0;

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

         // если старый расчетчик еще есть — откатим!

         ВозвратРасч = 1;

      КонецЕсли;

      СпрСотрудники.НайтиЭлемент(Сотрудник);

      Если ВозвратРасч = 1 Тогда

         СпрСотрудники.Родитель = СтРасч;

      КонецЕсли;

      СпрСотрудники.Записать();

   КонецЕсли;

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

См. также: СтатусВозврата, СделатьНеПроведенным, Удалить

АрхивироватьДокумент

Предопределенная процедура обработки архивирования документа.

Синтаксис:

АрхивироватьДокумент()

Англоязычный синоним:

ArchiveDocument

Описание:

Вызов процедуры АрхивироватьДокумент производится в системе 1С:Предприятие неявно в процессе смены расчетного периода журнала расчетов "вперед" (т. н. архивация данных расчета), если в журнале расчетов содержатся записи, порожденные данным документом.

Тело процедуры должно быть написано разработчиком конфигурации в Модуле документа, вызываемом в конфигураторе: Документ — Редактировать — Модуль документа.

Пример:

Процедура АрхивироватьДокумент()

   // Процедура выполняется при архивации документа расчета

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   Если Окончание > ЖР.КонецТекущегоПериода() Тогда

      Зарегистрировать(ТекущийДокумент());

   КонецЕсли;

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

Команды организации механизма заполнения документа методом подбора

При вводе документа, процесс заполнения реквизитов многострочной части документа может быть реализован как обычным способом, так и при помощи специального механизма — методом подбора. Этот механизм предназначен для ускорения интерактивного заполнения значений реквизитов документов типа «справочник» и «документ». Реальным примером может служить процесс заполнения спецификации накладной путем подбора нужных товаров из справочника "Товары".

В системе 1С:Предприятие для реализации подбора предназначены следующие системные процедуры:

· ОткрытьПодбор;

· Активизировать;

· АктивизироватьСтроку.

Кроме того, при обработке выбранных в подборе значений участвует следующая системная предопределенная процедура:

· ОбработкаПодбора.


Part13

Глава 13
Работа с Журналами документов

Контекст работы с журналами документов

Журнал документов — средство для работы со списком документов. В терминах языка журнал не является специальным типом данных (он не имеет значения, его нельзя создать при помощи функции СоздатьОбъект).

С журналом в системе связана форма отображения списка документов и программный модуль формы журнала документов (см. «Виды программных модулей»). В локальном контексте этого программного модуля непосредственно доступны реквизиты формы журнала. Кроме того, здесь непосредственно доступен атрибут «только для чтения» — ТекущийДокумент, содержащий значение выбранного в журнале документа.

Атрибуты контекста Модуля формы журнала документов

Описанный в данном разделе атрибут можно вызывать только в Модуле формы журнала (см. «Виды программных модулей»).

ТекущийДокумент

Синтаксис:

ТекущийДокумент

Англоязычный синоним:

CurrentDocument

Описание:

Атрибут (только для чтения) ТекущийДокумент содержит значение выбранного в журнале документа. Этот атрибут позволяет использовать в программе полученное значение документа. Поскольку данный атрибут фактически является ссылкой на позиционируемый объект типа «документ», то поэтому для передачи или запоминания самого значения текущего документа журнала рекомендуется использовать конструкцию

ТекущийДокумент.ТекущийДокумент()

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

Пример:

// только в модуле Формы журнала документа

// ———————————————————————————————————————

функция Операция()

   Если Число(ТекущийДокумент.Выбран()) > 0 Тогда

      Возврат "" + ТекущийДокумент.ДатаДок + " " + ТекущийДокумент.Вид;

   Иначе

      Возврат "Пусто";

   КонецЕсли;

КонецФункции

//————————————————————————————————————————

Функция ЖурналСумма()

   Если Число(ТекущийДокумент.Выбран()) > 0 тогда

      Возврат Константа.МинЗарплата.Получить(ДатаДок);

   Иначе

      Возврат 0;

   КонецЕсли;

КонецФункции

Методы контекста Модуля формы журнала документов

Описанные в данном разделе методы доступны только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Отбор по значениям может производиться только в «Общем» журнале, т. е. в котором установлен признак «Все документы». Таким образом, отбор по значениям может выступать в качестве альтернативного способа выбора документов в журнале, относительно выбору документов по видам. С другой стороны, сам набор ссылок на реквизиты документов определенных видов в настройке графы отбора определяет состав видов документов включаемых в данный отбор. Для того, чтобы при открытии журнала не показывался список всех документов, следует в предопределенной процедуре ПриОткрытии установить отбор по несуществующему значению отбора, например, по пустому значению.

ВидыОтбора

Установить доступные виды отборов журнала для вызова их в интерактивном режиме.

Синтаксис:

ВидыОтбора(<СписокИменОтборов>)

Англоязычный синоним:

KindsOfSelection

Параметры:

<СписокИменОтборов>

Необязательный параметр. Строковое выражение, содержащее список имен отборов для журнала. Виды указываются через запятую. Если вместо списка — символ "*", то значит для журнала используются все назначенные в конфигураторе виды отборов.

Возвращаемое значение:

Строковое значение, содержащее текущий список имен отборов для журнала, разделенных запятыми (на момент до исполнения метода).

Описание:

Метод ВидыОтбора устанавливает доступные виды отборов журнала для вызова их в интерактивном режиме.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

ВидыОтбора("Склад, Клиент, Автор");

ЗакладкиОтбора

Установить в форме журнала закладки для интерактивного осуществления отбора.

Синтаксис:

ЗакладкиОтбора(<ИмяОтбора>, <ФлагОтбораЗначенийВИнтервалеЖурнала>,

               <ФлагУстановкиЗначенияОтбора>, <3начение0тбора>)

Англоязычный синоним:

TabCtrlSelection

Параметры:

<ИмяОтбора> | Строковое выражение, содержащее имя отбора.
<ФлагОтбораЗначенийВИнтервалеЖурнала> | Числовое выражение: 1 — текущие значения отбора для закладок выбираются только по документам в установленном интервале журнала; 0 — текущие значения отбора для закладок выбираются по всем документам журнала.
<ФлагУстановкиЗначенияОтбора> | Числовое выражение: 1 — для отображения сразу выбирается отбор по параметру <3начение0тбора>; 0 — текущее значение отображаемой закладки отбора устанавливается на первое существующее значение.
<3начение0тбора> | Значение отбора.

Описание:

Метод ЗакладкиОтбора устанавливает в форме журнала закладки для интерактивного осуществления отбора.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

ЗакладкиОтбора("Склады", 1, 1, Константа.ОснСклад);

УстановитьОтбор

Установить отбор журнала.

Синтаксис:

УстановитьОтбор(<ИмяОтбора>, <3начение0тбора>)

Англоязычный синоним:

SetSelection

Параметры:

<ИмяОтбора> | Строковое выражение — имя отбора. Если это значение пустое, то отбор отключается.
<3начениеОтбора> | Значение отбора.

Описание:

Метод УстановитьОтбор принудительно устанавливает отбор для журнала.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Замечание. Во всех журналах, кроме журнала подчиненных документов, работает отбор по виду документа. В этом случае синтаксис вызова метода следующий:

УстановитьОтбор(<ВедДокумента>)

Параметры:

<ВидДокумента>

Строковое выражение — вид документа отбора.

Пример:

Изм = УстановитьОтбор("Склады", Склад1);

ПолучитьОтбор

Возвратить текущее значение отбора журнала.

Синтаксис:

ПолучитьОтбор(<ИмяОтбора>, <3начение0тбора>)

Англоязычный синоним:

GetSelection

Параметры:

<ИмяОтбора> | Имя переменной, куда вернется строковое значение имени отбора.
<3начениеОтбора> | Имя переменной, куда вернется значение отбора.

Возвращаемое значение:

Числовое значение: 1 — есть отбор; 0 — если нет отбора.

Описание:

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

Пример:

Изм = ПолучитьОтбор();

УстановитьИнтервал

Установить интервал журнала.

Синтаксис:

УстановитьИнтервал(<ДатаНач>, <ДатаКон>, <ФлагИзменения>)

Англоязычный синоним:

SetRange

Параметры:

<ДатаНач> | Выражение типа «дата» — начало интервала журнала.
<ДатаКон> | Выражение типа «дата» — конец интервала журнала.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения интервала журнала. 1 — пользователь может изменить интервал журнала интерактивно, 0 — пользователь не может интерактивно изменить интервал журнала.

Описание:

Метод УстановитьМнтервал позволяет установить интервал журнала. Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

УстановитьИнтервал(НИ, КИ);

НачалоИнтервала

Возвратить дату начала интервала журнала.

Синтаксис:

НачалоИнтервала()

Англоязычный синоним:

BegOfRange

Возвращаемое значение:

Значение даты начала интервала журнала.

Описание:

Метод НачалоИнтервала позволяет получить дату начала интервала журнала.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

НИ = НачалоИнтервала();

КонецИнтервала

Возвратить дату конца интервала журнала.

Синтаксис:

КонецИнтервала()

Англоязычный синоним:

EndOfRange

Возвращаемое значение:

Значение даты конца интервала журнала.

Описание:

Метод КонецИнтервала позволяет получить дату конца интервала журнала.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();

ПодчинениеДокументу

Установить документ-владелец для журнала подчиненных документов.

Синтаксис:

ПодчинениеДокументу([<Докум>], [<ФлагАвтоСменыПодчинен>])

Англоязычный синоним:

ParentDoc

Параметры:

<Докум> | Необязательный параметр. Выражение типа «документ» — значение документа, подчиненные документы к которому должен отображать журнал.
<флагАвтоСменыПодчинен> | Необязательный параметр. Числовое выражение: 1 — устанавливает способность автоматически обновлять отображение журнала при смене документа-владельца, если такой режим установлен в параметрах системы («Сервис» - «Один журнал»); 0 — снятие режима автоматического обновления отображения журнала.

Возвращаемое значение:

Текущее значение документа, которому подчинен журнал.

Описание:

Метод ПодчинениеДокументу позволяет установить документ-владелец для журнала подчиненных документов.

Данный метод доступен только в контексте Модуля формы журнала подчиненных документов (см. «Виды программных модулей»).

Пример:

ПодчинениеДокументу(Док, 1);

Предопределенные процедуры Модуля формы журнала документов

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы журналов документов (см. «Виды программных модулей»).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ПриУстановкеОтбора

Предопределенная процедура при установке отбора.

Синтаксис:

ПриУстановкеОтбора(<ИмяРеквизОтбора>, <3начение>)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

<ИмяРеквизОтбора> | Строковое значение — название общего реквизита документа (как оно задано в конфигураторе), по которому производится отбор (например, "Автор").
<3начение> | Значение реквизита отбора. Допустим, у документов существует общий реквизит "Автор", по которому решено провести отбор, значит в этом параметре будет передано конкретное значение этого реквизита, по которому решено провести отбор (например, "Сидоров И. А.").

Описание:

Вызов предопределенной процедуры ПриУстановкеОтбора производится системой 1С:Предприятие неявно при интерактивной попытке установить отбор документов в журнале. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя устанавливать данное значение отбора документов), установка не будет выполнена.

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

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора) Если

   НазваниеНабораПрав() = "Продавец" Тогда

      Если (Имя0тбора = "Автор") И (ЗначОтбора <> ТекущПользователь) Тогда

         Предупреждение("У вас нет права просматривать чужие документы!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУстановкеИнтервала

Предопределенная процедура при установке интервала журнала.

Синтаксис:

ПриУстановкеИнтервала(<ДатаНач>, <ДатаКон>)

Англоязычный синоним:

OnSetRange

Параметры:

<ДатаНач> | Дата начала интервала журнала.
<ДатаКон> | Дата конца интервала журнала.

Описание:

Вызов предопределенной процедуры ПриУстановкеИнтервала производится системой 1C:Предприятие неявно при интерактивной попытке установить интервал в журнале документов. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять интервал журнала), установка не будет выполнена.

Пример:

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон) Если

   НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права изменять интервал журнала! , 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата


Part14

Глава 14
Работа с Регистрами оперативного учета

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

При создании регистра определяется, как будет обрабатываться, группироваться и сохраняться сводная информация. Регистры могут быть двух видов: оборотные регистры и регистры остатков.

Регистр остатков — это объект, предназначенный для ведения остатков «ресурсов» на момент времени с привязкой к некоторому набору «измерений».

Оборотный регистр — это объект, предназначенный для подсчета оборота «ресурсов» за заданный интервал времени с привязкой к некоторому набору «измерений».

Ресурсами регистра могут являться любые категории учета, которые могут быть представлены в числовом виде, такие как: «количество товара», «долг клиента», «сумма наличных» и т. п. Измерения регистра — это оси координат, на пересечении которых регистр хранит конкретные значения ресурсов. Кроме того, при записи движения регистра можно задавать «реквизиты» регистра. Значения реквизитов регистра просто сопровождают запись о движении регистра (подобно комментарию) для возможности в дальнейшем производить фильтрацию движений при выборке.

Пример:

* Предположим, что в конфигураторе создан регистр остатков «Товарные_Запасы», который должен содержать сведения об остатке каждого товара на каждом складе, за каждым материально ответственным лицом. В дальнейшем предполагается получать информацию такого типа: «остаток конкретного товара на конкретном складе», «остаток конкретного товара всего» и т. п. В идеологии системы 1С:Предприятие такой регистр представляет собой прямоугольную систему координат, измерениями этого регистра являются: «Товар», «Склад», «МОЛ». Регистр имеет один ресурс — «Количество». Содержание данного регистра можно представить в виде следующей таблицы, где по каждому конкретному товару на конкретном складе за конкретным МОЛ числится определенное Количество.

Товар | Склад | МОЛ | Количество
Стол | Первый | Иванов | 10
Стол | Первый | Петров | 20
Стол | Второй | Иванов | 5
Шкаф | Первый | Петров | 7
Шкаф | Второй | Иванов | 2
Шкаф | Второй | Петров | 8
Шкаф | Третий | Петров | 10

Структура каждого конкретного вида регистра определяется при его создании в конфигураторе. Измерения, ресурсы и реквизиты регистров определяются в конфигураторе конкретно для каждого создаваемого вида регистра.

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

Под термином «остаток» ресурса для регистра остатков следует понимать числовое значение, которое имеет ресурс на какой-то момент времени. Именно здесь и проявляется понятие Точки Актуальности (далее ТА). ТА — это тот момент времени (дата+время), на который все необоротные регистры содержат текущие значения своих ресурсов. Другими словами, если просто запросить у регистра остатков значение какого-либо ресурса, то он выдаст его именно на момент ТА. Если необходимо узнать значение ресурса на какой-либо прошедший момент времени, то надо либо сдвинуть в прошлое ТА (для этого используется интерактивная операция «Управления итогами»), либо при помощи средств встроенного языка следует запустить «временный расчет» регистра. При «временном расчете» регистра остатков можно задать момент времени, на который необходимо получить значение ресурса. В этом случае значение ресурса рассчитывается, что требует несколько большего времени процессора, чем если получать ресурс на ТА. Однако, «временный расчет» рассчитывается не с начала всех времен, а от начала месяца. Регистры остатков хранят промежуточные значения ресурсов на начало каждого месяца (именно с этим связана процедура «переход на новый период»). Таким образом, если при «временном расчете» указать момент времени в начале месяца, то, в общем случае, расчет будет выполнен быстрее, чем если указать конец месяца.

Кроме хранения остатка или оборота ресурсов, регистры хранят все «приращения» (приход со знаком «+», расход со знаком «-»), произведенные документами (это обозначается термином «движения регистра»). Причем, эти «при-оащения» регистров хранятся со ссылками на те документы, которые их вызвали. Поэтому, во встроенном языке системы 1С:Предприятие есть методы, чтобы получить из регистра все его движения (с привязкой к документам), указав интервал времени, за который они нужны.

Документы, как объекты прикладной задачи, тесно связаны с регистрами. Именно документы, и только они могут изменять значения ресурсов в регистрах (этот алгоритм прописывается в предопределенной процедуре ОбработкаПроведения для каждого вида документа). Никаким другим способом, кроме как через проведение документов на содержимое регистров повлиять нельзя. Например, нельзя создать отчет, который бы изменял значения, хранящиеся в регистрах. Движения (приращения) регистров выполняются в момент «проведения» документа. С другой стороны, документы не порождают в регистрах необратимых действий. Что это значит? Если ранее проведенный документ удалить или сделать его непроведенным, то удалятся и все движения регистров, порожденные им. Если отредактировать (изменить) ранее проведенный документ, то после перепроведения документа все движения регистров, порожденные ранее, удалятся и заменятся новыми.

Замечание: Формирование движений документов по регистрам доступно только в Модуле документа в системной предопределенной процедуре ОбработкаПроведения.

Контекст работы с регистрами

В синтаксисе языка применение атрибутов и вызов методов регистров может выполняться двумя способами:

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

Пример:

Флаг = Регистр.ОстаткиТовара.Приход;

· Во всех программных модулях доступ к атрибутам и методам регистров __ может выполняться при помощи переменной со ссылкой на объект типа регистр. Объект создается функцией СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать атрибут или метод объекта, имя этого атрибута или метода (с указанием необходимых параметров) пишется через точку после имени объекта При создании объекта типа регистр, в качестве названия регистра обязательно должно выступать полное имя конкретного регистра, как оно объявлено в конфигураторе. Вид регистра записывается через точку после ключевого слова Регистр, т. е. полное имя регистра записывается следующим образом:

Регистр.<ХХХХХ>

где <ХХХХХ> — вид регистра, объявленный в конфигураторе. Англоязычный синоним ключевого слова Регистр — Register.

Пример:

Рег = СоздатьОбъект("Регистр.ТовЗап");

Атрибуты регистров

Приход

Флаг движения регистра «приход».

Синтаксис:

Приход

Англоязычный синоним:

Income

Описание:

Атрибут Приход содержит значение флага записи движения регистра и используется только при обращении к существующим записям движений регистров. Данный атрибут только для чтения. Атрибут Приход может принимать числовое значение 1 — если текущее движение регистра приход, 0 — если нет.

Данный атрибут не имеет смысла для оборотных регистров.

Пример:

Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");

Если Режим = "Подробно" Тогда

   Рег1.УстановитьФильтр(Клиент);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   Пока Рег1.ПолучитьДвижение()>0 Цикл

      Если Число(Рег1.Клиент.Код) <> Число(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Приход = 1 Тогда

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

      Иначе

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

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

Расход

Флаг движения регистра «расход».

Синтаксис:

Расход

Англоязычный синоним:

Outcome

Описание:

Атрибут Расход содержит значение флага записи движения регистра и используется только при обращении к существующим записям движений регистров. Данный атрибут только для чтения. Атрибут Расход может принимать числовое значение 1 — если текущее движение регистра расход, 0 — если нет.

Данный атрибут не имеет смысла для оборотных регистров.

Пример:

Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");

Если Режим = "Подробно" Тогда

   Рег1.УстановитьФильтр(Клиент);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   Пока Рег1.ПолучитьДвижение() > 0 Цикл

      Если Число(Рег1.Клиент.Код) <> Число(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

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

      Иначе

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

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

<Измерение>

Установить значение измерения регистра.

Синтаксис:

<Измерение>

Описание:

Атрибут <Измерение> задает значение выбранного измерения регистра. В тексте программного модуля используется название конкретного измерения регистра, как он назван в конфигураторе.

Пример:

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

   // В регистре "ТовЗап" измерениями являются "Склад" и "Товар"

   // ресурсами являются "Количество" и "Стоимость"

   Регистр.ТовЗап.Склад = Склад;

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

   Пока (ПолучитьСтроку() > 0) Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

<Ресурс>

Установить значение ресурса регистра.

Синтаксис:

<Ресурс>

Описание:

Атрибут <Ресурс> задает значение выбранного ресурса регистра. В тексте программного модуля используется название конкретного ресурса регистра, как он назван в конфигураторе.

Пример:

См. предыдущий пример.

<Реквизит>

Установить значение реквизита регистра.

Синтаксис:

<Реквизит>

Описание:

Атрибут <Реквизит> задает значение выбранного реквизита регистра. В тексте программного модуля используется название конкретного реквизита регистра, как он назван в конфигураторе.

Пример:

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

   // В регистре "ТовЗап" измерениями являются "Склад" и "Товар"

   // ресурсами являются "Количество" и "Стоимость"

   // реквизитом является "ВнутрПеремещение"

   Регистр.ТовЗап.Склад = Склад;

   Если Вид() = "Перемещение" Тогда

      Регистр.ТовЗап.ВнутрПеремещение = 1;

   Иначе

      Регистр.ТовЗап.ВнутрПерсмещение = 0;

   КонецЕсли;

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

   Пока ПолучитьСтроку() > 0 Цикл

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

Методы оборотных регистров

Описанные в данном разделе методы используются только для оборотных регистров.

ИспользоватьПериод

Установить период выборки итогов оборотного регистра.

Синтаксис 1:

ИспользоватьПериод(<Дата>)

Синтаксис 2:

ИспользоватьПериод(<Год>, <Месяц>, <День>)

Синтаксис 3:

ИспользоватьПериод(<Год>, <НомерНедели>)

Синтаксис 4:

ИспользоватьПериод (<Год>, <Месяц>, <НомерДекады>)

Синтаксис 5:

ИспользоватьПериод(<Год>, <Месяц>)

Синтаксис 6:

ИспользоватьПериод(<Год>, <НомерКвартала>)

Синтаксис 7:

ИспользоватьПериод(<Год>)

Англоязычный синоним:

UseРег1od

Параметры:

<Дата> | Выражение типа «дата».
<Год> | Числовое выражение, содержащее номера года.
<Месяц> | Числовое выражение, содержащее номер месяца.
<День> | Числовое выражение, содержащее номер дня месяца.
<НомерДекады> | Числовое выражение, содержащее номер декады месяца.
<НомерКвартала> | Числовое выражение, содержащее номер квартала.

Описание:

Метод ИспользоватьПериод устанавливает период выборки итогов оборотного регистра. Различный синтаксис вызова данного метода зависит от заданного в конфигураторе интервала оборотного регистра.

Заданный в конфигураторе Интервал | Используемый синтаксис
День | синтаксис 1 и 2.
Неделя | синтаксис 1 и 3.
Декада | синтаксис 4.
Месяц | синтаксис 5.
Квартал | синтаксис 6.
Год | синтаксис 7.

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

Пример:

Регистр.ОборотыТоваров.ИспользоватьПериод(1996);

Итог

Возвратить итог одного ресурса оборотного регистра.

Синтаксис:

Итог(<Измерен1>, <Измерен2>..., <ИмяРесурса>)

Англоязычный синоним:

Total

Параметры:

<Измерен1>, <Измерен2>... | Выражения со значениями измерений регистра.
<ИмяРесурса> | Строковое выражение, содержащее название требуемого ресурса регистра, как оно названо в конфигураторе.

Возвращаемое значение:

Численое значение итога заданного ресурса регистра.

Описание:

Метод Итог возвращает итог по ранее установленному периоду ресурса <ИмяРесурса> оборотного регистра.

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

Пример:

Функция ПолучитьИтог(Товар, Склад, Год);

   Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

   Возврат Регистр.ОборотыТоваров.Итог(Товар, Склад, "ОборотТовара");

КонецФункции

Итоги

Извлечь все итоги ресурсов оборотного регистра.

Синтаксис:

Итоги(<Измерен1>, <Измерен2>...)

Англоязычный синоним:

Totals

Параметры:

<Измерен1>, <Измерен2>...

Выражения со значениями измерений регистра.

Описание:

Метод Итоги извлекает итоги по всем ресурсам по ранее установленному периоду оборотного регистра. Полученные итоги ресурсов затем можно считывать из атрибутов регистра.

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

Пример:

Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

Регистр.ОборотыТоваров.Итоги(Товар, Склад);

ОбТов = Регистр.ОборотыТоваров.ОборотТовара;

СводныйИтог

Возвратить сводный итог ресурса оборотного регистра.

Синтаксис:

СводныйИтог(<Измерен1>, <Измерен2>..., <ИмяРесурса>)

Англоязычный синоним:

ConsolidatedTotal

Параметры:

<Измерен1>, <Измерен2>... | Выражения со значениями измерений регистра.
<ИмяРесурса> | Строковое выражение, содержащее название требуемого ресурса регистра, как оно названо в конфигураторе.

Возвращаемое значение:

Численое значение сводного итога заданного ресурса регистра.

Описание:

Метод СводныйИтог возвращает сводный итог ресурса <ИмяРесурса> оборотного регистра. Данный метод работает аналогично методу Итог, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.

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

Пример:

Функция ПолучитьСводныйИтог(Товар, Год);

   Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

   Возврат Регистр.ОборотыТоваров.СводныйИтог(Товар, , "ОборотТовара");

КонецФункции

СводныеИтоги

Извлечь сводные итоги ресурсов оборотного регистра.

Синтаксис:

СводныеИтоги(<Измерен1>, <Измерен2>...)

Англоязычный синоним:

ConsolidatedTotals

Параметры:

<Измерен1>, <Измерен2>...

Выражения со значениями измерений регистра.

Описание:

Метод СводныеИтоги извлекает по переданным в качестве параметров измерениям сводные итоги всех ресурсов оборотного регистра. Полученные ресурсы затем можно считывать из атрибутов регистра. Метод работает аналогично процедуре Итоги, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение -просто запятая), фиксируются только указанные измерения.

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

Пример:

Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

Регистр.ОборотыТоваров.СводниеИтоги(Товар, );

ПолныйОбТов = Регистр.ОборотыТоваров.ОборотТовара;

ИтогиПолучить

Получить все ресурсы по регистру.

Синтаксис:

ИтогиПолучить()

Англоязычный синоним:

TotalsGet

Описание:

Метод ИтогиПолучить извлекает все итоги ресурсов оборотного регистра по измерениям, содержащимся в атрибутах. Полученные ресурсы затем можно считывать из атрибутов регистра.

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

Пример:

Регистр.ОборотыТоваров.Товар = Конт.Товар;

Регистр.ОборотыТоваров.Склад = Конт.Склад;

Регистр.ОборотыТоваров.ИтогиПолучить();

Сообщить("Оборот товара=" + Регистр.ОборотыТоваров.ОборотТовара;

Методы регистров остатков

Описанные в данном разделе методы используются только для регистров остатков.

Остаток

Возвратить остаток одного ресурса регистра.

Синтаксис:

Остаток(<Измерен1>, <Измерен2>..., <ИмяРесурса>)

Англоязычный синоним:

Rest

Параметры:

<Измерен1>, <Измерен2>... | Выражения со значениями измерений регистра.
<ИмяРесурса> | Строковое выражение, содержащее название требуемого ресурса регистра, как оно задано в конфигураторе.

Возвращаемое значение:

Численое значение остатка заданного ресурса регистра.

Описание:

Метод Остаток возвращает остаток ресурса <ИмяРесурса> по регистру. Данный метод используется только для регистров остатков.

Пример:

Процедура ПолучитьОстаток(Товар, Склад, Ост, Стоим);

   Ост = Регистр.УчетТовара.Остаток(Товар, Склад, "ОстаткиТовара");

   Стоим = Регистр.УчетТовара.Остаток(Товар, Склад, "СтоимостьТовара");

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

СводныйОстаток

Возвратить сводный остаток ресурса по регистру

Синтаксис:

СводныйОстаток(<Измерен1>, <Измерен2>..., <ИмяРесурса>)

Англоязычный синоним:

ConsolidatedRest

Параметры:

<Измepeнl>, <Измepeн2>... | Выражения со значениями измерений регистра.
<ИмяРесурса> | Строковое выражение, содержащее название требуемого ресурса регистра, как оно названо в конфигураторе.

Возвращаемое значение:

Численное значение сводного остатка заданного ресурса регистра.

Описание:

Метод СводныйОстаток возвращает сводный остаток ресурса <ИмяРесурса> по регистру. Данный метод работает аналогично методу Остаток, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.

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

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.СводныйОстаток(Тов1, , "ОстатокТовара");

означает, что ресурс «ОстатокТовара» будет получен только по одному товару (Тов1), но по всем складам и всем МОЛам.

*

Процедура ПолучитьСводныйОстаток(Товар, Ост);

   Ост = Регистр.УчетТовара.СводныйОстаток(Товар, , "ОстаткиТовара");

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

Остатки

Извлечь все ресурсы по регистру.

Синтаксис:

Остатки(<Измерен1>, <Измерен2>...)

Англоязычный синоним:

Rests

Параметры:

<Измерен1>, <Измерен2>...

Выражения со значениями измерений регистра.

Описание:

Метод Остатки извлекает по переданным в качестве параметров измерениям все ресурсы по регистру. Полученные ресурсы затем можно считывать из атрибутов регистра.

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

Пример:

Процедура ПолучитьОстатки(Товар, Склад, ОстатокТовара, Стоимость);

   Регистр.УчетТовара.Остатки(Товар, Склад);

   ОстатокТовара = Регистр.УчетТовара.ОстаткиТовара;

   Стоимость = Регистр.УчетТовара.СтоимостьТовара;

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

СводныеОстатки

Извлечь сводные ресурсы по регистру.

Синтаксис:

СводныеОстатки(<Измерен1>, <Измерен2>...)

Англоязычный синоним:

ConsolidatedRests

Параметры:

<Измерен1>, <Измерен2>...

Выражения со значениями измерений регистра.

Описание:

Метод СводныеОстатки извлекает по переданным в качестве параметров измерениям все ресурсы по регистру. Полученные ресурсы затем можно считывать из атрибутов регистра. Метод работает аналогично процедуре Остатки, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.

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

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.СводныеОстатки(Тов1, , );

означает, что ресурсы будут получены только по одному товару (Тов1), но по всем складам и всем МОЛам.

*

Процедура ПолучитьСводныеОстатки(Товар, ОстатокТовара, Стоимость);

   Регистр.УчетТовара.СводныеОстатки(Товар, );

   ОстатокТовара = Регистр.УчетТовара.ОстаткиТовара;

   Стоимость = Регистр.УчетТовара.СтоимостьТовара;

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

ОстаткиПолучить

Получить все ресурсы по регистру.

Синтаксис:

ОстаткиПолучить()

Англоязычный синоним:

GetRests

Описание:

Метод ОстаткиПолучить извлекает все ресурсы регистра по измерениям содержащимся в атрибутах. Полученные ресурсы затем можно считывать из атрибутов регистра.

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

Пример:

Регистр.Взаиморасчеты.Клиент = Конт.Клиент;

Регистр.Взаиморасчеты.ОстаткиПолучить();

Сообщить("Долг клиента по заиморасчетам="

         + СокрЛ(Регистр.Взаиморасчеты.СуммаВалютная);

Выбрать ДвиженияСОстатками

Выбрать все движения регистра с остатками.

Синтаксис:

ВыбратьДвиженияСОстатками(<КонецВыборки>, <ГрафаОтбора>)

Англоязычный синоним:

SelectActsWithRests

Параметры:

<КонецВыборки> | Выражение типа дата, документ или позиция документа задающее конец временного интервала выбора движений регистра.
<ГрафаОтбора> | Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

Метод ВыбратьДвиженияСОстатками инициирует выбор всех движении регистра в указанном интервале дат. До вызова данной процедуры может быть установлен фильтр (см. УстановитьФильтр), ограничивающий выборку значений из регистра. Если <КонецВыборки> не указан или равен 0, то конном временного интервала выбора движений регистра считается ТА.

Данный метод отличается от метода ВыбратьДвижения тем, что после получения очередного движения метод Остаток будет выдавать актуальные значения остатков для этого регистра. Но для этого перед вызовом метода ВыбратьДвиженияСОстатками регистру должен быть установлен признак временногоРасчета» (см. ВременныйРасчет) и должен быть выполнен временный расчет (см. РассчитатьРегистрыНа и РассчитатьРегистрыПо) — его дата и будет являться начальной датой выбираемых движений регистра. Данная возможность не может быть использована совместно с дальнейшими «Временными» расчетами.

Собственно выбор первого и последующих движений регистра осуществляется методом ПолучитьДвижение.

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

Пример:

Рег = СоздатьОбъект("Регистр.Взаиморасчеты");

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент, );

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");

   Док = Рег.ТекущийДокумент();

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

КонецЦикла;

См. также: УстановитьФильтр, ПолучитьДвижение, ВыбратьДвижения, ВременныйРасчет, РассчитатьРегистрыНа, РассчитатьРегистрыПо

Общие методы регистров

Описанные в данном разделе методы используются как для регистров остатков так и для оборотных регистров.

Вид

Определить название вида регистра.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строковое значение, содержащее название вида регистра.

Описание:

Метод Вид позволяет определить название вида регистра, как он задан ь конфигураторе.

Пример:

// отобразим вид регистра в строке состояния

Состояние(Рег1.Вид());

ПредставлениеВида

Определить пользовательское представление вида регистра.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида регистра (синоним регистра или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское представление вида регистра, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния Состояние

(Рег1.ПредставлениеВида());

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяРеквизита> | Строковое выражение — название реквизита регистра неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> | Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту регистра. Например: "Строка", "Число", "Справочник.Товары", " Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

Регистр.УчетТМЦ.НазначитьТип("ТМЦ", "Справочник.Товары");

УстановитьАтрибут

Установить значение атрибута по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

Англоязычный синоним:

SetAttrib

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе.
<3начение> | Выражение, содержащее устанавливаемое значение атрибута.

Описание:

Метод УстановитьАтрибут позволяет установить значение атрибута по имени идентификатора, как оно задано в конфигураторе.

Пример;

Рег.УстановитьАтрибут("Сумма", СуммаТов);

ПолучитьАтрибут

Получить значение атрибута по идентификатору.

Синтаксис:

ПолучитьАтрибут(<ИмяАтрибута>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяAтpибyтa>

Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе.

Возвращаемое значение:

Значение атрибута <ИмяАтрибута>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение атрибута по идентификатору, как оно задано в метаданных.

Пример:

СуммаТов = Рег.ПолучитьАтрибут("Сумма");

ВыбратьДвижения

Выбрать все движения регистра по датам.

Синтаксис:

ВыбратьДвижения(<НачалоВыборки>, <КонецВыборки>, <ГрафаОтбора>)

Англоязычный синоним:

SelectActs

Параметры:

<НачалоВыборки> | Выражение типа дата, документ или позиция документа, задающее начало временного интервала выбора движений регистра.
<КонецВыборки> | Выражение типа дата, документ или позиция документа задающее конец временного интервала выбора движений регистра.
<ГрафаОтбора> | Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

Метод ВыбратьДвижения инициирует выбор всех движений регистра в указанном интервале дат. До вызова данной процедуры может быть установлен фильтр (см. УстановитьФильтр), ограничивающий выборку значений из регистра. Если <КонецВыборки> не указан или равен 0, то концом временного интервала выбора движений регистра считается ТА.

Собственно выбор первого и последующих движений регистра осуществляется функцией ПолучитьДвижение.

Пример:

Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");

Если Режим = "Подробно" Тогда

   Рег1.УстановитьФильтр(Клиент);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   Пока Рег1.ПолучитьДвижение() > 0 Цикл

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

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

      Иначе

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

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДвижение

ВыбратьДвиженияДокумента

Выбрать все движения регистра по документу.

Синтаксис:

ВыбратьДвиженияДокумента(<Документ>)

Англоязычный синоним:

SelectDocActs

Параметры:

<Документ>

Значение типа Документ.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один элемент; 0 — если действие не выполнено или в выборке нет ни одного элемента.

Описание:

Метод ВыбратьДвиженияДокумента инициирует выбор всех движений регистра по указанному документу <Документ>.

Собственно выбор первого и последующих движений регистра осуществляется функцией ПолучитьДвижение.

Пример:

Процедура Взаиморасчеты(ВыбКлиент, ДатаНачало, ДатаКонец)

   // Создание Таблицы для выходного отчета

   Заг = "Неизвестно.";

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

   Клн = СоздатьОбъект("Справочник.Клиенты");

   Клн.ИспользоватьДату(ДатаКонец);

   Док = СоздатьОбъект("Документ");

   Рег = СоздатьОбъект("Регистр.Взаиморасчеты");

   Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");

   Рег.ВременныйРасчет();

   РассчитатьРегистрыНа(ДатаКонец);

   Если ВыбКлиент.Выбран() = 0 Тогда

      //Без условий

      Заг = "По всем клиентам.";

   ИначеЕсли ВыбКлиент.ЭтоГруппа() = 1 Тогда

      Клн.ВключатьПодчиненные(ВыбКлиент);

      Клн.ИспользоватьРодителя(ВыбКлиент);

      Заг = "По клиентам группы " + ВыбКлиент.Наименование;

   Иначе

      Предупреждение("Выберите группу клиентов!");

      Возврат;

   КонецЕсли;

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

   Клн.ВыбратьЭлементы();

   Пока Клн.ПолучитьЭлемент() > 0 Цикл

      Если Клн.ЭтоГруппа() = 1 Тогда

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

      Иначе

         Рег.Клиент = Клн.ТекущийЭлемент();

         Рег.ОстаткиПолучить();

         Баз_сум = Рег.СуммаБазовая;

         Вал_сум = Рег.СуммаВалютная;

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

         // цикл по всем документам

         Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

         Пока Док.ПолучитьДокумент() > 0 Цикл

            // отфильтруем документы

            Если (Док.Вид() = "Перемещение") ИЛИ (Док.Вид() = "Счет") ИЛИ

                 (Док.Вид() = "Списание") ИЛИ

                 (Док.Вид() = "РучноеИзмОстатка") Тогда

               // Эти Документы не изменяют Взаиморасчеты

               Продолжить;

            КонецЕсли;

            // выберем все движения регистра по документу

            Рег1.ВыбратьДвиженияДокумента(Док.ТекущийДокумент());

            Пока Рег1.ПолучитьДвижение() > 0 Цикл

               Если Строка(Рег1.Клиент.Код) <> Строка(Клн.Код) Тогда

                  // не тот клиент

                  Продолжить;

               КонецЕсли;

               Дв_Баз_Сум = Рег1.СуммаБазовая;

               Дв_Вал_Сум = Рег1.СуммаВалютная;

               Если Рег1.Приход = 1 Тогда

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

               Иначе

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

               КонецЕсли;

            КонецЦикла;

         КонецЦикла;

      КонецЕсли;

   КонецЦикла;

   //Вызов выходного отчета в окно просмотра и редактирования.

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

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать("Взаиморасчеты с клиентами", "");

   ВыбКлиент = 0;

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

См. также: ПолучитьДвижение

ОбратныйПорядок

Установить порядок выборки документов.

Синтаксис:

ОбратныйПорядок(<Режим>)

Англоязычный синоним:

BackwardOrder

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — выбирать движения документов в обратном порядке даты и времени; 0 — выбирать движения документов в порядке возрастания даты и времени.

Возвращаемое значение:

Числовое значение, содержащее текущее значение режима порядка выборки документов (на момент до исполнения метода).

Описание:

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

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

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

Пример:

Рег = СоздатьОбъект("Регистр.Взаиморасчеты");

Если Режим = "Подробно" Тогда

   Рег1.УстановитьФильтр(Клиент);

   // Открываем выборку

   Рег1.ОбратныйПорядок(1);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   // Цикл выбора движений по регистру

   Пока Рег1.ПолучитьДвижение() > 0 Цикл

      Если Строка(Рег1.Клиент.Код) <> Строка(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

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

      Иначе

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

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

ПолучитьДвижение

Выбрать очередное движение регистра.

Синтаксис:

ПолучитьДвижение()

Англоязычный синоним:

GetDocAct

Возвращаемое значение:

Число: 1 — если следующее движение регистра выбрано успешно; 0 — если движение регистра не найдено (отсутствует).

Описание:

Метод ПолучитьДвижение выбирает следующее движение регистра в последовательности выборки, открытой перед этим при помощи методов ВыбратьДвиженияДокумента или ВыбратьДвижения или ВыбратьДвиженияСОстатками. Данный метод используется для организации цикла по регистру.

После выполнения даннго метода все атрибуты регистра: измерения, ресурсы, Приход и Расход содержат значения текущей записи движения регистра.

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

Пример:

Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");

Если Режим = "Подробно" Тогда

   Рег1.УстановитьФильтр(Клиент);

   // Открываем выборку

   Рег1.ВыбратьДвижения(ДатаНачало, );

   // Цикл выбора движений по регистру

   Пока Рег1.ПолучитьДвижение() > 0 Цикл

      Если Строка(Рег1.Клиент.Код) <> Строка(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

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

      Иначе

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

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

См. также: ВыбратьДвиженияДокумента, ВыбратьДвижения, ВыбратьДвиженияСОстатками

ТекущийДокумент

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

Синтаксис:

ТекущийДокумент()

Англоязычный синоним:

CurrentDocument

Возвращаемое значение:

Значение документа, который задал движение регистра.

Описание:

Метод ТекущийДокумент возвращает значение документа, который задал движение регистра. Метод используется после получения очередного движения регистра (см. методы ПолучитьДвижение и ПолучитьИтог).

Данный метод может использоваться только для переменных созданных функцией СоздатьОбъект.

Пример:

Рег = СоздатьОбъект("Регистр.Взаиморасчеты");

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент, );

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");

   Док = Рег.ТекущийДокумент();

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

КонецЦикла;

См. также: ПолучитьДвижение, НомерСтроки

НомерСтроки

Возвратить номер строки документа, выполнившего движение регистра.

Синтаксис:

НомерСтроки()

Англоязычный синоним:

LineNum

Возвращаемое значение:

Число — номер строки документа, выполнившего движение регистра.

Описание:

Метод НомерСтроки возвращает значение номера строки документа, которая задала движение регистра (в случае, когда в Модуле документа перед движением регистра использовали метод ПривязыватьСтроку). Метод используется после получения очередного движения регистра (см. функции ПолучитьДвижение и ПолучитьИтог).

Данный метод может использоваться только для переменных созданных Функцией СоздатьОбъект.

Пример:

Рег = СоздатьОбъект("Регистр.Взаиморасчеты");

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент);

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");

   Док = Рег.ТекущийДокумент();

   НомСтр = Рег.НомерСтроки();

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

КонецЦикла;

См. также: ПолучитьДвижение, ТекущийДокумент, ПривязыватьСтроку

ВыбратьИтоги

Выбрать все остатки регистра.

Синтаксис:

ВыбратьИтоги()

Англоязычный синоним:

SelectTotals

Описание:

Метод ВыбратьИтоги инициирует перебор текущих или временных (см. ВременныйРасчет) остатков по регистру, при этом используется фильтр, если он установлен (см. УстановитьФильтр). Открывается выборка остатков по всем записанным значениям измерений.

Собственно выбор первого и последующих остатков регистра осуществляется функцией ПолучитьИтог.

Пример:

Процедура ВыбратьКредит()

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

   Рег = СоздатьОбъект("Регистр.ТоварныйКредит");

   Рег.УстановитьФильтр(Клиент, );

   Рег.ВыбратьИтоги();

   Ном = 0;

   Пока Рег.ПолучитьИтог() = 1 Цикл

      Док = Рег.Документ;

      Список.ДобавитьЗначение(Док, "" + Док + " — Остаток = " + Рег.Долг);

      Если Ном = 0 Тогда

         ВыбДок = Док;

      КонецЕсли;

      Ном = Ном + 1;

   КонецЦикла;

   Если Ном > 0 Тогда

      Если Список.ВыбратьЗначение(ВыбДок, "Выберите кредит") = 1 Тогда

         ДокКредита = ВыбДок;

      КонецЕсли;

   КонецЕсли;

   Возврат;

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

См. также: УстановитьФильтр, ПолучитьИтог, ВыбратьДвижения, ВременныйРасчет, РассчитатьРегистрыНа, РассчитатьРегистрыПо

ПолучитьИтог

Выбрать очередной остаток по регистру.

Синтаксис:

ПолучитьИтог()

Англоязычный синоним:

GetTotal

Возвращаемое значение:

Число: 1 — если очередной остаток по регистру выбран успешно; 0 — если очередной остаток по регистру не найден (отсутствует).

Описание:

Метод ПолучитьИтог выбирает очередной остаток по регистру в последовательности выборки, открытой перед этим при помощи метода ВыбратьИтоги. Данный метод используется для организации цикла по регистру — позволяет перебрать текущие или временные (см. ВременныйРасчет) остатки по регистру. При этом используется фильтр, если он установлен (см. УстановитьФильтр). Открывается выборка остатков по всем записанным значениям измерений.

Итоги с нулевыми остатками не выдаются. Порядок выдачи для измерений типа «справочник» и «документ» не определен.

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

Пример:

Процедура ВыбратьКредит()

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

   Рег = СоздатьОбъект("Регистр.ТоварныйКредит");

   Рег.УстановитьФильтр(Клиент, );

   Ном = 0;

   Рег.ВыбратьИтоги();

   Пока Рег.ПолучитьИтог() = 1 Цикл

      Док = Рег.Документ;

      Список.ДобавитьЗначение(Док, "" + Док + " — Остаток = " + Рег.Долг);

      Если Ном = 0 Тогда

         ВыбДок = Док;

      КонецЕсли;

      Ном = Ном + 1;

   КонецЦикла;

   Если Ном > 0 Тогда

      Если Список.ВыбратьЗначение(ВыбДок, "Выберите кредит") = 1 Тогда

         ДокКредита = ВыбДок;

      КонецЕсли;

   КонецЕсли;

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

См. также: ВыбратьИтоги

ВыгрузитьИтоги

Выгрузить все итоги регистра с текущим фильтром в таблицу значений.

Синтаксис:

ВыгрузитьИтоги(<Та6лЗнач>, <ВключатьИзмерФильтра>, <ПредварительноОчищать>)

Англоязычный синоним:

RetrieveTotals

Параметры:

<ТаблЗнач> | Объект типа ТаблицаЗначений, куда система выгрузит все итоги регистра.
<ВключатьИзмерФильтра> | Необязательный параметр. Число: 1 — в получаемую таблицу включаются измерения, закрепленные фильтром; 0 — не включаются. Значение по умолчанию — 0.
<ПредварительноОчищать> | Необязательный параметр. Число: 1 — перед выгрузкой таблица значений очищается; 0 — не очищается. Значение по умолчанию — 1.

Описание:

Метод ВыгрузитьИтоги выгружает все итоги регистра с текущим фильтром (см. УстановитьФильтр) в таблицу значений.

Пример:

Функция ВыбратьКредит(ВыбКлиент)

   Список = СоздатьОбъект("ТаблицаЗначений");

   Рег = СоздатьОбъект("Регистр.ТоварныйКредит");

   Рег.УстановитьФильтр(ВыбКлиент, );

   Рег.ВыгрузитьИтоги(Список, 1);

   Возврат Список;

КонецФункции

См. также: УстановитьФильтр

ВременныйРасчет

Установить флаг участия регистра во временном расчете.

Синтаксис:

ВременныйРасчет(<Флаг>)

Англоязычный термин:

TempCalc

Параметры:

<Флаг>

Необязательный параметр. Числовое выражение. 1 — установить флаг участия регистра во временном расчете; 0 — сбросить флаг участия регистра во временном расчете. Значение по умолчанию — 1.

Возвращаемое значение:

Текущее числовое значение флага участия регистра во временном расчете.

Описание:

Метод ВременныйРасчет устанавливает флаг участия регистра во временном расчете. После такой установки можно выполнять процедуры рассчитатьРегистрыНа и РассчитатьРегистрыПо, тогда у данного регистра методы обращения к остаткам будут выдавать рассчитанные значения остатков на заданный момент времени.

Замечание. В один момент времени только по одному объекту регистров каждого вида могут участвовать во временном расчете.

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект("Регистр.УчетРеализации");

Рег.ВременныйРасчет();

РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

См. также: РассчитатьРегистрыНа, РассчитатьРегистрыПо

УстановитьФильтр

Назначить фильтр для оптимизации действий с регистром.

Синтаксис:

УстановитьФильтр(<Измер1>, <Измер2>..., <Рекв1>, <Рекв2>, ...)

Англоязычный синоним:

SetFilter

Параметры:

<Измер1 >, <Измер2> | Выражения со значениями измерений регистра.
<Рекв1>, <рекв2> | Необязательные параметры. Выражения со значениями реквизитов регистра. Заданные значения реквизитов будут влиять только на отбор движений регистра.

Описание:

Метод УстановитьФильтр назначает фильтр для оптимизации действий с регистром (временные расчеты, выбор движений и итогов).

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

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.УстановитьФильтр(Тов1, , );

означает, что расчеты будут проводиться только по одному товару (Тов1), но по всем складам и МОЛам.

*

Рег = СоздатьОбъект("Регистр.Взаиморасчеты");

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент, );

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");

   Док = Рег.ТекущийДокумент();

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

КонецЦикла;

См. также: ВременныйРасчет

УстановитьЗначениеФильтра

Установить значение фильтра для оптимизации расчетов.

Синтаксис:

УстановитьЗначениеФильтра(<ИзмерИлиРеквизит>, <3начен>, <Вариант>)

Англоязычный синоним:

SetFilterValue

Параметры:

<ИзмерИлиРеквизит>

Идентификатор измерения или реквизита.

<3начен>

Значение или список значений.

<Вариант>

Необязательный параметр. Число: 0 — не фильтровать; 1 — фильтровать по значению; 2 — искать вхождение. Значение по умолчанию 1.

Для варианта «2»:

- если параметр <3начен> — это группа справочника, то осуществляется проверка вхождения в группу;

- если параметр <3начен> — это простой элемент справочника или другой тип значения, то осуществляется просто фильтрация по значению;

- для списка значений осуществляется проверка вхождения в список;

- если пустое значение или пустой список значений, то условие не проверяется.

Описание:

Метод УстановитьЗначениеФильтра назначает фильтр для оптимизации расчетов. В качестве фильтра для измерения или реквизита регистра может задаваться либо конкретное значение, либо список значений либо группа для справочника.

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.УстановитьЗначениеФильтра("Товар", ВыбГруппаТоваров, 2);

означает, что расчеты будут проводиться по товарам из группы ВыбГруппаТоваров.

Методы контекста Модуля документа

Следующие методы доступны только в контексте Модуля документа в системной предопределенной процедуре ОбработкаПроведения.

Замечание. Перечисленные в этом разделе методы можно применять только к регистрам, непосредственно доступным в контексте Модуля документа, т. е. нельзя создать объект типа «регистр» с помощью функции СоздатьОбъект и к нему применять метод из данного раздела.

ПривязыватьСтроку

Записать номер строки документа в движении регистра.

Синтаксис:

ПривязыватьСтроку(<НомерСтроки>)

Англоязычный синоним:

LinkLine

Параметры:

<НомерСтроки> Выражение, содержащее номер строки документа

Описание:

Метод ПривязыватьСтроку устанавливает, что при выполнении всех последующих движений регистров, движения будут записываться с номером строки <НомерСтроки>.

Метод ПривязыватьСтроку может быть использован как системная процедура: тогда он будет устанавливать номер строки для всех регистров по которым выполняются движения, или как метод конкретного регистра: тогда он будет устанавливать номер строки только для данного регистра.

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

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

   Пока(ПолучитьСтроку() > 0) Цикл

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

ДвижениеПриход

Выполнить запись прихода в регистр по параметрам.

Синтаксис:

ДвижениеПриход (<Измерен1>, <Измерен2> ... , <Ресурс1>, <Ресурс2> ...)

Англоязычный синоним:

ActIncome

Параметры:

<Измерен1>, <Измерен2> | Выражения со значениями измерений регистра.
<Ресурс1>, <Ресурс2> | Выражения со значениями ресурсов регистра.

Описание:

Метод ДвижениеПриход выполняет запись прихода в регистр для текущего документа. Измерения регистра, по которым записывается приход передаются параметрами <Измерение1>, <Измерение2>, ... Величина приращений приходуемых ресурсов регистра передаются параметрами <Ресурс1>, <Ресурс2>...

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

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

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

   Пока ПолучитьСтроку() > 0 Цикл

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.ДвижениеПриход(Склад, Товар, Количество, Стоимость);

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеРасход

Выполнить запись расхода в регистр по параметрам.

Синтаксис:

ДвижениеРасход(<Измерен1>, <Измерен2>..., <Ресурс1>, <Ресурс2>...)

Англоязычный синоним:

ActOutcome

Параметры:

<Измерен1>, <Измерен2> | Выражения со значениями измерений регистра.
<Ресурс1 >, <Ресурс2> | Выражения со значениями ресурсов регистра.

Описание:

Метод ДвижениеРасход выполняет запись расхода в регистр для текущего документа. Измерения регистра, по которым записывается расход передаются <Измервн1>, <Измерен2>, .. Величина приращений расходуемых ресурсов регистра передаются параметрами <Ресурс1>, <Ресурс2>...

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

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

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

   Пока( ПолучитьСтроку() > 0) Цикл

      Регистр.ТовЗап.ДвижениеРасход(Склад, Товар, Количество, Стоимость);

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеПриходВыполнить

Выполнить запись прихода в регистр по атрибутам.

Синтаксис:

ДвижениеПриходВыполнить()

Англоязычный синоним:

DoActIncome

Описание:

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

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

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

   Пока(ПолучитьСтроку() > 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеПриходВыполнить();

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеРасходВыполнить

Выполнить запись расхода в регистр по атрибутам.

Синтаксис:

ДвижениеРасходВыполнить()

Англоязычный синоним:

DoActOutcome

Описание:

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

Данный метод доступен только в контексте Модуле документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

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

   Пока(ПолучитьСтроку() > 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

См. также: ОбработкаПроведения

Движение

Выполнить запись движения в оборотный регистр по параметрам.

Синтаксис:

Движение(<Измерен1>, <Измерен2>..., <Ресурс1> , <Ресурс2>...)

Англоязычный синоним:

Act

Параметры:

<Измерен1 >, <Измерен2> | Выражения со значениями измерений регистра.
<Ресурс1>, <Ресурс2> | Выражения со значениями ресурсов регистра.

Описание:

Метод Движение выполняет запись движения в оборотный регистр для текущего документа. Измерения регистра, по которым записывается движение передаются в параметрах <Измерен1>, <Измерен2>, .. Величины приращений ресурсов регистра передаются параметрами <Ресурс1>, <Ресурс2>...

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

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

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

   Пока ПолучитьСтроку() > 0 Цикл

      Регистр.ОборотыТоваров.Движение(Товар, Склад, ОборотТовара);

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеВыполнить

Выполнить запись движения в оборотный регистр по атрибутам.

Синтаксис:

ДвижениеВыполнить()

Англоязычный синоним:

DoAct

Описание:

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

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. "Работа с Документами").

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

Пример:

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

   Регистр.ТовЗап.Склад = Склад;

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

   Пока (ПолучитьСтроку() > 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Оборот = Оборот;

      Регистр.ТовЗап.ДвижениеВыполнить();

   КонецЦикла;

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

См. также: ОбработкаПроведения

Системные процедуры работы с регистрами

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

РассчитатьРегистрыНа

Рассчитать все временные регистры на начало события.

Синтаксис:

РассчитатьРегистрыНа(<ГраницаРасчета>, <ГрафаОтбора>)

Англоязычный синоним:

CalcRegsOnBeg

Параметры:

<ГраницаРасчета> | Выражение со значением типа дата, документ или позиция документа.
<ГpaфaOтбopa> | Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

Процедура РассчитатьРегистрыНа рассчитывает все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент начала события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на начало указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент до проведения данного документа.

Применение данной процедур в тексте любого программного модуля непосредственное, т. е. просто имя процедуры с параметрами (без предварительной ссылки на объект).

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект("Регистр.УчетРеализации");

Рег.ВременныйРасчет();

РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

РассчитатьРегистрыПо

Рассчитать все регистры на конец события.

Синтаксис:

РассчитатьРегистрыПо(<ГраницаРасчета>, <ГрафаОтбора>)

Англоязычный синоним:

CalcRegsOnEnd

Параметры:

<ГраницаРасчета> | Выражение со значением типа дата, документ или позиция документа.
<ГрафаОтбора> | Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

Процедура РассчитатьРегистрыПо рассчитывает все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент окончания события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на конец указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент после проведения данного документа.

Применение данной процедуры в тексте любого программного модуля непосредственное, т. е. просто имя процедуры с параметрами (без предварительной ссылки на объект).

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект("Регистр.УчетРеализации");

Рег.ВременныйРасчет();

РассчитатьРегистрыПо(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

Вспомогательный объект Регистры

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

Во всех программных модулях доступ к атрибутам и методам объекта типа «Регистры» может выполняться при помощи переменной со ссылкой на объект, который создается функцией СоздатьОбъект. Чтобы вызвать атрибут или метод объекта, имя этого атрибута или метода (с указанием необходимых параметров) пишется через точку после имени объекта. При создании объекта типа «Регистры» используется ключевое слово Регистры. Англоязычный синоним ключевого слова Регистры — Registers.

Пример:

СпецРег = СоздатьОбъект("Регистры");

Объект «Регистры» через свои атрибуты предоставляет доступ к любому виду регистра конфигурации. Методы данного объекта позволяют выполнять временный расчет именно для регистров данного объекта, независимо от реги стров другого (аналогичного) объекта.

Атрибуты объекта Регистры

<ИдентификаторРегистра>

Регистр конфигурации.

Синтаксис:

<ИдентификаторРегистра>

Описание:

Атрибут <ИдентификаторРегистра> предоставляет доступ к регистру конфигурации конкретного вида. В тексте программного модуля используется название конкретного регистра, как он назван в конфигураторе.

Пример:

СпецРег = СоздатьОбъект("Регистры");

СпецРег.УчетТоваров.СводныйОстаток(ВыбТовар, ВыбСклад, "Количество")

Методы объекта Регистры

ПолучитьАтрибут

Получить значение атрибута по идентификатору.

Синтаксис:

ПолучитьАтрибут(<ИмяАтрибута>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяАтрибута>

Строковое выражение, содержащее идентификатор регистра конфигурации.

Возвращаемое значение:

Значение атрибута <ИмяАтрибута>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение регистра по идентификатору, как он задан в метаданных.

Пример:

СпецРег = СоздатьОбъект("Регистры");

Рег = СпецРег.ПолучитьАтрибут("ОстаткиТоваров");

РассчитатьРегистрыНа

Рассчитать все временные регистры на начало события.

Синтаксис:

РассчитатьРегистрыНа(<ГраницаРасчета>, <ГрафаОтбора>)

Англоязычный синоним:

CalcRegsOnBeg

Параметры:

<ГраницаРасчета> | Выражение со значением типа дата, документ или позиция документа.
<ГрафаОтбора> | Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

Процедура РассчитатьРегистрыНа рассчитывает для объекта типа «Регистры» все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент начала события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на начало указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент до проведения данного документа.

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект("Регистры");

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

РассчитатьРегистрыПо

Рассчитать все регистры на конец события.

Синтаксис:

РассчитатьРегистрыПо(<ГраницаРасчета>, <ГрафаОтбора>)

Англоязычный синоним:

CalcRegsOnEnd

Параметры:

<ГраницаРасчета> | Выражение со значением типа дата, документ или позиция документа.
<ГрафаОтбора> | Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

Процедура РассчитатьРегистрыПо рассчитывает для объекта типа «Регистры» все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент окончания события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на конец указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент после проведения данного документа.

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект("Регистры");

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыПо(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

Актуальность

Устанавливает флаг актуальности временного расчета.

Синтаксис:

Актуальность(<ФлагАктуальности>)

Англоязычный синоним:

Actual

Параметры:

<ФлагАктуальности>

Необязательный параметр. Число: 1 — временный расчет поддерживать в актуальном состоянии; 0 — не поддерживать актуальность временного расчета. Если параметр не задан, то метод просто возвращает текущий флат актуальности не меняя его.

Возвращаемое значение:

Текущее состояние флага актуальности временного расчета. Число: 1 — временный расчет поддерживается в актуальном состоянии; 0 — не поддерживается.

Описание:

Метод Актуальность устанавливает для объекта типа «Регистры» флаг актуальности временного расчета. Если флаг установлен, то все последующие движения регистров будут изменять итоги временного расчета, а значит итоги регистров временного расчета будут все время (при проведении документа) находиться в актуальном состоянии.

Внимание. Данный метод можно использовать только в модуле проведения документа.

Пример:

// стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект("Регистры");

СпецРег.Актуальность(1);

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;


Part15

Глава 15
Служебные типы данных компоненты «Бухгалтерский учет»

Тип данных «ПланСчетов»

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

Значения типа «ПланСчетов» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д.

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

Методы типа данных «ПланСчетов»

Выбран

Проверяет наличие значения.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — значение не пусто; 0 — значение пусто.

Описание:

Данный метод позволяет определить — пусто значение типа «ПланСчетгт или нет.

Пример:

* ИспПланСчетов — является реквизитом диалога формы, имеет тип «План Счетов».

Если ИспПланСчетов.Выбран() = 1 Тогда

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

КонецЕсли;

ПорядковыйНомер

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

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

Числовое значение: порядковый номер плана счетов среди планов счетов конфигурации.

Описание:

Метод ПорядковыйНомер позволяет определить порядковый номер плана счетов среди планов счетов, созданных в конфигурации.

Пример:

Если ИспПланСчетов.Выбран() = 1 Тогда

   Сообщить("План счетов" + ИспПланСчетов.ПорядковыйНоиер());

КонецЕсли;

Идентификатор

Определить строку-идентификатор плана счетов как он задан в метаданных.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

Строка-идентификатор плана счетов как он задан в метаданных.

Описание:

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

Пример:

Если ИспПланСчетов.Выбран() = 1 Тогда

   Сообщить(Идентификатор(ИспПланСчетов));

КонецЕсли;

Атрибут глобального контекста «ПланыСчетов»

ПланыСчетов

Атрибут глобального контекста для получения существующих значений типа «ПланСчетов».

Синтаксис:

ПланыСчетов

Англоязычный синоним:

Charts0fAccounts

Описание:

Атрибут ПланыСчетов не имеет самостоятельного смысла, а служит для получения конкретных значений типа «ПланСчетов». Атрибут всегда используется с доступными ему атрибутами и методами.

Атрибуты и методы:

Для получения конкретного значения типа «План счетов» следует через точку указать атрибут — идентификатор плана счетов.

Для получения количества существующих в конфигурации планов счетов следует через точку вызвать метод КоличествоЗначений.

Для получения значения типа «План счетов» по его номеру в метаданных, следует через точку вызвать метод ЗначениеПоНомеру(<Число>), где <Число> — номер плана счетов в метаданных.

Пример:

Сч = СоздатьОбъект("Счет");

// ...

Если Сч.ПланСчетов() = ПланыСчетов.РабПлан Тогда

   // ...

КонецЕсли;

Для Инд = 1 По ПланыСчетов.КоличествоЗначений() Цикл

   ПлСч = ПланыСчетов.ЗначениеПоНомеру(Инд);

КонецЦикла;

Методы глобального атрибута «ПланыСчетов»

Значения типа «ПланСчетов» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д.

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

КоличествоЗначений

Получить общее количество планов счетов.

Синтаксис:

КоличествоЗначений()

Англоязычный синоним:

Count

Возвращаемое значение:

Числовое значение: количество планов счетов конфигурации.

Описание:

Метод КоличествоЗначений применяется к атрибуту глобального контекста ПланыСчетов и позволяет определить общее количество планов счетов созданных в конфигурации.

Пример:

Для Инд=1 По ПланыСчетов.КоличествоЗначений() Цикл

   ПлСч = ПланыСчетов.ЗначениеПоНомеру(Инд);

КонецЦикла;

ЗначениеПоНомеру

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

Синтаксис:

ЗначениеПоНомеру(<Номер>)

Англоязычный синоним:

ValueByIndex

Параметры:

<Номер>

Числовое выражение. Номер позиции плана счетов, заданный в Конфигураторе.

Возвращаемое значение:

Значение типа «План Счетов», соответствующее номеру заданной позиции.

Описание:

Метод ЗначениеПоНомеру применяется к атрибуту глобального контекста ПланыСчетов и позволяет определить план счетов, соответствующий номеру в списке планов счетов конфигурации.

Пример:

Для Инд = 1 По ПланыСчетов.КоличествоЗначений() Цикл

   ПлСч = ПланыСчетов.ЗначениеПоНомеру(Инд);

КонецЦикла

ЗначениеПоИдентификатору

Определить план счетов, по идентификатору.

Синтаксис:

ЗначениеПоИдентификатору(<Идентификатор>)

Англоязычный синоним:

ValueByIdentifier

Параметры:

<Идентификатор>

Строковое выражение. Идентификатор плана счетов, заданный в конфигураторе.

Возвращаемое значение:

Значение плана счетов, соответствующее идентификатору в метаданных. Если не найдено — то пустое значение.

Описание:

Метод ЗначениеПоИдентификатору применяется к атрибуту глобального контекста ПланыСчетов и позволяет определить план счетов, соответствующий идентификатору плана счетов конфигурации.

Пример:

ПлСч = ПланыСчетов.ЗначениеПоИдентификатору("Основной");

Тип данных «ВидСубконто»

Тип данных «ВидСубконто» является служебным типом данных. Он предназначен для идентификации самого Вида субконто. созданного в метаданных. В основном он используется для передачи в качестве параметра различным процедурам и функциям компоненты «Бухгалтерский учет» и для выбора вида субконто в формах. Тип данных «ВидСубконто» не поддерживает никаких данных в информационной базе, а список возможных значений этого типа данных определен видами субконто, созданными в конфигурации.

Значения типа «ВидСубконто» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д.

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

Методы типа данных «ВидСубконто»

Выбран

Проверяет наличие значения.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение:

1 — значение не пусто;

0 — значение пусто.

Описание:

Данный метод позволяет определить — пусто значение типа «ВидСубконто» или нет.

Пример:

* ВыбВидСубк1 — является реквизитом диалога формы типа «ВидСубконто».

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

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

КонецЕсли;

ПорядковыйНомер

Получить порядковый номер вида субконто.

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

Числовое значение: порядковый номер вида субконто среди видов.

Описание:

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

Пример:

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

   Сообщить("Вид номер" + ВыбВидСубк1.ПорядковыйНомер());

КонецЕсли;

ТипСубконто

Получить тип субконто.

Синтаксис:

ТипСубконто()

Англоязычный синоним:

SubcontoType

Возвращаемое значение:

Строковое значение, описывающее тип субконто, например "Справочник.Контрагенты".

Описание:

Метод ТипСубконто позволяет определить тип субконто, как он определен в конфигурации.

Пример:

Сообщить("Тип субконто " + ВыбВидСубк1.ТипСубконто());

Идентификатор

Определить строку-идентификатор вида субконто как он задан в метаданных.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

Строка-идентификатор вида субконто как он задан в метаданных.

Описание:

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

Пример:

Для Н=1 По ВидыСубконто.КоличествоЗначений() Цикл

   Сообщить(Идентификатор(ВидыСубконто.ЗначениеПоНомеру(Н)));

КонецЦикла;

Атрибут глобального контекста «ВидыСубконто»

ВидыСубконто

Атрибут глобального контекста для получения существующих значений типа ВидСубконто.

Синтаксис:

ВидыСубконто

Англоязычный синоним:

SubcontoKinds

Описание:

Атрибут ВидыСубконто не имеет самостоятельного смысла, а служит для получения конкретных значений типа «Вид субконто». Атрибут всегда используется с доступными ему атрибутами и методами.

Атрибуты и методы:

Для получения конкретного значения типа «Вид субконто» следует через точку указать атрибут-идентификатор вида субконто.

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

Для получения значения типа «Вид субконто» по его номеру в метаданных следует через точку вызвать метод ЗначениеПоНомеру(<Число>), где <Число> — номер вида субконто в метаданных.

Пример:

Сч = СоздатьОбъект("Счет");

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

   // ...

КонецЕсли;

Для Инд = 1 По ВидыСубконто.КоличествоЗначений() Цикл

   ВидСк = ВидыСубконто.ЗначениеПоНомеру(Инд);

   // ...

КонецЦикла;

Методы глобального атрибута «ВидыСубконто»

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

КоличествоЗначений

Получить общее количество видов субконто.

Синтаксис:

КоличествоЗначений()

Англоязычный синоним:

Count

Возвращаемое значение:

Числовое значение: количество видов субконто конфигурации.

Описание:

Метод КоличествоЗначений применяется к атрибуту глобального контекста ВидыСубконто и позволяет определить общее количество видов субконто, созданных в конфигурации.

Пример:

Для Инд = 1 По ВидыСубконто.КоличествоЗначений() Цикл

   ВидСк = ВидыСубконто.ЗначениеПоНомеру(Инд);

КонецЦикла;

ЗначениеПоНомеру

Определить вид субконто, по номеру в списке видов субконто конфигурации.

Синтаксис:

ЗначениеПоНомеру(<Номер>)

Англоязычный синоним:

ValueByIndex

Параметры:

<Номер>

Числовое выражение. Номер позиции вида субконто, заданный в конфигураторе.

Возвращаемое значение:

Значение типа «ВидСубконто», соответствующее номеру заданной позиции.

Описание:

Метод ЗначениеПоНомеру применяется к атрибуту глобального контекста ВидыСубконто и позволяет определить вид субконто, соответствующий номеру в списке видов субконто конфигурации.

Пример:

Для Инд = 1 По ВидыСубконто.КоличествоЗначений() Цикл

   ВидСк = ВидыСубконто.ЗначениеПоНомеру(Инд);

КонецЦикла;

ЗначениеПоИдентификатору

Определить вид субконто, по идентификатору видов субконто конфигурации.

Синтаксис:

ЗначениеПоИдентификатору(<Идентификатор>)

Англоязычный синоним:

ValueByIdentifier

Параметры:

<Идентификатор>

Строковое выражение. Идентификатор вида субконто, заданный в конфигураторе.

Возвращаемое значение:

Значение типа «ВидСубконто», соответствующее идентификатору в метаданных. Если не найдено — то пустое значение.

Описание:

Метод ЗначениеПоИдентификатору применяется к атрибуту глобального контекста ВидыСубконто и позволяет определить вид субконто, соответствующий идентификатору видов субконто конфигурации.

Пример:

ВидСк = ВидыСубконто.ЗначениеПоИдентификатору("Контрагент");


Part16

Глава 16
работа с бухгалтерскими счетами

Счета — это агрегатный тип данных для доступа к объектам данных — бухгалтерским счетам. Бухгалтерские счета используются компонентой «Бухгалтерский учет» системы 1С:Предприятие для идентификации разрезов синтетического учета наличия и движения средств. В общем виде смысл типа данных «Счет» вполне соответвует общепринятому понятию «Счет» в бухгалтерском учете. Подробно об основных свойствах типа данных «Счет» можно ознакомиться в руководстве по конфигурированию системы 1С:Предприятие.

В конфигурации системы может быть создано несколько планов счетов. План счетов является фактически видом для значения типа «Счет». Например, реквизит диалога типа «Счет» может иметь конкретный вид (относиться к конкретному плану счетов) или быть неопределенного вида — то есть принимать значение различных планов счетов.

Структура данных для объектов типа «Счет» задается в конфигураторе и является одинаковой для всех планов счетов. Счета имеют стандартные реквизиты (код, наименование и т. д.), для которых в конфигурации настраиваются только их свойства (например, длина наименования). Кроме того, для счетов в конфигурации могут быть заданы дополнительные реквизиты. Дополнительные реквизиты могут быть периодическими, то есть иметь разные значения на разные даты.

Список счетов (план счетов) может быть многоуровневым. При этом каждый объект типа «Счет» вне зависимости от реального наличия подчиненных счетов всегда является либо конкретным счетом, либо группой. Это свойство конкретного счета задается при его создании и не изменяется в дальнейшем. При этом счета-группы не могут участвовать в проводках.

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

Контекст работы с бухгалтерскими счетами

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

Если счет входит (согласно локальному контексту) в набор непосредственно Доступных модулю значений агрегатных типов данных (см. «Виды программ-йьгх модулей»), то доступ к атрибутам и вызов метода для этого счета — просто имя этого атрибута или метода с указанием необходимых параметров.

Пример:

* Модуль формы счета выполняется в контексте «Счет». Поэтому в модуп возможен непосредственный доступ к текущему счету. Например, для пои сваивания счету наименования запишем:

Наименование = "Основные средства";

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

Пример:

* Например, в структуре документа «ПриходныйОрдер» существует реквизит «КоррСчет» типа «Счет». Тогда получить наименование счета, указанного в этом реквизите, можно следующим образом

НаименованиеСчета = Док.КоррСчет.Наименование;

В других случаях, доступ к атрибутам, вызов методов конкретного счета происходит при помощи переменной со ссылкой на объект типа «Счет». Объект создается функцией СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать атрибут или метод объекта, имя этого атрибута или метода (с указанием необходимых параметров) пишется через точку после имени ссылки.

При создании ссылки на объект типа «Счет» при помощи функции СоздатьОбъект в качестве типа объекта указывается слово "Счет" и может быть через точку указан вид — идентификатор плана счетов.

Полное имя типа счет записывается следующим образом:

Счет.<ВидСчета>

где <ВидСчета> — идентификатор плана счетов.

Применение ключевого слова "Счет" (без вида счета) используется для организации доступа ко всем планам счетов.

Англоязычный синоним ключевого слова Счет — Account.

Замечание: Следует обратить особое внимание, что переменная типа «Счет», созданная функцией СоздатьОбъект — это ссылка на список счетов, в отличие от переменных, содержащих само значение объекта (например, переменной может быть присвоено значение некоторого реквизита документа, который имеет тип «Счет»). Использование ссылки на список счетов, созданной при помощи функции СоздатьОбъект, существенно отличается от работы со значением типа «Счет». Только при работе со объектом-ссылкой на список счетов разрешено изменять позицию (найти-выбрать...) текущего счета в списке (т. е. осуществлять позиционирование по списку счетов), создавать новые, изменять и удалять существующие счета, С другой стороны, ссылка на список счетов не содержит собственно значения конкретного счета, которое можно присвоить чему-либо. Однако. его всегда можно получить, используя функцию ТекущийСчет.

Замечание. Объект, созданный при помощи функции СоздатьОбъект, изначально не определен, т. е. не содержит никакого значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный счет) при помощи процедур НайтиСчет, ПолучитьСчет и т. п.

Пример:

*

Сч = СоздатьОбъект("Счет");

Сч1 = СоздатьОбъект("Счет.ОснПлан");

Сч2 = СоздатьОбъект("Счет.РабПлан");

*

//В модуле формы счета // меняем наименование счета

Наименование = "Новый счет";

*

Сч1 = СоздатьОбъект("Счет.ОснПлан");

// создаем новый счет Сч1.Новый();

Сч1.Код = "12.01";

Сч1.Записать();

Атрибуты объекта «Счет»

Код

Полный код счета.

Синтаксис:

Код

Англоязычный синоним:

Code

Описание:

Код счета в общем случае представляет собой символьную строку вида:

<Код счета>.<Код субсчета>.<Код субсчета> ...

Общая длина кода счета в системе 1С:Предприятие ограничена 255 символами. В это значение входят: код счета первого уровня, коды субсчетов всех нижележащих уровней и разделители номеров счета и субсчетов (точка). При помощи атрибута Код можно получать и задавать код счета.

Пример:

* При показе готового табличного документа (в данном примере это отчет «Карточка счета») в заголовке окна выдается наименование отчета и код счета, по которому построен отчет.

// Формирование отчета "Карточка счета"

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

// ...

<команды формирования отчета и выдачи секций табличного документа>

// ...

// Показ готового отчета

Табл.Показать("Карточка счета: " + Счет.Код);

Наименование

Наименование счета.

Синтаксис:

Наименование

Англоязычный синоним:

Description

Описание:

Наименование счета представляет собой произвольную строку символов. Наименование, как правило, разъясняет назначение счета. Максимальная длина наименования счета задается при редактировании свойств планов счетов в Конфигураторе.

При помощи атрибута Наименование можно получать и задавать наименование счета.

Пример:

* При показе готового табличного документа (в данном примере это отчет «Карточка счета») в заголовке окна выдается наименование отчета, код и наименование счета, по которому построен отчет.

// Формирование отчета "Карточка счета"

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

// ...

<команды формирования отчета и выдачи секций табличного документа>

// ...

// Показ готового отчета

Табл.Показать("Карточка счета: " + Счет.Код + " " + Счет.Наименование);

Валютный

Признак ведения валютного учета.

Синтаксис:

Валютный

Англоязычный синоним:

IsCurrency

Значение:

1 — валютный учет ведется по данному счету;

0 — валютный учет не ведется по данному счету;

Описание:

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

Пример:

Сч.Валютный = 1;

Количественный

Признак ведения количественного учета.

Синтаксис:

Количественный

Англоязычный синоним:

IsAmount

Значение:

1 — количественный учет ведется по данному счету;

0 — количественный учет не ведется по данному счету;

Описание:

Атрибут содержит признак ведения количественного учета по счету. Изменение данного значения из языка следует производить только в особых случаях и с учетом всех особенностей настройки учета. После изменения настроек учета система может потребовать выполнить пересчет итогов.

Пример:

Сч.Количественный = 1;

Забалансовый

Признак забалансовости счета.

Синтаксис:

Забалансовый

Англоязычный синоним:

IsSingle

Значение:

1 — выбранный счет является забалансовым счетом;

0 — выбранный счет является балансовым счетом.

Описание:

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

Пример:

Сч.Забалансовый = 1;

Активный

Тип остатка по счету (активный, пассивный, активно-пассивный).

Синтаксис:

Активный

Англоязычный синоним:

IsActive

Значение:

1 — счет является активным;

2 — счет является пассивным;

3 — счет является активно-пассивным;

Описание:

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

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

По умолчанию все счета считаются активно-пассивными.

Пример:

Сч.Активный = 2;

<Реквизит>

Возвращает или задает значение дополнительного реквизита счета.

Синтаксис:

<Реквизит>

Идентификатор дополнительного реквизита счета, как он задан в конфигураторе.

Описание:

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

Атрибут <Реквизит> позволяет обращаться к значениям дополнительных реквизитов выбранного счета. Для обращения к конкретному реквизиту должен быть указан его идентификатор, заданный для этого реквизита в конфигураторе.

Пример:

* Для счетов определен реквизит "Ответственный" типа "Справочник.Сотрудники".

Сч = СоздатьОбъект("Счет.Основной");

Сч.ВыбратьСчета();

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

   Сч.Ответственный = ВыбСотр;

   Сообщить(Сч.Ответственный.Наименование);

   Сч.Записать();

КонецЦикла

Методы объекта «Счет»

ВыбратьСчета

Метод открывает выборку счетов из текущего плана счетов для последующей обработки.

Синтаксис:

ВыбратьСчета()

Англоязычный синоним:

SelectAccounts

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один счет; 0 — если действие не выполнено или в выборке нет ни одного счета.

Описание:

Метод ВыбратьСчета открывает выборку счетов для текущего плана счетов. Вызов данного метода позволяет затем перебрать счета. Непосредственно извлечение счетов из выборки осуществляется при помощи метода ПолучитьСчет. Счета извлекаются в порядке возрастания кода счета.

Пример:

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

   Сч = СоздатьОбъект("Счет.Основной");

   Сч.ВыбратьСчета();

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

      Сообщить(Сч.Код);

   КонецЦикла;

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

ПолучитьСчет

Получить из выборки следующий счет. Выборка должна быть предварительно открыта при помощи метода ВыбратьСчета.

Синтаксис:

ПолучитьСчет([<Режим>])

Англоязычный синоним:

GetAccount

Параметры:

<Режим>

Необязательный параметр. Числовое выражение — признак выборки подчиненных счетов. Может принимать значения: 0 — не включать подчиненные счета; 1 — включать подчиненные счета. По умолчанию — 1.

Возвращаемое значение:

Число: 1 — следующий счет выбран успешно; 0 — следующий счет не выбран (отсутствует).

Описание:

Метод ПолучитьСчет выбирает очередной счет из выборки, содержащей счета из плана счетов. Перед применением метода ПолучитьСчет выборка должна быть открыта при помощи метода ВыбратьСчета. Счета извлекаются в порядке возрастания кода счета.

Метод ПолучитьСчет используется для организации цикла по счетам. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьСчет возвращает 1.

Метод возвращает 0, когда очередной счет не выбран. Это происходит, если при предыдущем применении метода был выбран последний счет выборки.

Пример:

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

   Сч = СоздатьОбъект("Счет.Основной");

   Сч.ВыбратьСчета();

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

      Сообщить(Сч.Код);

   КонецЦикла;

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

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

Англоязычный синоним:

SetAttrib

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.
<3начение> | Выражение, содержащее устанавливаемое значение реквизита.

Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Счт.УстановитьАтрибут("ЦенаРозн", ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

ПолучитьАтрибут(<ИмяРеквизита>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяРеквизита>

Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.

Возвращаемое значение:

Значение реквизита <ИмяРеквизита>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Счт.ПолучитьАтрибут("ЦенаРозн");

Выбрать

Выбрать счет из плана счетов в диалоге.

Синтаксис:

Выбрать(<Подсказка>, <ФормаСписка>)

Англоязычный синоним:

Choose

Параметры:

<Подсказка> | Необязательный параметр. Символьное выражение — текст заголовка окна диалога выбора счета. Может использоваться в качестве подсказки.
<ФормаСписка> | Необязательный параметр. Символьное выражение — идентификатор формы списка плана счетов (как он указан в конфигураторе), которая должна использоваться для выбора. Если значение пустое, то используется форма списка для выбора по умолчанию.

Возвращаемое значение:

Число: 1 — счет выбран; 0 — счет не выбран.

Описание:

Метод Выбрать вызывает на экран диалог, содержащий план счетов. Пользователь должен интерактивно выбрать требуемый счет.

Если счет выбран, метод возвращает 1 и позиционирует объект на выбранном счете.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.Выбрать("Выберите счет", "ДляВыбораВДиалоге");

НайтиПоКоду

Выполняет поиск счета в плане счетов по коду счета.

Синтаксис:

НайтиПоКоду(<КодСчета>)

Англоязычный синоним:

FindByCode

Параметры:

<КодСчета>

Символьное выражение — код счета, как он указан в плане счетов.

Возвращаемое значение:

Число: 1 — счет найден; 0 — счет не найден.

Описание:

Метод НайтиПоКоду выполняет поиск счета в плане счетов по коду счета, который передается методу в качестве параметра.

Если счет найден, метод возвращает 1 и позиционирует объект на выбранном счете.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("01.01");

НайтиСчет

Метод выполняет поиск счета в плане счетов по значению типа «Счет».

Синтаксис:

НайтиСчет(<Счет>)

Англоязычный синоним:

FindAccount

Параметры:

<Счет>

Значение типа «Счет».

Возвращаемое значение:

Число: 1 — счет найден; 0 — счет не найден.

Описание:

Метод НайтиСчет выполняет поиск счета по значению, заданному параметром <Счет>, и позиционирует объект на выбранном счете.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиСчет(ВыбСчет);

Выбран

Проверяет факт выбора счета.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числ: 1 — если счет выбран (спозиционирован); 0 — если не выбран.

Описание:

Метод Выбран для объекта созданного функцией СоздатьОбъект определяет, спозиционирован ли объект на каком либо счете или нет, для объекта хранящего значение типа «Счет» он определяет является значение пустым или нет. Метод возвращает число со значением 1 — если счет выбран (спозиционирован) или значение не пустое, 0 — если не выбран или значение пустое.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду ("76.02");

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

   Сообщить("Счет найден");

КонецЕсли;

ЗаданВКонфигурации

Определяет, задан текущий счет в конфигурации или в информационной базе.

Синтаксис:

ЗаданВКонфигурации()

Англоязычный синоним:

DefinedInConfiguration

Возвращаемое значение:

Число: 1 — если счет задан в конфигурации; 0 — если счет введен в информационной базе.

Описание:

Метод ЗаданВКонфигурации определяет, задан текущий счет в конфигурации или в информационной базе.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Если Сч.ЗаданВКонфигурации() = 1 Тогда

   Сообщить("Счет задан в Конфигурации ");

КонецЕсли;

Вид

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

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Символьная строка — идентификатор плана счетов, к которому относится данный счет.

Описание:

Метод Вид позволяет определить план счетов, к которому относится данный счет. Метод возвращает идентификатор плана счетов в виде строки символов. Метод ПланСчетов позволяет получить значение типа «План счетов» к которому относится выбранный счет.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сообщить("Вид - " + Сч.Вид());

ПредставлениеВида

Определить пользовательское представление вида плана счетов.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида плана счетов (синоним вида плана счетов или, если он пустой, то идентификатор вида).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское представление вида плана счетов, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния

Сч = СоздатьОбъект("Счет.Основной");

Состояние(Сч.ПредставлениеВида());

ПланСчетов

Выдает план счетов, которому принадлежит счет.

Синтаксис:

ПланСчетов()

Англоязычный синоним:

ChartOfAccounts

Возвращаемое значение:

Значение типа «План счетов».

Описание:

Метод выдает план счетов (значение типа «План счетов»), которому принадлежит счет.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сообщить("План счетов - " + Сч.ПланСчетов());

// Выдает "План счетов - Основной"

ЭтоГруппа

Определяет, является ли данный счет группой.

Синтаксис:

ЭтоГруппа()

Англоязычный синоним:

IsGroup

Возвращаемое значение:

Число: 1 — счет является группой; 0 — счет не является группой.

Описание:

Для каждого счета при создании указывается — может ли он иметь субсчета (будет являться группой) или будет собственно счетом (не группой). Счета-группы не могут участвовать в проводках. В дальнейшем это свойство счета не изменяется.

Данная функция определяет, является счет группой (может иметь субсчета) или нет.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Если Сч.ЭтоГруппа() = 1 Тогда

   Сообщить("Найдена группа");

КонецЕсли;

Уровень

Возвращает уровень вложенности текущего счета.

Синтаксис:

Уровень()

Англоязычный синоним:

Level

Возвращаемое значение:

Число — уровень вложенности счета: 1 — счета верхнего уровня.

Описание:

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

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

##.#.###

означает, что к счету могут быть открыты 2 уровня субсчетов. Метод Уровень() возвращает уровень вложенности текущего счета. Для счета верхнего уровня метод возвратит 1, для счета второго уровня — 2, и так далее.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сообщить("Уровень счета - " + Сч.Уровень());

//Возвращает — 2

ТекущийСчет

Возвращает текущее значение счета.

Синтаксис:

ТекущийСчет()

Англоязычный синоним:

CurAccount

Возвращаемое значение:

Значение типа «Счет».

Описание:

Объекты созданные функцией СоздатьОбъект не содержат собственно значения типа «Счет», так как они могут быть спозиционированы на разные счета. Метод ТекущийСчет позволяет получить значение типа «Счет» у такого объекта в соответвии с его текущей позицией. Данный метод применяется, например, если нужно счет передать как параметр в вызове какого-либо метода, или присвоить какому-либо реквизиту, или занести в проводку.

Кроме того, в контексте формы счета данный метод может выдать текущее (для открытой формы) значение типа «Счет».

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

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

   Операция.Дебет.Счет = Сч.ТекущийСчет();

КонецЕсли;

ПометкаУдаления

Проверяет наличие пометки на удаление для текущего счета.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

1 — счет помечен на удаление;

0 — счет не помечен на удаление.

Описание;

Метод используется для проверки, помечен ли на удаление текущий счет.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Если Сч.ПометкаУдаления() = 1 Тогда

   Сообщить("Счет помечен на удаление");

КонецЕсли;

ВыборГруппы

Устанавливает или сбрасывает признак выбора группы.

Синтаксис:

ВыборГруппы([<ПризнакВыбораГруппы>])

Англоязычный синоним:

SelectGroup

Параметры:

<ПризнакВыбораГруппы>

Необязательный параметр. Числовое выражение: 1 — выбирать группы; 0 — не выбирать группы.

Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполнения метода).

Описание:

Метод ВыборГруппы устанавливает режим выборки групп. Данный метод может применяться как для позиционируемых объектов, созданных функцией СоздатьОбъект, так и для элементов диалога типа «Счет» (см. «Методы элементов диалога»).

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

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

Режим, устанавливаемый данным методом для элементов диалога, влияет на интерактивный выбор пользователем значения типа «Счет» из списка счетов (плана счетов). Такой выбор производится вызовом метода Выбрать или нажатием кнопки выбора, если объект является элементом диалога. Установка режима позволяет разрешить или запретить пользователю выбирать счета-группы (счета, которые могут иметь субсчета). Это имеет смысл для установки режима сразу на все значения реквизита табличной части документа.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.ВыборГруппы(0);

Сч.Выбрать("Выберите конкретный счет");

ПринадлежитГруппе

Определяет, является ли текущий счет субсчетом для счета, указанного в качестве параметра метода.

Синтаксис:

ПринадлежитГруппе(<Счет>)

Англоязычный синоним:

BelongsToGroup

Параметры:

<Счет>

Значение типа «Счет» — счет, к субсчетам которого проверяется принадлежность текущего счета.

Возвращаемое значение:

Число: 1 — текущий счет является субсчетом для счета, указанного в качестве параметра; 0 — текущий счет не является субсчетом для счета, указанного в качестве параметра.

Описание:

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Если Сч.ПринадлежитГруппе(СчетПоКоду("76")) = 1 Тогда

   Сообщить("Счет принадлежит группе");

КонецЦикла;

КоличествоСубконто

Определяет количество субконто у текущего счета.

Синтаксис:

КоличествоСубконто()

Англоязычный синоним:

SubcontoCount

Возвращаемое значение:

Число — количество видов субконто у текущего счета.

Описание:

Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Количество субконто, которое реально прикреплено к счету, не может превышать установленного максимального количества.

Метод КоличествоСубконто служит для определения количества видов субконто, прикрепленных к текущему счету в плане счетов.

Необходимо обратить внимание, что все виды субконто, прикрепленные к счету в плане счетов, имеют порядковые номера. Эти номера выдаются в названиях колонок видов субконто в окне редактирования плана счетов; «Субконто1», «Субконто2» ... «Субконто6».

При задании видов субконто для счета их обязательно «выстраивать» по порядку один за другим: например, к счету могут быть прикреплены субконто таким образом, что их порядковые номера будут 1 и 2. Метод КоличествоСубконто возвращает общее количество видов субконто, прикрепленное к счету (в данном примере — 2), а не максимальное количество возможных видов субконто у счета.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить("Субконто " + Сч.ВидСубконто(Инд));

КонецЦикла;

ВидСубконто

Устанавливает/возвращает вид субконто счета.

Синтаксис:

ВидСубконто(<НомерСубконто>, <ВидСубконто>, <ТолькоОбороты>)

Англоязычный синоним:

SubcontoKind

Параметры:

<НомерСубконто> | Числовое выражение — порядковый номер субконто счета.
<ВидСубконто> | Необязательный параметр. Значение типа «Вид субконто», которое должно быть установлено.
<ТолькоОбороты> | Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавливает флаг «Только обороты» для данного субкон-то счета. Если параметр не используется, то флаг «Только обороты» не меняется.

Возвращаемое значение:

Значение типа «Вид субконто».

Описание:

К любому счету или субсчету в плане счетов может быть «прикреплено» до 5 видов субконто. Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Количество субконто, которое реально прикреплено к счету, не превышает установленного максимального количества. Все виды субконто, прикрепленные к счету в плане счетов, имеют порядковые номера. Эти номера выдаются в названии колонок для видов субконто в окне редактирования плана счетов; «Субконто!», «Субконто2» ... «Субконто5».

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

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

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить("Субконто " + Сч.ВидСубконто(Инд));

КонецЦикла;

ТолькоОбороты

Устанавливает/возвращает значение флага «Только обороты» субконто счета.

Синтаксис:

ТолькоОбороты(<НомерСубконто>, <ТолькоОбороты>]

Англоязычный синоним:

TurnoversOnly

Параметры:

<НомерСубконто> | Числовое выражение — порядковый номер субконто счета.
<ТолькоОбороты> | Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавливает флаг «Только обороты» для данного субконто счета. Если параметр не используется, то флаг «Только обороты» не меняется.

Возвращаемое значение:

Значение флага «Только обороты» на момент до использования метода: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

К любому счету или субсчету в плане счетов может быть «прикреплено» до 5 видов субконто. Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Все виды субконто, прикрепленные к счету в плане счетов, имеют порядковые номера. Для субконто может быть установлен флаг «Только обороты», который устанавливает для данного субконто использование только для оборотов по счету, а не для остатков.

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить("Субконто " + Сч.ВидСубконто(Инд) +

         ?(Сч.ТолькоОбороты(Инд) = 1, "(об.)", ""));

КонецЦикла;

УчетПоСумме

Устанавливает/возвращает значение флага «Учет по сумме» субконто счета.

Синтаксис:

УчетПоСумме(<НомерСубконто>, <УчетПоСумме>)

Англоязычный синоним:

AccountingBySum

Параметры:

<НомерСубконто> | Числовое выражение — порядковый номер субконто счета.
<УчетПоСумме> | Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавливает флаг «Учет по сумме» для данного субконто счета. Если параметр не используется, то флаг «Учет по сумме» не меняется.

Возвращаемое значение:

Значение флага «Учет по сумме» на момент до использования метода: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

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

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить("Субконто " + Сч.ВидСубконто(Инд) +

        ? (Сч.УчетПоСумме(Инд) = 1, "(об.)", ""));

КонецЕсли;

УчетПоВалютнойСумме

Устанавливает/возвращает значение флага «Учет по валютной сумме» субконто счета.

Синтаксис:

УчетПоВалютнойСумме(<НомерСубконто>, <УчетПоСумме>)

Англоязычный синоним:

AccountingByCurrencySum

Параметры:

<НомерСубконто> | Числовое выражение — порядковый номер субконто счета.
<УчетПоСумме> | Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавливает флаг «Учет по валютной сумме» для данного субконто счета. Если параметр не используется, то флаг «Учет по валютной сумме» не меняется.

Возвращаемое значение:

Значение флага «Учет по валютной сумме» на момент до использования метода: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

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

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить("Субконто " + Сч.ВидСубконто(Инд) +

        ?(Сч.УчетПоВалютнойСумме(Инд) = 1, "(об.)", ""));

КонецЕсли;

УчетПоКоличеству

Устанавливает/возвращает значение флага «Учет по количеству» субконто счета.

Синтаксис:

УчетПоКоличеству(<НомерСубконто>, <УчетПоКоличеству>)

Англоязычный синоним:

AccountingByAmount

Параметры:

<НомерСубконто> | Числовое выражение — порядковый номер субконто счета.
<УчетПоКоличеству> | Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавливает флаг «Учет по количеству» для данного субконто счета. Если параметр не используется, то флаг «Учет по количеству» не меняется.

Возвращаемое значение:

Значение флага «Учет по количеству» на момент до использования метода: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

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

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить("Субконто " + Сч.ВидСубконто(Инд) +

           ?(Сч.УчетПоКоличеству(Инд) = 1, "(об.)", ""));

КонецЕсли;

ИспользоватьДату

Установить дату выборки периодических реквизитов счета.

Синтаксис:

ИспользоватьДату(<Дата>)

Англоязычный синоним:

UseDate

Параметры:

<Дата>

Необязательный параметр. Выражение типа «дата».

Возвращаемое значение:

Текущее значение используемой даты (на момент до исполнения метода). Описание:

Метод ИспользоватьДату устанавливает для объекта типа «Счет» дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов счета.

Данный метод, используется обычно, если нужно обращаться сразу к не-сколькитм периодическим реквизитам спозиционированного объекта. Для одиночных обращений рекомендуется использовать методы периодического реквизита счета Получить(<Дата>) и Установить(<Дата>, <3начение>) .

Замечание: Если к объекту типа «Счет» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы выбирать значения периодических реквизитов, нельзя применять к этому же объекту методы Получить и Установить, т. е. в такой последовательности эти методы несовместимы.

Замечание: Метод ИспользоватьДату устанавливает дату выборки для данного объекта. В случае, если обращение к объекту типа счет выполняется по длинному пути (например, Клиент.СчетУчета.СтатусУчета) значение типа «Счет» создается динамически и после первого обращения к нему с вызовом метода ИспользоватьДату уничтожается, поэому при повторном обращении для получении значения реквизита данная установка уже действовать не будет.

Замечание: Метод ИспользоватьДату должен быть вызван до позиционирования объекта. В этом случае после позиционирования периодические реквизиты будут выдаваться на указанную дату.

Пример:

* Выведем список счетов со значением периодического реквизита "СтатусУчета".

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

   Сч = СоздатьОбъект("Счет.Основной");

   Сч.ИспользоватьДату(РабочаяДата());

   Сч.ВыбратьСчета();

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

      Сообщить("Статус учета " + Сч.Код + " - " + Сч.СтатусУчета);

   КонецЦикла;

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

ИспользоватьПланСчетов

Устанавливает план счетов, который будет использован объектом.

Синтаксис:

ИспользоватьПланСчетов(<ПланСчетов>)

Англоязычный синоним:

UseChartOfAccounts

Параметры:

<ПланСчетов>

Значение типа «План Счетов».

Возвращаемое значение:

Значение типа «План Счетов». Текущее значение на момент до исполнения метода.

Описание:

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

Метод ИспользоватьПланСчетов имеет смысл использовать в том случае, если объект создан функцией СоздатьОбъект для работы с разными планами счетов — СоздатьОбъект("Счет"). Если объект был создан для работы с конкретным планом счетов, то все операции поиска и обхода счетов будут работать только с этим планом счетов.

Пример:

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

   Сч = СоздатьОбъект("Счет");

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

   Сч.ВыбратьСчета();

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

      Сообщить("Счет " + Сч.Код);

   КонецЦикла;

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

Родитель

Выдает счет вышестоящего уровня.

Синтаксис:

Родитель(<НомерУровня>)

Англоязычный синоним:

Параметры:

<НомерУровня>                Необязательный параметр. Число — номер уровня. Определяет какого уровня вышестоящий счет должен быть выдан. Если параметр не указан -выдается непосредственный родитель.

Возвращаемое значение:

Значение типа «Счет». Счет вышестоящего уровня данного счета.

Описание:

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сообщить("Родитель " + Сч.Родитель());

//Возвращает "Родитель 76"

ИспользоватьРодителя

Устанавливает/выдает значение родителя (счета вышестоящего уровня), используемого для выборки счетов.

Синтаксис:

ИспользоватьРодителя(<Родитель>, <ФлагИзменения>)

Англоязычный синоним:

UseParent

Параметры:

<Родитель> | Значение типа «Счет», устанавливаемое в качестве используемого родителя. Необязательный параметр. Если параметр не указан — значение используемого родителя не изменяется.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения родителя. 1 — пользователь может изменить родителя интерактивно, 0 — пользователь не может интерактивно изменить родителя.

Возвращаемое значение:

Значение типа «Счет». Текущее значение используемого родителя на момент до исполнения метода.

Описание:

При наличии в плане счетов нескольких уровней счетов-субсчетов при переборе или выборе счета существует возможность отбирать только счета подчиненные некоторому счету. Метод ИспользоватьРодителя устанавливает значение, которе будет затем использовано методами перебора и выбора счета.

Пример:

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

   Сч = СоздатьОбъект("Счет.Основной");

   Сч.ИспользоватьРодителя(СчетПоКоду("01"));

   Сч.ВыбратьСчета();

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

      Сообщить(Сч.Код);

   КонецЦикла;

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

КодСубсчета

Выдает код счета без кодов счетов вышестоящих уровней.

Синтаксис:

КодСубсчета()

Англоязычный синоним:

SubAccountCode

Возвращаемое значение:

Строковое значение — код счета без кодов счетов вышестоящих уровней.

Описание:

При наличии в плане счетов нескольких уровней счетов-субсчетов атрибут "Код" объекта типа «Счет» содержит полный код счета с учетом всех вышестоящих счетов через разделитель (точку). Метод КодСубсчета выдает собственно код даного счета без кодов счетов вышестоящих уровней.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сообщить("Код счета " + Сч.Код); //Возвращает "76.02"

Сообщить("Код Субсчета " + Сч.КодСубсчета); //Возвращает "76"

Блокировка

Установить/прочитать режим блокировки.

Синтаксис:

Блокировка(<ВклВыкл>)

Англоязычный синоним:

Locking

Параметры:

<ВклВыкл>

Необязательный параметр. Число: 1 — включить; 0 — выключить.

Возвращаемое значение:

Если при вызове метода параметр <ВклВыкл> не задан, то возвращается Режим блокировки до выполнения метода. Число: 1 — заблокирован; 0 — свободен.

Если при вызове метода параметр <ВклВыкл> задан, то возвращается результат выполнения метода блокировки. Число: 1 — успешно; 0 — не получилось.

Описание:

Метод Блокировка позволяет установить/прочитать режим блокировки.

Пример:

Блокировка(0);

Новый

Создает новый счет.

Синтаксис:

Новый(<ЕстьСубсчета>)

Англоязычный синоним:

New

Параметры:

<ЕстьСубсчета>

Числовое выражение — признак наличия субсчетов у создаваемого счета. Может принимать значения:

0 — счет не будет иметь субсчета;

1 — счет будет иметь субсчета.

По умолчанию 0;

Описание:

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

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

Однако, если для счета, для которого было указано отсутствие субсчетов, все-таки введен субсчет, то система 1С:Предприятие выполнит следующее:

· Будет создан новый счет (группа) с тем же кодом;

· Код данного счета будет дополнен субсчетом 0;

В дальнейшем код субсчета 0 можно будет изменить на другой.

Замечание. Метод Новый сам по себе не выполняет запись нового счета в информационную базу, для внесения нового счета в список счетов, следует выполнить метод Записать.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.Новый();

Сч.Код = "76.02";

Сч.Записать();

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяРеквизита> | Строковое выражение — название реквизита счета неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> | Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту счета. Например: "Строка", "Число", "Справочник.Товары", "Документ. РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

ВыбСчет.НазначитьТип("ТМЦ", "Справочник.Товары");

Записать

Записывает изменения счета.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать выполняет запись (обновление) счета. Все изменения сделанные в существующем счете, или созданном счете будут занесены в информационную базу только после вызова метода Записать.

Замечание. Если этот метод применяется в Модуле формы счета непосредственно к счету локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой "#Записать".

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сч.Наименование = "Прочие взаиморасчеты";

Сч.Записать();

Удалить

Удаляет счет из плана счетов.

Синтаксис:

Удалить(<Режим>)

Англоязычный синоним:

Delete

Параметры:

<Режим>

Числовое выражение: 1 — непосредственное удаление; 0 — пометка на удаление. По умолчанию 1;

Описание:

Метод Удалить удаляет (или помечает на удаление) текущий счет. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Замечание. Непосредственное удаление объекта следует применять только в особых случаях, так как счет может участвовать в проводках и непосредственное удаление может повлечет нарушение в бухгалтерском учете.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сч.Удалить(0);

СнятьПометкуУдаления

Снять пометку удаления счета.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущего счета.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Сч = СоздатьОбъект("Счет.Основной");

Сч.НайтиПоКоду("76.02");

Сч.СнятьПометкуУдаления();

Методы контекста Модуля формы списка счетов

Описанные в данном разделе методы доступны только в контексте Модуля формы списка счетов (см. «Виды программных модулей»).

ИспользоватьДату

Установить дату выборки периодических реквизитов формы списка счетов.

Синтаксис:

ИспользоватьДату(<Дата>)

Англоязычный синоним:

UseDate

Параметры:

<Дата>

Выражение со значением типа «дата»

Возвращаемое значение:

Значение даты выборки периодических реквизитов формы списка счетов.

Описание:

Метод ИспользоватьДату устанавливает для формы списка счетов дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов справочника.

Данный метод доступен только в контексте Модуля формы списка счетов (см. «Виды программных модулей»). Действие данного метода относится только к текущему справочнику, который доступен в локальном контексте Модуля формы списка счетов.

Пример:

ИспользоватьДату(РабочаяДата());

ИспользоватьПланСчетов

Установить (получить) текущий план счетов формы списка счетов.

Синтаксис:

ИспользоватьПланСчетов(<ПланСчетов>)

Англоязычный синоним:

UseChartOfAccounts

Параметры:

<ПланСчетов>

Значение типа «ПланСчетов».

Возвращаемое значение:

Значение текущего плана счетов формы до вызова метода.

Описание:

Метод ИспользоватьПланСчетов устанавливает текущий план счетов в форме списка счетов, если форма открыта для просмотра нескольких планов счетов. Если параметр не задан, то метод позволяет получить текущий план счетов.

Данный метод доступен в контексте Модуля формы списка счетов (см. «Виды программных модулей»).

Пример:

Процедура Печать()

   Сч = СоздатьОбъект("Счет");

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

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

ИспользоватьРодителя

Установить родителя для формы списка счетов.

Синтаксис:

ИспользоватьРодителя(<Родитель>, <ФлагИзменения>)

Англоязычный синоним:

UseParent

Параметры:

<Родитель> | Выражение со значением счета.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения родителя. 1 — пользователь может изменить родителя интерактивно, 0 — пользователь не может интерактивно изменить родителя.

Возвращаемое значение:

Значение родителя для формы списка счетов (до применения метода).

Описание:

Метод ИспользоватьРодителя устанавливает счет в качестве основного для формы списка счетов (показываются субсчета выбранного счета).

Данный метод доступен в контексте Модуля формы списка счетов (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку счетов, который доступен в локальном контексте Модуля формы списка счетов.

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

Пример:

ИспользоватьРодителя(ВыбСчет, 1);

ИспользоватьКорСчет

Установить счет для показа списка корреспондирующих счетов.

Синтаксис:

ИспользоватьКорСчет(<Счет>, <Корреспонденция>)

Англоязычный синоним:

UseCorAccount

Параметры:

<Счет> | Выражение со значением счета.
<Корреспонденция> | Число: 1 — дебетовый счет; 0 — кредитовый счет.

Описание:

Метод ИспользоватьКорСчет устанавливает счет для показа списка корреспондирующих с ним счетов. Корреспондирующие счета задаются с помощью корректных проводок.

Данный метод доступен в контексте Модуля формы списка счетов (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку счетов, который доступен в локальном контексте Модуля формы списка счетов.

Пример:

ИспользоватьКорСчет(ВыбСчет, 1);

ИерархическийСписок

Установить режим иерархического списка счетов.

Синтаксис:

ИерархическийСписок(<ФлагИерархСписка>, <ФлагИзменения>)

Англоязычный синоним:

HierarchicalList

Параметры:

<ФлагИерархСписка> | Флаг иерархического списка. 1 — иерархический список; 0 — неиерархический список.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения флага иерархического списка. 1 — пользователь может изменить иерархичность интерактивно, 0 — пользователь не может интерактивно изменить иерархичность.

Возвращаемое значение:

Значение флага иерархического списка для формы списка счетов (до применения метода).

Описание:

Метод ИерархическийСписок устанавливает режим иерархического списка счетов.

Данный метод доступен в контексте Модуля формы списка счетов (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку счетов, который доступен в локальном контексте Модуля формы списка счетов.

Пример:

ИерархическийСписок(1, 1);

РедактироватьВДиалоге

Установить способ редактирования счета.

Синтаксис:

РедактироватьВДиалоге(<Способ>, <Разрешение>)

Англоязычный синоним:

EditInForm

Параметры:

<Способ> | Необязательный параметр. Способ редактирования счета: 1 — в диалоге; 0 — в строке.
<Разрешение> | Необязательный параметр. Флаг разрешения пользователю менять способ редактирования: 1 —разрешить; 0 — запретить.

Возвращаемое значение:

Значение установленного на данный момент способа счета (до применения метода).

Описание:

Метод РедактироватьВДиалоге устанавливает способ редактирования счета.

Данный метод доступен в контексте Модуля формы списка счетов. Действие данного метода относится ко всему текущему списку счетов, который доступен в локальном контексте Модуля формы списка.

Пример:

ТекСп = РедактироватьВДиалоге();

// какой сейчас способ?

РедактироватьВДиалоге(1);

// установить редактирование в диалоге

РедактироватьВДиалоге(1, 0);

// установить редактирование в диалоге и запретить его менять

ВыборГруппы

Устанавливает или сбрасывает признак выбора группы.

Синтаксис:

ВыборГруппы([<ФлагВыбораГруппы>])

Англоязычный синоним:

SelectGroup

Параметры:

<ФлагВыбораГруппы>

Необязательный параметр. Числовое выражение: 1 — выбирать группы; 0 — не выбирать группы.

Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполнения метода).

Описание:

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

По умолчанию выбор группы разрешен. Режим, устанавливаемый данным методом для списка счетов, влияет на интерактивный выбор пользователем значения типа «Счет» из списка счетов (плана счетов). Установка режима позволяет разрешить или запретить пользователю выбирать счета-группы (счета, которые могут иметь субсчета).

Пример:

ВыборГруппы(0);

Предопределенные процедуры модуля формы списка счетов

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях форм списка счетов (см. «Виды программных модулей»).

В основном, данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ПриВводеСтроки

Предопределенная процедура при вводе новой строки списка счетов

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

Вызов предопределенной процедуры ПриВводеСтроки производится в системе 1С:Предприятие при интерактивном вводе новой строки (до начала ввода) в форме списка счетов. Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя вводить новые строки списка счетов), то новая строка списка счетов не будет инициирована.

Данная предопределенная процедура может располагаться в Модуле формы списка счетов (см. «Виды программных модулей»).

Пример:

Процедура ПриВводеСтроки()

   Если НазваниеНабораПрав() = "Оператор" Тогда

      Предупреждение("У вас нет права добавлять счета!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой строки списка счетов.

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

Вызов предопределенной процедуры ПриРедактированииНовойСтроки производится в системе 1С:Предприятие в момент начала интерактивного редактирования новой строки списка счетов (после того, как новая строка уже заведена). Данная процедура может использоваться, например, для установки начальных значений (значений по умолчанию) характеристик нового счета. В данной предопределенной процедуре установка статуса возврата не имеет смысла, т. к. отказаться от ввода новой строки в этот момент уже невозможно.

Данная предопределенная процедура может располагаться в Модуле формы списка счетов (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированииНовойСтроки()

   СтатусСчета = ОснСтатусСчетов;

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

ПриНачалеРедактированияСтроки

Предопределенная процедура при начале редактирования существующей строки списка счетов.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

Вызов предопределенной процедуры ПриНачалеРедактированияСтроки производится в системе 1С:Предприятие в момент начала интерактивного редактирования существующей строки списка счетов (кроме новой). Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя изменять характеристики бухгалтерских счетов), строка не будет изменена.

Данная предопределенная процедура может располагаться в Модуле формы списка счетов (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = "Оператор" Тогда

      Предупреждение("У вас нет права менять счета!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриВыбореРодителя

Предопределенная процедура выбора родительской группы счета.

Синтаксис:

ПриВыбореРодителя(<Счет>)

Англоязычный синоним:

OnSetParent

Параметры:

<Счет>

Значение счета, который интерактивно установлен в качестве родителя.

Описание:

Вызов предопределенной процедуры ПриВыборе Родителя производится в системе 1С:Предприятие при интерактивной смене родительской группы счета (выбор следующего или предыдущего уровня). Если в данной предопределенной процедуре установить статус возврата — 0, то выбор родительской группы не будет произведен.

Данная предопределенная процедура может располагаться только в Модуле формы списка счетов.

Пример:

Процедура ПриВыбореРодителя(Родитель)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если Родитель = ЗапрещеннаяГруппа Тогда

         Предупреждение("Вам запрещено изменять счет!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи строки списка счетов.

Синтаксис:

ПриЗаписи(<СписокПериодРекв>)

Англоязычный синоним:

OnWrite

Параметры:

<СписокПериодРекв>

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

Описание:

Вызов предопределенной процедуры ПриЗаписи производится системой 1С:Предприятие при интерактивной записи строки списка счетов. Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя изменять некоторые характеристики счета), то запись строки списка счетов не будет выполнена.

Формальный параметр <СписокПериодРекв> используется в теле процедуры для обработки ситуаций изменений периодических реквизитов счета.

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

Пример:

Процедура ПриЗаписи(СписокРекв)

   Если Валютный = 1 Тогда

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

Предопределенные процедуры модуля формы счета

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в модуле формы счета (см. «Виды программных модулей»).

В основном, данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ВводНового

Предопределенная процедура при вводе нового счета.

Синтаксис:

ВводНового(<ПризнКопирования>, <ОбъектКопирования>)

Англоязычный синоним:

InputNew

Параметры:

<ПризнКопирования> | Признак того, что объект введен копированием. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак может быть использован для анализа необходимости инициализации реквизитов нового объекта.
<ОбъектКопирования> | Объект, который был скопирован.

Описание:

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

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя вводить новые счета), ввода нового счета и открытие формы счета не будет выполнено.

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

Пример:

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

   Если НазваниеНабораПрав() = "Оператор" Тогда

      Предупреждение("У вас нет права добавлять счета!", 2);

      СтатусВозврата(0);

   КонецЕсли;

   СтатусСчета = ОснСтатусСчетов;

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

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи счета.

Синтаксис:

ПриЗаписи(<СписокПериодРекв>)

Англоязычный синоним:

OnWrite

Параметры:

<СписокПериодРекв>

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

Описание:

Вызов предопределенной процедуры ПриЗаписи производится системой 1С:Предприятие при интерактивной записи счета. Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя изменять некоторые характеристики счета), то запись счета не будет выполнена.

Формальный параметр <СписокПериодРекв> используется в теле процедуры для обработки ситуаций с изменениями периодических реквизитов счета.

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

Пример:

Процедура ПриЗаписи(СписокРекв)

   Если Валютный = 1 Тогда

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата


Part17

Глава 17
Работа с операциями и проводками

Для отражения в бухгалтерском учете информации о движении средств в системе 1С:Предприятие используются Операции и Проводки. Эти объекты поддерживаются компонентой «Бухгалтерский учет». Настройка свойств операций и проводок производится соответвующими объектами метаданных в конфигурации. В руководстве по конфигурированию можно подробно ознакомиться с основными принципами и свойствами операций и проводок.

Контекст работы с операциями и проводками

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

Во-первых, объект «Операция» используется для формирования и анализа проводок формируемых документом. Для этого у агрегатного объекта «Документ» существует атрибут Операция типа «Операция», который обеспечивает доступ к операции данного документа.

Во-вторых, объект «Операция» непосредственно доступен в контекстах формы операции, формы журнала операции и формы журнала проводок. То есть в модулях указанных форм обращение к атрибутам и методам текущего объекта выполняется напрямую. В форме журнала операций текущим объектом является операция, на которой в данный момент стоит курсор в форме журнала. В форме журнала проводок текущим объектом является операция, которой принадлежит проводка, на которой в данный момент стоит курсор в форме журнала.

В-третьих, объект «Операция» используется для перебора существующих операций и проводок при формировании отчетов и других выборок. В этом случае объект создается при помощи вызова функции СоздатьОбъект ("Операция"). Англоязычный синоним ключевого слова Операция — Operation.

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

Метод записи операции доступен также при проведении документа.

Как уже отмечалось, доступ к проводкам также осуществляется объектом «Операция». Методы и атрибуты объекта «Операция» осуществляют доступ к данным как собственно операции, так и к данным проводок. Операция содержит набор методов для перебора и позиционирования на конкретные проводки. При этом одна из проводок операции может быть текущей. Все обращения к атрибутам и методам данных проводки будут относится именно к текущей проводке. Если текущей проводки нет, то обращение к атрибутам и методам проводки недоступно.

Одной из возможностей организации данных бухгалтерского учета системы 1С:Предприятие является поддержка сложных проводок. Под сложной проводкой понимается проводка, состоящая из нескольких корреспонденции (одного дебета — нескольких кредитов или наоборот). С точки зрения синтаксиса объекта «Операция» текущей проводкой может являться простая проводка или одна из корреспонденции сложной проводки. Нумерация проводок осуществляется номером проводки и номером корреспонденции.

С точки зрения чтения, все операции используются практически одинаково. Однако изменения (создание новых, запись, удаление) операций сильно отличается для операций двух типов.

«Ручные» операции — это операции, введенные пользователем вручную или записанные объектом типа «Операции», созданным функцией СоздатьОбъект. Все изменения из встроенного языка этих операций производятся объектами типа «Операции», созданными функцией СоздатьОбъект. Такие операции принадлежат документам специального вида «Операция», который не имеет большинства свойств обычных документов и используется только для отражении в журналах документов «Ручных» операций. Вид документа «Операция» создается системой автоматически при внесении в конфигурацию первого объекта метаданных типа «План счетов».

Операции принадлежащие документам — это операции, которые создаются документами различных видов, которым установлен признак «Бухгалтерский учет» (кроме вида «Операция»). Эти операции могут записываться только при записи документов или при проведении документов. Наличие операции у кон-кертного документа регламентируется в метаданных в настройках вида документа. Операция для документа конкретного вида может создаваться либо при записи (режим «Всегда»), либо создаваться выборочно (режим «Выборочно») (при помощи метода документа СуществуетОперация), либо только при проведении документа (режим «только при проведении»). В первых двух случаях изменение реквизитов самой операции может производиться в модуле формы документа и при записи они автоматически будут записаны в операцию принадлежащую документу. Однако проводки в операцию принадлежащую документу могут быть записаны в любом случае только в процессе проведения документа (предопределенной процедуре ОбработкаПроведения). При этом в процессе проведения документа для записи операции следует вызвать метод операции Записать. Операция созданная документом в процессе проведения при перепроведении документа сначала уничтожается, а при выполнении процедуры ОбработкаПроведения записывается заново. Если документ делается не проведенным, то проводки из операции удаляются, а сама операция уничтожается, если она была записана в режиме «только при проведении».

Атрибуты объекта «Операция»

ДатаОперации

Дата операции.

Синтаксис:

ДатаОперации

Англоязычный синоним:

OperDate

Значение:

Значение типа «Дата».

Описание:

Атрибут ДатаОперации содержит дату бухгалтерской операции. Так как каждая бухгалтерская операция принадлежит документу (причем только одному, а операция введенная вручную также принадлежит специальному документу «Операция»), значение атрибута совпадает со значением атрибута ДатаДок документа, которому принедлежит операция. Наличие данного атрибута у оп-реации упрощает обращение к дате документа, которому принадлежит операция.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.ДатаОперации);

Содержание

Содержание операции.

Синтаксис:

Содержание

Англоязычный синоним:

Description

Значение:

Значение типа «Строка».

Описание:

Атрибут Содержание служит для обращения к содержанию операции. Содержание операции представляет собой произвольную символьную строку. Максимальная длина содержания задается в конфигураторе при редактировании свойств объекта метаданных «Операция».

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.Содержание);

СуммаОперации

Сумма операции.

Синтаксис:

СуммаОперации

Англоязычный синоним:

OperSum

Значение:

Значение типа «Число».

Описание:

Атрибут СуммаОперации служит для обращения к сумме операции. Сумма операции является положительным или отрицательным числом. Сумма операции предназначена лишь для иллюстрирования денежного выражения операции и не влияет на бухгалтерские итоги. Длина и точность суммы операции задается конфигураторе при редактировании свойств объекта метаданных «Операция».

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.СуммаОперации);

<РеквизитОперации>

Возвращает или задает значение дополнительного реквизита операции.

Синтаксис:

<РеквизитОперации>

Идентификатор дополнительного реквизита операции, как он задан в конфигураторе.

Значение:

Тип значения определяется типом реквизита заданным в метаданных.

Описание:

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

Атрибут <Реквизит> позволяет обращаться к значению дополнительного реквизита операции. Для обращения к конкретному реквизиту должен быть указан его идентификатор, заданный для этого реквизита в конфигураторе.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.ПризнакУчета);

Документ

Документ, которому принадлежит операция.

Синтаксис:

Документ

Англоязычный синоним:

Document

Значение:

Значение типа документ.

Описание:

Атрибут Документ является атрибутом «только для чтения», то есть ему нельзя присваивать никакого значения. Он служит для обращения к документу, котрому принадлежит операция. Так, как любая операция принадлежит документу (операция введенная «вручную» принадлежит документу специального вида «Операция») доступ к некоторым свойствам операции, например, номеру возможен только посредством обращения к атрибуту Документ.

Атрибут Документ предназначен только для доступа к атрибутам и реквизитам документа, которому принадлежит операция. Для получения значения типа «Документ» используется метод ТекущийДокумент.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.Документ.НомерДок);

Сумма

Сумма выбранной проводки (корреспонденции) операции.

Синтаксис:

Сумма

Англоязычный синоним:

Sum

Значение:

Значение типа «Число».

Описание:

Атрибут Сумма служит для обращения к сумме выбранной проводки (корреспонденции) операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Сумма " + Опер.Сумма);

КонецЦикла;

Валюта

Валюта выбранной проводки или корреспонденции операции.

Синтаксис:

Валюта

Англоязычный синоним:

Currency

Значение:

Значение типа «Справочник», вид которого определен в настройке валютного учета в конфигурации.

Описание:

Атрибут Валюта служит для обращения к валюте выбранной проводки или корреспонденции операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДоку мент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Валюта " + Опер.Валюта + " Вал.сумма=" + Опер.ВалСумма);

КонецЦикла;

ВалСумма

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

Синтаксис:

ВалСумма

Англоязычный синоним:

CurSum

Значение:

Значение типа «Число».

Описание:

Атрибут ВалСумма служит для обращения к сумме в валюте выбранной проводки или корреспонденции операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Валюта " + Опер.Валюта + " Вал.сумма=" + Опер.ВалСумма);

КонецЦикла;

Количество

Количество выбранной проводки или корреспонденции операции.

Синтаксис:

Количество

Англоязычный синоним:

Amount

Значение:

Значение типа «Число».

Описание:

Атрибут Количество служит для обращению к количеству выбранной проводки или корреспонденции операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Количество ="+0пер.Количество);

КонецЦикла;

<РеквизитПроводки>

Обращение к дополнительному реквизиту проводки.

Синтаксис:

<РеквизитПроводки>

Идентификатор дополнительного реквизита проводки, как он задан в конфигураторе.

Описание:

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

Атрибут <РеквизитПроводки> позволяет обращаться к значениям дополнительных реквизитов проводки. Для обращения к конкретному реквизиту должен быть указан его идентификатор, заданный для этого реквизита в конфигураторе.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Количество =" + Опер.Количество);

КонецЦикла;

Дебет

Обращение к дебету проводки (корреспонденции).

Синтаксис:

Дебет

Англоязычный синоним:

Debit

Описание:

Атрибут Дебет служит для обращения к дебетовой части текущей проводки (корреспонденции) операции. Данный атрибут возвращает агрегатный объект специального типа «Дебет», который используется только для доступа к данным дебетовой части конкретной проводки (корреспонденции) операции и не используется отдельно.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Проводка " + Опер.Дебет.Счет + " - " + Опер.Кредит.Счет);

КонецЦикла;

Кредит

Обращение к кредиту проводки (корреспонденции).

Синтаксис:

Кредит

Англоязычный синоним:

Credit

Описание:

Атрибут Кредит служит для обращения к кредитовой части текущей проводки (корреспонденции) операции. Данный атрибут возвращает агрегатный объект специального типа «Кредит», который используется только для доступа к данным кредитовой части конкретной проводки (корреспонденции) операции и не используется отдельно.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Проводка " + Опер.Дебет.Счет + " - " + Опер.Кредит.Счет);

КонецЦикла;

Атрибуты объектов «Дебет» и «Кредит»

Счет

Счет дебета/кредита проводки (корреспонденции) операции.

Синтаксис:

Счет

Англоязычный синоним:

Account

Значение:

Значение типа «Счет».

Описание:

Атрибут Счет служит для доступа к счету дебета/кредита проводки или корреспонденции операции.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Проводка " + Опер.Дебет.Счет.Наименование + " - " +

                          Опер.Кредит.Счет.Наименование);

КонецЦикла;

<Субконто>

Субконто дебета/кредита проводки (корреспонденции) операции.

Синтаксис:

<Субконто>

Идентификатор вида субконто, как он задан в конфигураторе.

Описание:

Атрибут <Субконто> служит для доступа к значению субконто дебета/кредита проводки (корреспонденции) операции. В конкретном случае обращение к субконто для дебета/кредита определяется счетом дебета/кредита, то есть заданными для него видами субконто по которым ведется аналитический учет по этому счету.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Если Опер.Дебет.Счет=СчетПоКоду("60") Тогда

      Сообщить("Субконто " + Опер.Дебет.Организация);

   КонецЕсли;

КонецЦикла;

Методы объектов «Дебет» и «Кредит»

Субконто

Обращение к субконто дебета/кредита проводки (корреспонденции) операции.

Синтаксис:

Субконто(<ПорядковыйНомерСубконто> | <ВидСубконто>, <Субконто>)

Англоязычный синоним:

Subconto

Параметры:

<ПорядковыйНомерСубконто> | Необязательный параметр. Числовое выражение — порядковый номер субконто. По умолчанию 1.
<ВидСубконто> | Значение типа «Вид субконто».
<Су6конто> | Необязательный параметр. Значение субконто. Если параметр не задан — значение не изменяется.

Возвращаемое значение:

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

Описание:

К любому счету или субсчету в плане счетов может быть «прикреплено» до 5 видов субконто. Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Количество субконто, которое реально прикреплено к счету, не превышает установленного максимального количества.

Все виды субконто, прикрепленные к счету в плане счетов, имеют порядковые номера. Эти номера выдаются в названии колонок для видов субконто в окне редактирования плана счетов; «Субконто1», «Субконто2» ... «Субконто5».

Метод Субконто дебета/кредита проводки служит для получения и установки значения субконто по его номеру или виду соотвественно в дебете или в кредите проводки (коррепспонденции) операции.

Возможность использования субконто конкретного вида или номера определяется счетом дебета/кредита проводки.

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

Если вторым параметром передается значение субконто, метод присваивает указаное значение виду субконто проводки.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Для Инд = 1 По Опер.Дебет.Счет.КоличествоСубконто() Цикл

      Сообщить("Субконто " + Опер.Дебет.Субконто(Инд));

   КонецЦикла;

КонецЦикла;

ПредставлениеСубконто

Представление субконто дебета/кредита проводки (корреспонденции) операции.

Синтаксис:

ПредставлениеСубконто(<ПорядковыйНомерСубконто> | <ВидСубконто>, <Режим>)

Англоязычный синоним:

SubcontoPresentation

Параметры:

<ПорядковыйНомерСубконто> | Необязательный параметр. Числовое выражение — порядковый номер субконто. По умолчанию 1.
<ВидСу6конто> | Идентификатор вида субконто.
<Режим> | Необязательный параметр. Числовое выражение — признак полноты выдачи представления субконто. Может принимать значения: 0 — полное представление; 1 — краткое представление. По умолчанию 0;

Возвращаемое значение:

Символьная строка — представление субконто.

Описание:

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

Представление может быть настроено в конфигурации для видов субконто типа «Справочник» или «Документ». Формат представления определяется в конфигураторе при редактировании свойств вида субконто.

Метод ПредставлениеСубконто позволяет получить представление для субконто дебета/кредита текущей проводки (корреспонденции).

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Для Инд = 1 По Опер.Дебет.Счет.КоличествоСубконто() Цикл

      Сообщить("Субконто " + Опер.Дебет.ПредставлениеСубконто(Инд));

   КонецЦикла;

КонецЦикла;

Методы объекта «Операция»

ВыбратьОперации

Открывает выборку операций за период.

Синтаксис:

ВыбратьОперации(<НачалоПериода>, <КонецПериода>)

Англоязычный синоним:

SelectOpers

Параметры:

<НачалоПериода> | Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается начало выборки операций.
<КонецПериода> | Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки операций.

Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна операция;

0 — действие не выполнено или в выборке нет ни одной операции.

Описание:

Метод ВыбратьОперации открывает выборку, содержащую операции за указанный период.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Сообщить("Операция " + Опер.Содержание);

КонецЦикла;

ВыбратьОперацииСПроводками

Открывает выборку оперций с проводками за указанный период.

Синтаксис 1:

ВыбратьОперацииСПроводками(<НачалоПериода>, <КонецПериода>, <Фильтр>, <Валюта>,

                           <ПланСчетов>, <РазделительУчета>)

Синтаксис 2:

ВыбратьОперацииСПроводками(<НачалоПериода>, <КонецПериода>, <Счет>, <КорСчет>,

                           <Флаг>, <Валюта>, <ПланСчетов>, <РазделительУчета>)

Англоязычный синоним:

SelectOpersAndEntries

Параметры:

<НачалоПериода> | Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается начало выборки операций.
<КонецПериода> | Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки операций.
<Фильтр> | Необязательный параметр. Строка — условие отбора проводок.
<ПланСчетов> | Необязательный параметр. Значение типа «План Счетов». Если параметр не указан — по всем планам счетов.
<РазделительУчета> | Необязательный параметр. Значение разделителя учета. Если параметр не указан — по всем значениям разделителя учета.
<Счет> | Необязательный параметр. Счет — счет, по которому будут отбираться проводки.
<КорСчет> | Необязательный параметр. Счет — корреспондирующий счет, по которому будут отбираться проводки. Параметр имеет смысл, если указан параметр <Счет>.
<Флаг> | Необязательный параметр. Число — признак вида оборота. Параметр может принимать значения: 1 — отбирать проводки только по дебету счета; 2 — отбирать проводки только по кредиту счета; 3 — отбирать проводки и по дебету, и по кредиту. По умолчанию 3.
<Валюта> | Необязательный параметр. Значание типа «справочник» (вида справочника используемого для валютного учета) — признак отбора проводок по валюте.

Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна проводка;

0 — действие не выполнено или в выборке нет ни одной проводки.

Описание:

Метод ВыбратьОперацииСПроводками служит для выбора проводок операций за период. Параметрами могут являеться различные условия отбора проводок.

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

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

В параметре <Фильтр> задаются критерии отбора проводок для включения в выборку. Если параметр не заполнен, в выборку включаются все проводки. В общем случае в параметре <Фильтр> могут находиться одна или несколько корреспонденции счетов или символьных строк, разделяемых точкой с запятой «;». Символьные строки представляют собой наборы символов, заключенные в кавычки (при передаче строки в явном виде в параметре внутри строки двойные кавычки задаются двумя символами двойных кавычек). Корреспонденции имеют вид:

n — проводки со счетом n;

n, m — проводки в дебет счета n с кредита счета m.

Здесь в качестве n и m может указываться звездочка («*»), она обозначает любой счет. Например, *, 51 — все проводки с кредита 51 счета.

В выборку включаются все проводки, удовлетворяющие следующим условиям:

Если в параметре <Фильтр> указаны корреспонденции счетов, то проводка должна соответствовать одной из этих корреспонденции.

Если параметре <Фильтр> указаны строки символов, то в проводке должна содержаться хотя бы одна из этих строк — либо в содержании операции, либо представлениях значений субконто и реквизитов проводки и операции.

Примеры:

50 | — все проводки со счетом 50;
50, * | — все проводки в дебет 50 счета;
* , 51 | — все проводки с кредита 51 счета;
50, 51 | — все проводки в дебет 50 счета с кредита 51;
51; 52 | — все проводки со счетом 51 или счетом 52;
46, 68.2 | — все проводки в дебет 46 счета с кредита 68.2;
"бумага" | — все проводки, содержащие в содержании операции или в субконто или в реквизитах слово «бумага»;
"бумага"; "картон" | — все проводки, содержащие в содержании операции или в субконто или в реквизитах слово «бумага» или слово «картон»;
*, 46; "бумага" | — все проводки по кредиту 46 счета, содержащие в содержании операции или в субконто или в реквизитах слово «бумага»;

Кроме того, в обоих вариантах задаются дополнительные условия: валюта, план счетов, разделитель учета.

Параметр <Валюта> является значением типа «Справочник» вида, определенного при настройке валютного учета в метаданных. Если параметр указан, в отбор будут включены проводки только по указанной валюте. При этом пустое значение типа «Справочник» соответствующего вида считается указанием отбора по пустой валюте. Для того, чтобы отбор по валюте не производился нужно либо опустить данный параметр, либо передать туда значение иного типа,  например,  пустую сроку.

Параметр <ПланСчетов> является значением типа «План Счетов». Если параметр указан, в отбор будут включены проводки только по указанному плану счетов.

Параметр <РазделительУчета> является значением объекта метаданных, выбранного в качестве разделителя учета.

Если указан параметр <РазделительУчета>, в отбор будут включены проводки с указанным значением разделителя учета.

Параметры <Счет> и <КорСчет> задают условние отбора проводок по счетам.

Если указан параметр <Счет>, будут отбраны проводки только по указанному счету. Дополнительным условие отбора является значением параметра <Флаг>.

Если указаны параметр <Счет> и <КорСчет>, будут отобораны проводки только по указанной креспонденции счетов.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, "50, 51; ""По Чеку"" ");

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Сумма " + Опер.Сумма);

КонецЦикла;

ИспользоватьСубконто

Задает фильтр по субконто для функции ВыбратьОперацииСПроводками.

Синтаксис:

ИспользоватьСубконто(<ВидСубконто>, <Субконто>)

Англоязычный синоним:

UseSubconto

Параметры:

<ВидСубконто> | Значение типа «ВидСубконто» — отбор проводок будет выполнен только для субконто указанного вида.
<Субконто> | Значение субконто — отбор проводок будет выполнен только для указанного субконто. Кроме того, в качестве значения данного параметра можно передавать «Список значений».

Описание:

Метод ИспользоватьСубконто устанавливает фильтр по субконто, который используется при отборе проводок методом ВыбратьОперацииСПроводками.

Метод ИспользоватьСубконто может вызываться последовательно несколько раз. В этом случае фильтры, устанавливаемые этой функцией, суммируются.

Пример:

Опер = СоздатьОбъект("Операция");

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

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, "60");

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Сумма " + Опер.Сумма);

КонецЦикла;

ИспользоватьКорСубконто

Задает фильтр по корреспондирующим субконто для функции

ВыбратьОперацииСПроводками.

Синтаксис:

ИспользоватьКорСубконто(<ВидСубконто>, <Субконто>)

Англоязычный синоним:

UseCorSubconto

Параметры:

<ВидСубконто> | Значение типа «ВидСубконто» — отбор проводок будет выполнен только для корреспондирующих субконто указанного вида.
<Субконто> | Значение субконто — отбор проводок будет выполнен только для указанного корреспондирующего субконто. Кроме того, в качестве значения данного параметра можно передавать «Список значений».

Описание:

Метод ИспользоватьКорСубконто устанавливает фильтр по корреспондирующим субконто, который используется при отборе проводок методом ВыбратьОперацииСПроводками.

Метод ИспользоватьКорСубконто может вызываться последовательно несколько раз. В этом случае фильтры, устанавливаемые этой функцией, суммируются.

Пример:

Опер = СоздатьОбъект("Операция");

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

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

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, "60");

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Сумма " + Опер.Сумма);

КонецЦикла;

ВыбратьПоЗначению

Открывает выборку операций или проводок, отобранных по значению отбора.

Синтаксис:

ВыбратьПоЗначению(<НачалоПериода>, <КонецПериода> , <ВидОтбора>, <3начение0тбора>)

Англоязычный синоним:

SelectByValue

Параметры:

<НачалоПериода> | Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого устанавливается начало выборки операций.
<КонецПериода> | Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки операций.
<ВидОтбора> | Необязательный параметр. Символьная строка — название вида отбора (см. ниже).
<3начение0тбора> | Необязательный параметр. Значение отбора вида, указанного в параметре <ВидОтбора>.

Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна операция или проводка; 0 — действие не выполнено или в выборке нет ни одной операции или проводки.

Описание:

Метод ВыбратьПоЗначению открывает выборку, содержащую операции или проводки за указанный период.

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

Параметр <ВидОтбора> должен содержать название вида отборав виде символьной строки.

Параметр <ВидОтбора> для отбора операций может принимать следующие значения (в скобках указан английский синоним):

"СуммаОперации" ("OperSum") | Отбор по сумме операции. Доступно если в метаданных включен отбор по сумме операции.
"Содержание" ("Description") | Отбор по содержанию операции. Доступно если в метаданных включен отбор по содержанию операции.
<РеквизитОперации> | Отбор по дополнительному реквизиту операции. Идентификатор реквизита должен быть указан так, как это задано в метаданных. Доступно если в метаданных включен отбор по реквизиту операции.

Параметр <ВидОтбора> для отбора проводок может принимать следующие значения (в скобках указан английский синоним):

"Счет" ("Account") | Отбор по счету дебета или счету кредита проводки. Доступно если в метаданных включен отбор по счетам проводок.
"СчетДт" ("AccountDt") | Отбор по счету дебета проводки. Доступно если в метаданных включен отбор по дебету/кредиту счетов проводок.
"СчетКт" ("AccountKt") | Отбор по счету кредита проводки. Доступно если в метаданных включен отбор по дебету/кредиту счетов проводок.
"Валюта" ("Currency") | Отбор по валюте проводки. Доступно если в метаданных включен отбор по валюте проводок.
<ВидСубконто> | Отбор по виду субконто. Идентификатор вида субконто должен быть указан так, как он задан в метаданных. Доступно если в метаданных включен отбор по этому виду субконто.
<РеквизитПроводки> | Отбор по дополнительному реквизиту проводки. Идентификатор реквизита должен быть указан так, как он задан в метаданных. Доступно если в метаданных включен отбор по этому реквизиту проводки.

Параметр <3начениеОтбора> задает значение отбора.

После выполнения данного метода обход операций (проводок) осуществляется методами ПолучитьОперацию и ПолучитьПроводку.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьПоЗначению(ДатаНач, ДатаКон, "Счет", СчетПоКоду("60"));

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Сумма " + Опер.Сумма);

КонецЦикла;

ПолучитьОперацию

Извлекает операции из выборки, открытой при помощи метода

ВыбратьОперции.

Синтаксис:

ПолучитьОперацию()

Англоязычный синоним:

GetOper

Возвращаемое значение:

Число: 1 — операция выбрана успешно; 0 — операция не выбрана (отсутствует).

Описание:

Метод ПолучитьОперацию выбирает очередную операцию из выборки, открытой при помощи метода ВыбратьОперации.

Метод ПолучитьОперацию используется для организации цикла по операциям. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьОперацию возвращает 1.

Метод возвращает 0, когда очередная операция не выбрана. Это происходит, если при предыдущем применении метода была выбрана последняя операция выборки.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Сообщить("Операция " + Опер.Содержание);

КонецЦикла;

НайтиОперацию

Позиционирует объект по значению типа «Документ».

Синтаксис:

НайтиОперацию([<Документ>])

Англоязычный синоним:

FindOper

Параметры:

<Документ>

Значение типа «Документ».

Возвращаемое значение:

Число: 1 — действие выполнено, операция найдена; 0 — действие не выполнено, операция не найдена.

Описание:

Метод НайтиОперацию осуществляет поиск операции по значению типа «Документ».

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

Поэтому не существует возможности передачи такого значения как «Операция». Для «идентификации» операции фактически используется значение документа, которому она принадлежит. Поэтому для позиционировании объекта «Операция» непосредственно на конкретную операцию используется значение типа «Документ».

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Выбрана

Определяет выбрана ли в данный момент операция.

Синтаксис:

Выбрана()

Англоязычный синоним:

Selected

Возвращаемое значение:

Число: 1 — операция выбрана; 0 — операция не выбрана.

Описание:

При использовании объекта «Операция» созданного функцией СоздатьОбъект метод Выбрана определяет спозиционирован ли объект в настоящий момент на некоторой операции или нет.

При использовании данного метода к атрибуту документа Операция (который имеет тип «Операция») он определяет, существует ли реально операция у документа или нет.

При использовании в форме журнала операций (проводок) метод определяет спозиционирован ли курсор.

При использовании в форме операции метод определяет, записана новая операция или нет.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Если Опер.Выбрана() = 0 Тогда

   Сообщить("Операция не найдена");

КонецЕсли;

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

Англоязычный синоним:

SebAttrib

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.
<3начение> | Выражение, содержащее устанавливаемое значение реквизита.

Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Опер.УстановитьАтрибут("ЦенаРозн", ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

ПолучитьАтрибут(<ИмяРеквизита>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяРеквизита>

Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.

Возвращаемое значение:

Значение реквизита <ИмяРеквизита>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Опер.ПолучитьАтрибут("ЦенаРозн");

ВыбратьПроводки

Открывает выборку проводок текущей операции.

Синтаксис:

ВыбратьПроводки()

Англоязычный синоним:

Select Entries

Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна проводка;

0 —действие не выполнено или в выборке нет ни одной проводки.

Описание:

Метод ВыбратьПроводки открывает выборку проводок текущей операции. Данный метод предназначен для организации перебора проводок операции и используется вмесет с методом ПолучитьПроводку.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Проводка " + Опер.Дебет.Счет + " - " + Опер.Кредит.Счет);

КонецЦикла;

ПолучитьПроводку

Получить проводку из выборки, открытой методом

ВыбратьПроводки.

Синтаксис:

ПолучитьПроводку()

Англоязычный синоним:

GetEntry

Возвращаемое значение:

Число: 1 — следующая проводка выбрана успешно; 0 — следующая проводка не выбрана (отсутствует).

Описание:

Метод ПолучитьПроводку выбирает очередную проводку из выборки, содержащей проводки текущей операции. Перед применением метода ПолучитьПроводку выборка должна быть открыта при помощи метода ВыбратьПроводки.

Метод ПолучитьПроводку используется для организации цикла по проводкам текущей операции. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьПроводку возвращает 1.

Метод возвращает 0, когда очередная проводка не выбрана. Это происходит, если при предыдущем применении метода была выбрана последняя проводка выборки.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Проводка " + Опер.Дебет.Счет + " - " + Опер.Кредит.Счет);

КонецЦикла;

ПроводкаВыбрана

Определяет выбрана ли проводка операции.

Синтаксис:

ПроводкаВыбрана()

Англоязычный синоним:

EntrySelected

Возвращаемое значение:

Число: 1 — проводка выбрана; 0 — проводка не выбрана.

Описание:

Метод ПроводкаВыбрана позволяет определить, спозиционирована ли в настоящий момент некоторая проводка в операции или нет, то есть можно ли обращаться к атрибутам и методам проводки.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Опер.ПолучитьПроводку();

Если Опер.ПроводкаВыбрана() = 0 Тогда

   Сообщить("Нет проводок в операции");

КонецЕсли;

КоличествоПроводок

Оперделяет количество проводок в операции включая и проводки и корреспонденции.

Синтаксис:

КоличествоПроводок()

Англоязычный синоним:

EntriesCount

Возвращаемое значение:

Целое число — количество проводок в текущей операции.

Описание:

Метод позволяет опеределить полное количество проводок и корреспонденции в операции.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

КонецЦикла;

ПолучитьПроводкуПоНомеру

Выбрать в качестве текущей проводку по ее номеру и номеру корреспонденции.

Синтаксис 1:

ПолучитьПроводкуПоНомеру(<АбсолютныиНомерПроводки>)

Синтаксис 2:

ПолучитьПроводкуПоНомеру(<НомерПроводки>, <НомерКорреспонденции>)

Англоязычный синоним:

GetEntryByNumber

Параметры:

<АбсолютныйНомерПроводки> | Необязатальный параметр. Число — абсолютный номер проводки в операции (включая проводки и корреспонденции). Если не задан –1.
<НомерПроводки> | Необязатальный параметр. Число — номер проводки в операции.
<НомерКорреспонденции> | Необязатальный параметр. Число — номер корреспонденции в проводке. Параметр имеет смысл, если указан параметр <НомерПроводки>.

Возвращаемое значение:

Число: 0 — проводка не найдена; 1 — проводка найдена.

Описание:

Метод ПолучитьПроводкуПоНомеру выбирает в качестве текущей проводку или корреспонденцию проводки.

Если передан один параметр, то он воспринимается, как абсолютный номер проводки (корреспонденции) в операции среди всех проводок и корреспонденции. Если передано два параметра, то первый из них — это номер проводки, а второй — номер корреспонденции в проводке.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ПолучитьПроводкуПоНомеру(3, 2);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

КонецЦикла;

Пров

Обращение к данным проводки по номеру.

Синтаксис:

Пров(<НомерПроводки>, <НомерКорреспонденции>)

Англоязычный синоним:

Entry

Параметры:

<НомерПроводки> | Необязатальный параметр. Число — номер проводки в операции. Если параметр не задан, то используется текущая проводка.
<НомерКорреспонденции> | Необязатальный параметр. Число — номер корреспонденции в проводке. Параметр имеет смысл, если указан параметр <НомерКорреспонденции>.

Возвращаемое значение:

Ссылка на указанную проводку.

Описание:

Метод Пров является специальным методом, позволяющим обратиться непосредственно к данным проводки операции по номеру, без установки текущей проводки. Возвращаемое методом значение является ссылкой на проводку. Оно не может использоваться как значение, а предназначено только для доступа к атрибутам проводки. В основном метод Пров имеет смысл применять в формулах типовых операций.

Метод Пров позволяет обратится к атрибутам проводки Сумма, СуммаВал, Количество, Валюта, Дебет, Кредит, <Реквизит>.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Пров(2, 3).Дебет.Счет);

НомерПроводки

Определяет номер текущей проводки.

Синтаксис:

НомерПроводки()

Англоязычный синоним:

EntryNumber

Возвращаемое значение:

Число — номер проводки.

Описание:

Для текущей проводки (корреспонденции) возвращает ее номер (не абсолютный, а именно номер проводки без учета корреспонденции).

Пример:

Опер = СоздатьОбъект ("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Сообщить("Проводка " + Опер.НомерПроводки() +

            "Корр. " + Опер.НомерКорреспонденции());

КонецЦикла;

ПланСчетов

Выдает план счетов текущей проводки.

Синтаксис:

ПланСчетов()

Англоязычный синоним:

ChartOfAccounts

Возвращаемое значение:

Значение типа «План Счетов».

Описание:

Для текущей проводки возвращает ее план счетов.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Сообщить("Проводка " + Опер.НомерПроводки() + "Корр. " +

            Опер.НомерКорреспонденции() + "Пл.сч." + Опер.ПланСчетов());

КонецЦикла;

НомерКорреспонденции

Определяет номер текущей корреспонденции в операции.

Синтаксис:

НомерКорреспонденции()

Англоязычный синоним:

CorrespondenceNumber

Возвращаемое значение:

Число — номер текущей корреспонденции в проводке.

Описание:

Для текущей проводки (корреспонденции) возвращает ее номер корреспонденции, если проводка не сложная — 1.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Сообщить("Проводка " + Опер.НомерПроводки() +

            "Корр. " + Опер.НомерКорреспонденции());

КонецЦикла;

СложнаяПроводка

Определяет является ли текущая проводка сложной.

Синтаксис:

СложнаяПроводка()

Англоязычный синоним:

ComplexEntry

Возвращаемое значение:

Число: 1 — текущая проводка является сложной; 0 — текущая проводка не является сложной.

Описание:

Для текущей проводки (корреспонденции) определяется является ли она сложной. Под сложной проводкой понимается проводка, состоящая из нескольких корреспонденции.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Если Опер.СложнаяПроводка() = 1 Тогда

      Сообщить("Проводка сложная");

   КонецЕсли;

КонецЦикла;

НомерСтрокиДокумента

Выдает номер строки документа, по которой сформирована текущая проводка.

Синтаксис:

НомерСтрокиДокумента()

Англоязычный синоним:

DocLineNum

Возвращаемое значение:

Число — номер строки документа, сформировавшей данную проводку.

Описание:

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

Метод НомерСтрокиДокумента выдает для текущей проводки номер строки документа, который был привязан в момент добавления проводки.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Номер строки " + Опер.НомерСтрокиДокумента());

КонецЦикла;

ПредставлениеПроводки

Получить представление для текущей проводки.

Синтаксис:

ПредставлениеПроводки(<ПоСубконто>)

Англоязычный синоним:

Entry Presentation

Параметры:

<ПоСубконто> Необязательный параметр. Флаг включения в представление проводки представления субконто проводки. Число:

0 — не включать представление субконто;

1 — включать представление субконто;

2 — включать развернутое представление субконто. Значение по умолчанию: 0.

Возвращаемое значение:

Строка — представление для текущей проводки.

Описание:

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

Метод ПредставлениеПроводки позволяет получить представление для текущей проводки.

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

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Проводка " + Опер.ПредставлениеПроводки(1));

КонецЦикла;

ПредставлениеСубконто

Получить представление для субконто текущей проводки.

Синтаксис:

ПредставлениеСубконто()

Англоязычный синоним:

SubcontoPresentation

Возвращаемое значение:

Символьная строка — представление субконто текущей проводки.

Описание:

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

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

Метод ПредставлениеСубконто позволяет получить представление для всех субконто текущей проводки.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить("Субконто " + Опер.ПредставлениеСубконто());

КонецЦикла;

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяРеквизита> | Строковое выражение — название реквизита операции или проводки неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> | Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту операции или проводки. Например: "Строка", "Число", "Справочник.Товары", "Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

Операция.НазначитьТип("ТМЦ", "Справочник.Товары");

Новая

Создать новую операцию.

Синтаксис:

Новая()

Англоязычный синоним:

New

Описание:

Метод Новая используется для создания операций из встроенного языка, не принадлежащих документу какого либо вида.

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

Метод Новая может быть вызван только для объектов типа «Операция» созданных функцией СоздатьОбъект.

После вызова метода Новая могут быть заданы значения реквизитов операции и добавлены проводки. После этого для записи операции должен быть вызван метод Записать.

Пример:

* Создание и запись новой операции созданной в модуле отчета или обработки

Опер = СоздатьОбъект("Операция");

Опер.Новая();

Опер.Дата = РабочаяДата();

Опер.Содержание = "Выдача денег из кассы";

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

ЗаписатьПроводки

Записать в информационную базу уже добавленные и заполненные проводки операции.

Синтаксис:

ЗаписатьПроводки()

Англоязычный синоним:

WriteEntries

Описание:

Метод ЗаписатьПроводки выполняет запись в информационную базу уже добавленных и заполненных проводок операции. Метод может использоваться только для атрибута «Операция» документа в момент проведения (в процедуре ОбработкаПроведения). При этом происходит обновление бухгалтерских итогов. Это позволяет при проведении документа обращаться к бухгалтерским итогам уже измененным проводками, записанными этим документом. После выполнения метода ЗаписатьПроводки и до окончания процедуры ОбработкаПроведение уже невозможно изменять или удалять проводки, добавленные до вызова этого метода.

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

Замечание. При записи сложной проводки, если у главной корреспонденции сложной проводки не указана сумма (равна 0), то она автоматически вычисляется на основании подчиненных корреспонденции.

Пример:

Процедура СписаниеСчетаНаСч20(Счт)

   // создаем и формируем проводки

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

Процедура СписаниеСчета20На40()

   // создаем и формируем проводки

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

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

   Сч20 = СчетПоКоду("20");

   Cч40 = CчeтПoKoдy("40");

   СписаниеСчетаНаСч20(СчетПоКоду("25"));

   СписаниеСчетаНаСч20(СчетПоКоду("26"));

   Операция.ЗаписатьПроводки();

   СписаниеСчета20На40();

   Операция.Содержание = "Закрытие фин. результатов за " +

                         Формат(ДатаДок, "Д ММММГГГГ");

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

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

Записать

Записать измененную или новую операцию.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать выполняет запись новой или измененной операции.

Он может быть использован в следующих ситуациях:

· метод Записать может быть вызван для записи новой или измененной ручной операции (принадлежащей документу специального вида «Операция»). Такие операции могут создаваться и редактироваться пользователем вручную или из встроенного языка объектом «Операция», созданным функцией СоздатьОбъект.

· метод Записать может быть вызван для записи операции созданной при проведении документа в предопределенной процедуре ОбработкаПроведения. Данный метод должен быть вызван после заполнения операции содержанием реквизитов и проводками.

· этот метод может применяться в Модуле формы операции непосредственно к операции локального контекста, в этом случае данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой "#3аписать".

Замечание. При записи сложной проводки, если у главной корреспонденции сложной проводки не указана сумма (равна 0), то она автоматически вычисляется на основании подчиненных корреспонденции.

Пример:

* Создание и запись новой операции созданной в модуле отчета или обработки.

Опер = СоздатьОбъект("Операция");

Опер.Новая();

Опер.Дата = РабочаяДата();

Опер.Содержание = "Деньги по чеку";

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

Опер.Дебет.Счет = СчетПоКоду("50");

Опер.Кредит.Счет = СчетПоКоду("51");

Опер.Сумма = 1000000;

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

* Запись операции в модуле документа в процессе проведения

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

   Операция.Содержание = "Выдача денег из кассы";

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

   Операция.Дебет.Счет = СчетПоКоду("71");

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

   Операция.Кредит.Счет = СчетПоКоду("50");

   Операция.Сумма = СуммаВыдачи;

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

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

Удалить

Удаление операции.

Синтаксис:

Удалить(<Режим>)

Англоязычный синоним:

Delete

Параметры:

<Режим>

Необязательный параметр. Числовое выражение:

1 — непосредственное удаление; 0 — пометка на удаление. Значение по умолчанию — 1.

Описание:

Метод Удалить удаляет (или помечает на удаление) текущую операцию.

Замечание. Непосредственное удаление объекта следует применять только в особых случаях, так как могут существовать ссылки на удаляемое значение в документах, справочниках и т. д. и непосредственное удаление может повлечет нарушение ссылочной целостности.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Если метод Удалить применен к операции принадлежащей документу не специального вида «Операция», то происходит удаление (или пометка) всего документа.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДок);

Опер.Удалить(0);

ПометкаУдаления

Проверяет наличие пометки на удаление текущей операции.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

Число: 1 — операция помечена на удаление; 0 — операция не помечена на удаление.

Описание:

Метод используется для проверки, помечена ли на удаление текущая операция или документ, которому принадлежит операция.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Если Опер.ПометкаУдаления() = 1 Тогда

      Сообщить(Опер.Документ);

   КонецЕсли;

КонецЦикла;

СнятьПометкуУдаления

Снять пометку удаления операции.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущей операции.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект. Если метод СнятьПометкуУдаления применен к операции принадлежащей документу не специального вида «Операция», то происходит снятие пометки удаления всего документа.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Если Опер.ПометкаУдаления() = 1 Тогда

      Опер.СнятьПометкуУдаления();

   КонецЕсли;

КонецЦикла;

ПолучитьВремя

Возвращает время текущей операции.

Синтаксис:

ПолучитьВремя(<Часы>, <Минуты>, <Секунды>)

Англоязычный синоним:

GetTime

Параметры:

<Часы> | Необязательный параметр. Идентификатор переменной, в которую метод возвращает число — час времени операции.
<Минуты> | Необязательный параметр. Идентификатор переменной, в которую метод возвращает число — минуты времени операции.
<Секунды> | Необязательный параметр. Идентификатор переменной, в которую метод возвращает число — секунды времени операции.

Возвращаемое значение:

Строковое значение времени в виде "ЧЧ.ММ.СС".

Описание:

Метод ПолучитьВремя возвращает время операции. Время записывается в переменные, передаваемые как параметры при вызове метода.

Пример:

Перем Час;

Перем Минута;

Перем Секунда;

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Опер.ПолучитьВремя(Час, Минута, Секунда);

КонецЦикла;

УстановитьВремя

Задает время текущей операции.

Синтаксис:

УстановитьВремя(<Часы>, <Минуты>, <Секунды>)

Англоязычный синоним:

SetTime

Пареметры:

<Часы> | Необязательный параметр. Число — час операции.
<Минуты> | Необязательный параметр. Число — минуты операции.
<Секунды> | Необязательный параметр. Число — секунды операции.

Описание:

Метод УстановитьВремя изменяет время операции.

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

Пример:

Перем Час;

Перем Минута;

Перем Секунда;

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Опер.ПолучитьВремя(Час, Минута, Секунда);

   Опер.УстановитьВремя(Час + 1, Минута, Секунда);

КонецЦикла;

ПолучитьДокумент

Возвращает значение типа «Документ» содержащий документ, которому принадлежит операция.

Синтаксис:

ПолучитьДокумент()

Англоязычный синоним:

GetDocument

Возвращаемое значение:

Значение типа «Документ».

Описание:

Метод ПолучитьДокумент возвращает значение типа «Документ» содер-жащий документ, которому принадлежит операция. Его следует использовать, если нужно передать какому либо методу или запомнить в переменную значение типа документ операции. Для доступа к данным документа непосредственно из объекта типа «Операция» следует использовать атрибут объекта «Документ».

Пример:

Опер = СоздатьОбъект("Операция");

Док = СоздатьОбъект("Документ");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Сообщить("Номер " = Опер.Документ.Номер);

   Док.НайтиДокумент(Опер.ПолучитьДокумент());

КонецЦикла;

ВключитьПроводки

Включает/выключает проводки операции.

Синтаксис:

ВключитьПроводки(<Флаг>)

Англоязычный синоним:

EntriesOn

Пареметры:

<Флаг>

Необязательный параметр. 1 — включить проводки операции. 0 — выключить проводки операции. Если параметр не передан — состояние не изменяется.

Возвращаемое значение:

Состояние на момент вызова метода. 1 — проводки операции включены; 0 — проводки операции выключениы.

Описание:

Для каждой бухгалтерской операции может быть выполнено выключение проводок. Это значит, что проводки остаются, но исключаются из итогов. Эти действия могут выполняться пользователем интерактивно и методом ВключитьПроводки для объекта типа «Операция».

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект. Изменяется состояние всех выбранной проводок операции одноврменно.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Опер.ВключитьПроводки(0);

КонецЦикла;

НоваяПроводка

Создать новую проводку.

Синтаксис:

НоваяПроводка()

Англоязычный синоним:

NewEntry

Описание:

Метод создает новую проводку для текущей операции. Новая проводка становится текущей.

Во-первых, метод может быть вызван для объекта «Операция», созданного функцией СоздатьОбъект, при создании или изменении операции принадлежащей документу специального вида «Операция».

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

Созданная проводка будет записана и повлечет изменения в бухгалтерских итогах после вызова метода операции Записать.

Пример:

* Создание и запись новой операции созданной в модуле отчета или обработки

Опер = СоздатьОбъект("Операция");

Опер.Новая();

Опер.Дата = РабочаяДата();

Опер.Содержание = "Деньги по чеку";

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

Опер.Дебет.Счет = СчетПоКоду("5 0");

Опер.Кредит.Счет = СчетПоКоду("51");

Опер.Сумма = 1000000;

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

* Запись операции в модуле документа в процессе проведения

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

   Операция.Содержание = "Выдача денег из кассы";

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

   Операция.Дебет.Счет = СчетПоКоду("71");

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

   Операция.Кредит.Счет = СчетПоКоду("50");

   Операция.Сумма = СуммаВыдачи;

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

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

НоваяКорреспонденция

Создает новую корреспонденцию проводки.

Синтаксис:

НоваяКорреспонденция()

Англоязычный синоним:

NewCorrespondence

Описание:

Метод НоваяКорреспонденция создает новую корреспонденцию для проводки. Метод должен использоваться после того, как новая проводка создана с использованием метода НоваяПроводка.

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

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

Пример:

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

   Операция.Содержание = "Выдача денег из кассы";

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

   Операция.Кредит.Счет = СчетПоКоду("50");

   Операция.Сумма = Итог("СуммаВыдачи");

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

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

      Операция.НоваяКорреспонденция();

      Операция.Дебет.Счет = СчетПоКоду("71");

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

      Операция.Сумма = СуммаВыдачи;

   КонецЦикла;

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

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

ПроверитьПроводку

Проверить проводку на соответствие корректным проводкам.

Синтаксис:

ПроверитьПроводку()

Англоязычный синоним:

CheckEntry

Возвращаемое значение:

Число: 1 — проводка соответствует корректным проводкам; 0 — не соответствует.

Описание:

Метод ПроверитьПроводку проверяет проводку на соответствие корректным проводкам.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДок);

Пока Опер.КоличествоПроводок() > 0 Цикл

   Опер.ПолучитьПроводкуПоНомеру(1);

   Если Опер.ПроверитьПроводку() = 0 Тогда

      Опер.УдалитьПроводку();

   КонецЕсли;

КонецЦикла;

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

УдалитьПроводку

Удалить проводку.

Синтаксис:

УдалитьПроводку()

Англоязычный синоним:

DeleteEntry

Описание:

Метод удаляет текущую проводку или корреспонденцию операции. Метод может быть вызван объектом «Операция», созданным функцией СоздатьОбъект, при создании или изменении операции принадлежащей документу специального вида «Операция».

Собственно изменение в составе проводок будут записаны и повлекут из-менния в бухгалтерских итогах после вызова метода операции Записать.

Пример:

Опер = СоздатьОбъект("Операция");

Опер.НайтиОперацию(ВыбрДок);

Пока Опер.КоличествоПроводок() > 0 Цикл

   Опер.ПолучитьПроводкуПоНомеру(1);

   Опер.УдалитьПроводку();

КонецЦикла;

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

Атрибуты контекста модуля формы операции

БИ

Значение, содержащее агрегатный объект типа «БухгалтерскиеИтоги»

Синтаксис:

БИ

Англоязычный синоним:

AT

Описание:

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

Пример:

* Формула суммы проводки типовой опеарции

БИ.ПериодМ(ДатаОперации);

БИ.СКД(Дебет.Счет)

Методы контекста модуля формы операции

ПоТиповойОперации

Определяет, вводится ли новая операция с использованием типовой, и какая типовая операция используется.

Синтаксис:

ПоТиповойОперации (<Переменная>)

Англоязычный синоним:

ByTemplateOper

Параметры:

<Переменная>

Необязательный параметр. Имя переменной, в которую будет записано наименование типовой операции.

Возвращаемое значение:

Число: 1 — если при вводе операции вручную использована типовая опера-ци; 0 — если при вводе операции вручную не использовалась типовая операция.

Описание:

Определяет, вводится ли новая операция с использованием типовой. Если указан параметр <Переменная>, в переменную будет записано имя типовой операции;

Пример:

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

   Если ПоТиповойОперации() = 0 Тогда

      ИспользоватьВалюту(Константа.ОснВалюта);

   КонецЕсли;

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

ИспользоватьВалюту

Установка валюты используемой по умолчанию.

Синтаксис:

МспользоватьВалюту(<Валюта>)

Англоязычный синоним:

UseCurrency

Параметры:

<Валюта>

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

Возвращаемое значение:

Значение установки используемой валюты на момент до вызова метода.

Описание:

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

Пример:

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

   ИспользоватьВалюту(Константа.ОснВалюта);

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

ИспользоватьКорСчет

Установка корреспондирующего счета используемого по умолчанию.

Синтаксис:

ИспользоватьКорСчет(<Счет>)

Англоязычный синоним:

UseCorAccount

Параметры:

<Счет>

Необязательный параметр. Значение типа «Счет». Если параметр не задан, установка не изменяется.

Возвращаемое значение:

Значение установки используемого по умолчанию корреспондирующего счета на момент до вызова метода.

Описание:

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

Пример:

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

   ИспользоватьКорСчет(Константа.СчетПервОстатков);

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

ИспользоватьСубконто

Установка субконто используемого по умолчанию.

Синтаксис:

ИспользоватьСубконто(<ВидСубконто>, <Субконто>)

Англоязычный синоним:

UseSubconto

Параметры:

<ВидСубконто> | Значение типа «ВидСубконто».
<Субконто> | Необязательный параметр. Значение субконто. Если параметр не задан, установка не изменяется.

Возвращаемое значение:

Значение установки используемого по умолчанию субконто на момент до вызова метода.

Описание:

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

Пример:

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

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

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

ИзменениеПорядкаСтрок

Установить режим изменения порядка строк в форме операции.

Синтаксис:

ИзменениеПорядкаСтрок(<Разрешить>)

Англоязычный синоним:

ChangeLinesOrder

Параметры:

<Разрешить>

Необязательный параметр. Число: 1 — разрешить изменение порядка строк в операции; 0 — запретить. Если параметр не задан, то режим не меняется.

Возвращаемое значение:

Режим изменения порядка строк до исполнения метода. Число: 1 — разрешено изменение порядка строк в операции; 0 — запрещено.

Описание:

Метод ИзменениеПорядкаСтрок позволяет установить режим изменения порядка строк в форме операции.

Пример:

ИзменениеПорядкаСтрок(0);

Предопределенные процедуры модуля формы операции

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в модуле формы операции (см. «Виды программных модулей»).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ВводНового

Предопределенная процедура при вводе новой операции.

Синтаксис:

ВводНового(<ПризнКопирования>, <ОбъектКопирования>)

Англоязычный синоним:

InputNew

Параметры:

<ПризнКопирования> | Признак того, что объект введен копированием. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак может быть использован для анализа необходимости инициализации реквизитов нового объекта.
<ОбъектКопирования> | Объект, который был скопирован.

Описание:

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

Процедура ВводНового должна размещаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

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

   ИспользоватьВалюту(Константа.ОснВалюта);

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

См. также: СтатусВозврата

ВводНаОсновании

Предопределенная процедура при вводе новой операции на основании.

Синтаксис:

ВводНаОсновании(<ДокОснование>)

Англоязычный синоним:

InputCausedBy

Параметры:

<ДокОснование>

Значение документа, на основании которого вводится новая операция.

Описание:

Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта «Ввести на основании» из меню «Действия» главного меню системы 1С:Предприятие при работе с журналом операций или в других случаях, когда форма открывается для ввода на основании. В этот момент система подставляет фактическое значение параметра <ДокОснование>, содержащее объект типа «Документ», на которой находился курсор в момент выполнения данной команды.

Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) реквизитов новой операции, вводимых на основании выбранного документа

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя вводить новые операции), ввода новой операции и открытие формы не будет выполнено.

Процедуру ВводНаОсновании можно размещать только в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ВводНаОсновании(ДокОсн)

   Если ДокОсн.Вид() = "ПлатПор" Тогда

      ИспользоватьСубконто(ВидыСубконто.Организации, ДокОсн.Получатель);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура вызывается при записи операции.

Синтаксис:

ПриЗаписи()

Англоязычный синоним:

OnWrite

Описание:

Вызов предопределенной процедуры ПриЗаписи производится в системе 1С:Предприятие при записи операции в форме операции. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если не правильно заполнены реквизиты операции), запись операции не будет выполнена.

Данная предопределенная процедура может располагаться в модулях формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриЗаписи()

   Если ПустаяСтрока(Содержание) = 1 Тогда

      Предупреждение("Не заполнено содержание операции!");

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриНачалеРедактированияСтроки

Предопределенная процедура вызывается при редактировании существующей проводки или корреспонденции операции.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

Вызов предопределенной процедуры ПриНачалеРедактированияСтроки производится в системе 1С:Предприятие в момент начала интерактивного редактирования существующей проводки или корреспонденции операции.

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя редактировать проводки операции), то проводка не будет изменена.

Данная предопределенная процедура может располагаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = "Оператор" Тогда

      Предупреждение("У вас нет права изменять проводки!");

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриВводеСтроки

Предопределенная процедура при вводе новой проводки или корреспонденции операции.

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

Вызов предопределенной процедуры ПриВводеСтроки производится в системе ЮПредприятие при интерактивном вводе новой проводки или корреспонденции операции. Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю редактировать операции), то новая строка не будет инициирована.

Данная предопределенная процедура может располагаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = "Оператор" Тогда

      Предупреждение("У вас нет права добавлять проводки!");

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой проводки или корреспонденции операции.

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

Вызов предопределенной процедуры ПриРедактированииНовойСтроки производится в системе 1С:Предприятие в момент начала интерактивного редактирования новой проводки или корреспонденции операции. Данная процедура может использоваться, например, для установки начальных значений (по умолчанию) проводки. В данной предопределенной процедуре установка статуса возврата не имеет смысла, т. к. отказаться от ввода новой проводки в этот момент уже невозможно.

Данная предопределенная процедура может располагаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированияНовойСтроки()

   Фирма = Константа.ОснФирма;

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

См. также: СтатусВозврата

ПриУдаленииСтроки

Предопределенная процедура при удалении проводки или корреспонденции операции.

Синтаксис:

ПриУдаленииСтроки()

Англоязычный синоним:

OnDeleteLine

Описание:

Вызов предопределенной процедуры ПриУдаленииСтроки производится в системе 1С:Предприятие при интерактивном удалении проводки или корреспонденции операции.

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя редактировать проводки операции), удаление проводки или корреспонденции операции не будет выполнено.

Данная предопределенная процедура может располагаться только в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = "Оператор" Тогда

      Предупреждение("У вас нет права изменять проводки!");

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриИзмененииПорядкаСтрок

Предопределенная процедура при изменении порядка строк операции.

Синтаксис:

ПриМзмененииПорядкаСтрок(<Действие>)

Англоязычный синоним:

OnChangeLinesOrder

Параметры:

<Действие>

Число: 1 — перемещение строки вниз; -1 (минус единица) — перемещение строки вверх.

Описание:

Вызов предопределенной процедуры ПриИзмененииПорядкаСтрок производится системой 1С:Предприятие неявно при интерактивной попытке перемещения строк вверх-вниз и перенумерации (до выполнения действия).

Если в данной предопределенной процедуре установлен статус возврата 0 (например, если данному пользователю нельзя устанавливать данное значение отбора проводок), установка отбора не будет выполнена.

Данная предопределенная процедура может располагаться только в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриИзмененииПорядкаСтрок(Направление)

   СтатусВозврата(0);

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

См. также: СтатусВозврата


Part18

Глава 18
Работа с Журналами операций

Контекст работы с журналами операций

Журнал операций — средство для работы со списком операций. В терминах языка журнал операций не является специальным типом данных (он не имеет значения, его нельзя создать при помощи функции СоздатьОбъект).

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

Методы контекста Модуля формы журнала операций

Описанные в данном разделе методы доступны только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

ВидыОтбора

Установить доступные виды отборов для журнала операций.

Синтаксис:

ВидыОтбора(<СписокОтборов>)

Англоязычный синоним:

KindsOfSelection

Параметры:

<СписокОтборов>

Необязательный параметр. Строковое выражение. Может принимать значения:

список имен отборов (через запятую) — в журнале операций будут доступны только указанные виды отборов;

символ «*» — для журнала используются все назначенные в Конфигураторе виды отборов;

пустая строка ("") — запрещаются все виды отборов.

Если параметр не указан, метод возвращает текущий список разрешенных отборов.

Возвращаемое значение:

Строковое значение, содержащее текущий (на момент до вызова метода) список отборов для журнала операций. Имена отбора в возвращаемой строке разделяются запятыми.

Описание:

Метод ВидыОтбора устанавливает доступные виды отборов журнала операций. Использование данного метода влияет на полноту списка видов отбора, который выдается пользователю в диалоге «Отбор» при работе с системой 1С:Предприятие.

Метод ВидыОтбора позволяет ограничить число видов отбора, доступных конкретному пользователю при работе с журналом операций, или совсем запретить выполнение отбора в журнале. Данный метод доступен только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

Можно выделить 4 варианта использования данного метода.

1. Если параметр <СписокОтборов> не указан, метод возвращает текущий список отборов, установленных для журнала операций.

2. Чтобы ограничить использование отборов какими-либо конкретными видами отбора, список этих видов отбора следует передать методу в качестве параметра. Указывать в списке можно как имена отборов, автоматически задаваемые системой 1С:Предприятие, так и отборы, созданные в процессе конфигурирования: по реквизитам операции и по общим реквизитам документов.

«Системные» отборы задаются включением соответствующих опций в окне редактирования свойств операции в конфигураторе. Каждому виду отбора соответствует «системное» имя отбора — то, которое выдается пользователю в диалоге «Отбор», и которое можно использовать во встроенном языке (в том числе и при вызове метода ВидыОтбора).

Для журнала операций допустимы следующие «системные» имена отборов:

СуммаОперации — отбор по сумме операции;

Содержание — отбор по содержанию операции.

Кроме этого, в конфигураторе можно включить возможность выполнять отборы по дополнительным реквизитам операции. Для этого используется опция «Отбор» в закладке «Дополнительные» палитры свойств дополнительного реквизита операции. В этих случаях в качестве имен отбора следует использовать идентификаторы дополнительных реквизитов операции.

Кроме того в качестве имен отборов могут выступать идентификаторы граф отбора, в которых участвуют бухгалтерские документы или виды субконто, или данные операции или проводки.

Также в жунале операций возможен отбор по видам документов, для которых установлен признак «Бухгалтерский учет». Имена этих отборов определяются идентификаторами видов документов.

3. Если параметр <СписокОтборов> равен «*», разрешаются все виды отборов, установленные для журнала операций в конфигураторе. Вызов метода ВидыОтбора с таким параметром позволяет отключить ранее установленное ограничение на использование видов отборов.

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

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

Пример:

ВидыОтбора("Клиент, Автор");

ЗакладкиОтбора

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

Синтаксис:

ЗакладкиОтбора(<ИмяОтбора>, <ВИнтервалеЖурнала>, <УстановитьНаЗначение>,

                            <ЗначениеОтбора>)

Англоязычный синоним:

TabCtrlSelection

Параметры:

<ИмяОтбора>

Строковое выражение: имя отбора.

<ВИнтервалеЖурнала>

исловое выражение: признак отбора только в интервале журнала. Может принимать значения:

1 — текущие значения отбора для закладок выбираются только по проводкам в установленном интервале журнала;

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

По умолчанию — 0.

<УстановитьНаЗначение>

Числовое выражение: признак выбора значения отбора для показа. Параметр может принимать значения:

1 — для показа выбирается отбор по значению, указанному в параметре <ЗначениеОтбора>;

0 — текущее значение отображаемой закладки отбора устанавливается на первое существующее значение.

По умолчанию — 0.

<ЗначениеОтбора>

Значение отбора.

Описание:

Метод ЗакладкиОтбора устанавливает в форме журнала операций закладки для интерактивного осуществления отбора. При включении закладок в верхней части журнала появляются ярлыки, соответствующие значениям отбора. Щелчком мыши по ярлыку можно открыть «страницу» журнала операций: такая «страница» будет содержать операции, отобранные по указанному значению.

Для включения отбора необходимо в качестве параметра <ИмяОтбора> передать методу имя отбора. Можно использовать как имена отборов, автоматически задаваемые системой 1С:Предприятие, так и отборы, созданные в процессе конфигурирования: по реквизитам операции и по общим реквизитам документов.

«Системные» отборы задаются включением соответствующих опций в окне редактирования свойств операции в конфигураторе. Каждому виду отбора соответствует «системное» имя отбора — то, которое выдается пользователю в диалоге «Отбор», и которое можно использовать во встроенном языке.

Для журнала операций допустимы следующие «системные» имена отборов:

СуммаОперации — отбор по сумме операции;

Содержание — отбор по содержанию операции.

Кроме этого, в конфигураторе можно включить возможность выполнять отборы по дополнительным реквизитам операции. Для этого используется опция «Отбор» в закладке «Дополнительные» палитры свойств дополнительного реквизита операции. В этих случаях в качестве имен отбора следует использовать идентификаторы дополнительных реквизитов операции.

Кроме того в качестве имен отборов могут выступать идентификаторы граф отбора, в которых участвуют бухгалтерские документы или виды субконто, или данные операции или проводки.

Также в жунале операций возможен отбор по видам документов, для которых установлен признак «Бухгалтерский учет». Имена этих отборов определяются идентификаторами видов документов.

Данный метод доступен только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

Пример:

ЗакладкиОтбора("Автор", 1, , );

УстановитьОтбор

Установить отбор журнала операций.

Синтаксис:

УстановитьОтбор(<ИмяОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

SetSelection

Параметры:

<ИмяОтбора> | Строковое выражение — имя отбора. Если это значение пустое, то отбор отключается.
<ЗначениеОтбора> | Значение отбора.

Описание:

Метод УстановитьОтбор принудительно устанавливает отбор для журнала операций. Для установки отбора методу должны быть переданы 2 параметра: имя отбора и значение отбора.

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

СуммаОперации — отбор по сумме операции;

Содержание — отбор по содержанию операции.

Кроме этого, в конфигураторе можно включить возможность выполнять отборы по дополнительным реквизитам операции и общим реквизитам документов. Для этого используется опция «Отбор» в закладке «Дополнительные» палитры свойств, соответственно, дополнительного реквизита операции или общего реквизита документа. В этих случаях в качестве имен отбора следует использовать идентификаторы дополнительных реквизитов операции или общих реквизитов документов.

Кроме того в качестве имен отборов могут выступать идентификаторы граф отбора, в которых участвуют бухгалтерские документы или виды субконто, или данные операции или проводки.

Также в жунале операций возможен отбор по видам документов, для которых установлен признак «Бухгалтерский учет». Имена этих отборов определяются идентификаторами видов документов. Эти оборы не имеют значения отбора.

Отбор устанавливается по значению, указанному в параметре <ЗначениеОтбора>.

Данный метод доступен только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

Пример:

Изм = УстановитьОтбор("Склады", Склад!);

ПолучитьОтбор

Возвратить текущее значение отбора журнала операций.

Синтаксис:

ПолучитьОтбор(<ИмяОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

GetSelection

Параметры:

<ИмяОтбора> | Необязательный параметр. Имя переменной, куда будет записано строковое значение имени отбора.
<ЗначениеОтбора> | Необязательный параметр. Имя переменной, куда будет записано значение отбора.

Возвращаемое значение:

Число: 1 — отбор включен; 0 — отбор не включен.

Описание:

Метод ПолучитьОтбор позволяет получить информацию о текущем состоянии отбора журнала операций. Если отбор в журнале операций включен, метод возвращает 1 и записывает имя отбора и текущее значение отбора в переменные, передаваемые методу ПолучитьОтбор в качестве параметров.

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

Данный метод доступен только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

Пример:

Изм = ПолучитьОтбор();

УстановитьИнтервал

Установить интервал журнала операций.

Синтаксис:

УстановитьИнтервал(<ДатаНач>, <ДатаКон>, <ФлагИзменения>)

Англоязычный синоним:

SetRange

Параметры:

<ДатаНач> | Выражение типа «дата» — начальная дата интервала журнала операций.
<ДатаКон> | Выражение типа «дата» — конечная дата интервала журнала операций.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения интервала журнала. 1 — пользователь может изменить интервал журнала интерактивно, 0 — пользователь не может интерактивно изменить интервал журнала.

Описание:

Метод УстановитьИнтервал позволяет установить интервал видимости записей в журнале операций. При работе с журналом будут доступны операции, даты которых лежат внутри указанного интервала.

Данный метод доступен только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

Пример:

УстановитьИнтервал(НИ, КИ);

НачалоИнтервала

Возвратить дату начала интервала журнала операций.

Синтаксис:

НачалоИнтервала()

Англоязычный синоним:

BegOfRange

Возвращаемое значение:

Значение типа «Дата» — начальная дата интервала журнала операций.

Описание:

Метод НачалоИнтервала позволяет получить текущую начальную дату интервала журнала операций.

Данный метод доступен только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

Пример:

НИ = НачалоИнтервала();

КонецИнтервала

Возвратить дату конца интервала журнала операций.

Синтаксис:

КонецИнтервала()

Англоязычный синоним:

EndOfRange

Возвращаемое значение:

Значение типа «Дата» — конечная дата интервала журнала операций.

Описание:

Метод КонецИнтервала позволяет получить конечную дату интервала журнала операций.

Данный метод доступен только в контексте модуля формы журнала операций (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();

Предопределенные процедуры модуля формы журнала операций

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в модулях форм журнала операций (см. «Виды программных модулей»).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ПриУстановкеОтбора

Предопределенная процедура при установке отбора в журнале операций.

Синтаксис:

ПриУстановкеОтбора(<ИмяОт6ора>, <Значение>)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

<ИмяОтбора> | Строковое выражение — имя отбора.
<ЗначениеОтбора> | Значение отбора.

Описание:

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

Если в данной предопределенной процедуре установлен статус возврата 0 (например, если данному пользователю нельзя устанавливать данное значение отбора операций), установка отбора не будет выполнена.

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

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора)

   Если НазваниеНабораПрав() = "Оператор" Тогда

      Если (ИмяОтбора = "Автор") И (ЗначОтбораоТекПольз) Тогда

         Предупреждение("У вас нет права просматривать чужие Операции!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУстановкеИнтервала

Предопределенная процедура при установке интервала журнала.

Синтаксис:

ПриУстановкеИнтервала(<ДатаНач>, <ДатаКон>)

Англоязычный синоним:

OnSetRange

Параметры:

<ДатаНач> | Дата начала интервала журнала.
<ДатаКон> | Дата конца интервала журнала.

Описание:

Вызов предопределенной процедуры ПриУстановкеИнтервала производится системой 1С:Предприятие неявно при интерактивной попытке установить интервал в журнале документов. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять интервал журнала), установка не будет выполнена.

Пример:

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права изменять интервал журнала!", 2);

      СтатусВозврата(0);

   КюнецЕсли;

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

См. также: СтатусВозврата


Part19

Глава 19
Работа с Журналами проводок

Контекст работы с журналами проводок

Журнал проводок — средство для работы со списком проводок. В терминах языка журнал проводок не является специальным типом данных (он не имеет значения, его нельзя создать при помощи функции СоздатьОбъект).

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

Методы контекста Модуля формы журнала проводок

Описанные в данном разделе методы доступны только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

ВидыОтбора

Установить доступные виды отборов для журнала проводок.

Синтаксис:

ВидыОтбора(<СписокОтборов>)

Англоязычный синоним:

KindsOfSelection

Параметры:

<СписокОтборов>

Необязательный параметр. Строковое выражение. Может принимать значения:

список имен отборов через запятую — в журнале проводок будут доступны только указанные виды отборов;

символ «*» — для журнала используются все назначенные в Конфигураторе виды отборов;

пустая строка "" — запрещаются все виды отборов.

Если параметр не указан, метод возвращает текущий список разрешенных отборов.

Возвращаемое значение:

Строковое значение, содержащее текущий (на момент до вызова метода) список отборов для журнала. Имена отбора в возвращаемой строке разделяются запятыми.

Описание:

Метод ВидыОтбора устанавливает доступные виды отборов журнала проводок. Использование данного метода влияет на полноту списка видов отбора, который выдается пользователю в диалоге «Отбор» при работе с системой 1С:Предприятие.

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

Можно выделить 4 варианта использования данного метода.

1. Если параметр <СписокОтборов> не указан, метод возвращает текущий список отборов, установленных для журнала проводок.

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

«Системные» отборы задаются включением соответствующих опций в окне редактирования свойств проводки в конфигураторе. Каждому виду отбора соответствует «системное» имя отбора — то, которое выдается пользователю в диалоге «Отбор», и которое можно использовать во встроенном языке (в том числе, и при вызове метода ВидыОтбора).

Для журнала проводок допустимы следующие «системные» имена отборов:

Сумма — отбор по сумме проводки;

ВалСумма — отбор по валютной сумме проводки;

Валюта — отбор по валюте проводки;

Количество — отбор по количеству проводки;

Счет — отбор по счетам проводки;

СчетДт — отбор по счетам дебета проводки;

СчетКт — отбор по счетам кредита проводки;

ПланСчетов — отбор по плану счетов.

Кроме этого, в конфигураторе можно включить возможность выполнять отборы по субконто проводки и дополнительным реквизитам проводки. Для этого используется опция «Отбор» в закладке «Дополнительные» палитры свойств вида субконто или дополнительного реквизита проводки. В этих случаях в качестве имен отбора следует использовать идентификаторы видов субконто или дополнительных реквизитов проводки.

3. Если параметр <СписокОтборов> равен «*», разрешаются все виды отборов, установленные для журнала проводок в конфигураторе. Вызов метода ВидыОтбора с таким параметром позволяет отключить ранее установленное ограничение на использование видов отборов.

4. Если в качестве параметра методу ВидыОтбора передана пустая строка, метод запрещает пользователю выполнение любых отборов в журнале проводок.

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

Пример:

ВидыОтбора("Склад, Клиент, Автор");

ЗакладкиОтбора

Установить в форме журнала проводок закладки для интерактивного отбора.

Синтаксис:

ЗакладкиОтбора(<ИмяОтбора>, <ВИнтервалеЖурнала>, <УстановитьНаЗначение>,

               <ЗначениеОтбора>)

Англоязычный синоним:

TabCtrlSelection

Параметры:

<ИмяОтбора>

Строковое выражение: имя отбора.

<ВИнтервалеЖурнала>

Числовое выражение: признак отбора только в интервале журнала. Может принимать значения:

1 — текущие значения отбора для закладок выбираются только по проводкам в установленном интервале журнала;

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

По умолчанию — 0.

<УстановитьНаЗначение>

Числовое выражение: признак выбора значения отбора для показа. Параметр может принимать значения:

1 — для показа выбирается отбор по значению, указанному в параметре <ЗначениеОтбора>;

0 — текущее значение отображаемой закладки отбора устанавливается на первое существующее значение.

По умолчанию — 0.

<ЗначениеОтбора>

Значение отбора.

Описание:

Метод ЗакладкиОтбора устанавливает в форме журнала проводок закладки для интерактивного осуществления отбора. При включении закладок в верхней части журнала проводок появляются ярлыки, соответствующие значениям отбора. Щелчком мыши по ярлыку можно открыть «страницу» журнала проводок: такая «страница» будет содержать проводки, отобранные по указанному значению.

Для включения отбора необходимо в качестве параметра <ИмяОтбора> передать методу имя отбора. Можно использовать как имена отборов, автоматически задаваемые системой 1С:Предприятие, так и отборы, созданные в процессе конфигурирования: по реквизитам проводки и по субконто проводки.

«Системные» отборы задаются включением соответствующих опций в окне редактирования свойств проводки в конфигураторе. Каждому виду отбора соответствует «системное» имя отбора — то, которое выдается пользователю в диалоге «Отбор», и которое можно использовать во встроенном языке.

Для журнала проводок допустимы следующие «системные» имена отборов:

Сумма — отбор по сумме проводки;

ВалСумма — отбор по валютной сумме проводки;

Валюта — отбор по валюте проводки;

Количество — отбор по количеству проводки;

Счет — отбор по счетам проводки;

СчетДт — отбор по счетам дебета проводки;

СчетКт — отбор по счетам кредита проводки;

ПланСчетов — отбор по плану счетов.

Кроме этого, в конфигураторе можно включить возможность выполнять отборы по субконто проводки и дополнительным реквизитам проводки. Для этого используется опция «Отбор» в закладке «Дополнительные» палитры свойств вида субконто или дополнительного реквизита проводки. В этих случаях в качестве имен отбора следует использовать идентификаторы видов субконто или дополнительных реквизитов проводки.

Данный метод доступен только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

Пример:

ЗакладкиОтбора("Склады", 1, 1, Константа.ОснСклад);

УстановитьОтбор

Установить отбор журнала проводок.

Синтаксис:

УстановитьОтбор(<ИмяОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

SetSelection

Параметры:

<ИмяОтбора> | Строковое выражение — имя отбора. Если это значение пустое, то отбор отключается.
<ЗначениеОтбора> | Значение отбора.

Описание:

Метод УстановитьОтбор принудительно устанавливает отбор для журнала проводок. Для установки отбора методу должны быть переданы 2 параметра: имя отбора и значение отбора.

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

Сумма — отбор по сумме проводки;

ВалСумма — отбор по валютной сумме проводки;

Валюта — отбор по валюте проводки;

Количество — отбор по количеству проводки;

Счет — отбор по счетам проводки;

СчетДт — отбор по счетам дебета проводки;

СчетКт — отбор по счетам кредита проводки;

ПланСчетов — отбор по плану счетов.

Кроме этого, в конфигураторе можно включить возможность выполнять отборы по субконто проводки и дополнительным реквизитам проводки. Для этого используется опция «Отбор» в закладке «Дополнительные» палитры свойств вида субконто или дополнительного реквизита проводки. В этих случаях в качестве имен отбора следует использовать идентификаторы видов субконто или дополнительных реквизитов проводки.

Отбор устанавливается по значению, указанному в параметре <ЗначениеОтбора>.

Данный метод доступен только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

Пример:

Изм = УстановитьОтбор("Склады", Склад1);

ПолучитьОтбор

Возвратить текущее значение отбора журнала проводок.

Синтаксис:

ПолучитьОтбор(<ИмяОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

GetSelection

Параметры:

<ИмяОтбора> | Необязательный параметр. Имя переменной, куда будет записано строковое значение имени отбора.
<ЗначениеОтбора> | Необязательный параметр. Имя переменной, куда будет записано значение отбора.

Возвращаемое значение:

Числовое значение: 1 — отбор включен; 0 — отбор не включен.

Описание:

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

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

Данный метод доступен только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

Пример:

Изм = ПолучитьОтбор();

УстановитьИнтервал

Установить интервал журнала проводок.

Синтаксис:

УстановитьИнтервал(<ДатаНач>, <ДатаКон>, <ФлагИзменения>}

Англоязычный синоним:

SetRange

Параметры:

<ДатаНач> | Выражение типа «дата» — начальная дата интервала журнала проводок.
<ДатаКон> | Выражение типа «дата» — конечная дата интервала журнала проводок.
<ФлагИзменения> | Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения интервала журнала. 1 — пользователь может изменить интервал журнала интерактивно, 0 — пользователь не может интерактивно изменить интервал журнала.

Описание:

Метод УстановитьИнтервал позволяет установить интервал видимости записей в журнале проводок. При работе с журналом проводок будут доступны проводки, даты которых лежат внутри указанного интервала.

Данный метод доступен только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

Пример:

УстановитьИнтервал(НИ, КИ);

НачалоИнтервала

Возвратить дату начала интервала журнала проводок.

Синтаксис:

НачалоИнтервала()

Англоязычный синоним:

BegOfRange

Возвращаемое значение:

Значение типа «Дата» — начальная дата интервала журнала проводок.

Описание:

Метод НачалоИнтервала позволяет получить начальную дату интервала журнала проводок.

Данный метод доступен только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

Пример:

НИ = НачалоИнтервала();

КонецИнтервала

Возвратить дату конца интервала журнала проводок.

Синтаксис:

КонецИнтервала()

Англоязычный синоним:

EndOfRange

Возвращаемое значение:

Значение типа «Дата» — конечная дата интервала журнала проводок.

Описание:

Метод КонецИнтервала позволяет получить конечную дату интервала журнала проводок.

Данный метод доступен только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();

Предопределенные процедуры модуля формы журнала проводок

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в модулях форм журнала проводок (см. «Виды программных модулей»).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ПриУстановкеОтбора

Предопределенная процедура при установке отбора в журнале проводок.

Синтаксис:

ПриУстановкеОтбора(<ИмяОтбора>, <Значение>)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

<ИмяОтбора> | Строковое выражение — имя отбора.
<ЗначениеОтбора> | Значение отбора.

Описание:

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

Если в данной предопределенной процедуре установлен статус возврата 0 (например, если данному пользователю нельзя устанавливать данное значение отбора проводок), установка отбора не будет выполнена.

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

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора)

   Если (ИмяОтбора = "Счет") И (ЗначОтбора.Валютный = 1) Тогда

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриУстановкеИнтервала

Предопределенная процедура при установке интервала журнала.

Синтаксис:

ПриУстановкеИнтервала(<ДатаНач>, <ДатаКон>)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

<ДатаНач> | Дата начала интервала журнала.
<ДатаКон> | Дата конца интервала журнала.

Описание:

Вызов предопределенной процедуры ПриУстановкеИнтервала производится системой 1С:Предприятие неявно при интерактивной попытке установить интервал в журнале документов. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять интервал журнала), установка не будет выполнена.

Пример:

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права изменять интервал журнала!", 2);

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата

ПриПоказеПроводокПоДокументу

Предопределенная процедура при показе проводок по документу (операции).

Синтаксис:

ПриПоказеПроводокПоДокументу(<Документ>)

Англоязычный синоним:

OnShowEntrysByDoc

Параметры:

<Документ>

Документ по которому выводятся проводки.

Описание:

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

Вызов предопределенной процедуры ПриПоказеПроводокПоДокументу производится системой 1С:Предприятие неявно при обновлении содержимого подчиненного журнала проводок текущей операции.

Переданный в качестве параметра документ может быть использован для определения необходимости показха проводок по данной операции.

Если в данной предопределенной процедуре установлен статус возврата 0, то проводки операции показываться не будут (например, если пользователю запрещен просмотр проводок).

Пример:

Процедура ПриПоказеПроводокПоДокументу(ТекДок)

   Если ТекДок.Операция.Фирма <> ТекФирма Тогда

      СтатусВозврата(0);

   КонецЕсли;

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

См. также: СтатусВозврата


Part20

Глава 20
Работа с бухгалтерскими итогами

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

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

Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций.

Объект встроенного языка «БухгалтерскиеИтоги» предназначен для организации доступа к итогам в различных разрезах, за различные периоды и с разной степенью детализации.

Контекст работы с бухгалтерскими итогами

Обращение к бухгалтерским итогам выполняется посредством агрегатного объекта типа «БухгалтерскиеИтоги» (Англоязычный синоним: BookkeepingTotals). Объект такого типа должен быть создан при помощи функции СоздатьОбъект

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

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

Механизм бухгалтерских итогов, поддерживаемый компонентой «Бухгалтерский учет» системы 1С:Предприятие релизует хранение накопленных итогов для обеспечения быстрого обращения к ним при составлении отчетов и выполнения различных вычислений.

Хранение итогов поддерживается системой с детализацией до месяца. Кроме того, хранятся не все возможные итоги, а те, обращение к которым выполняется наиболее часто — это остатки и обороты по счетам с детализацией по объектам аналитики (субконто), а также обороты между счетам (без учета аналитики).

Обращение к этим итогам выполняется системой непосредственно. Для получения других итогов (с детализацией меньше месяца, с получением оборотов между различными объектами аналитики, а также сложных выборок) требуется выполнение предварительных действий — временного расчета или запроса.

Объект «БухгалтерскиеИтоги» может работать в 3-х различных режимах:

· работа с основными итогами;

· работа с временными итогами;

· работа в режиме запроса;

При создании объекта он работает в режиме работы с основными итогами. Переключение его в остальные режимы выполняется методами Рассчитать и ВыполнитьЗапрос. В зависимости от режима изменяется состав и использование атрибутов и методов объекта.

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

Общие свойства

Работа объекта «БухгалтерскиеИтоги» во всех режимах имеет некоторые общие особенности.

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

Там, где методам объекта в качестве параметра должна передаваться валюта должно передаваться значение типа того справочника, который выбран в настройке планов счетов в качестве справочника валют. В тексте описания объекта такие значения будут обозначаться как значение типа «Справочник.Валюты», хотя на прикатике идентификатор справочника может быть иным, в зависимости от выбранного в настройке планов счетов значения.

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

ИспользоватьПланСчетов

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

Синтаксис:

ИспользоватьПланСчетов(<ПланСчетов>)

Англоязычный синоним:

UseChartOfAccounts

Параметры:

<ПланСчетов>

Необязательный параметр. Значение типа «План Счетов». Если не задан установка не меняется.

Возвращаемое значение:

Значение данной установки до вызова метода.

Описание:

Применение данного метода имеет смысл только если используется несколько планов счетов.

Метод ИспользоватьПланСчетов задает план счетов для метода получения итогов и ВыполнитьЗапрос для тех случаев, когда конкретный счет не указан или задается строкой символов.

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

Пример:

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

ИспользоватьРазделительУчета

Установить значение разделителя учета.

Синтаксис:

ИспользоватьРазделительУчета(<РазделительУчета>)

Англоязычный синоним:

UseAccountingDivision

Параметры:

<РазделительУчета>

Необязательный параметр. Значение разделителя учета. Если не задан, то установка не меняется.

Возвращаемое значение:

Значение данной установки до вызова метода.

Описание:

Метод ИспользоватьРазделительУчета задает значения разделителя учета для методов получения итогов и ВыполнитьЗапрос.

Применение данного метода имеет смысл только если используется разделителель учета.

Пример:

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

Работа с основными итогами

Основными итогами называются остатки и обороты по счетам и объектам аналитического учета, а также обороты между счетами за любой рассчитанный период с детализацией до месяца.

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

В этом режиме работают два вида методов — получение остатков и оборотов, а также установка периода за который выдаются итоги.

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

Остатки и обороты по счетам

Для расчета остатков и обротов по счетам существует группа функций со сходным синтаксисом и набором параметров.

СНД, СНК, СКД, СКК, ДО, КО

СНД   дебетовое сальдо по счету на начало периода;

СНК   кредитовое сальдо по счету на начало периода;

СКД   дебетовое сальдо по счету на конец периода;

СКК   кредитовое сальдо по счету на конец периода;

ДО    дебетовый оборот по счету за период;

КО    кредитовый оборот по счету за период.

Синтаксис:

СНД (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)

СНК (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...}

СКД (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)

СКК (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)

ДО (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)

КО (<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>...)

Англоязычные синонимы:

IDB

ICB

FDB

FCB

TD

ТС

Параметры:

<Счет>

Значение типа «Счет» — счет расчета итогов. Может использоваться строка — код счета.

<ТипСуммы>

Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений:

1 ("С", "S")— сумма;

2 ("В", "С")— валютная сумма;

3 ("К", "А")— количество.

Если параметр не указан, метод возвращает сумму.

<Валюта>

Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты.

<Субконто1>
<Субконто2>…

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

Все параметры кроме счета могут не указываться.

Возвращаемое значение:

Число —сальдо или оборот.

Описание:

Функции СНД, СНК, СКД, СКК, ДО, КО возвращают суммы остатков и оборотов по указанному счету за период. Выдаваться может сумма или валютная сумма или количество, в зависимости от параметра <ТипСуммы>.

Если указана валюта, то данные выдаются по конкретной валюте. Валютная сумма может выдаваться только по конкретной валюте.

Если указаны значения субконто, то данные выдаются по конкретным объектам аналитики.

Пример:

* Вычисляются остатки на счете 51 на начало и конец периода бухгалтерских итогов. Рассчитанные остатки присваиваются переменным.

// Создадим объект для работы с бухгалтерскими итогами

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

// Вычислим остаток на расчетном счете (счет 51) на начало периода

П2623 = БухИтоги.СНД("51");

// Вычислим остаток на расчетном счете (счет 51) на конец периода

П2624 = БухИтоги.СКД("51");

Обороты между счетами

ОБ

Расчет оборотов между счетами.

Синтаксис:

ОБ(<СчетДеб>, <СчетКред>, <ТипСуммы>, <Валюта>)

Англоязычный синоним:

TO

Параметры:

<СчетДеб>, <СчетКред> | Значения типа «Счет» — счета дебета и кредита, для которых необходимо выдать перекрестные обороты. Может использоваться строка — код счета.
<ТипСуммы> | Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S")— сумма; 2 ("В", "С")— валютная сумма; 3 ("К", "А")— количество. Если параметр не указан, метод возвращает сумму.
<Валюта> | Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты.

Возвращаемое значение:

Число —оборот с дебета счета <СчетДеб> в кредит счета <СчетКред>.

Описание:

Функция ОБ предназначена для выдачи перекрестных оборотов между счетами. Коды счетов, оборот между которыми требуется рассчитать, передаются функции в качестве парметров.

Если указана валюта, то данные выдаются по конкретной валюте. Валютная сумма может выдаваться только по конкретной валюте.

Пример:

КассаБанк = БухИтоги.ОБ("50", "51");

Развернутое сальдо по субсчетам

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

СНДР, СНКР, СКДР, СККР

СНДР  дебетовое развернутое сальдо по субсчетам на начало периода;

СНКР  кредитовое развернутое сальдо по субсчетам на начало периода;

СКДР  дебетовое развернутое сальдо по субсчетам на конец периода;

СККР  кредитовое развернутое сальдо по субсчетам на конец периода.

Синтаксис:

СНДР(<Счет>, <ТипСуммы>, <Валюта>)

СНКР(<Счет>, <ТипСуммы>, <Валюта>)

СКДР(<Счет>, <ТипСуммы>, <Валюта>)

СККР(<Счет>, <ТипСуммы>, <Валюта>}

Англоязычные синонимы:

IDBR

ICBR

FDBR

FCBR

Параметры:

<Счет> | Значение типа «Счет» — счет, для которого необходимо рассчитать развернутое сальдо. Может использоваться строка — код счета.
<ТипСуммы> | Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S")— сумма; 2 ("В", "С")— валютная сумма; 3 ("К", "А")— количество. Если параметр не указан, метод возвращает сумму.
<Валюта> | Необязательный параметр. Значение типа «Справочник. Валюты». Если параметр не указан итоги выдаются без учета валюты.

Возвращаемое значение:

Число — развернутое сальдо.

Описание:

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

Если указана валюта, то данные выдаются по конкретной валюте. Валютная сумма может выдаваться только по конкретной валюте.

Пример:

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

// Создадим объект для работы с бухгалтерскими итогами

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

// Вычислим дебетовое сальдо на 68 счете на начало периода

П2463 = БухИтоги.СНДР("68");

// Вычислим дебетовое сальдо на 68 счете на конец периода

П2464 = БухИтоги.СКДР("68");

// Вычислим кредитовое сальдо на 68 счете на начало периода

П6263 = БухИтоги.СНКР("68");

// Вычислим кредитовое сальдо на 68 счете на конец периода

П6264 = БухИтоги.СККР("68");

Развернутое сальдо по субконто

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

СНДРС, СНКРС, СКДРС, СККРС

СНДРС дебетовое развернутое сальдо по субконто на начало периода;

СНКРС кредитовое развернутое сальдо по субконто на начало периода;

СКДРС дебетовое развернутое сальдо по субконто на конец периода;

СККРС кредитовое развернутое сальдо по субконто на конец периода.

Синтаксис:

СНДРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,

             <ТипФильтра2>...)

СНКРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,

             <ТипФильтра2>...)

СКДРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,

             <ТипФильтра2>...)

СККРС(<Счет>, <ТипСуммы>, <Валюта>, <Субконто1>, <ТипФильтра1>, <Субконто2>,

             <ТипФильтра2>...}

Англоязычные синонимы:

IDBRS

ICBRS

FDBRS

FCBRS

Параметры:

<Счет> | Значение типа «Счет» — счет, для которого необходимо рассчитать развернутое сальдо. Может использоваться строка — код счета.
<ТипСуммы> | Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений: 1 ("С", "S")— сумма; 2 ("В", "С")— валютная сумма; 3 ("К", "А")— количество. Если параметр не указан, метод возвращает сумму.
<Валюта> | Необязательный параметр. Значение типа «Справочник. Валюты». Если параметр не указан итоги выдаются без учета валюты.
<Субконто1> | Необязательный параметр. Значение субконто 1.
<ТипФильтра1> | Необязательный параметр. Тип использования субконто 1. (Строка или число). "*" (1) — Разворачивать по данному субконто. "!" (2) — Отбирать по данному субконто. " " (3) — Не учитывать данное субконто. Значения по умолчанию: "*" (1) — для первого субконто, " " (3) — для остальных субконто.
<Субконто2> | …
<ТипФильтра2> | …

Возвращаемое значение:

Число — развернутое сальдо.

Описание:

Функции СНДРС, СНКРС, СКДРС, СККРС предназначены для расчета остатков по счетам, у которых ведется аналитический учет по субконто. Каждая функция из этой группы возвращает остаток как сумму соответствующих остатков (дебетовых или кредитовых) по всем объектам аналитического учета.

Если аналитический учет по счету ведется по двум и более субконто, то для развернутого сальдо параметр <ТипФильтра> устанавливает участие данног вида субконто в получении развернутого сальдо. В зависимости от значения этого параметра данное субконто может участвовать в «развороте» остатка, или накладывать дополнительное ограничение (отбирать) на анализируемые остатки, или никак не влиять на результат функции.

Пример:

* Получим развернутое сальдо дебетовое на начало периода по счету 60, учет ведется по субконто Организации.

СР60 = БухИтоги.СНДРС("60");

* Получим развернутое сальдо дебетовое на начало периода по счету 10 конкретному складу в разрезе материалов, учет ведется по субконто «Материалы» и «Склады».

СР10 = БухИтоги.СНДРС("10", 1, , , "*", ВыбСклад, "!");

Установка периода итогов

ПериодД

Устанавливает произвольный период в качестве периода расчета итогов.

Синтаксис:

ПериодД(<ДатаНачалаПериода>, <ДатаКонцаПериода>)

Англоязычный синоним:

PeriodD

Параметры:

<ДатаНачалаПериода> | Необязательный параметр. Начальная дата периода выдачи итогов.
<ДатаКонцаПериода> | Необязательный параметр. Конечная дата периода выдачи итогов.

Описание:

Метод ПериодД задает период расчета итогов для функций режима основных итогов.

Период, установленный методом ПериодД, действует до конца вызова другого метода установки периода для этого объекта.

Если параметры не заданы — значения периода берется из периода, заданного пользователем интерактивно в меню «Сервис»-«Параметры»-«Бухгалтерские итоги».

Пример:

БухИтоги.ПериодД('07.01.98', '17.01.98');

ПериодКВ

Устанавливает квартал в качестве периода расчета итогов.

Синтаксис:

ПериодКВ(<Дата>|<НомерКвартала>, <Год>)

Англоязычный синоним:

PeriodQ

Параметры:

<Дата> | Дата — любая дата из квартала, устанавливаемого в качестве периода расчета итогов.
<НомерКвартала> | Число от 1 до 4 — порядковый номер квартала.
<Год> | Год заданный числом (включая век). Используется только, если первый параметр — номер квартала.

Описание:

Метод ПериодКВ задает период расчета итогов для функций режима основных итогов. В качестве параметра метода может передаваться либо дата, лежащая в том квартале, который будет назачен в качестве периода рачета итогов, либо номер квартал — цифра от 1 до 4. Номер квартала задает квартал года, указанного вторым параметром.

Период, установленный методом ПериодКВ, действует до вызова другго метода установки периода.

Пример:

БухИтоги.ПериодКВ('07.01.98');

ПериодКВН

Устанавливает в качестве периода расчета итогов период с начала года до конца указанного квартала.

Синтаксис:

ПериодКВН(<Дата>|<НомерКвартала>, <Год>)

Англоязычный синоним:

PeriodQAccumY

Параметры:

<Дата> | Дата — любая дата квартала, устанавливаемого в качестве периода расчета итогов.
<НомерКвартала> | Число от 1 до 4 — порядковый номер квартала.
<Год> | Год заданный числом (включая век). Используется только, если первый параметр — номер квартала.

Описание:

Метод ПериодКВН задает период расчета итогов для функций режима основных итогов. В качестве периода расчета итогов метод устанавливает период с начала года до конца квартала, задаваемого параметрами.

В качестве параметра метода может передаваться либо дата, лежащая в том квартале, который будет назачен в качестве периода рачета итогов, либо номер квартал — цифра от 1 до 4. Номер квартала задает квартал года, указанного вторым параметром.

Периодом расчета итогов считается период с начала года до конца указанного квартала.

Период, установленный методом ПериодКВН, действует до вызова другого метода установки периода.

Пример:

БухИтоги.ПериодКВН('07.01.98');

ПериодМ

Устанавливает в качестве периода расчета итогов месяц.

Синтаксис:

ПериодМ(<Дата>|<НомерМесяца>, <Год>)

Англоязычный синоним:

PeriodM()

Параметры:

<Дата> | Дата — любая дата из месяца, устанавливаемого в качестве периода расчета итогов.
<НомерМесяца> | Число от 1 до 12 — порядковый номер месяца.
<Год> | Год заданный числом (включая век). Используется только, если первый параметр — номер месяца.

Описание:

Метод ПериодМ задает период расчета итогов для функций режима основных итогов. В качестве параметра метода может передаваться либо дата месяца, который будет назначен в качестве периода рачета итогов, либо номер месяца — число от 1 до 12. Номер месяца задет месяц года переданного в качестве второго пареметра.

Период, установленный методом ПериодМ, действует до вызова другого метода установки периода.

Пример:

БухИтоги.ПериодМ('07.01.98');

ПериодМНК

Устанавливает в качестве периода расчета итогов период с начала квартала до конца указанного месяца.

Синтаксис:

ПериодМНК(<Дата>|<НомерМесяца>, <Год>)

Англоязычный синоним:

PeriodMAccumQ

Параметры:

<Дата> | Дата — любая дата месяца, устанавливаемого в качестве периода расчета итогов.
<НомерМесяца> | Число от 1 до 12 — порядковый номер месяца.
<Год> | Год заданный числом (включая век). Используется только, если первый параметр — номер месяца.

Описание:

Метод ПериодМНК задает период расчета итогов для функций режима основных итогов. В качестве периода расчета итогов метод устанавливает период с начала квартала до конца месяца, задаваемого параметрами.

В качестве параметра метода может передаваться либо дата месяца, который будет использован в качестве периода расчета итогов, либо номер месяца — число от 1 до 12. Номер месяца задает месяц года, заданного вторым параметром.

Периодом расчета итогов считается период с начала квартала до конца указанного месяца.

Период, установленный методом ПериодМНК, действует до вызова другой функции установки периода.

Пример:

БухИтоги.ПериодМНК('07.08.98');

ПериодМНГ

Устанавливает в качестве периода расчета итогов период с начала года до конца указанного месяца.

Синтаксис:

ПериодМНГ(<Дата>|<НомерМесяца>, <Год>}

Англоязычный синоним:

PeriodMAccumY

Параметры:

<Дата> | Дата — любая дата месяца, устанавливаемого в качестве периода расчета итогов.
<НомерМесяца> | Число от 1 до 12 — порядковый номер месяца.
<Год> | Год заданный числом (включая век). Используется только, если первый параметр — номер месяца.

Описание:

Метод ПериодМНГ задает период расчета итогов для функций режима основных итогов. В качестве периода расчета итогов функция устанавливает период с начала года до конца месяца, задаваемого параметрами.

В качестве параметра метода может передаваться либо дата месяца, который будет использован в качестве периода расчета итогов, либо номер месяца — число от 1 до 12. Номер месяца задает месяц года, заданного вторым параметром.

Периодом расчета итогов считается период с начала года до конца указанного месяца.

Период, установленный функцией ПериодМНГ, действует до вызова другой функции установки периода.

Пример:

БухИтоги.ПериодМНГ('07.08.98');

НачПериода

Выдает начальную дату установленного в данный момент периода основных итогов.

Синтаксис:

НачПериода()

Англоязычный синоним:

BeginOfPeriod

Возвращаемое значение: Начальная дата периода.

Описание:

Метод НачПериода используется для определения начальной даты основных итого выдаваемых объектом.

Пример:

Сообщить(ПериодСтр(БухИтоги.НачПериода(), БухИтоги.КонПериода());

КонПериода

Выдает конечную дату установленного в данный момент периода основных итогов.

Синтаксис:

КонПериода()

Англоязычный синоним:

EndOfPeriod

Возвращаемое значение: Конечная дата периода.

Описание:

Метод КонПериода используется для определения конечной даты основных итогов выдаваемых объектом.

Пример:

Сообщить(ПериодСтр(БухИтоги.НачПериода(), БухИтоги.КонПериода());

ОсновныеИтоги

Переводит объект в режим работы с основными итогами.

Синтаксис:

ОсновныеИтоги()

Англоязычный синоним:

MainTotals

Описание:

Метод ОсновныеИтоги переводит объект в режим работы с основными итогами. Вызов этого метода имеет смысл тогда, когда был выполнен расчет временных итогов или запрос, и нужно вернуть объект к работе с основными итогами. При этом результаты запроса или расчета временных итогов теряются.

Пример:

БухИтоги.ОсновныеИтоги();

Работа с временными итогами

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

Для получения временных итогов используются теже методы, что и для получения основных итогов (СНД, СНК , СКД , СКК, ДО, КО, ОБ и другие). Параметры метода Рассчитать определяют итоги, которые будут доступны для получения этими методами.

Рассчитать

Расчет временных итогов.

Синтаксис:

Рассчитать(<НачалоПериода>, <КонецПериода> , <ФильтрПоСчетам>, <ТолькоСинтетика> , <ПланСчетов>, <РазделительУчета>)

Англоязычный синоним:

Calculate

Параметры:

<НачалоПериода> Необязательный параметр. Выражение типа дата, документ или позиция документа начала периода расчета временных итогов. Если этот параметр не указан, будут вычисляться конечные сальдо на момент, указанный в параметре <КонецПериода>.

<КонецПериода> Необязательный параметр. Выражение типа дата, документ или позиция документа конца периода расчета временных итогов. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <НачалоПериода>.

<ФильтрП, рСчетам> Необязательный параметр. Счета, для которых

будет выполняться временный расчет итогов. Задается значением типа «Счет» или объектом типа «СписокЗначений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом ", " или ";".

<ТолькоСинтетика> Необязательный параметр:

1 — рассчитывать сальдо только по счетам;

0 — или не указан — рассчитывать сальдо по счетам и по субконто.

<ПланСчетов> Необязательный параметр. Значение типа «План Счетов». Ограничение расчета одним планом счетов.

<РазделительУчета> Необязательный параметр. Значение разделителя учета. Ограничение расчета одним значением разделителя учета.

Возвращаемое значение:

Число: 1 — расчет выполнен; 0 — расчет не выполнен.

Описание:

Метод Рассчитать выполняет расчет итогов за период, задаваемый параметрами <НачалоПериода> и <КонецПериода>. Метод задает период, за который будут возвращать остатки и обороты по счетам функции СНД, СКД, снк, скк, до, ко, ОБ и другие.

Если из двух параметров периода задан только параметр начала периода, метод Рассчитать вычислит начальные остатки — без оборотов. Наоборот, если задан параметр конца периода, будут вычисленные конечные остатки.

Параметр <ФильтрПоСчетам> позволяет рассчитать итоги только для конкретного счета или для группы счетов.

Установка параметра <ТолькоСинтетика> в 1 задает выполнение расчета итогов только по счетам, без субконто. В этом случае функции для получения развернутого сальдо по субконто СНДРС, СКДРС, СНКРС, СККРС для счетов, по которым ведется аналитический учет по субконто будут возвращать 0, даже если реально в информационной базе есть остатки по этим счетам.

Если параметр <ТолькоСинтетика> не указан или равен 0, временный расчет итогов будет выполнен и по счетам, и по субконто.

При использовании методов ВыполнитьЗапрос и Рассчитать возможно указание только одной границы интервала. В этом случае будут рассчитываться только остатки на эту границу.

Пример:

БухИтоги.Рассчитать(ДатаНач, ДатаКон);

Актуальность

Устанавливает или сбрасывает признак актуальности временных итогов.

Синтаксис:

Актуальность(<Флаг>)

Англоязычный синоним:

Actual

Параметры:

<Флаг> Необязательный параметр. Число — признак актуальности временного расчета итогов. Параметр может принимать значения:

1 — поддерживать временный расчет в актуальном состоянии;

О—не поддерживать временный расчет в актуальном состоянии;

Если параметр не задан, то значение не меняется.

Возвращаемое значение:

Значение признака актуальности на момент до вызова функции.

Описание:

Данный метод позволяет организовать поддержку временного расчета итогов в актуальном состоянии. При установке объекту «БухгалтерскиеИтоги»

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

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

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

Пример:

БухИтоги.Актуальность(1);

Работа в режиме запроса

Для получения большого количества итогов в различных разрезах объект «Бухгалтерские Итоги» переключается в режим работы с запросом. Для переключения в этот режим вызывается метод ВыполнитьЗапрос в параметрах которого, а также дополнительными методами устанавливается состав итогов, которые будут получены запросом. Выполнение данного метода осуществляет выборку данных и их предварительную обработку.

После выполнения запроса с помощью специального набора методов объекта «Бухгалтерские Итоги» осуществляется получение итогов, полученных данным запросом. К этим методам относятся методы обхода итогов в различных разрезах (сформированных запросом) и методы для получения собственно итогов. Кроме того специальный набор атрибутов объекта «Бухгалтерские Итоги» позволяет обращаться процессе обхода результатов запроса к значениям полученных группировок.

ВыполнитьЗапрос

Выборка итогов в различных разрезах.

Синтаксис:

ВыполнитьЗапрос(<НачалоПериода>, <КонецПериода>, <ФильтрПоСчетам>,

       <ФильтрПоКоррСчет>, <Валюта>, <ТипИтогов>, <Периодичность>, <ТипСуммы>)

Англоязычный синоним:

DoQuery

Параметры:

<НачалоПериода>

Необязательный параметр. Выражение типа дата, документ или позиция документа начала периода запроса. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <КонецПериода>

<КонецПериода>

Необязательный параметр. Выражение типа дата, документ или позиция документа конца периода запроса. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <НачалоПериода>.

<ФильтрПоСчетам>

Необязательный параметр. Счета, для которых будут отбираться итоги в запросе. Задается значением типа «Счет» или объектом типа «Список-Значений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом ", " или ";". Если параметр не указан, отбор будет выполняться по всем счетам.

<ФильтрПоКоррСчет>

Необязательный параметр. Значение типа «Счет» — корреспондирующий счет, в корреспонденции с которым будут отбираться итоги счета, указанного в параметре <ФильтрПоСчетам>. Задается значением типа «Счет» или объектом типа «СписокЗначений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом "," или ";". Если параметр не указан, будут отбираться итоги в корреспонденции со всеми счетами.

<Валюта>

Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты.

<ТипИтогов>

Необязательный параметр. Число — тип отбираемых итогов. Может принимать следующие значения:

1 — остатки и обороты по счету в целом;

2 — обороты между счетами;

Первое и второе вместе.

По умолчанию — 1.

<Периодичность>

Необязательный параметр. Позволяет получить дополнительный разрез итогов по периодам. Число или символьная строка (См. ниже). По умолчанию периодичность не задана.

<ТипСуммы>

Необязательный параметр. Число или строка — тип рассчитываемых итогов. Может принимать следующие значения (в скобках указаны строковые синонимы):

1 («С», «S») рассчитывать суммы;

2 («В», «С») рассчитывать валютные суммы;

4 («К», «А») рассчитывать количество.

Если требуется одновременно рассчитывать разные суммы, значение параметра получается путем сложения допустимых значений, например: 5 (1+4) — рассчитывать суммы и количество. При указании параметра строкой в ней указываются все символы, которые обозначают типы сумм, которые нужно рассчитывать. По умолчанию рассчитываются все типы сумм.

Параметр <Периодичность> может принимать следующие значения (в скобках указаны строковые синонимы):

1 («Период», «Period») | Промежуточные итоги не рассчитываются;
2 («Операция», «Entry») | Промежуточные итоги рассчитываются по операциям;
3 («Проводка», «Operation») | По проводкам;
4 («День», «Day») | По дням;
5 («Неделя», «Week») | По неделям;
6 («Декада», «Decade») | По декадам;
7 («Месяц», «Month») | По месяцам;
8 («Квартал», «Quorter») | По кварталам
9 («Год», «Year») | По годам.

Возвращаемое значение:

Число: 1 — запрос выполнен; 0 — запрос не выполнен.

Описание:

Метод ВыполнитьЗапрос выполняет отбор и расчет итогов за период, задаваемый параметрами <НачалоПериода> и <КонецПериода>.

В зависимости от переданных параметров итоги могут быть подготовлены методом ВыполнитьЗапрос в различных разрезах. Кроме того, на результат запроса влияют дополнительные установки, которые выполняются вызовами специальных методов объекта «Бухгалтерские Итоги».

Параметр <Периодичность> позволяет получить итоги запроса в разрезе периодов.

Метод ВключатьСубсчета позволяет получить итоги в разрезе субсчетов.

Применение метода ИспользоватьСубконто (перед вызовом ВыполнитьЗапрос) позволяет сформировать запрос в разрезе субконто.

После выполнения запроса обход запросов в различных разрезах выполняется соответствующими методами объекта.

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

При использовании методов ВыполнитьЗапрос и Рассчитать возможно указание только одной границы интервала. В этом случае будут рассчитываться только остатки на эту границу.

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

Пример:

В монопольном режиме:

// модуль обработки

ИтРасчет.Актуальность(1);

   ...

   Док.ВыбратьДокументы();

   Пока Док.ПолучитьДокумент() = 1 Цикл

      ИтРасчет.Рассчитать(, Док.ТекущийДокумент());

      ...

      Док.Провести();

   КонецЦикла;

   ...

// модуль документа

...

ИтЗапрос.ВыполнитьЗапрос(, Док.ТекущийДокумент(), СчетПоКоду("41"));

...

в данном случае ИтЗапрос.ВыполнитьЗапрос(...) воспользуется результатами временного расчета ИтРасчет. Данная возможность может использоваться при групповом перепроведении документов.

Пример:

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "60", , 3);

ВключатьСубсчета

Устанавливает режим отбора итогов методом ВыполнитьЗапрос по субсчетам.

Синтаксис:

ВключатьСубсчета(<ФлагСчета>, <ФлагКоррСчета>}

Англоязычный синоним:

IncludeSubAccounts

Параметры:

<ФлагСчета> | Необязательный параметр. Признак развертывания сальдо по субсчетам основного счета. Число: 0 — не разворачить по субсчетам; 1 — разворачивать по субсчетам; -1 (минус единица) — не выдавать итоги по счетам-группам. Значение по умолчанию — 0.
<ФлагКоррСчета> | Необязательный параметр. Признак развертывания сальдо по субсчетам корреспондирующего счета. Число: 0 — не разворачить по субсчетам; 1 — разворачивать по субсчетам; -1 (минус единица) — не выдавать итоги по корреспондирующим счетам-группам. Значение по умолчанию — 0.

Описание:

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

Если метод не вызвался, разворот итогов по субсчетам не производится.

Пример:

БухИтоги.ВключатьСубсчета(1, 1);

Опции

Устанавливает режим включения сумм в итоги.

Синтаксис:

Опции(<ВключатьЗабалансовыеСуммы>, <ВключатьОборотныеСубконтоСуммы>)

Англоязычный синоним:

Options

Параметры:

<ВключатьЗабалансовыеСуммы> | Признак включения в итоги сумм по забалансовым счетам. Число: 0 — не включаются суммы по забалансовым счетам; 1 — включаются суммы по забалансовым счетам.
<ВключатьОборотныеСу6контоСуммы> | Признак включения в итоги сумм по оборотным субконто. Число: 0 — не включаются суммы по оборотным субконто; 1 — включаются суммы по оборотным субконто.

Описание:

Метод Опции должен вызываться до выполнения метода ВыполнитьЗапрос. Он устанавливает режимы включения в итоги сумм по забалансовым счетам и оборотным субконто.

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

Пример:

БухИтоги.Опции(1, 1);

ИспользоватьСубконто

Устанавливает режим получения итогов методом ВыполнитьЗапрос в разрезе субконто.

Синтаксис:

ИспользоватьСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)

Англоязычный синоним:

UseSubconto

Параметры:

<ВидСубконто> | Значение типа «Вид Субконто» — расчет временных итогов будет выполнен только для субконто указанного вида. Задается значением типа «Вид Субконто» или строкой содержащей имя идентификатора вида субконто, как он назван в конфигураторе.
<Субконто> | Необязательный параметр. Здесь может быть задано или одно конкретное значение субконто, по которому будут отобраны итоги по аналитике или объект типа «Список значений», где можно задать несколько значений субконто. Если параметр не задан — то считается пустым значением субконто.
<ТипФильтра> | Необязательный параметр. Число — тип фильтра по субконто. Может принимать следующие значения: 1 — разворачивать по данному субконто, 2 — отбирать по данному субконто, 3 — не учитывать это субконто вообще. По умолчанию 1.
<ПоГруппам> | Необязательный параметр. Число — группировка др итогов по субконто. Параметр <ПоГруппам> имеет смысл, если параметр <ТипФильтра> равен 1, а вид субконто, заданный параметром <ВидСубконто>, имеет тип значения «Справочник». Параметр может принимать значения: 0 — не показывать итоги по группам справочника; 1 — показывать итоги по группам справочника. По умолчанию 0.

Описание:

Метод ИспользоватьСубконто устанавливает режим отбора итогов по субконто методом ВыполнитьЗапрос.

Метод ИспользоватьСубконто слудет вызывать до вызова метода ВыполнитьЗапрос. После выполнения метода ВыполнитьЗапрос установки метода ИспользоватьСубконто сбрасываются и перед слудеющим запросом их нужно устанавливать заново.

Метод ИспользоватьСубконто может вызываться последовательно несколько раз. В этом случае установки, выполняемые этим методом суммируются.

Использование параметра <ТипФильтра> со значением 1 (разворачивать) в сочетании с выбранной группой справочника в параметре <Субконто> позволяет получить итоги по всем элементам данной группы.

Пример:

* Данный запрос формирует итоги по счету 10 в разрезе материалов по одному складу.

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

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

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");

ИспользоватьКорСубконто

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

Синтаксис:

ИспользоватьКорСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)

Англоязычный синоним:

UseCorSubconto

Параметры:

<ВидСубконто> | Значение типа «Вид Субконто» — расчет временных итогов будет выполнен только для субконто указанного вида.
<Субконто> | Необязательный параметр. Значение субконто, по которому будут отобраны итоги по аналитике. Если параметр не задан — то считается пустым значением субконто.
<ТипФильтра> | Необязательный параметр. Число — тип фильтра по субконто. Может принимать следующие значения: 1 — разворачивать по данному субконто, 2 — отбирать по данному субконто, 3 — не учитывать это субконто вообще. По умолчанию 1.
<ПоГруппам> | Необязательный параметр. Число — группировка итогов по субконто. Параметр <ПоГруппам> имеет смысл, если параметр <ТипФильтра> равен 1, а вид субконто, заданный параметром <ВидСубконто>, имеет тип значения «Справочник». Параметр может принимать значения; 0 — не показывать итоги по группам справочника; 1 — показывать итоги по группам справочника. По умолчанию 0.

Описание:

Метод ИспользоватьКорСубконто устанавливает режим отбора итогов по субконто методом ВыполнитьЗапрос.

Метод ИспользоватьКорСубконто слудет вызывать до вызова метода ВыполнитьЗапрос. После выполнения метода ВыполнитьЗапрос установки метода ИспользоватьКорСубконто сбрасываются и перед слудеющим запросом их нужно устанавливать заново.

Метод ИспользоватьКорСубконто может вызываться последовательно несколько раз. В этом случае установки, выполняемые этим методом суммируются.

Использование параметра <ТипФильтра> со значением 1 (разворачивать) в сочетании с выбранной группой справочника в параметре <Субконто> позволяет получить итоги по всем элементам данной группы.

Данный метод применяется для расчета перекрестных оборотов между объектами аналитического учета.

Пример:

* Данный запрос формирует итоги по корреспонденции субконто Товары и Клиенты.

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

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

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

Работа с результатами запроса

Атрибуты и методы, описанные в этом разделе, могут использоваться для обработки результатов работы метода ВыполнитьЗапрос.

Методы выборки результатов запроса

ВыбратьСчета

Открывает выборку счетов, для которых были получены итоги методом ВыполнитьЗапрос.

Синтаксис:

ВыбратьСчета(<ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>)

Англоязычный синоним:

SelеctAccounts

Параметры:

<ФлагВсе> | Необязательный параметр. 0 — отбирать те счета, которые имели итоги на этом уровне обхода итогов запроса; 1 — включить в выборку все счета, которые имели итоги в данном запросе; -1, -2 ... — включить в выборку счета, которые имели итоги в группировке n-го вышестоящего уровня. По умолчанию — 0.
<ФлагДК> | Необязательный параметр. 1 — включать в выборку счета только с дебетовыми оборотами; 2 — включать в выборку счета только с кредитовыми оборотами. 0 — включать в выборку счета вне зависимости от дебетовых/кредитовых оборотов. По умолчанию 0.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки. Если параметр не указан, выборке присваивается номер 0.
<РазвСальдо> | Необязательный параметр. Признак необходимости рассчитывать развернутое сальдо по субконто. Используется только если в запросе участвуют субконто. 1 — рассчитывать развернутое сальдо. 0 — не рассчитать развернутое сальдо; По умолчанию 0.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один счет;

0 — если действие не выполнено или в выборке нет ни одного счета.

Описание:

Метод ВыбратьСчета должен использоваться после получения итогов методом ВыполнитьЗапрос. Метод открывает выборку счетов, вошедших в запрос.

Дополнительные условия на содержание выборки могут накладываться параметрами <ФлагВсе> и <ФлагДК>.

Параметр <РазвСальдо> может указываться только, если в запросе установлено участие субконто. Позволяет указать, рассчитывать ли равернутое сальдо для субконто выборки. Результаты расчета могут быть получены при помощи функций СНДРС , СНКРС , СКДРС , СККРС.

Непосредственно извлечение счетов из выборки осуществляется при помощи метода ПолучитьСчет. Счета извлекаются в порядке возрастания кода счета.

Выборке, открываемой методом ВыбратьСчета, может быть присвоен номер — положительное целое число. Номер — это «метка» выборки. Номер может использоваться для обращения к результатам выборки при помощи метода ПолучитьСчет. Использование этой метки необходимо, если требуется получить две группировки по счету.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   Деб = БухИтоги.ДО();

   Кред = БухИтоги.КО();

КонецЦикла;

ПолучитьСчет

Получить из выборки следующий счет. Выборка должна быть предварительно открыта при помощи метода ВыбратьСчета.

Синтаксис:

ПолучитьСчет(<Номер>, <Счет>)

Англоязычный синоним:

GetAccount

Параметры:

<Номер> | Необязательный параметр. Положительное целое число — номер выборки.
<Счет> | Необязательный параметр. Конкретное значение счета, которое нужно получить из выборки.

Возвращаемое значение:

Число: 1 — следующий счет выбран успешно; 0 — следующий счет не выбран (отсутствует).

Описание:

Метод ПолучитьСчет выбирает очередной счет из выборки, содержащей счета из плана счетов. Перед применением метода ПолучитьСчет выборка должна быть открыта при помощи метода ВыбратьСчета. Счета извлекаются в порядке возрастания кода счета.

Метод ПолучитьСчет позволяет также обращаться к результатам выборки по номеру выборки, если предварительно было открыто несколько выборок. Номер выборки передается методу в качестве параметра <Номер>.

Следует иметь в виду, что, в отличие от аналогичного параметра метода ВыбратьСчета, параметр <Номер> метода ПолучитьСчет используется только для обращения к конкретной выборке.

Метод ПолучитьСчет позволяет также обращаться к конкретному значению результа выборки. Значение счета выборки передается методу в качестве параметра <Счет>.

Если параметр <Счет> не задан, то метод ПолучитьСчет может использоваться для организации цикла по счетам. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьСчет возвращает 1.

Метод возвращает 0, когда очередной счет не выбран. Это происходит, если при предыдущем применении метода был выбран последний счет выборки.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   Деб = БухИтоги.ДО();

   Кред = БухИтоги.КО();

КонецЦикла;

ВыбратьКорСчета

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

Синтаксис:

ВыбратьКорСчета(<ФлагВсе>, <ФлагДК>, <Номер>)

Англоязычный синоним:

SelectCorAccounts

Параметры:

<ФлагВсе> | Необязательный параметр. 0 — отбирать те счета, которые имели итоги на этом уровне обхода итогов запроса; 1 — включить в выборку все счета, которые имели итоги в данном запросе; -1, -2 ... — включить в выборку счета, которые имели итоги в группировке n-го вышестоящего уровня. По умолчанию — 0.
<ФлагДК> | Необязательный параметр. 1 — включать в выборку счета только с дебетовыми оборотами; 2 — включать в выборку счета только с кредитовыми оборотами. 0 — включать в выборку счета вне зависимости от дебетовых/кредитовых оборотов. По умолчанию 0.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки. Если параметр не указан, выборке присваивается номер 0.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один счет;

0 — если действие не выполнено или в выборке нет ни одного счета.

Описание:

Метод ВыбратьКорСчета должен использоваться после получения итогов методом ВыполнитьЗапрос. Метод открывает выборку счетов, вошедших в запрос.

Дополнительные условия на содержание выборки могут накладываться параметрами <ФлагВсе> и <ФлагДК>.

Непосредственно извлечение счетов из выборки осуществляется при помощи метода ПолучитьКорСчет. Счета извлекаются в порядке возрастания кода счета.

Выборке, открываемой методом ВыбратьКорСчета, может быть присвоен номер — положительное целое число. Номер — это «метка» выборки. Номер может использоваться для обращения к результатам выборки при помощи метода ПолучитьКорСчет. Использование этой метки необходимо, если требуется получить две группировки по счету.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьКорСчета();

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

      Деб = БухИтоги.ДО();

      Кред = БухИтоги.КО();

   КонецЦикла;

КонецЦикла;

ПолучитьКорСчет

Получить из выборки следующий корреспондирующий счет. Выборка должна быть предварительно открыта при помощи метода

ВыбратьКорСчета.

Синтаксис:

ПолучитьКорСчет(<Номер>, <Счет>)

Англоязычный синоним:

GetCorAccount

Параметры:

<Номер> | Необязательный параметр. Положительное целое число — номер выборки.
<Счет> | Необязательный параметр. Конкретное значение счета, которое нужно получить из выборки.

Возвращаемое значение:

Число: 1 — следующий счет выбран успешно; 0 — следующий счет не выбран (отсутствует).

Описание:

Метод ПолучитьКорСчет выбирает очередной счет из выборки, содержащей счета из плана счетов. Перед применением метода ПолучитьКорСчет выборка должна быть открыта при помощи метода ВыбратьКорСчета. Счета извлекаются в порядке возрастания кода счета.

Метод ПолучитьКорСчет позволяет также обращаться к результатам выборки по номеру выборки. Номер выборки передается методу в качестве параметра <Номер>.

Следует иметь в виду, что, в отличие от аналогичного параметра метода ВыбратьКорСчета, параметр <Номер> метода ПолучитьКорСчет используется только для обращения к конкретной выборке.

Метод ПолучитьСчет позволяет также обращаться к конкретному значению результа выборки. Значение счета выборки передается методу в качестве параметра <Счет>.

Если параметр <Счет> не задан, то метод ПолучитьКорСчет используется для организации цикла по счетам. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьКорСчет возвращает 1.

Метод возвращает 0, когда очередной счет не выбран. Это происходит, если при предыдущем применении метода был выбран последний счет выборки.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьКорСчета();

   Пока БухИтоги.ПолучитьКорСчет() = 1 цикл

      Деб = БухИтоги.КорДО();

      Кред=БухИтоги.КорКО();

   КонецЦикла;

КонецЦикла;

ВыбратьВалюты

Открывает выборку валют.

Синтаксис:

ВыбратьВалюты(<ФлагВсе>, <ФлагДК>, <Номер> , <РазвСальдо>, <Сортировка>)

Англоязычный синоним:

Select Currencies

Параметры:

<ФлагВсе> | Необязательный параметр. 0 — отбирать те валюты, которые имели итоги на этом уровне обхода итогов запроса; 1 — включить в выборку все валюты, которые имели итоги в данном запросе; -1, -2 ... — включить в выборку валюты, которые имели итоги в группировке n-го вышестоящего уровня. По умолчанию — 0.
<ФлагДК> | Необязательный параметр. 1 — включать в выборку валюты только с дебетовыми оборотами; 2 — включать в выборку валюты только с кредитовыми оборотами. 0 — включать в выборку валюты вне зависимости от дебетовых/кредитовых оборотов. По умолчанию 0.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки. Если параметр не указан, выборке присваивается номер 0.
<РазвСальдо> | Необязательный параметр. Признак необходимости рассчитывать развернутое сальдо по субконто. Используется только если в запросе участвуют субконто. 1 — рассчитывать развернутое сальдо. 0 — не рассчитать развернутое сальдо; По умолчанию 0.
<Сортировка> | Необязательный параметр. Строка — идентификатор реквизита справочника валют, который будет использован для упорядочивания обхода валют методом ПолучитьВалюту. Если значение пустое — используется представление справочника.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы одна валюта;

0 — если действие не выполнено или в выборке нет ни одной валюты.

Описание:

Метод ВыбратьВалюты должен использоваться после выполнения метода ВыполнитьЗапрос. Метод открывает выборку валют.

Дополнительные условия на содержание выборки могут накладываться параметрами <ФлагВсе> и <ФлагДК>.

Параметр <РазвСальдо> может указываться только, если в запросе установлено участие субконто. Позволяет указать, рассчитывать ли равернутое сальдо для субконто выборки. Результаты расчета могут быть получены при помощи функций СНДРС , СНКРС , СКДРС , СККРС.

Непосредственно извлечение валют из выборки осуществляется при помощи метода ПолучитьВалюту.

Выборке, открываемой методом ВыбратьВалюты, может быть присвоен номер — «метка» выборки. Номер может использоваться для обращения к результатам выборки при помощи метода ПолучитьВалюту. Использование этой метки необходимо, если требуется получить две группировки по валюте.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьВалюты();

   Пока БухИтоги.ПолучитьВалюту() = 1 цикл

      ДебВ=БухИтоги.ДО(2);

      КредВ=БухИтоги.КО(2);

   КонецЦикла;

КонецЦикла;

ПолучитьВалюту

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

Синтаксис:

ПолучитьВалюту(<Номер>, <Валюта>}

Англоязычный синоним:

GetCurrency

Параметры:

<Номер> | Необязательный параметр. Положительное целое число — номер выборки.
<Валюта> | Необязательный параметр. Конкретное значение валюты, которое нужно получить из выборки.

Возвращаемое значение:

Число: 1 — следующая валюта выбрана успешно; 0 — следующий валюта не выбрана (отсутствует).

Описание:

Метод ПолучитьВалюту выбирает очередную валюту из выборки, открытой при помощи метода ВыбратьВалюты.

Метод ПолучитьВалюту позволяет также обращаться к результатам конкретной выборки по ее номеру. Номер выборки передается методу в качестве параметра <Номер>.

Метод ПолучитьВалюту позволяет также обращаться к конкретному значению результа выборки. Значение валюты выборки передается методу в качестве параметра <Валюта >.

Если параметр <Валюта> не задан, то метод ПолучитьВалюту используется для организации цикла по валютам. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьВалюту возвращает 1.

Метод возвращает 0, когда очередная валюта не выбрана. Это происходит, если при предыдущем применении метода была выбрана последняя валюта выборки.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьВалюты();

   Пока БухИтоги.ПолучитьВалюту() = 1 цикл

      ДебВ = БухИтоги.ДО(2);

      КредВ = БухИтоги.КО(2);

   КонецЦикла;

КонецЦикла;

ВыбратьПериоды

Открывает выборку периодов.

Синтаксис:

ВыбратьПериоды(<ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>)

Англоязычный синоним:

SelectPeriods

Параметры:

<ФлагВсе> | Необязательный параметр. 0 — отбирать те периоды, которые имели итоги на этом уровне обхода итогов запроса; 1 — включить в выборку все периоды, которые имели итоги в данном запросе; -1, -2 ... — включить в выборку периоды, которые имели итоги в группировке n-го вышестоящего уровня. По умолчанию — 0.
<ФлагДК> | Необязательный параметр. 1 — включать в выборку периоды только с дебетовыми оборотами; 2 — включать в выборку периоды только с кредитовыми оборотами. 0 — включать в выборку периоды вне зависимости от дебетовых/кредитовых оборотов. По умолчанию 0.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки. Если параметр не указан, выборке приваивается номер 0.
<РазвСальдо> | Необязательный параметр. Признак необходимости рассчитывать развернутое сальдо по субконто. Используется только если в запросе участвуют субконто. 1 — рассчитывать развернутое сальдо; 0 — не рассчитывать развернутое сальдо. По умолчанию 0.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один период;

0 — если действие не выполнено или в выборке нет ни одного периода.

Описание:

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

Дополнительные условия на содержание выборки могут накладываться параметрами <ФлагВсе> и <ФлагДК>.

Параметр <РазвСальдо> может указываться только, если в запросе установлено участие субконто. Позволяет указать, рассчитывать ли равернутое сальдо для субконто выборки. Результаты расчета могут быть получены при помощи функций СНДРС , СНКРС , СКДРС , СККРС.

Непосредственно извлечение периодов из выборки осуществляется при помощи метода ПолучитьПериод.

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

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьПериоды();

   Пока БухИтоги.ПолучитьПериод() = 1 цикл

      Деб = БухИтоги.ДО();

      Кред = БухИтоги.КО();

   КонецЦикла;

КонецЦикла;

ПолучитьПериод

Получить из выборки следующий период. Выборка должна быть предварительно открыта при помощи метода ВыбратьПериоды.

Синтаксис:

ПолучитьПериод(<Номер>, <ДатаНачалаПериода>}

Англоязычный синоним:

GetPeriod

Параметры:

<Номер> | Необязательный параметр. Положительное целое число — номер выборки.
<ДатаНачалаПериода> | Необязательный параметр. Конкретное значение периода, который нужно получить из выборки.

Возвращаемое значение:

Число: 1 — следующий период выбран успешно; 0 — следующий период не выбран (отсутствует).

Описание:

Метод ПолучитьПериод выбирает очередной период из выборки, открытой при помощи метода ВыбратьПериоды.

Метод ПолучитьПериод позволяет также обращаться к результатам конкретной выборки по ее номеру. Номер выборки передается методу в качестве параметра <Номер>.

Метод ПолучитьПериод позволяет также обращаться к конкретному значению результа выборки. Значение периода выборки передается методу в качестве параметра <ДатаНачалаПериода>.

Если параметр <ДатаНачалаПериода> не задан, то метод ПолучитьПериод используется для организации цикла по периодам. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьПериод возвращает 1.

Метод возвращает 0, когда очередной период не выбран. Это происходит, если при предыдущем применении метода был выбран последний период выборки.

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьПериоды();

   Пока БухИтоги.ПолучитьПериод() = 1 цикл

      Деб = БухИтоги.ДО();

      Кред = БухИтоги.КО();

   КонецЦикла;

КонецЦикла;

ВыбратьСубконто

Открывает выборку по субконто.

Синтаксис:

ВыбратьСубконто(<Индекс>, <ФлагВсе>, <ФлагДК>, <Номер>, <РазвСальдо>,

                     <Сортировка>, <РежимОбхода>)

Англоязычный синоним:

SelectSubconto

Параметры:

<Индекс> | Необязательный параметр. Число — порядковый номер вызова метода ИспользоватьСубконто.
<ФлагВсе> | Необязательный параметр. 0 — отбирать те субконто, которые имели итоги на этом уровне обхода итогов запроса; 1 — включить в выборку все субконто, которые имели итоги в данном запросе; -1, -2 ... — включить в выборку субконто, которые имели итоги в группировке n-го вышестоящего уровня. По умолчанию — 0.
<ФлагДК> | Необязательный параметр. 1 — включать в выборку субконто только с дебетовыми оборотами; 2 — включать в выборку субконто только с кредитовыми оборотами. 0 — включать в выборку субконто вне зависимости от дебетовых/кредитовых оборотов. По умолчанию 0.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки. Если параметр не указан, выборке приваивается номер 0.
<РазвСальдо> | Необязательный параметр. Признак необходимости рассчитывать развернутое сальдо. 0 —не рассчитать развернутое сальдо; 1 — рассчитывать развернутое сальдо. По умолчанию 0.
<Сортировка> | Необязательный параметр. Строка — идентификатор реквизита субконто (если субконто — справочник или документ или счет), который будет использован для упорядочивания обхода субконто методом ПолучитьСубконто. Если значение пустое — используется стандартное представление.
<РежимОбхода> | Необязательный параметр. Положительное целое число — порядок выборки результатов: 0 — выборка в прямом порядке, 1 — выборка в обратном порядке; По умолчанию 0.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы одно субконто;

0 — если действие не выполнено или в выборке нет ни одного субконто.

Описание:

Метод ВыбратьСубконто должен использоваться после вызова метода ВыполнитьЗапрос. Метод открывает выборку по субконто.

Если обработка по субконто задавалась путем нескольких вызовов метода ИспользоватьСубконто, то параметр <Индекс> позволяет сослаться на субконто конкретного вида в порядке вызова метода ИспользоватьСубконто. Для этого параметром <Индекс> задается номер вызова метода ИспользоватьСубконто.

Дополнительные условия на содержание выборки могут накладываться параметрами <ФлагВсе> и <ФлагДК>.

Параметр <РазвСальдо> позволяет указать, рассчитывать ли равернутое сальдо для субконто выборки.

Извлечение субконто из выборки осуществляется при помощи метода ПолучитьСубконто.

Выборке, открываемой методом ВыбратьСубконто, может быть присвоен номер — «метка» выборки. Номер может использоваться для обращения к результатам выборки при помощи метода ПолучитьСубконто. Это позволяет получить две группировки по субконто данного вида.

Пример:

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

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

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");

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

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

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

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

      Деб = БухИтоги.ДО();

      Кред = БухИтоги.КО();

   КонецЦикла;

КонецЦикла;

ПолучитьСубконто

Получить из выборки следующее субконто. Выборка должна быть предварительно открыта при помощи метода ВыбратьСубконто.

Синтаксис:

ПолучитьСубконто(<Индекс>, <Номер>, <Субконто>)

Англоязычный синоним:

GetSubconto

Параметры:

<Индекс> | Необязательный параметр. Число —порядковый номер вызова метода ИспользоватьСубконто.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки.
<Субконто> | Необязательный параметр. Конкретное значение субконто, который нужно получить из выборки.

Возвращаемое значение:

Число: 1 — следующее субконто выбрано успешно; 0 — следующе субконто не выбрано (отсутствует).

Описание:

Метод ПолучитьСубконто выбирает очередное субконто из выборки, открытой при помощи метода ВыбратьСубконто.

Метод ПолучитьСубконто позволяет также обращаться к результатам выборки по номеру выборки. Номер выборки передается методу в качестве параметра <Номер>.

Метод ПолучитьСубконто позволяет также обращаться к конкретному значению результа выборки. Значение субконто выборки передается методу в качестве параметра <Субконто>.

Если параметр <Субконто> не задан, то метод ПолучитьСубконто используется для организации цикла по субконто. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьСубконто возвращает 1.

Метод возвращает 0, когда очередное субконто не выбрано. Это происходит, если при предыдущем применении метода было выбрано последнее субконто выборки.

Пример:

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

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

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");

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

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

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

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

      Деб = БухИтоги.ДО();

      Кред = БухИтоги.КО();

   КонецЦикла;

КонецЦикла;

ВыбратьКорСубконто

Открывает выборку по корреспондирующим субконто.

Синтаксис:

ВыбратьКорСубконто(<Индекс>, <ФлагВсе>, <ФлагДК>, <Номер>, <Сортировка>,

                   <РежимОбхода>)

Англоязычный синоним:

SelectCorSubconto

Параметры:

<Индекс> | Необязательный параметр. Число —порядковый номер вызова метода ИспользоватьКорСубконто.
<ФлагВсе> | Необязательный параметр. 0 — отбирать те субконто, которые имели итоги на этом уровне обхода итогов запроса; 1 — включить в выборку все субконто, которые имели итоги в данном запросе; -1, -2 ... — включить в выборку субконто, которые имели итоги в группировке п-го вышестоящего уровня. По умолчанию — 0.
<ФлагДК> | Необязательный параметр. 1 — включать в выборку субконто только с дебетовыми оборотами; 2 — включать в выборку субконто только с кредитовыми оборотами. 0 — включать в выборку субконто вне зависимости от дебетовых/кредитовых оборотов. По умолчанию 0.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки. Если параметр не указан, выборке присваивается номер 0.
<Сортировка> | Необязательный параметр. Строка — идентификатор реквизита субконто (если субконто — справочник или документ или счет), который будет использован для упорядочивания обхода субконто методом ПолучитьКорСубконто. Если значение пустое — используется стандартное представление.
<РежимОбхода> | Необязательный параметр. Положительное целое число — порядок выборки результатов: 0 — выборка в прямом порядке, 1 — выборка в обратном порядке. По умолчанию 0.

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы одно субконто; 0 — если действие не выполнено или в выборке нет ни одного субконто.

Описание:

Метод ВыбратьКорСубконто должен использоваться после вызова метода ВыполнитьЗапрос. Метод открывает выборку по корреспондирующим субконто.

Если обработка по корреспондирующим субконто задавалась путем нескольких вызовов метода ИспользоватьКорСубконто, то параметр <Индекс> позволяет сослаться на субконто конкретного вида в порядке вызова метода ИспользоватьКорСубконто. Для этого параметром <Индекс> задается номер вызова метода ИспользоватьКорСубконто.

Дополнительные условия на содержание выборки могут накладываться параметрами <ФлагВсе> и <ФлагДК>.

Извлечение субконто из выборки осуществляется при помощи метода ПолучитьКорСубконто.

Выборке, открываемой методом ВыбратьКорСубконто, может быть присвоен номер — «метка» выборки. Номер может использоваться для обращения к результатам выборки при помощи метода ПолучитьКорСубконто. Это позволяет получить две группировки по субконто данного вида.

Пример:

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

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

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

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

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

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

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

      Деб = БухИтоги.КорДО();

      Кред = БухИтоги.КорКО();

   КонецЦикла;

КонецЦикла;

ПолучитьКорСубконто

Получить из выборки следующее субконто. Выборка должна быть предварительно открыта при помощи метода ВыбратьКорСубконто.

Синтаксис:

ПолучитьКорСубконто(<Индекс>, <Номер>, <КорСубконто>)

Англоязычный синоним:

GetCorSubconto

Параметры:

<Индекс> | Необязательный параметр. Число —порядковый номер вызова метода ИспользоватьКорСубконто.
<Номер> | Необязательный параметр. Положительное целое число — номер выборки.
<КорСубконто> | Необязательный параметр. Конкретное значение корсубконто, который нужно получить из выборки.

Возвращаемое значение:

Число: 1 — следующее субконто выбрано успешно; 0 — следующе субконто не выбрано (отсутствует).

Описание:

Метод ПолучитьКорСубконто выбирает очередное корреспондирующее субконто из выборки, открытой при помощи метода ВыбратьКорСубконто.

Метод ПолучитьКорСубконто позволяет также обращаться к результатам выборки по номеру выборки. Номер выборки передается методу в качестве параметра <Номер>.

Метод ПолучитьКорСубконто позволяет также обращаться к конкретному значению результа выборки. Значение корсубконто выборки передается методу в качестве параметра <КорСубконто>.

Если параметр <КорСубконто> не задан, то метод ПолучитьКорСубконто используется для организации цикла по корреспогди-рующим субконто. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьКорСубконто возвращает 1.

Метод возвращает 0, когда очередное корреспондирующее субконто не выбрано. Это происходит, если при предыдущем применении метода было выбрано последнее субконто выборки.

Пример:

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

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

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

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

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

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

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

      Деб = БухИтоги.КорДО();

      Кред = БухИтоги.КорКО();

   КонецЦикла;

КонецЦикла;

Атрибуты для обращения к результатам запроса

Счет

Текущий счет результатов запроса.

Синтаксис:

Счет

Англоязычный синоним:

Account

Описание:

Счет является атрибутом типа «Счет». При обращении к итогам запроса при помощи функций ВыбратьСчета, ПолучитьСчет, атрибут Счет равен текущему счету, выбранному функцией ПолучитьСчет.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   Сообщить(БухИтоги.Счет.Код + " ДО = " + БухИтоги.ДО());

КонецЦикла;

КорСчет

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

Синтаксис:

КорСчет

Англоязычный синоним:

CorAccount

Описание:

КорСчет является атрибутом типа «Счет». При обращении к итогам запроса при помощи функций ВыбратьКорСчета, ПолучитьКорСчет, атрибут Счет равен текущему счету, выбранному функцией ПолучитьКорСчет.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьКорСчета();

   Пока БухИтоги.ПолучитьКорСчет() = 1 цикл

      Сообщить(БухИтоги.КорСчет.Код + " ДО = " + БухИтоги.КорДО());

   КонецЦикла;

КонецЦикла;

Валюта

Валюта, по которой извлекаются результаты запроса.

Синтаксис:

Валюта

Англоязычный синоним:

Currency

Описание:

Атрибут Валюта имеет значение «Справочник.Валюты». Он позволяет получить, текущую валюту при использовании методов ВыбратьВалюты и ПолучитьВалюту.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

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

   БухИтоги.ВыбратьВалюты();

   Пока БухИтоги.ПолучитьВалюту() = 1 цикл

      Сообщить(БухИтоги.Счет.Код + "/" + БухИтоги.Валюта + " ДО == " +

               БухИтоги.ДО());

   КонецЦикла;

КонецЦикла;

НачДата

Начальная дата периода, за который извлекаются результаты запроса.

Синтаксис:

НачДата

Англоязычный синоним:

BegDate

Описание:

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

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл

   БухИтоги.ВыбратьПериоды();

   Пока БухИтоги.ПолучитьПериод() = 1 цикл

      Сообщить("С " + БухИтоги.НачДата.Код + " по " + БухИтоги.КонДата +

               " ДО = " + БухИтоги.ДО());

   КонецЦикла;

КонецЦикла;

КонДата

Конечная дата периода, за который извлекаются результаты запроса.

Синтаксис:

КонДата

Англоязычный синоним:

EndDate

Описание:

Атрибут КонДата содержит конечную дату периода, за который извлекаются итоги при использовании методов обхода периодов ВыбратьПериоды и ПолучитьПериод.

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл

   БухИтоги.ВыбратьПериоды();

   Пока БухИтоги.ПопучитьПериод() = 1 цикл

      Сообщить("С " + БухИтоги.НачДата.Код + " по " + БухИтоги.КонДата +

           " ДО = " + БухИтоги.ДО());

   КонецЦикла;

КонецЦикла;

Операция

Текущая операция, по которой выдаются итоги при использовании запроса.

Синтаксис:

Операция

Англоязычный синоним:

Operation

Описание:

Атрибут позволяет обращаться к текущей операции, если запрос получен с детализацией итогов по периоду «Операция» и «Проводка».

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Проводки");

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл

   БухИтоги.ВыбратьПериоды();

   Пока БухИтоги.ПолучитьПериод() = 1 цикл

      Сообщить("Операция " + БухИтоги.Операция.ПредставлениеПроводки());

   КонецЦикла;

КонецЦикла;

Методы обращения к результатам запроса

Субконто

Субконто, соответствующее текущему итогу.

Синтаксис:

Субконто(<Номер> | <ВидСубконто>)

Англоязычный синоним:

Subconto

Параметры:

<Номер> | Необязательный параметр. Число — номер выборки субконто.
<ВидСубконто> | Необязательный параметр. Значение типа «Вид субконто».

Возвращаемое значение:

Значение субконто, соответствующее текущему итогу.

Описание:

Метод Субконто служит для получения значения субконто, соответствующего текущему итогу.

Метод применяется для получения текущего сукбонто при использовании методов ВыбратьСубконто и ПолучитьСубконто.

Пример:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

БухИтоги.ВыбратьСубконто();

Пока БухИтоги.ПолучитьСубконто() = 1 цикл

   Сообщить(БухИтоги.Субконто());

КонецЦикла;

КорСубконто

Корреспондирующее субконто, соответствующее текущему итогу.

Синтаксис:

КорСубконто(<Номер>|<ВидСубконто>)

Англоязычный синоним:

CorSubconto

Параметры:

<Номер> | Необязательный параметр. Число — номер выборки корреспондирующего субконто.
<ВидСубконто> | Необязательный параметр. Значение типа «ВидСубконто».

Возвращаемое значение:

Значение корреспондирующего субконто, соответствующее текущему итогу.

Описание:

Метод КорСубконто служит для получения значения корреспондирующего субконто, соответствующего текущему итогу. Метод применяется для получения текущего сукбонто при использовании методов ВыбратьКорСубконто и ПолучитьКорСубконто.

Пример:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);

БухИтоги.ИспользоватьКорСубконто(ВидыСубконто.Клиенты, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

БухИтоги.ВыбратьСубконто();

Пока БухИтоги.ПолучитьСубконто() = 1 цикл

   БухМтоги.ВыбратьКорСубконто();

   Пока БухИтоги.ПолучитьКорСубконто() = 1 цикл

      Сообщить(БухИтоги.Субконто() + "-" + БухИтоги.КорСубконто());

   КонецЦикла;

КонецЦикла;

ПредставлениеСубконто

Представление субконто, соответствующего текущему итогу.

Синтаксис:

ПредставлениеСубконто(<Номер>|<ВидСубконто>, <Краткое>]

Англоязычный синоним:

SubcontoPresentation

Параметры:

<Номер> | Необязательный параметр. Число — номер выборки субконто.
<ВидСубконто> | Значение типа «Вид субконто».
<Краткое> | Необязательный параметр. 0 — полное представление субконто; 1 — краткое представление субконто. По умолчанию — 0.

Возвращаемое значение:

Строковое представление для субконто, соответствующего текущему итогу.

Описание:

Представлением называется символьная строка, содержащая информацию из различных реквизитов объекта, являющегося значением субконто. Эта символьная строка может быть использована для отображения значений субконто в различных отчетах.

Представление может быть задано только для видов субконто типа «Справочник» или «Документ». Формат представления определяется в конфигураторе при редактировании свойств вида субконто.

Метод ПредставлениеСубконто позволяет получить представление для субконто, соответствующего текущему итогу.

Метод применяется для текущего сукбонто при использовании методов ВыбратьСубконто и ПолучитьСубконто.

Пример:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

БухИтоги.ВыбратьСубконто();

Пока БухИтоги.ПолучитьСубконто() = 1 цикл

   Сообщить(БухИтоги.ПредставлениеСубконто());

КонецЦикла;

ПредставлениеКорСубконто

Представление корреспондирующего субконто, соответствующего текущему итогу.

Синтаксис:

ПредставлениеКорСубконто(<Номер>|<ВидСубконто>, <Краткое>)

Англоязычный синоним:

CorSubcontoPresentation

Параметры:

<Номер> | Необязательный параметр. Число — номер выборки корреспондирующего субконто.
<ВидСубконто> | Значение типа «Вид субконто».
<Краткое> | Необязательный параметр. 0 — полное представление субконто; 1 — краткое представление субконто. По умолчанию — 0.

Возвращаемое значение:

Строковое представление для корреспондирующего субконто, соответствующего текущему итогу.

Описание:

Представлением называется символьная строка, содержащая информацию из различных реквизитов объекта, являющегося значением субконто. Эта символьная строка может быть использована для отображения значений субконто в различных отчетах.

Представление может быть задано только для видов субконто типа «Справочник» или «Документ». Формат представления определяется в конфигураторе при редактировании свойств вида субконто.

Метод ПредставлениеКорСубконто позволяет получить представление для корреспондирующего субконто, соответствующего текущему итогу.

Метод применяется для текущего корреспондирующего сукбонто при использовании методов ВыбратьКорСубконто и ПолучитьКорСубконто.

Пример:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Товары, , 1);

БухИтоги.ИспользоватьКорСубконто(ВидыСубконто.Клиенты, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

БухИтоги.ВыбратьСубконто();

Пока БухИтоги.ПолучитьСубконто() = 1 цикл

   БухИтоги.ВыбратьКорСубконто();

   Пока БухИтоги.ПолучитьКорСубконто() = 1 цикл

      Сообщить(БухИтоги.ПредставлениеСубконто() + "-" +

                 БухИтоги.ПредставлениеКорСубконто());

   КонецЦикла;

КонецЦикла;

ЭтоГруппа

Определяет, является ли текущее значение группироки запроса по субконто группой или нет. Имеет смысл только для субконто типа «справочник».

Синтаксис:

ЭтоГруппа()

Англоязычный синоним:

IsGroup

Возвращаемое значение:

Число: 1 — значение группировки по субконто является группой; 0 — значение группировки по субконто не является группой.

Описание:

Данный метод позволяет определить, является ли текущее значение группироки запроса по субконто группой или нет. Метод можно применять независимо от типа данных вида субконто, однако он имеет смысл только для субконто типа «справочник», а для остальных выдает 0.

Пример:

Пока БухИтоги.ПолучитьСубконто() = 1 Цикл

   Если БухИтоги.ЭтоГруппа() = 1 Тогда

      Таб.ВывестиСекцию("Группа");

   Иначе

      Таб.ВывестиСекцию("Строка");

   КонецЕсли;

КонецЦикла;

СНД, СНК, СКД, СКК, ДО, КО

СНД — дебетовое сальдо на начало периода;

СКД — дебетовое сальдо на конец периода;

СНК — кредитовое сальдо на начало периода;

СКК — кредитовое сальдо на конец периода;

ДО — дебетовый оборот за период;

КО — кредитовый оборот за период.

Синтаксис:

СНД(<ТипСуммы>)

СНК(<ТипСуммы>)

СКД(<ТипСуммы>}

СКК(<ТипСуммы>)

ДО(<ТипСуммы>)

КО(<ТипСуммы>)

Англоязычные синонимы:

IDB

ICB

FDB

FCB

TD

ТС

Параметры:

<ТипСуммы>

Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений:

1 ("С", "S") — сумма;

2 ("В", "С") — валютная сумма;

3 ("К", "А") — количество.

Если параметр не указан, метод возвращает сумму.

Возвращаемое значение:

Число — сальдо или оборот.

Описание:

При работе с результатами запроса, соответствующие сальдо и обороты в соответствии с текущим уровнем вложенности группировок.

Пример:

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл

   ОстНачД = БухИтоги.СНД();

   ОстНачК = БухИтоги.СНК();

   ОборотД = БухИтоги.ДО();

   ОборотК = БухИтоги.КО();

   ОстКонД = БухИтоги.СКД();

   ОстКонК = БухИтоги.СКК();

КонецЦикла;

СНДРС, СНКРС, СКДРС, СККРС

СНДРС — дебетовое развернутое сальдо на начало периода;

СНКРС — кредитовое развернутое сальдо на начало периода;

СКДРС —дебетовое развернутое сальдо на конец периода;

СККРС —кредитовое развернутое сальдо на конец периода.

Синтаксис:

СНДРС(<ТипСуммы>)

СНКРС(<ТипСуммы>)

СКДРС(<ТипСуммы>}

СККРС(<ТипСуммы>)

Англоязычный синоним:

IDBRS

ICBRS

FDBRS

FCBRS

Параметры:

<ТипСуммы>

Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений:

1 ("С", "S") — сумма;

2 ("В", "С") — валютная сумма;

3 ("К", "А") — количество.

Если параметр не указан, метод возвращает сумму.

Возвращаемое значение:

Число — рассчитанное сальдо.

Описание:

При работе с итогами, полученными методом ВыполнитьЗапрос функции СНДРС, СНКРС, СКДРС, СККРС позволяют получить развернутое сальдо в контексте текущих группировок запроса.

Пример:

* В данном примере по каждой организации определяется развернутое сальдо по счетам, к которым относится вид субконто "Организации".

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Организации, , 1);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон);

БухИтоги.ВыбратьСубконто(1);

Пока БухИтоги.ПолучитьСубконто(1) = 1 цикл

   ОстНачД = БухИтоги.СНДРС();

   ОстНачК = БухИтоги.СНКРС();

   ОстКонД = БухИтоги.СКДРС();

   ОстКонК = БухИтоги.СККРС();

КонецЦикла;

КорДО, КорКО

КорДО — дебетовый оборот между корреспонденциями;

КорКО — кредитовый оборот между корреспонденциями.

Синтаксис:

КорДО(<ТипСуммы>)

КорКО(<ТипСуммы>)

Англоязычные синонимы:

CorTD

СоrТС

Параметры:

<ТипСуммы>

Необязательный параметр. Число или строка — тип возвращаемой суммы. Может принимать одно из следующих значений:

1 ("С", "S") — сумма;

2 ("В", "С") — валютная сумма;

3 ("К", "А") — количество.

Если параметр не указан, метод возвращает сумму.

Возвращаемое значение:

Число — вычисленный оборот.

Описание:

Функции доступны только при работе с итогам, полученными методом

ВыполнитьЗапрос.

Функции КорДО и КорКО предназначены для получения корреспондирующих оборотов между счетам или между субконто. Для их использования должны быть организованы выборки методами ВыбратьСчета, ПолучитьСчет,

ВыбратьКорСчета, ПолучитьКорСчет или ВыбратьСубконто, ПолучитьСубконто, ВыбратьКорСубконто, ПолучитьКорСубконто.

Пример:

* В данном примере в переменной в переменных ОбДТ и ОбКТ образуются обороты с дебета основного счета в кредит корреспондирующего и наоборот соответственно.

БухИтоги.Запрос(Дата1, Дата2);

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл

   БухИтоги.ВыбратьКорСчета();

   Пока БухИтоги.ПолучитьКорСчет() = 1 цикл

      ОбДТ = БухИтоги.КорДО();

      ОбКТ = БухИтоги.КорКО();

   КонецЦикла;

КонецЦикла;

ВыбранаПоДт, ВыбранаПоКт

ВыбранаПоДт — определение, выбран ли итог по дебету;

ВыбранаПоКт — определение, выбран ли итог по кредиту.

Синтаксис:

ВыбранаПоДт()

ВыбранаПоКт()

Англоязычный синоним:

SelectedByDt

SelectedByKt

Возвращаемое значение:

Число: 0 —данный итог по дебету(кредиту) не выбран; 1 —данный итог по дебету(кредиту) выбран.

Описание:

Данные функция используются при обходе результатов запроса с детализацией периода по операциям и проводкам. Они показывают для текущей операции (проводки) попала ли она в запрос по дебетовой (кредитовой) корреспонденции.

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, "50", , , , "Проводки");

БухИтоги.ВыбратьСчета();

БухИтоги.ВыбратьПериоды();

КолПрих=0;

КолРасх=0;

Пока БухИтоги.ПолучитьПериод() = 1 Цикл

   Если БухИтоги.ВыбранаПоДт() = 1 Тогда

      КолПрих = КолПрих + 1;

   КонецЕсли;

   Если БухИтоги.ВыбранаПоКт() = 1 Тогда

      КолРасх = КолРасх + 1;

   КонецЕсли;

КонецЦикла;


Part21

Глава 21
Работа с Корректными проводками

Для работы с корректными проводками в системе используется специальный тип данных «КорректныеПроводки».

Контекст работы с объектом «КорректныеПроводки»

У объекта типа «КорректныеПроводки» есть набор атрибутов и методов для работы с данным объектом. Во всех программных модулях доступ к атрибутам и вызов методов корректных проводок может выполняться только при помощи переменной со ссылкой на объект типа «КорректныеПроводки». Объект создается функцией СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной.

Для создания объекта типа «КорректныеПроводки» в качестве параметра функции СоздатьОбъект передается ключевое слово «КорректныеПроводки».

Англоязычный синоним ключевого слова КорректныеПроводки — CorrectEntries.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

Атрибуты объекта «КорректныеПроводки»

Комментарий

Описание корректной проводки.

Синтаксис:

Комментарий

Англоязычный синоним:

Description

Описание:

Атрибут Комментарий дает доступ к значению описания корректной проводки.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводки();

Пока КП.ПолучитьКорректнуюПроводку() = 1 Цикл

   Сообщить(КП.Комментарий);

КонецЦикла;

СчетДт

Счет дебета корректной проводки.

Синтаксис:

СчетДт

Англоязычный синоним:

AccountDt

Описание:

Атрибут СчетДт дает доступ к значению счета дебета корректной проводки.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводки();

Пока КП.ПолучитьКорректнуюПроводку() = 1 Цикл

   Сообщить(КП.Комментарий + " счет дебета — " + КП.СчетДт);

КонецЦикла;

СчетКт

Счет кредита корректной проводки.

Синтаксис:

СчетКт

Англоязычный синоним:

AccountKt

Описание:

Атрибут СчетКт дает доступ к значению счета кредита корректной проводки.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводки();

Пока КП.ПолучитьКорректнуюПроводку() = 1 Цикл

   Сообщить(КП.Комментарий + " счет кредита — " + КП.СчетКт);

КонецЦикла;

Методы объекта «КорректныеПроводки»

Выбрана

Проверить факт: выбрана ли корректная проводка.

Синтаксис:

Выбрана()

Англоязычный синоним:

Selected

Возвращаемое значение:

Число: 1 — если корректная проводка выбрана; 0 — если не выбрана.

Описание:

Метод Выбрана возвращает число со значением 1 — объект выбран или 0 — если не выбран.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводки();

Пока КП.ПолучитьКорректнуюПроводку() = 1 Цикл

   Если Кп.Выбрана() = 1 Тогда

      Сообщить(КП.Комментарий + " счет кредита — " + КП.СчетКт);

   КонецЕсли;

КонецЦикла;

ВыбратьКорректныеПроводки

Открыть выборку корректных проводок по плану счетов.

Синтаксис:

ВыбратьКорректныеПроводки(<ПланСчетов>)

Англоязычный синоним:

SelectCorrectEntries

Параметры:

<ПланСчетов>

Необязательный параметр. Значение типа «План счетов». Если не задан, то по всем.

Возвращаемое значение:

Число: 1 — если есть хотя бы одна корректная проводка, удовлетворяющая условию; 0 — нет ни одной корректной проводки.

Описание:

Метод ВыбратьКорректныеПроводки предоставляет возможность выбирать корректные проводки (открывает выборку) при помощи метода ПолучитьКорректнуюПроводку.

Дальнейшая выборка при помощи метода ПолучитьКорректнуюПроводку будет происходить среди корректных проводок указанного плана счетов.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводки();

Пока КП.ПолучитьКорректнуюПроводку() = 1 Цикл

   Если КП.Выбрана() = 1 Тогда

      Сообщить(КП.Комментарий + " счет кредита — " + КП.СчетКт);

   КонецЕсли;

КонецЦикла;

ВыбратьКорректныеПроводкиПоСчету

Открыть выборку корректных проводок для указанного счета.

Синтаксис:

ВыбратьКорректныеПроводкиПоСчету(<Счет>, <ТипСчета>, <ПланСчетов>)

Англоязычный синоним:

SelectCorrectEntriesByAccount

Параметры:

<Счет> | Код счета или сам счет для которого отбирать корректные проводки.
<ТипСчета> | Необязательный параметр. Число: 0 — переданный счет является счетом дебета; 1 — переданный счет является счетом кредита. Значение по умолчанию 0.
<ПланСчетов> | Необязательный параметр. Значение типа «План счетов». Значение по умолчанию — главный план счетов.

Возвращаемое значение:

Число: 1 — если есть хотя бы одна корректная проводка, удовлетворяющая условию; 0 — нет ни одной корректной проводки.

Описание:

Метод ВыбратьКорректныеПроводкиПоСчету предоставляет возможность выбирать корректные проводки (открывает выборку) при помощи метода ПолучитьКорректнуюПроводку.

Дальнейшая выборка при помощи метода ПолучитьКорректнуюПроводку будет происходить среди корректных проводок указанного плана счетов.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводкиПоСчету("41.1");

Пока КП.ПолучитьКорректнуюПроводку() = 1 Цикл

   Если Кп.Выбрана() = 1 Тогда

      Сообщить(КП.Комментарий + " счет кредита — " + КП.СчетКт);

   КонецЕсли;

КонецЦикла;

ПолучитьКорректнуюПроводку

Получить из выборки следующую корректную проводку.

Синтаксис:

ПолучитьКорректнуюПроводку()

Англоязычный синоним:

GetCorrectEntry

Возвращаемое значение:

Число: 1 — корректная проводка получена; 0 — не получена (отсутствует).

Описание:

Метод ПолучитьКорректнуюПроводку выбирает следующую корректную проводку в выборке, открытой перед этим при помощи метода ВыбратьКорректныеПроводки или ВыбратьКорректныеПроводкиПоСчету.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводки();

Пока КП.ПолучитьКорректнуюПроводку() = 1 Цикл

   Если Кп.Выбрана() = 1 Тогда

      Сообщить(КП.Комментарий + " счет кредита — " + КП.СчетКт);

   КонецЕсли;

КонецЦикла;

Новая

Добавить новую корректную проводку.

Синтаксис:

Новая()

Англоязычный синоним:

New

Описание:

Метод Новая добавляет новую корректную проводку.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.Новая();

КП.Комментарий = "НДС с комисс. вознаграждения";

КП.СчетДт = "46.28";

КП.СчетКт = "68.2";

Кп.Записать();

Записать

Записать измененную или новую корректную проводку.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Возвращаемое значение:

Число: 1 — корректная проводка успешно записана; 0 — не записана.

Описание:

Метод Записать записывает измененную или новую корректную проводку.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.Новая();

КП.Комментарий ="НДС с комисс. вознаграждения";

КП.СчетДт = "46.28";

КП.СчетКт = "68.2";

Кп.Записать();

Удалить

Удалить корректную проводку.

Синтаксис:

Удалить()

Англоязычный синоним:

Delete

Возвращаемое значение:

Число: 1 — корректная проводка успешно удалена; 0 — не удалена.

Описание:

Метод Удалить удаляет корректную проводку.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");

КП.ВыбратьКорректныеПроводки();

Пока КП.ПояучитьКорректнуюПроводку() = 1 Цикл

   Если КП.Комментарий = "НДС с комисс. вознаграждения" Тогда

      КП.Удалить();

      Прервать;

   КонецЕсли;

КонецЦикла;


Part22

Глава 22
Работа с Журналами расчетов

Журнал расчетов — это средство для просмотра и редактирования результатов расчета. Каждая строка журнала отражает единичное событие расчета для того или иного объекта. Такие события называются «расчетами» и характеризуются следующими данными:

· объект, для которого произведен расчет;

· вид (т. е. способ) расчета;

· документ, на основании которого введен этот расчет;

· результат расчета;

· время действия (т. е. расчет имеет дату начала и дату окончания). период регистрации, во время которого расчет введен в журнал (это понятие не совпадает с понятием времени действия, так как время действия акта расчета и период регистрации, во время которого он введен в систему, могут не совпадать)

Справочник объектов расчета. Одним из самых важных свойств журнала расчетов является ссылка на справочник, элементы которого являются объектами расчета. Справочник объектов расчета может быть как простым, так и иерархическим. Не обязательно все элементы этого справочника должны рассчитываться конкретным журналом расчетов, но, в свою очередь, все строки журнала расчетов должны соответствовать тому или иному элементу справочника объектов расчета. Как правило, журнал расчетов содержит несколько записей по одному объекту расчета, но одна запись журнала расчетов не может соответствовать сразу нескольким объектам.

Расчетный период. Журнал расчетов имеет определенную периодичность, т. е. все расчеты в нем выполняются в пределах определенного временного интервала. Каждая запись журнала расчетов, соответствующая одному акту расчета, также имеет временное протяжение (т. е. имеет дату начала и дату окончания).

Важно! Временной интервал каждой отдельной записи журнала не может лежать в разных расчетных периодах журнала.

Записи, лежащие в текущем расчетном периоде, могут, тем не менее, иметь период действия, не принадлежащий текущему расчетному периоду. Это значит, что даты начала и окончания конкретной записи могут «выпадать» из текущего периода расчета и относиться к одному из прошлых или будущих периодов. Самым очевидным примером здесь может служить перерасчет зарплаты сотрудника за прошлый период или начисления будущего периода.

Примеры. Журнал расчета заработной платы сотрудников предприятия (каждый сотрудник — объект расчета), при этом выполняется расчет тех или иных начислений и удержаний (виды расчета), имеющих определенную продолжительность и результат. Другой пример — журнал расчета амортизации основных средств, где справочником объектов расчета является справочник основных средств предприятия, а видами расчета —алгоритм расчета амортизации, списания, переоценки и т. д. Третий пример — журнал расчета дивидендов для акционеров АО, где объекты расчета — список акционеров предприятия, а виды расчета — способы начислений дивидендов на акции разных типов.

Контекст работы с журналом расчета

Так же, как и при работе с другими данными системы 1С:Предприятие, доступ к атрибутам журнала расчетов и вызов его методов зависит от контекста выполнения модуля программы. В контексте выполнения расчета (см. «Виды программных модулей»), доступны атрибуты, методы журнала расчетов, т. е. они пишутся непосредственно, с указанием необходимых параметров.

Пример:

// Запись рассчитанного значения в атрибут Результат журнала расчетов

Результат = Объект.Оклад * Дни / ВсегоДней;

Во всех остальных случаях доступ к атрибутам и методам журнала расчетов производится через переменную, являющуюся ссылкой на объект типа «Журнал расчетов», т. е. созданную функцией СоздатьОбъект с ключевым словом ЖурналРасчетов.

Англоязычный синоним ключевого слова ЖурналРасчетов — CalcJournal.

Пример:

// Рассчитаем все записи журнала расчетов Зарплата

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.ВыбратьПериод(НачалоТекущегоПериода());

Пока ПолучитьЗапись() = 1 Цикл

   ЖР.Рассчитать();

КонецЦикла;

Контекст работы с записями журнала расчетов

При работе с журналом расчетов приходится сталкиваться с понятием «записи журнала расчетов». Ссылкой на объект типа «запись журнала расчетов» является, например, атрибут ПервичнаяЗапись журнала расчетов. Метод журнала ТекущаяЗапись также возвращает объект такого типа.

Кроме того, объект этого типа передается как параметр предопределенной процедуре формы журнала расчетов ПриРасчете в том случае, если выполняется расчет одной записи журнала расчетов. С точки зрения встроенного языка, ссылки на записи журнала расчетов — агрегатные объекты, имеющие свои атрибуты.

При работе с переменными или параметрами, представляющими собой ссылки на записи журнала расчетов, можно использовать любые атрибуты, присущие журналу расчетов, как агрегатному объекту (см. ниже).

Запись журнала расчетов как агрегатный объект не имеет методов.

Пример:

Процедура ПриРасчете(Объект)

   // определим, что считаем?

   Если ТипЗначения(Объект) = 12 Тогда

      // имеем дело с документом

      Если Объект.Автор <> Расчетчик Тогда

         // если автор данного документа не есть текущий расчетчик

         // запретим расчет чужого документа!

         СтатусВозврата(0);

      КонецЕсли;

   ИначеЕсли ТипЗначения(Объект) = 11 Тогда

      // а это — элемент справочника

      Если Объект.Владелец <> Расчетчик Тогда

         // если рассчитываемый объект лежит в папке текущего

         // расчетчика — считать можно, иначе — нет

         СтатусВозврата(0);

      КонецЕсли;

   Иначе

      // иначе — считаем одну запись

      Если (Объект.Документ.Автор <> Расчетчик) ИЛИ

           (Объект.Объект.Владелец <> Расчетчик) Тогда

         // не дадим считать запись чужого документа или объекта

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

Контекст работы с периодом журнала расчетов

При работе с журналом расчетов приходится сталкиваться с понятием «период журнала расчетов». Ссылкой на такого рода объект являются, например, атрибуты ПериодРегистрации и ПериодДействия журнала расчетов. Кроме того, объект этого типа передается в качестве одного из параметров предопределенной процедуре глобального модуля ПриСменеРасчетногоПериода. С точки зрения встроенного языка, период журнала расчетов — агрегатный объект, имеющий свои атрибуты (см. ниже) и методы. Атрибуты периода журнала расчетов предназначены только для чтения.

Атрибуты периода журнала расчетов

ДатаНачала

Дата начала периода журнала расчетов.

Синтаксис:

ДатаНачала

Англоязычный синоним:

DateFrom

Описание:

Атрибут типа «дата» — дата начала периода журнала расчетов.

Пример:

Процедура ПриСменеРасчетногоПериода(ЖР, Период)

   Если ЖР.Вид() = "Зарплата" Тогда

      Предупреждение("Это смена текущего расчетного периода

               | для журнала Зарплата");

   КонецЕсли;

   Если Период.ДатаНачала <= ЖР.НачалоТекущегоПериода Тогда

      //не позволяем откатывать период назад

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: ДатаОкончания

ДатаОкончания

Дата окончания периода журнала расчетов.

Синтаксис:

ДатаОкончания

Англоязычный синоним:

DateTill

Описание:

Атрибут типа «дата» — дата окончания периода журнала расчетов.

См. также: ДатаНачала

ОписательПериода

Возвращает строку-описатель периода.

Синтаксис:

ОписательПериода

Англоязычный синоним:

РеriodDescriptor

Описание:

Атрибут ОписательПериода является строковым представлением расчетного периода журнала расчетов. Тип формируемой строки различный для разной периодичности журнала расчетов. Например, для периода журналов с месячной периодичностью строка имеет вид "Январь 1997г", в случае квартальной периодичности журнала расчетов — "1 Квартал 1997г", а в случае недельной периодичности — "12.02.97 - 18.02.97".

Как правило, применяется при формировании отчетов.

Пример:

Процедура ВыводПоПериодам()

   Перем Запрос, ТекстЗапроса, Таб;

   Перем ДатаАкт;

   ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   ДатаАкт = ЖЗ.НачалоТекущегоПериода();

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(ВыводПоПериодам)

   |Период с ДатаАкт по ДатаАкт;

   |Сотр = ЖурналРасчетов.Зарплата.Объект;

   |Пер = ЖурналРасчетов.Зарплата.ПериодРегистрации;

   |Рез = ЖурналРасчетов.Зарплата.Результат;

   |Группировка Сотр упорядочить по Сотр.МестоРаботы без групп;

   |Группировка Пер;

   |Функция Сум = Сумма(Рез);

   |"//}}ЗАПРОС

   ;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   Пока Запрос.Группировка("Сотр") = 1 Цикл

      Сообщить(Запрос.Сотр.Наименование);

      Пока Запрос.Группировка("Пер") = 1 Цикл

         Сообщить(Запрос.Пер.ОписательПериода + "-" + 3апрос.Сум);

      КонецЦикла;

   КонецЦикла;

КонецПроцедуры

Методы периода журнала расчетов

ПрибавитьПериод

Возвращает очередной период журнала на базе текущего периода.

Синтаксис:

ПрибавитьПериод(<Количество>)

Англоязычный синоним:

AddPeriod

Параметры:

<Количество>

Число периодов, на которое отстоит текущий период от искомого. По умолчанию — 1 (т. е. метод возвращает следующий период).

Возвращаемое значение:

Период журнала, отстоящий от заданного на определяемое параметром <Количество> число периодов.

Описание:

Метод предназначен для получения периода отстоящего от текущего на заданное число периодов. Если <Количество> положительное число, возвращаемое значение — будущий период, в противном случае — прошлый период.

Пример:

ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");

ЖР.ВыбратьПериод(РабочаяДата());

//на три расчетных периода (месяца) назад

Пер = ЖР.ПериодДействия.ПрибавитьПериод(-3);

// теперь отбираем записи по нужному нам периоду

ЖР.ВыбратьПериод(Пер.ДатаНачала);

Всего = 0;

Пока ПолучитьЗапись() = 1 Цикл

   Если ЖР.ВидРасч = ВидРасчета.Доплата Тогда

      Всего = Всего + ЖР.Результат;

   КонецЕсли;

КонецЦикла;

Атрибуты журнала расчетов

Документ

Документ-основание текущей записи журнала расчетов.

Синтаксис:

Документ

Англоязычный синоним:

Document

Описание:

Атрибут типа «Документ». Ссылка на документ, на основании которого данная запись (расчет) введена в журнал расчетов. Это может быть, например, документ «Больничный лист», породивший одну или несколько записей с видом расчета «Оплата больничного листа».

Этот атрибут журнала расчетов заполняется в момент проведения документа ссылкой на этот документ, в случае использования методов ВвестиРасчет, ВвестиПерерасчет, ЗаписатьРасчет, или ссылкой на другой документ, в случае использования методов ВвестиРасчетНаОсновании, ЗаписатьРасчетНаОсновании, ВвестиПерерасчетНаОсновании (см. ниже).

Атрибут Документ предназначен только для чтения.

Пример:

Процедура ПровестиРасчет()

   Календ = Объект.Категория.Получить(ДатаНачала).Календарь;

   Дней = Календ.Дней(ДатаНачала, ДатаОкончания);

   Если ОткрытДок(Документ) = 0 Тогда

      РассчитатьСреднюю(Документ, Константа.МесСреднБЛ,

           ГруппаРасчетов.СредняяДляБЛ, 0);

   КонецЕсли;

   // среднюю зарплату берем из документа породившего расчет

   Результат =Окр(Дней * Документ.СрЗарплата);

   Дни = ?(Сторно = 1, -Дней, Дней);

КонецПроцедуры

См. также: ВвестиРасчет, ЗаписатьРасчет, ВвестиПерерасчет, ЗаписатьРасчетНаОсновании, ВестиРасчетНаОсновании, ВвестиПерерасчетНаОсновании

РодительскийДокумент

Документ, который ввел данную запись в журнал расчетов.

Синтаксис:

РодительскийДокумент

Англоязычный синоним:

ParentDocument

Описание:

Атрибут типа «Документ». Ссылка на документ расчета, который ввел данную запись (расчет) журнала расчетов.

В момент проведения документа, при вводе новых записей в журнал расчетов любым способом, атрибут РодительскийДокумент заполняется ссылкой на тот документ, который проводится.

Атрибут РодительскийДокумент предназначен только для чтения.

Пример:

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.ВыбратьЗаписиПоОбъекту();

Пока ЖР.ПолучитьЗапись() = 1 Цикл

   Если (ЖР.ВидРасч = ВидРасчета.ПоОкладу) И

            (ЖР.РодительскийДокумент.Вид() <> "НачалоМесяца") Тогда

      СообщитьОПерерасчете();

   КонецЕсли;

КонецЦикла;

См. также: ВвестиРасчет, ЗаписатьРасчет, ВвестиПерерасчет, ЗаписатьРасчетНаОсновании, ВвестиРасчетНаОсновании, ВвестиПерерасчетНаОсновании

Объект

Элемент справочника, для которого введена данная запись журнала расчетов.

Синтаксис:

Объект

Англоязычный синоним:

Object

Описание:

Атрибут типа «Справочник». Ссылка на конкретный элемент того справочника, который при конфигурировании журнала расчетов задан как список объектов расчета (справочник объектов расчета). К этому конкретному элементу справочника имеет отношение данная запись (расчет) журнала расчетов.

Атрибут Объект предназначен только для чтения.

Пример:

// Расчет профвзносов

Процедура ПровестиРасчет()

   // объект расчета — сотрудник

   Если Объект.Профсоюз.Получить(ДатаОкончания) = Да Тогда

      // Зануляем результат перед расчетом для того,

      // чтобы не учитывать его при расчете уже взятого налога!!!

      Результат = 0;

      // Журнал расчетов

      ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

      ЖР.ВыбратьЗаписиПоОбъекту(Объект, ЖР.НачалоПериодаПоДате(ДатаНачала),

              ЖР.КонецПериодаПоДате(ДатаНачала));

      Облагаем = 0;

      УжеВзяли = 0;

      Группа = ГруппаРасчетов.ОблагаетсяПроф;

      Пока ЖР.ПолучитьЗапись() > 0 Цикл

         Если ЖР.ВидРасч.ВходитВГруппу(Группа) = 1 Тогда

            Облагаем = Облагаем + ЖР.Результат;

         ИначеЕсли ЖР.ВидРасч = ВидРасчета.ПрофВзносы Тогда

            УжеВзяли = УжеВзяли + ЖР.Результат;

         КонецЕсли;

      КонецЦикла;

      Результат = Окр(Константа.ПроцентПроф.Получить(ДатаНачала) / 100 *

              Облагаем - УжеВзяли);

   Иначе

      Результат = 0;

   КонецЕсли;

КонецПроцедуры

См. также: ВыбратьПериодПоОбъекту, ВыбратьЗаписиПоОбъекту

ВидРасч

Вид расчета текущей записи журнала расчетов.

Синтаксис:

ВидРасч

Англоязычный синоним:

CalculKind

Описание:

Атрибут типа «ВидРасчета». Ссылка на конкретный вид расчета, алгоритм которого будет использован при вычислении результата данной записи журнала расчетов (акта расчета).

Атрибут ВидРасч предназначен только для чтения.

Пример:

// Перечисление в банк

Процедура ПровестиРасчет()

   // Процедура выполняется при проведении расчета

   // посчитаем сумму на руки

   НаРуки = 0;

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   Пока ЖР.ПолучитьЗапись() = 1 Цикл

      // если строка журнала расчетов имеет вид расчета,

      // входящий в группу "Все начисления"

      Если ЖР.ВидРасч.ВходитВГруппу(Группа.ВсеНачислнения) Тогда

         НаРуки = НаРуки + ЖР.Результат;

         // ...или "Все удержания"

      ИначеЕсли ЖР.ВидРасч.ВходитВГруппу(Группа.ВсеУдержания) Тогда

         НаРуки = НаРуки - ЖР.Результат;

      КонецЕсли;

   КонецЦикла;

   Если Документ.Сумма <> 0 Тогда

      Результат = Окр(Мин(Документ.Сумма, НаРуки));

   ИначеЕсли Документ.Процент <> 0 Тогда

      НаРуки = 0;

      Результат = Окр(НаРуки * Процент / 100);

   КонецЕсли;

   Если Документ.Банк.Выбран() Тогда

      ПроцентУд = Документ.Банк.ПроцентУдержания;

   Иначе

      Сообщение("Не указан банк для перечисления средств!");

      Возврат;

   КонецЕсли;

   ЖР.ВвестиРасчет(Объект, ВидРасчета.БанковскиеИздержки,

                ДатаНачала, ДатаОкончания, Окр(Результат * ПроцентУд / 100));

КонецПроцедуры

ДатаНачала

Дата начала действия записи журнала расчетов.

Синтаксис:

ДатаНачала

Англоязычный синоним:

DateFrom

Описание:

Атрибут типа «дата» — дата начала действия текущего акта расчета (записи журнала расчетов). Эта дата может не совпадать с периодом регистрации Атрибут ДатаНачала предназначен только для чтения.

Пример:

// процедура выполняется в контексте журнала расчетов

// ДатаНачала и ДатаОкончания доступны непосредственно!

// календарь

Календ = Объект.Категория.Получить(ДатаНачала).Календарь;

// размер оклада

Тариф = Объект.Тариф.Получить(ДатаОкончания);

Часов = Календ.Часов(ДатаНачала.ДатаОкончания);

Результат = Окр(Тариф*Часов);

Часы = ?(Сторно = 1, -Часов, Часов);

См. также: ДатаОкончания, ПериодДействия, ПериодРегистрации

ДатаОкончания

Дата окончания действия записи журнала расчетов.

Синтаксис:

ДатаОкончания

Англоязычный синоним:

DateTill

Описание:

Атрибут типа «дата» — дата окончания действия текущего акта расчета (записи журнала расчетов).

Атрибут ДатаОкончания предназначен только для чтения.

Пример:

См. предыдущий пример.

См. также: ДатаНачала, ПериодДействия, ПериодРегистрации

ПериодДействия

Период действия записи журнала расчетов.

Синтаксис:

ПериодДействия

Англоязычный синоним:

EffectivePeriod

Описание:

Атрибут типа «период журнала расчетов» — период действия текущей записи журнала расчетов. Под периодом действия подразумевается тот расчетный период журнала, в который попадают ДатаНачала и ДатаОкончания действия записи журнала расчетов (акта расчета).

Атрибут ПериодДействия предназначен только для чтения.

Пример:

Процедура ПоПодр()

   Перем Запрос, ТекстЗапроса, Таб;

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(ПоПодр)

   |Период с ДатаНач по ДатаКон;

   |Док = ЖурналРасчетов.Зарплата.ТекущийДокумент;

   |ПД = ЖурналРасчетов.Зарплата.ПериодДействия;

   |Подр = ЖурналРасчетов.Зарплата.Объект.МестоРаботы.Владелец;

   |Рез = ЖурналРасчетов.Зарплата.Результат;

   |Группировка ПД;

   |Группировка Подр без групп;

   |Функция Итог = Сумма(Рез);

   |"//}}ЗАПРОС

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("ПоПодр");

   // Заполнение полей "Заголовок"

   Таб.ВывестиСекцию("Заголовок");

   Пока Запрос.Группировка("ПД") = 1 Цикл

      // Заполнение полей ПД

      Таб.ВывестиСекцию("ПД");

      Сообщение(Запрос.ПД.Описатель);

      Пока Запрос.Группировка("Подр") = 1 Цикл

         // Заполнение полей Подр

         Таб.ВывестиСекцию("Подр");

      КонецЦикла;

   КонецЦикла;

   // Заполнение полей "Итого"

   Таб.ВывестиСекцию("Итого");

   // Вывод заполненной формы

   Таб.Опции(1, 0, 1, 0);

   Таб.Показать("ПоПодр", "");

КонецПроцедуры

См. также: ДатаНачала, ПериодДействия, ПериодРегистрации

ПериодРегистрации

Период регистрации записи журнала расчетов.

Синтаксис:

ПериодРегистрации

Англоязычный синоним:

RegistrationPeriod

Описание:

Атрибут типа «период журнала расчетов» — расчетный период, в котором текущая запись была введена в журнал расчетов. Это тот расчетный период, который на момент ввода данной записи был установлен для журнала расчетов как текущий.

Атрибут ПериодРегистрации предназначен только для чтения.

Пример:

См. предыдущий пример.

См. также: ДатаНачала, ДатаОкончания, ПериодДействия

Сторно

Признак сторнирующей записи.

Синтаксис:

Сторно

Англоязычный синоним:

Storno

Описание:

Атрибут типа «число», принимает два значения: 1 — для сторнирующих записей журнала расчетов и 0 — для обычных записей. Признак «сторно» равен 1 не только для простых сторно-записей, но и для рассчитанных, отредактированных вручную или зафиксированных (не подлежащих редактированию) сторно-записей.

Сторнирующие записи могут появляться в журнале расчетов в результате выполнения методов ВвестиРасчет, ЗаписатьРасчет и им подобных, если при этом затрагиваются один или несколько прошлых расчетных периодов и вводимый вид расчета является «вытесняющим». При этом система автоматически вводит необходимые сторнирующие записи. Для таких записей (введенных системным образом) признак сторнирования не может быть переопределен.

Если сторнирующая запись введена программным образом, т. е. атрибут Сторно задан за счет применения метода УстановитьРеквизит или непосредственным присвоением:

ЖрнРасчета = СоздатьОбъект("ЖурналРасчета.Зарплата");

ЖрнРасчета.Сторно = 1;

тогда он может быть переопределен программным образом.

Пример:

*

Процедура ПровестиРасчет()

   // календарь

   Календ = Объект.Категория.Получить(ДатаОкончания).Календарь;

   // размер оклада

   Оклад = Объект.Оклад.Получить(ДатаОкончания);

   Дней = Календ.Дней(ДатаНачала, ДатаОкончания);

   ВсегоДней = Календ.Дней(НачалоПериодаПоДате(ДатаНачала),

                КонецПериодаПоДате(ДатаНачала));

   Если ВсегоДней > 0 Тогда

      Результат = Окр(Оклад * Дней / ВсегоДней);

      // если запись-сторно — поставим отрицательные дни!

      Дни = ?(Сторно = 1, -Дней, Дней);

   Иначе

      Результат = 0;

      Дни = 0;

      Сообщить("Неправильный календарь!");

   КонецЕсли;

КонецПроцедуры

*

// вводим сторнирующие рассчитанные записи

ВР = ВидРасчета.ДоплатаКОкладу;

ЖрнЗарплата.УстановитьРеквизит("Сторно", 1);

ЖрнЗарплата.УстановитьРеквизит("Рассчитана", 1);

ЖрнЗарплата.ВвестиРасчет(Сотрудник, ВР, , , Сумма * Процент);

См. также: УстановитьРеквизит, ВвестиРасчет, ЗаписатьРасчет, Рассчитана

Рассчитана

Признак того, что запись рассчитана.

Синтаксис:

Рассчитана

Англоязычный синоним:

Calculated

Описание:

Атрибут типа «число», принимает два значения: 1 — для рассчитанных записей журнала расчетов и 0 — для нерассчитанных записей.

Запись журнала расчетов становится рассчитанной в результате удачного выполнения одной из соответствующих команд меню «Действия» или при выполнении методов журнала расчетов Рассчитать, ВыпролнитьРасчет.

Атрибут Рассчитана предназначен только для чтения.

Пример:

// Перед выводом отчета проверим, все ли записи рассчитаны

ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖрнЗарплата.ВыбратьПериодПоОбъекту(Сотрудник, ДатаОтчета);

// признак нерассчитанности

ПлохоДело=0;

Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл

   Если ЖрнЗарплата.Рассчитана = 0 Тогда

      ПолохоДело = 1;

      Прервать;

   КонецЕсли;

КонецЦикла;

Если ПлохоДело = 1 Тогда

   Предупреждение("Не проведен полный расчет сотрудника!

                   | Формирование отчета невозможно");

   Возврат;

КонецЕсли;

// продолжим формирование документа

См. также: Исправлена, Фиксирована

Исправлена

Признак того, что запись исправлена вручную.

Синтаксис:

Исправлена

Англоязычный синоним:

Updated

Описание:

Атрибут типа «число», принимает два значения: 1 — для записей журнала расчетов, результат которых исправлен «вручную» и 0 — для остальных записей.

Запись журнала расчетов становится исправленной при редактировании результата расчета непосредственно в журнале расчетов. Исправленные вручную записи не редактируются при очередном сеансе расчета, т. е. результат автоматического расчета не заменяет результат ручного ввода. Это значит, что результат ручного редактирования «главнее» результата автоматического расчета.

Атрибут Исправлена предназначен только для чтения.

Пример:

// Проверим, не редактировали ли результаты ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖрнЗарплата.ВыбратьЗаписиПоДокументу(ТекущийДокумент());

Счетчик = 0;

Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл

   Если ЖрнЗарплата.Исправлена = 1 Тогда

      Счетчик = Счетчик + 1;

   КонецЕсли;

КонецЦикла;

Если Счетчик <> 0 Тогда

   Сообщение("Исправленных записей — " + Счетчик);

КонецЕсли;

// продолжим формирование документа

См. также: Рассчитана, Фиксирована

Фиксирована

Признак того, что результат расчета записи защищен от исправления.

Синтаксис:

Фиксирована

Англоязычный синоним:

Locked

Описание:

Атрибут типа «число», принимает два значения: 1 — для фиксированных записей журнала расчетов и 0 — для остальных записей.

Запись журнала расчетов становится фиксированной при выполнении метода журнала расчетов ФиксироватьЗапись. Признак фиксированности записи можно снять, применив метод журнала расчетов ОсвободитьЗапись.

После фиксации записи результат ее расчета не может быть изменен никаким, в том числе, программным способом.

Атрибут Фиксирована предназначен только для чтения.

Пример:

Если ЖрнЗарплата.Фиксирована = 1 Тогда

   Если ДатаДок > ЖрнЗарплата.НачалоТекущегоПериода() Тогда

      ОсвободитьЗапись();

   Иначе

      // отказ от расчета;

      // ....

   КонецЕсли;

КоненцЕсли;

См. также: ФиксироватьЗапись, ОсвободитьЗапись

Перерасчет

Признак того, что запись является перерасчетом другой записи прошлого периода.

Синтаксис:

Перерасчет

Англоязычный синоним:

Recalc

Описание:

Атрибут типа «число», принимает два значения: 1 — для записей-перерасчетов и 0 — для остальных записей.

Записи-перерасчеты вводятся в журнал расчетов при выполнении одного из методов журнала расчетов: ВвестиПерерасчет или ВвестиПерерасчетНаОсновании.

Атрибут Перерасчет предназначен только для чтения.

Пример:

ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖрнЗарплата.ВыбратьПериодПоОбъекту(Сотрудник, ДатаОтчета);

Есть = 0;

Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл

   Если ЖрнЗарплата.Перерасчет = 0 Тогда

      Есть = 1;

      Пер = ЖрнЗарплата.ПервичнаяЗапись.ПериодРегистрации;

      Прервать;

   КонецЕсли;

КонецЦикла;

Если Есть = 1 Тогда

   Предупреждение("За истекший период проводились перерасчеты

          | прошлого периода " + Пер.Описатель);

   Возврат;

КонецЕсли;

// продолжим формирование документа

См. также: ПервичнаяЗапись

ПервичнаяЗапись

Первичная запись записи-перерасчета. Запись, на основании которой введена текущая запись-перерасчет.

Синтаксис:

ПервичнаяЗапись

Англоязычный синоним:

ParentRecord

Описание:

Атрибут типа «запись журнала расчетов». Имеет непустое значение для записей-перерасчетов, т. е. тех записей, которые введены в систему одним из методов журнала расчетов: ВвестиПерерасчет или ВвестиПерерасчетНаОсновании.

Атрибут ПервичнаяЗапись предназначен только для чтения.

Пример:

См. предыдущий пример.

См. также: Перерасчет, ВвестиПерерасчет, ВвестиПерерасчетНаОсновании

Результат

Результат расчета,

Синтаксис:

Результат

Англоязычный синоним:

Result

Описание:

Атрибут типа «число». Используется для доступа к результату расчета записи. Как правило, самым важным действием процедуры ПровестиРасчет модуля расчета является вычисление результата расчета и заполнение атрибута Расчет.

Пример:

*

// Переберем все записи текущего периода журнала расчетов

//по текущему основному средству и просуммируем результат

ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");

ЖР.ВыбратьПериодПоОбъекту(Объект, ЖР.НачалоТекущегоПериода());

// Инициализируем переменную

Сумма = 0;

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Сумма = Сумма + ЖР.Результат;

КонецЦикла

*

Результат = Оклад * Дней / ОтработаноДней;

<Реквизит>

Значение реквизита журнала расчетов.

Синтаксис:

<Реквизит>

Идентификатор реквизита журнала расчетов, как он задан в конфигураторе.

Описание:

Атрибут <Реквизит> предоставляет доступ к значению реквизита записи журнала расчетов. В тексте программного модуля в качестве названия реквизита используется идентификатор конкретного реквизита журнала расчетов, созданного в конфигураторе.

Пример:

//В этом примере журнал расчетов "Зарплата"

// имеет реквизит "ХозОперация"

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись() = 1 Цикл

   ЖР.ХозОперация = ПолучитьХО(ЖР.ТекущаяЗапись());

   // вызвали вспомогательную функцию пользователя: ПолучитьХО

КонецЦикла;

Методы журнала расчетов

НачалоТекущегоПериода

Возвращает дату начала текущего расчетного периода.

Синтаксис:

НачалоТекущегоПериода()

Англоязычный синоним:

CurrentPeriodBegin

Возвращаемое значение:

Значение типа «дата» — начало текущего расчетного периода журнала расчетов.

Описание:

Возвращает дату начала текущего периода журнала расчетов. Текущий период — отрезок времени, обсчитываемый журналом расчетов в данный момент. Величина расчетного периода журнала расчетов определяется при конфигурировании журнала и может принимать значения: день, неделя, месяц, квартал, год.

Текущий период журнала расчетов устанавливается при выполнении операции «Установить период расчета» меню «Действия» журнала расчетов. В случае, если периодичность журнала расчетов равна дню, методы НачалоТекущегоПериода и КонецТекущегоПериода возвращают одно и то же значение.

Пример:

//

ЖРЗарп = СоздатьОбъект("ЖурналРасчета.Зарплата");

Начало = ЖРЗарп.НачалоТекущегоПериода();

См. также: КонецТекущегоПериода, ПериодДействия, ПериодРегистрации

КонецТекущегоПериода

Возвращает дату окончания текущего расчетного периода.

Синтаксис:

КонецТекущегоПериода();

Англоязычный синоним:

CurrentPeriodEnd

Возвращаемое значение:

Значение типа «дата» — окончание текущего расчетного периода журнала расчетов.

Описание:

Возвращает дату окончания текущего расчетного периода журнала расчетов. Текущий расчетный период — это отрезок времени, обсчитываемый журналом расчетов в настоящее время. См. описание метода НачалоТекущегоПериода.

Пример:

// ЖРЗарп = СоздатьОбъект("ЖурналРасчета.Зарплата");

Календ = СоздатьОбъект("Календарь.Служащие");

НормаОтработки = Календ.Дней(ЖРЗарп.НачалоТекущегоПериода(),

                              ЖРЗарп.КонецТекущегоПериода());

См. также: НачалоТекущегоПериода, ПериодДействия, ПериодРегистрации

НачалоПериодаПоДате

Возвращает дату начала произвольного расчетного периода.

Синтаксис:

НачалоПериодаПоДате{<Дата>)

Англоязычный синоним:

PeriodBeginByDate

Параметры:

<Дата>

Любая дата, которая попадает в требуемый период.

Возвращаемое значение:

Значение типа «дата» — начало расчетного периода журнала расчетов.

Описание:

Метод позволяет определить дату начала того периода журнала расчетов, в который попадает заданная <Дата>. Работа метода не зависит от наличия в журнале расчетов данных за соответствующий расчетный период.

Пример:

// В каждой строке журнала расчетов проставим в реквизит Дни

// количество банковских дней того периода расчета, в который

// попадает запись

ЖР = СоздатьОбъект("ЖурналРасчетов.Дивиденды");

Календ = СоздатьОбъект("Календарь.РаботаБанка");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись() = 1 Цикл

   ЖР.Дни = Календ.Дней(НачалоПериодаПоДате(ЖР.ДатаНачала),

                         КонецПериодаПоДате(ЖР.ДатаНачала));

КонецЦикла;

См. также: КонецПериодаПоДате

КонецПериодаПоДате

Возвращает дату окончания произвольного расчетного периода.

Синтаксис:

КонецПериодаПоДате(<Дата>)

Англоязычный синоним:

PeriodEndByDate

Параметры:

<Дата>

Любая дата, которая попадает в требуемый период.

Возвращаемое значение:

Значение типа «дата» — окончание расчетного периода журнала расчетов.

Описание:

Метод позволяет определить дату окончания того периода журнала расчетов, в который попадает заданная дата. Работа метода не зависит от наличия в журнале расчетов данных за соответствующий расчетный период.

Пример:

См. предыдущий пример.

См. также: НачалоПериодаПоДате

ПериодПоДате

Возвращает период журнала расчетов по дате.

Синтаксис:

ПериодПоДате(<Дата>)

Англоязычный синоним:

PeriodByDate

Параметры:

<Дата>

Значение типа «дата».

Возвращаемое значение:

Период журнала расчетов.

Описание:

Метод ПериодПоДате возвращает период журнала расчетов по дате — т. е. период, в который попадает заданная дата.

Пример:

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Пер = ЖР.ПериодПоДате(РабочаяДата());

См. также: НачалоТекущегоПериода, ПериодДействия, ПериодРегистрации, КонецПериодаПоДате

УстановитьТекущийПериод

Устанавливает текущий период журнала расчетов.

Синтаксис:

УстановитьТекущийПериод(<Период>, <Способ>)

Англоязычный синоним:

SetCurrentPeriod

Параметры:

<Период> | Значение типа «период журнала расчетов».
<Способ> | Необязательный параметр, число: 0 — не отрабатывать системные действия, связанные со сменой периода; 1 -отработать системные процедуры по умолчанию (например, отменить рассчитанность записей при откате назад или провести архивацию документов при смене периода «вперед»). В этом режиме метод ведет себя как интерактивная смена периода но без вопросов. Значение параметра по умолчанию 1.

Возвращаемое значение:

Число: 1 — вополнено; 0 — не выполнено.

Описание:

Метод УстановитьТекущийПериод устанавливает текущий период журнала расчетов. Ведет себя так же, как интерактивная смена текущего периода, но без диалоговых окон.

Пример:

//Установить следующий период

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Пер = ЖР.ТекущийПериод();

Пер = Пер.ПрибавитьПериод(1);

Сообщение("Смена периода журнала займет некоторое время...");

ЖР.УстановитьТекущийПериод(Пер);

См. также: НачалоТекущегоПериода, ПериодДействия, ПериодРегистрации, КонецПериодаПоДате

ТекущийПериод

Возвращает текущий расчетный период журнала расчетов.

Синтаксис:

ТекущийПериод()

Англоязычный синоним:

CurrentPeriod

Возвращаемое значение:

Значение типа «Период журнала расчетов».

Описание:

Метод предназначен для определения текущего расчетного периода журнала расчетов.

Пример:

// Модуль формы журнала расчетов

Пер = ТекущийПериод();

// установим границу просмотра записей на два расчетных периода

ГраницаПросмотра(Пер.ПрибавитьПериод(-1));

ПолучитьЗапись

Получить из выборки следующую запись журнала расчетов.

Синтаксис:

ПолучитьЗапись()

Англоязычный синоним:

GetRecord

Возвращаемое значение:

Числовое значение — 1, если очередная запись журнала расчетов найдена, и 0, если очередная запись журнала не найдена или отсутствует (выборка пуста).

Описание:

Метод предназначен для позиционирования очередной записи журнала расчетов в выборке, установленной одним из следующих методов:

· ВыбратьЗаписи

· ВыбратьЗаписиПоОбъекту

· ВыбратьПериод

· ВыбратьПериодПоОбъекту

· ВыбратьЗаписиПоДокументу

Как правило, применяется в цикле после использования одного из вышеперечисленных методов.

Пример:

// Переберем все записи текущего периода журнала расчетов

//по текущему основному средству и просуммируем результат

ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");

ЖР.ВыбратьПериодПоОбъекту(Объект, ЖР.НачалоТекущегоПериода());

// Инициализируем переменную

Сумма = 0;

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Сумма = Сумма + ЖР.Результат;

КонецЦикла;

ВыполнитьРасчет

Выполнить расчет текущей записи журнала расчетов.

Синтаксис:

ВыполнитьРасчет()

Англоязычный синоним:

RunCalculate

Возвращаемое значение:

Числовое значение — 1, если расчет записи выполнен успешно, и 0 — в противном случае (в том числе, при прерывании процедуры расчета пользователем путем нажатия клавиши <Esc>).

Описание:

Выполняет расчет текущей строки журнала расчетов.

Как правило, применяется в цикле, выполняющем перебор записей журнала расчетов при помощи метода ПолучитьЗапись. Работает точно так же, как и метод Рассчитать, но имеет возвращаемое значение. Применяется в том случае, если при обработке в цикле записей журнала расчетов бывает необходимо прервать выполнение расчета.

Пример:

// процедура выполняет расчет по журналу Зарплата

Процедура Выполнить()

   ЖрнЗарплата.ВыбратьПериод{ЖрнЗарплата.НачалоТекущегоПериода());

   Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

      Если Считать() = 1 Тогда

         Если ЖрнЗарплата.ВыполнитьРасчет()= 0 Тогда

            // прерываем процедуру, если расчет неудачен или

            // пользователь нажал Езс

            Прервать;

         КонецЕсли;

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

ОписательПериода

Возвращает строку-описатель расчетного периода.

Синтаксис:

ОписательПериода(<Дата>)

Англоязычный синоним:

PeriodDescriptor

Параметры:

<Дата>

Дата периода, описатель которого требуется получить.

Возвращаемое значение:

Строка — описатель расчетного периода.

Описание:

Метод предназначен для получения строкового представления расчетного периода журнала расчетов. Возвращает значение для того расчетного периода, в который попадает параметр <Дата>. Тип формируемой строки различается для разной периодичности журнала расчетов. Например, для журналов с месячной периодичностью строка имеет вид "Январь 1997г", в случае квартальной периодичности — "1 Квартал 1997г", а в случае недельной периодичности — "12.02.97 — 18.02.97".

Как правило, применяется при формировании отчетов.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Сообщить("Текущий период — " + ЖЗ.ОписательПериода(РабочаяДата()));

См. также: НачалоПериодаПоДате, КонецПериодаПоДате

ТекущаяЗапись

Возвращает значение текущей записи журнала расчетов.

Синтаксис:

ТекущаяЗапись()

Англоязычный синоним:

CurrentRecord

Возвращаемое значение:

Значение текущей записи журнала расчетов.

Описание:

Метод возвращает ссылку на текущую запись (позиционированную в данный момент) журнала расчетов.

Возвращенное значение может, например, затем передаваться в качестве параметра методу журнала расчетов НийтиЗапись.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖЗ.ВыбратьЗаписиПоОбъекту(Сотрудник, ДН, ДО);

Пока ЖЗ.ПолучитьЗапись() = 1 Цикл

   Если ЖЗ.ПлатВедомость.Выбран() = 1 Тогда

      ЗаписьЖР = ЖЗ.ТекущаяЗапись();

   КонецЕсли;

КонецЦикла;

// теперь найдем запись и что-нибудь с ней поделаем

ЖЗ.НайтиЗапись(ЗаписьЖР);

ЖЗ.ПлатВедомость.Проведена = 1;

ЖЗ.ФиксироватьЗапись();

См. также: НайтиЗапись

НайтиЗапись

Позиционирует в журнале расчетов заданную запись.

Синтаксис:

НайтиЗапись(<Запись>)

Англоязычный синоним:

FindRecord

Параметры:

<3апись>

Запись журнала расчетов.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод позиционирует запись журнала расчетов, переданную в качестве параметра <3апись>. Передаваемое в качестве параметра значение, как правило, ранее получается за счет применения метода журнала расчетов ТекущаяЗапись. Фактически, данный метод открывает выборку журнала расчетов, заведомо состоящую из одной записи, и позиционирует ее.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖЗ.ВыбратьЗаписиПоОбъекту(Сотрудник, ДН, ДО);

Пока ЖЗ.ПолучитьЗапись() = 1 Цикл

   Если ЖЗ.ПлатВедомость.Выбран() = 1 Тогда

      ЗаписьЖР = ЖЗ.ТекущаяЗапись();

   КонецЕсли;

КонецЦикла;

// теперь найдем запись и что-нибудь с ней поделаем

ЖЗ.НайтиЗапись(ЗаписьЖР);

ЖЗ.ПлатВедомость.Проведена = 1;

ЖЗ.ФиксироватьЗапись();

См. также: ТекущаяЗсшись

ФиксироватьЗапись

Фиксирует текущую запись журнала расчетов, предотвращая редактирование результата ее расчета.

Синтаксис:

ФиксироватьЗапись()

Англоязычный синоним:

LockRecord

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод фиксирует текущую запись журнала расчетов. После применения этого метода атрибут записи Фиксирована принимает значение 1. Фиксация записи, фактически, означает невозможность отредактировать результат ее расчета любым, в том числе программным, способом.

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖЗ.ВыбратьЗаписиПоОбъекту(Сотрудник, ДН, ДО);

Пока ЖЗ.ПолучитьЗапись() = 1 Цикл

   Если (ЖЗ.Документ = ТекущийДокумент()) И

        (ЖЗ.ВидРасч = ВидРасчета.ПоТарифу) Тогда

      ЖЗ.ФиксироватьЗапись();

   КонецЕсли;

КонецЦикла;

См. также: атрибут Фиксирована, метод ОсвободитьЗапись

ОсвободитьЗапись

Снимает фиксацию с текущей записи журнала расчетов.

Синтаксис:

ОсвободитьЗапись()

Англоязычный синоним:

ReleaseRecord

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод снимает фиксацию с текущей записи журнала расчетов. После при менения этого метода атрибут записи Фиксирована принимает значение 0. Действие, обратное фиксации записи, фактически, означает возможность редактирования результата ее расчета.

Пример:

Если ЖрнЗарплата.Фиксирована = 1 Тогда

   Если ДатаДок > ЖрнЗарплата.НачалоТекущегоПериода() Тогда

      ОсвободитьЗапись();

   Иначе

      // отказ от расчета!

      // ....

   КонецЕсли;

КоненцЕсли;

См. также: Фиксирована, ФиксироватьЗапись

ВвестиПерерасчет

Вводит перерасчет текущей записи журнала расчетов.

Синтаксис:

ВвестиПерерасчет()

Англоязычный синоним:

InsertRecalc

Возвращаемое значение:

Число: 1 — если операция успешно выполнена, и 0 — в противном случае.

Описание:

Метод предназначен для ввода строк-перерасчетов в журнал расчетов. Как правило, используется в модуле документа, но может использоваться и в модуле вида расчета. Метод вводит полную копию текущей записи в журнал расчетов, не заполняя лишь атрибут Результат. Впоследствии система распознает «обычные» записи и записи-перерасчеты.

Записи-перерасчеты могут вводиться только для записей одного из прошлых расчетных периодов. Невозможно ввести перерасчет записи, которая в свою очередь является перерасчетом. При этом система позволяет вводить несколько записей-перерасчетов в разных расчетных периодах для одной и той же записи журнала.

Например, в случае если журнал расчетов имеет месячную периодичность, для «мартовской» записи журнала могут быть введены перерасчеты в апреле, мае и т. д.

Для записей, введенных в журнал одним из методов ВвестиПерерасчет или ВвестиПерерасчетНаОсновании, атрибут Перерасчет принимает значение 1.

При расчете записи-перерасчета результат вычисляется с учетом результата первичной (перерассчитываемой) записи. Это значит, что если в журнале расчетов введен перерасчет записи прошлого периода, то результат перерасчета будет рассчитан за вычетом значения Результат первичной записи.

Пример:

Процедура Перерасчет(Группа, Сотрудник, Основание, Начало, Окончание)

   //Группа расчетов "оплата по среднему"

   ОС = ГруппаРасчетов.ОплатаПоСреднему;

   // перерасчет по журналу "зарплата"

   ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   // дата, начиная с которой нужно перерассчитывать и начисления

   ДатаНачислений = ЖрнЗарплата.КонецПериодаПоДате(Начало) + 1;

   // выделим все записи ЖР по сотруднику

   ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Сотрудник,

                    ЖрнЗарплата.НачалоПериодаПоДате(Начало),

                    Минимум(Окончание, ЖрнЗарплата.НачалоТекущегоПериода() - 1));

   Сч = 1;

   Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

      Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(Группа) = 1 Тогда

         Пересчитать = 1;

         Если ((ЖрнЗарплата.ВидРасч.ВходитВГруппу(ОС) = 1)И

               (ЖрнЗарплата.ДатаНачала<ДатаНачислений)) Тогда

            // надо перерассчитывать начисления, оплачиваемые

            //по среднему заработку только следующего

            // (за началом действия данного документа-основания)

            // периода расчета

            Пересчитать = 0;

         КонецЕсли;

         Если Пересчитать = 1 Тогда

            ЖрнЗарплата.ВвестиПерерасчет(};

         КонецЕсли;

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

См. также: Перерасчет, ВвестиПерерасчетНаОсновании

ВвестиПерерасчетНаОсновании

Вводит перерасчет текущей записи журнала расчетов на основании произвольного документа.

Синтаксис:

ВвестиПерерасчетНаОсновании(<Документ>)

Англоязычный синоним:

InsertRecalcByReason

Параметры:

<Документ>

Документ, на основании которого вводится запись (или записи) в журнал расчетов.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк-перерасчетов в журнал расчетов на основании произвольного документа. Как правило, используется в модуле документа, но может использоваться и в модуле вида расчета. Метод вводит полную копию текущей записи в журнал расчетов, не заполняя лишь атрибут Результат и вводя в качестве документа-основания параметр <Документ>.

В отличие от метода ВвестиПерерасчет (который вводит записи журнала на основании того документа, в модуле которого используется метод), данный метод вводит записи-перерасчеты, задавая для них произвольный документ-основание.

Записи-перерасчеты могут вводиться только для записей одного из прошлых расчетных периодов. Невозможно ввести перерасчет записи, которая в свою очередь является перерасчетом. При этом система позволяет вводить несколько записей-перерасчетов в разных расчетных периодах для одной и той же записи журнала.

Пример:

Процедура ПровестиПерерасчет(Док)

   //Группа расчетов "оплата по среднему"

   ОС = ГруппаРасчетов.ОплатаПоСреднему;

   // перерасчет по журналу "зарплата"

   ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   // дата, начиная с которой нужно перерасчитывать и начисления

   ДатаНачислений = ЖрнЗарплата.КонецПериодаПоДате(Начало) + 1;

   // выделим все записи ЖР по сотруднику

   ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Док.Сотрудник,

                ЖрнЗарплата.НачалоПериодаПоДате(Док.Начало),

                Минимум(Док.Окончание, ЖрнЗарплата.НачалоТекущегоПериода() - 1));

   Сч = 1;

   Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

      Если ((ЖрнЗарплата.ВидРасч.ВходитВГруппу(ОС) = 1) И

            (ЖрнЗарплата.ДатаНачала < ДатаНачислений)) Тогда

         ЖрнЗарплата.ВвестиПерерасчетНаОсновании(Док);

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

См. также: Перерасчет, ВвестиПерерасчет

Вид

Название журнала расчетов.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строка — название журнала расчетов, как оно задано при конфигурировании.

Описание:

Метод возвращает название журнала расчетов, как оно задано при конфигурировании журнала. Один из вариантов использования метода — определение вида журнала в предопределенной процедуре глобального модуля ПриСменеРасчетногоПериода.

Пример:

Процедура ПриСменеРасчетногоПериода(ЖР, Период)

   Если ЖР.Вид() = "Зарплата" Тогда

      Предупреждение("Это смена текущего расчетного периода

                     | для журнала Зарплата");

   КонецЕсли;

   Если Период.ДатаНачала <= ЖР.НачалоТекущегоПериода Тогда

      // не позволяем откатывать период назад

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

ПредставлениеВида

Определить пользовательское представление вида журнала расчетов.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида журнала расчетов.

Описание:

Метод ПредставлениеВида позволяет получить пользовательское представление вида журнала расчетов, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния

Состояние(ЖР.ПредставлениеВида());

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>}

Англоязычный синоним:

SetType

Параметры:

<ИмяРеквизита> | Строковое выражение — название реквизита журнала расчетов неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> | Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту журнала расчетов. Например, «Строка», «Число», «Справочник.Товары», «Документ.РасходнаяНакладная» и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».

Пример:

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

// будем записывать несколько реквизитов

ЖЗ.НазначитьТип("ТМЦ", "Справочник.Товары");

ЖЗ.УстановитьРеквизит("ТМЦ", ВыбТовар);

ЖЗ.ВвестиРасчет(Сотр, ВР, Нач, Оконч, Сумма * Процент);

УстановитьРеквизит

Установить значение реквизита журнала расчетов для последующей записи.

Синтаксис:

УстановитьРеквизит(<ИмяРеквизита>, <Значение>)

Англоязычный синоним:

SetAttribute

Параметры:

<ИмяРеквизита> | Строка — наименование реквизита журнала расчетов.
<Значение> | Значение, устанавливаемое для записи в реквизит <ИмяРеквизита>.

Описание:

Метод предназначен для организации заполнения дополнительных реквизитов журнала расчетов при вводе новых записей в журнал расчетов. Метод применяется в двух случаях: во-первых, при вводе записей журнала расчетов в процедуре проведения документа одним из перечисленных ниже методов:

· ВвестиРасчет;

· ВвестиРасчетНаОсновании;

· ЗаписатьРасчет;

· ЗаписатьРасчетНаОсновании.

Во-вторых, при вводе произвольных новых записей журнала расчетов (методы Новая и Записать).

В этих двух случаях метод УстановитьРеквизит работает по-разному. В случае, когда метод применяется перед вводом записей при проведении документа, не имеет смысла устанавливать значения для следующих реквизитов:

· Объект,

· Документ,

· РодительскийДокумент,

· ВидРасчета,

· ДатаНачала,

· ДатаОкончания,

· ПервичнаяЗапись.

Данные установки игнорируются последующими методами ВвестиРасчет, ЗаписатьРасчет и им подобными. Т. е. при вводе записей журнала этими методами возможна установка только реквизитов журнала, заданных при конфигурировании, реквизита Результат и таких признаков записи журнала, как: Рассчитана, Исправлена, Сторно, Фиксирована, Перерасчет.

В случае, когда метод применяется при вводе записей методами Новая и Записать, в качестве первого параметра <ИмяРеквизита> могут применятся наименования реквититов журнала расчетов, заданные при конфигураировании системы или следующие атрибуты, соответствующие предопределенным реквизитам журнала расчетов:

· Документ

· РодительскийДокумент

· Объект

· ВидРасч

· ДатаНачала

· ДатаОкончания

· Сторно

· Рассчитана

· Исправлена

· Фиксирована

· Перерасчет

· ПервичнаяЗапись

· Результат

Внимание! Атрибуты журнала расчетов ПериодДействия и ПериодРегистрации не устанавливаются пользователем. Атрибут ПериодРегистрации при вводе записи принимает значение текущего (установленного в данный момент для журнала расчетов) периода, а атрибут ПериодДействия соответствует установленным значениям ДатаНачала и ДатаОкончания.

Замечание. Установленные методом значения используются однократно, при первом же вызове одного из вышеперечисленных методов ввода новых записей журнала расчетов установленные значения «сбрасываются». Для записи нескольких реквизитов необходимо использовать метод несколько раз.

Пример:

Процедура ВвестиЗапись(Сотр, ВР, Сумма, Процент)

   ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   // будем записывать несколько реквизитов

   ЖЗ.УстановитьРеквизит("Сторно", 1);

   ЖЗ.УстановитьРеквизит("Рассчитана", 1);

   // введенные записи будут сторнированными и отмеченными

   // как рассчитанные

   ЖЗ.ВвестиРасчет(Сотр, ВР, Нач, Оконч, Сумма*Процент);

КонецПроцедуры

См. также: ВвестиРасчет, ЗаписатьРасчет

ВвестиРасчет

Ввести запись в журнал расчетов.

Синтаксис:

ВвестиРасчет(<06ъект>, <ВидРасчета>, <ДатаНачала> , <ДатаОкончания>, <Результат>}

Англоязычный синоним:

InsertCalculation

Параметры:

<Объект> | Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.
<ВидРасчета> | Вид вводимого расчета — ссылка на агрегатный объект «ВидРасчета».
<ДатаНачала> | Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего периода журнала расчетов.
<ДатаОкончания> | Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию — дата окончания текущего периода журнала расчетов.
<Результат> | Необязательный параметр. Результат расчета. По умолчанию — 0.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод ВвестиРасчет предназначен для ввода строк в журнал расчетов. Как правило, используется в модуле расчета документа, но может использоваться и в модуле вида расчета. Метод вводит одну или несколько записей в журнал расчетов, и результат ее действия зависит от того, вводится «вытесняющий» расчет или обычный.

При вводе вытесняющего расчета проводится анализ уже существующих записей журнала расчетш; для интервала времени, заданного параметрами ДатаНачала и ДатаОкончания. Если в этом периоде уже существуют записи, приоритет вытеснения которых меньше либо равен приоритету вытеснения вводимого расчета, будет проводиться редактирование периода их действия или полное их удаление. Это приведет, например, к тому, что вводимая запись будет вытеснять записи с тем же видом расчета.

В том случае, если вытесняемые данные принадлежат не текущему периоду расчета, проводится не корректировка или полное удаление записей, а их сторнирование

Если приоритет вытеснения уже существующих записей больше приоритета вытеснения вводимого расчета, то корректируется период действия вводимой записи. Это может привести, например, к тому, что новая запись вовсе не будет введена, если ее место во времени уже занято записями с большим приоритетом вытеснения.

Для случая ввода невытесняющих расчетов анализ существующих записей журнала расчетов и их протяженности во времени не проводится, и расчет вводится в любом случае.

Во всех вышеописанных случаях ввод записей в журнал расчетов проводится в пределах границ расчетных периодов журнала расчетов. Например, если при месячной периодичности журнала задать дату начала и дату окончания, отстоящие друг от друга более, чем на месяц, будет введено более одной записи журнала расчетов — для всех периодов, затрагиваемых временным интервалом от <ДатаНачала> до <ДатаОкончания>.

Важно! Следует помнить, что ввод записи с временем действия расчета, не принадлежащим текущему расчетному периоду, не означает ввода записей прошлого или будущего периода. Вводимые записи всегда принадлежат текущему периоду (т. е. введены в текущем периоде), хотя и производят расчеты прошлого или будущего периодов.

Атрибуты Документ и РодительскийДокумент журнала расчетов заполняются значением того документа, в модуле расчета которого сработал метод ВвестиРасчет. Этот документ будет «родителем» и «основанием» вводимой записи журнала расчетов. В том случае, когда метод сработал в модуле вида расчета, реквизиты Документ и РодительскийДокумент заполняются значениями этих атрибутов той записи журнала расчетов, при расчете которой выполнен метод ВвестиРасчет.

Таким образом, конкретный документ является «родителем» не только тех записей журнала расчетов, которые введены непосредственно им, но и тех записей, которые порождены при расчете записей, введенных документом. Можно считать, что для таких записей документ является не «родителем», а «прародителем».

Параметр <Результат> можно использовать в том случае, когда сразу при вводе записей журнала расчетов можно записать их результат.

Важно! Метод ВвестиРасчет можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.

Пример:

// Ввод выбранного расчета.

// Атрибут "Расчет" — реквизит формы документа

Процедура ПровестиДокумент()

   // Процедура выполняется при проведении документа расчета

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   ЖР.ВвестиРасчет(Сотрудник, Расчет, ДатаН, ДатаК, 0);

КонецПроцедуры

См. также: ВвестиРасчетНаОсновании, ЗаписатьРасчет

ВвестиРасчетНаОсновании

Ввести запись в журнал расчетов на основании произвольного документа.

Синтаксис:

ВвестиРасчетНаОсновании(<Основание>, <Объект>, <ВидРасчета>, <ДатаНачала>,

                <ДатаОконч>, <Результат>)

Англоязычный синоним:

InsertCalculationByReason

Параметры:

<Основание> | Документ, на основании которого вводится запись (или записи) в журнал расчетов.
<Объект> | Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.
<ВидРасчета> | Вид вводимого расчета — ссылка на агрегатный объект типа «ВидРасчета».
<ДатаНачала> | Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего расчетного периода журнала расчетов.
<ДатаОконч> | Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию — дата окончания текущего расчетного периода журнала расчетов.
<Результат> | Необязательный параметр. Результат расчета. По умолчанию — ноль.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк в журнал расчетов. Работает так же, как и метод ВвестиРасчет, но при этом реквизит Документ вводимых строк журнала расчетов заполняется значением параметра <Основание>. Использование метода ВвестиРасчетНаОсновании — один из способов непосредственно установить родительские отношения между любым документом и вводимыми записями журнала расчетов.

Важно! Метод ВвестиРасчетНаОсновании можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.

Пример:

// Модуль выполняется при проведении документа расчета "Начало месяца"

Процедура ПровестиДокумент()

   // Если можно проводить...

   Если (МожноПроводить = 1) Тогда

      // Журнал расчетов — Зарплата

      ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

      ЖРКомп = СоздатьОбъект("ЖурналРасчетов.Компенсации");

      // конец и начало текущего периода

      КТП = ЖР.КонецТекущегоПериода();

      НТП = ЖР.НачалоТекущегоПериода();

      Сотр = СоздатьОбъект("Справочник.Сотрудники");

      Спр = СоздатьОбъект("Справочник.ПриказыДлительногоДействия");

      Сотр.ВыбратьЭлементы();

      Пока Сотр.ПолучитьЭлемент() > 0 Цикл

         // расчет "приказов длительного действия"

         // типа доплат исп. листов, штрафов и пр...

         Спр.ИспользоватьВладельца(Сотрудник);

         Спр.ВыбратьЭлементы();

         // предполагается, что в каждом приказе есть

         // реквизиты Начало, Окончание и Сотрудник

         Пока Спр.ПолучитьЭлемент() > 0 Цикл

            //. . .

            Если Спр.Приказ.Вид() <> "" Тогда

               Если ((Спр.Приказ.Окончание >= НТП) И

                     (Спр.Приказ.Начало <= КТП)) Тогда

                  // предполагается, что в каждом приказе

                  // есть реквизиты Начало и Окончание

                  ЖР.ВвестиРасчетНаОсновании(Спр.Приказ, Спр.Приказ.Сотрудник,

                        Спр.Приказ.Расчет, Макс(Спр.Прика з.Начало, НТП),

                        Мин(Спр.Приказ.Окончание, КТП), 0);

               КонецЕсли;

            КонецЕсли;

         КонецЦикла;

      КонецЦикла;

   ИначеЕсли МожноПроводить = 0 Тогда

      Сообщить("Документ не проведен!!!");

   КонецЕсли;

КонецПроцедуры

См. также: ВвестиРасчет, ЗаписатьРасчетНаОсновании

ЗаписатьРасчет

Записать расчет в журнал расчетов.

Синтаксис:

ЗаписатьРасчет (<Объект>, <ВидРасчета>, <ДатаНачала>, <ДатаОкончания>,

                <Результат>)

Англоязычный синоним:

EnterCalculation

Параметры:

<Объект> | Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.
<ВидРасчета> | Вид вводимого расчета — ссылка на агрегатный объект «Вид Расчета».
<ДатаНачала> | Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего периода журнала расчетов.
<датаОкончания> | Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию — дата окончания текущего периода журнала расчетов.
<Результат> | Необязательный параметр. Результат расчета. По умолчанию — ноль.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк в журнал расчетов так же, как и метод ВвестиРасчет. Отличие заключается в том, что ввод вытесняющих расчетов приводит к вытеснению только тех расчетов, которые имеют меньший приоритет, а не меньший либо равный, как в случае с методом ВвестиРасчет. Это приводит, в частности, к тому, что за счет применения этого метода расчет не вытесняет «сам себя».

При записи невытесняющего расчета ввод новых записей также происходит «осмотрительно» — новые записи вводятся только в том случае, если в журнале расчетов нет точно такой же записи. Под точно такой же записью здесь подразумевается запись с таким же видом расчета, для того же объекта и с тем же периодом действия.

Важно! Метод ЗаписатьРасчет можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.

Пример:

См. предыдущий пример.

См. также: ВвестиРасчет, ЗаписатьРасчетНаОсновании

ЗаписатьРасчетНаОсновании

Ввести запись в журнал расчетов на основании произвольного документа.

Синтаксис:

ЗаписатьРасчетНаОсновании(<Основание>, <Объект>, <ВидРасчета>, <ДатаНачала>,

                   <ДатаОконч>, <Результат>)

Англоязычный синоним:

EnterCalculationByReason

Параметры:

<Основание> | Документ, на основании которого вводится запись (или записи) в журнал расчетов.
<Объект> | Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов.
<ВидРасчета> | Вид вводимого расчета — ссылка на агрегатный объект «Вид Расчета».
<ДатаНачала> | Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего периода журнала расчетов.
<ДатаОконч> | Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию — дата окончания текущего периода журнала расчетов.
<Результат> | Необязательный параметр. Результат расчета. По умолчанию — ноль.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для ввода строк в журнал расчетов. Работает так же, как и метод ЗаписатьРасчет, но при этом реквизит Документ вводимых строк журнала расчетов заполняется значением параметра <Основание>. Использование метода ЗаписатьРасчетНаОсновании — один из способов непосредственно установить родительские отношения между любым документом и вводимыми записями журнала расчетов.

Данный метод отличается от метода ВвестиРасчетНаОсновании тем, что ввод вытесняющих расчетов приводит к вытеснению только тех расчетов, которые имеют меньший приоритет, а не меньший либо равный, как в случае с методом ВвестиРасчетНаОсновании. Это приводит, в частности, к тому, что за счет применения этого метода расчет не вытесняет «сам себя».

При записи невытесняющего расчета ввод новых записей также происходит «осмотрительно» — новые записи вводятся только в том случае, если в журнале расчетов нет точно такой же записи. Под точно такой же записью здесь подразумевается запись с таким же видом расчета, для того же объекта и с тем же периодом действия.

Важно! Метод ЗаписатьРасчетНаОсновании можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.

Пример:

Процедура Перерасчет(Группа, Сотрудник, Основание, Начало, Окончание) Экспорт

   // перерасчет по журналу зарплата

   ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");

   ЖР.ВыбратьЗаписиПоОбъекту(Сотрудник, ЖР.НачалоПериодаПоДате(Начало),

       Мин(Окончание, ЖР.НачалоТекущегоПериода() - 1));

   Сч = 1;

   Пока (Сч < 50...) Цикл

      Если (Расчеты[Сч].ВходитВГруппу(ВсеУд)=1) Тогда

         ЖР.ЗаписатьРасчетНаОсновании(Основание, Сотрудник, Расчеты[Сч],

                  Начала[Сч], Окончания[Сч], 0);

      Иначе

         ЖР.ВвестиРасчетНаОсновании(Основания[Сч], Сотрудник, Расчеты[Сч],

                  Начала[Сч], Окончания[Сч], 0);

      КонецЕсли;

      Сч = Сч + 1;

   КонецЦикла;

КонецПроцедуры

См. также: ВвестиРасчетНаОсновании

Рассчитать

Провести расчет текущей записи.

Синтаксис:

Рассчитать()

Англоязычный синоним:

Calculate

Описание:

Выполняет расчет текущей строки журнала расчетов. Фактически, выполняет модуль вида расчета текущей строки журнала расчетов, точнее — предопределенную процедуру этого модуля ПровестиРасчет. Как правило, применяется в цикле, выполняющем перебор записей журнала расчетов при помощи метода ПолучитьЗапись. Расчет записей прошлых расчетных периодов не производится.

При расчете фиксированных записей текущего расчетного периода, модуль вида расчета выполняется, но изменение результата расчета не производится.

Метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Рассчитаем все основные средства категории определенного типа

ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Если ЖР.Объект.Тип = Тип;

      ЖР.Рассчитать();

   КонецЕсли;

КонецЦикла;

См. также: ВыполнитьРасчет

ВыбратьЗаписи

Выбрать записи, действующие в определенном временном интервале.

Синтаксис:

ВыбратьЗаписи(<Начало>, <Окончание>}

Англоязычный синоним:

SelectRecords

Параметры:

<Начало> | Дата начала периода.
<Окончание> | Дата окончания периода.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. содержит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все записи, период действия которых хоть на один день затрагивается тем периодом, который задан параметрами <Начало> и <Окончание>. Это значит, например, что если запись журнала расчетов имеет даты начала и окончания '15.12.96' и '25.12.96' то она попадет в выборку, открытую при помощи любого из следующих методов:

· ВыбратьЗаписи(•10.10.96', •15.12.96')

· ВыбратьЗаписи('25.12.96', '01.01.97')

· ВыбратьЗаписи('17.12.96', '17.12.96').

Как правило, после применения данного метода проводится перебор всех записей выборки в цикле при помощи метода журнала расчетов ПолучитьЗапись.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Расчет количества дней, отработанных всеми сотрудниками

// за прошлый период

//

// журнал расчета зарплаты

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

// дата начала прошлого периода

ДатаНачала = ЖР.НачалоПериодаПоДате(ЖР.НачалоТекущегоПериода() - 1);

ЖР.ВыбратьЗаписи(ДатаНачала, ЖР.КонецПериодаПоДате(ДатаНачала));

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Сумма = Сумма + ЖР.ДНИ;

КонецЦикла;

См. также: методы ВыбратьЗаписиПоОбъекту, ВыбратьПериод, атрибуты ДатаНачала, ДатаОкончания

ВыбратьПериод

Выбрать записи, введенные в журнал в определенном расчетном периоде.

Синтаксис:

ВыбратьПериод(<Дата>)

Англоязычный синоним:

SelectPeriod

Параметры:

<Дата>

Дата, лежащая в выбираемом периоде.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. содержит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все записи за тот расчетный период, в который попадает <Дата>. Выбираются именно те записи, которые введены в заданном периоде, но не записи, имеющие дату начала и дату окончания, лежащие в заданном периоде. Следовательно, метод ВыбратьПериод отличается от метода ВыбратьЗаписи лишь тем, что осуществляет выборку в другом временном разрезе. В первом случае — это выбор записей по времени их появления (регистрации) в системе, т. е. по расчетным периодам, во втором случае — это выбор записей по времени их действия. Как правило, применяется перед циклом, выполняющим перебор записей журнала расчетов при помощи метода ПолучитьЗапись.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Расчет суммы амортизации по результатам всех расчетов

// в текущем периоде

// журнал расчета амортизации

ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись()>0 Цикл

   Сумма = Сумма + ЖР.Результат;

КонецЦикла;

См. также: методы ВыбратьПериодПоОбъекту, ВыбратьЗаписи, атрибут ПериодРегистрации

ВыбратьЗаписиПоОбъекту

Выбрать записи, действующие в определенном временном интервале и принадлежащие одному объекту расчета.

Синтаксис:

ВыбратьЗаписиПоОбъекту(<Объект>, <Начало>, <Окончание>)

Англоязычный синоним:

SelectRecordsByObject

Параметры:

<Объект> | Объект расчета, записи которого выбираются.
<Начало> | Дата начала периода.
<Окончание> | Дата окончания периода.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. содержит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все записи, рассчитанные для объекта, заданного параметром <Объект>, период действия которых хоть на один день затрагивается тем периодом, который задан параметрами <Начало> и <Окончание>. Следовательно, метод ВыбратьЗаписиПоОбъекту отличается от ВыбратьЗаписи лишь тем, что в первом случае в выборку попадают записи по одному конкретному объекту расчета, а во втором — по всем объектам расчета.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Проходя по справочнику акционеров, проведем по некоторому

// условию полный расчет дивидендов

// Готовим справочник акционеров

Акционеры = СоздатьОбъект("Справочник.Акционеры");

Акционеры.ПорядокКодов();

Акционеры.ВыбратьЭлементы();

// Журнал расчетов дивидендов

ЖР = СоздатьОбъект("ЖурналРасчетов.Дивиденды");

// Начало и конец текущего периода

Нач = ЖР.НачалоТекущегоПериода();

Кон = ЖР.КонецТекущегоПериода();

Пока Акционеры.ПолучитьЭлемент() > 0 Цикл

   Если Акционеры.Статус = 2 Тогда

      ЖР.ВыбратьЗаписиПоОбъекту(Акционеры.ТекущийЭлемент(), , );

      Пока ЖР.ПолучитьЗапись() > 0 Цикл

         ЖР.Рассчитать();

      КонецЦикла;

   КонецЕсли;

КонецЦикла;

См. также: ВыбратьПериодПоОбъекту, ВыбратьЗаписи

ВыбратьЗаписиПоДокументу

Выбрать записи по документу-основанию.

Синтаксис:

ВыбратьЗаписиПоДокументу(<Документ>)

Англоязычный синоним:

SelееtRecordsByDocument

Параметры:

<Документ>

Документ расчета, который является документом-основанием для отбираемых записей.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. содержит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Выбираются все записи, документом-основанием для которых служит заданный <Документ>, вне зависимости от того, в каком расчетном периоде записи порождались. Как и все остальные методы выборки журнала расчетов, как правило, применяется перед циклом, в котором перебираются записи. Работает только для переменных, созданных функцией СоздатьОбъект.

Важно! Документом-основанием записи журнала расчетов может являться:

· документ, непосредственно породивший записи в систему за счет применения методов ВвестиРасчет и ЗаписатьРасчет;

· документ, ссылка на который передана в качестве параметра одному из методов: ВвестиРасчетНаОсновании или ЗаписатьРасчетНаОсновании.

Пример:

// Рассчитаем все записи по наряду (процедура выполняется

// в контексте журнала расчетов)

// Журнал расчетов

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.ВыбратьЗаписиПоДокументу(Документ);

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   ЖР.Рас считать();

КонецЦикла;

См. также: методы ВыбратьПериод, ВыбратьтЗаписи, атрибут Документ

ВыбратьПериодПоОбъекту

Выбрать записи по одному объекту расчета, зарегистрированные в определенном расчетном периоде журнала расчетов.

Синтаксис:

ВыбратьПериодПоОбъекту(<Объект>, <Дата>)

Англоязычный синоним:

SelectPeriodByObject

Параметры:

<Объeкт> | Объект расчета, записи которого выбираются.
<Дaтa> | Дата, лежащая в выбираемом периоде.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена и выборка не пуста, т. е. содержит хотя бы одну запись; 0 — в противном случае.

Описание:

Метод открывает выборку записей журнала расчетов. Работает так же, как метод ВыбратьПериод, за исключением того, что выбираются все записи для того объекта расчета, который задан параметром <Объект>.

Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

*

Процедура Начислено(Сотрудник)

   Начисл = 0;

   ПН = 0;

   ЖрнЗарплата.ВыбратьПериодПоОбъекту (Сотрудник, ДатаАктуальности);

   Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл

      Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)-1 Тогда

         Начисл = Рез + ЖрнЗарплата.Результат;

      ИначеЕсли ЖрнЗарплата.ВидРасч = ВидРасчета.ПодоходныйНалог

         Тогда ПН = ПН+ЖрнЗарплата.Результат;

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

*

// расчет начального сальдо

ЖрнЗарплата.ВыбратьПериодПоОбъекту(Сотрудник, НТП - 1);

Сальдо = 0;

Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл

   Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеУдержания) = 1 Тогда

      Сальдо = Сальдо-ЖрнЗарплата.Результат;

      // выплаты с деполнента и выплаты дивидендов — не считатем!

   ИначеЕсли ВыплатаЗрп(ЖрнЗарплата.ВидРасч, ЖрнЗарплата.Документ) = 1 Тогда

      Сальдо = Сальдо - ЖрнЗарплата.Результат;

   ИначеЕсли ЖрнЗарплата.ВидРасч.

                  ВходитВГруппу(ГруппаРасчетов.ПоложительноеСальдо) = 1 Тогда

      Сальдо = Сальдо + ЖрнЗарплата.Результат;

   КонецЕсли;

КонецЦикла;

Если Сальдо <> 0 Тогда

   ЖрнЗарплата.ЗаписатьРасчет(Сотрудник,

   ВидРасчета.НачальноеСальдо, НТП, КТП, Сальдо);

КонецЕсли;

См. также: методы ВыбратьПериод, ВыбратьтЗаписи, атрибут Объект

ВыбратьПоЗначению

Осуществляет выборку записей по значению в графе отбора.

Синтаксис:

ВыбратьПоЗначению(<ИмяГрафы>, <ЗначениеОтбора>, <ПериодНачала>,

                  <ПериодОкончания>)

Англоязычный синоним:

SelеctByValue

Параметры:

<ИмяГрафы> | Строковое значение. Наименование графы отбора, как она определена при конфигурировании.
<ЗначениеОтбора> | Отбираемое значение.
<ПериодНачала> | Значение типа «период журнала расчетов» -первый расчетный период отбора.
<ПериодОкончания> | Значение типа «период журнала расчетов» -последний расчетный период отбора.

Возвращаемое значение:

Число: 1 — если отбор успешно установлен; 0 — в противном случае.

Описание:

Метод предназначен для выборки записей журнала расчетов, которые содержат в графе отбора <ИмяГрафы> заданное <ЗначеяиеОтбора>, период регистрации которых лежит в пределах, заданных параметрами <ПериодНачала> и <ПериодОкончания>.

Если первый параметр задан неверно — т. е. нет такой графы отбора, выборка не будет выполнена и метод возвратит 0. Если заданное <ЗначениеОтбора> не содержится ни в одной строке журнала расчетов, выборка окажется пустой (т. е. в нее не попадет ни одна запись журнала расчетов), но метод возвратит значение 1.

Метод используется так же, как и другие методы создающие выборки записей в журнале расчетов, такие как ВыбратьЗаписи, ВыбратьПериод и т. д. Как и все остальные методы выборки журнала расчетов, как правило, применяется перед циклом, в котором перебираются записи. Работает только для переменных, созданных функцией СоздатьОбъект.

Замечание. Наименованиями граф отбора журнала расчетов могут служить реквизиты справочника объектов расчета, заданного для журнала расчетов, а также значения «Владелец» и «Родитель» этого справочника. Это значит, что в общем случае, в качестве первого параметра, методу могут передаваться предопределенные имена «Родитель» и «Владелец», а также названия реквизитов справочника.

Какие именно графы отбора задействованы в журнале расчетов, задается при конфигурировании.

Данный метод работает так же как и метод формы журнала расчетов УстановитьОтбор, но, разумеется не осуществляет визуального управления формой журнала.

Пример:

// Рассчитаем все записи текщего расчетного периода по

// подразделению (переменная Подр)

Процедура РасчетПодразделения(Подр)

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   ТекПер = ЖР.ТекущийПериод();

   ЖР.ВыбратьПоЗначению("Подразделение", Подр, ТекПер.ТекПер);

   Пока ЖР.ПолучитьЗапись() > 0 Цикл

      ЖР.Рассчитать();

   КонецЦикла;

КонецПроцедуры

См. также: УстановитьОтбор

Новая

Создает новую запись журнала расчетов.

Синтаксис:

Новая()

Англоязычный синоним:

New

Описание:

Метод инициализирует создание новой строки журнала расчетов. Собственно запись новой строки журнала расчетов происходит при вызове метода Записать. После инициализации создания новой строки, как правило, производится заполнение ее реквизитов с последующим вызовом метода Записать.

Пример:

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.Новая();

ЖР.Записать();

Записать

Вносит изменения записи в журнал расчетов.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать вносит изменения записи или новую запись в журнал расчетов. Данный метод применяется после метода Новая и заполнения реквизитов журнала расчетов при помощи метода УстановитьРеквизит.

Данный метод проверяет корректность заполненных реквизитов журнала расчетов. При вводе новых записей журнала расчетов методами Новая и Записать обязательно должны быть заполнены следующие реквизиты записи журнала: Объект, Документ, ВидРасч. Кроме того, проверяется корректность реквизитов ДатаНачала и ДатаОкончания. Если реквизиты ДатаНачала и ДатаОкончания не установленвы явным образом, при записи они устанавливаются как начало и окончание текущего расчетного прериода, соответственно. Реквизит ПериодРегистрации заполняется текущим значением расчетного периода, установленным для журнала расчетов (см. метод УстановитьПериодРасчета). Если реквизит РодительскийДокумент не установлен явным образом, для него устанавливается то же значение, что и для реквизита Документ. Если реквизиты Рассчитана, Сторно, Перерасчет, Фиксирована не установлены, то запись вводится как простая нерассчитанная, нефиксированная запись.

Внимание! При вводе новых записей в журнал расчетов методами Новая и Записать записи вводятся «как есть». Система не выполняет правила перерасчетов, а также правила взаимного вытеснения видов расчета. Ввод произвольных записей журнала расчетов очень ответственная операция. При использовании этих методов следует внимательно следить за логической целостностью журнала расчетов.

Пример:

Перем Док;

Перем Сотр;

Перем Рез;

// документы

Док = СоздатьОбъект("Документ");

// ...позиционируется нужный документ

// сотрудники

Сотр = СоздатьОбъект("Справочник.Сотрудники");

// ...позиционируется нужный элемент справочника сотрудники

// считаем результат...

Рез =

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.Новая();

ЖР.УстановитьПериод(ЖР.ПолучитьпериордПоДате(ТекДата));

ЖР.УстановитьРеквизит("Документ", Док.ТекущийДокумент());

ЖР.УстановитьРеквизит("Объект", Сотр.ТекущийЭлемент());

ЖР.УстановитьРеквизит("ВидРасч", Вид Расчета.ПоОкладу);

ЖР.УстановитьРеквизит("Рассчитана", 1);

ЖР.УстановитьРеквизит("Результат", Рез);

ЖР.Записать();

УдалитьЗапись

Удалить запись журнала расчетов.

Синтаксис:

УдалитьЗапись()

Англоязычный синоним:

DeleteRecord

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод предназначен для удаления записей журнала расчетов. Данный метод работает только для переменных, созданных функцией СоздатьОбъект.

Пример:

// Процедура выполняется в контексте журнала расчетов

// Удалим записи, по которым нет рабочих дней!

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Календ = СоздатьОбъект("Календарь.Служащие");

ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());

Пока ЖР.ПолучитьЗапись() > 0 Цикл

   Если Календ.Дней(ЖР.ДатаНачала, ЖР.ДатаОкончания) = 0 Тогда

      ЖР.УдалитьЗапись();

   КонецЕсли;

КонецЦикла;

Исправить

Исправление результата записи журнала расчетов.

Синтаксис:

Исправить(<НовыйРезультат>)

Англоязычный синоним:

Update

Параметры:

<НовыйРезультат>

Новый результат записи журнала расчетов.

Описание:

Метод выполняет то же действие, что и интерактивная процедура исправления результата, т. е. при исправлении записи текущего расчетного периода просто редактируется результат и метится запись «ручкой», а при исправлении записи прошлого периода — вводится сторно той записи и еще одна запись-исправление. Описание интерактивной процедуры исправления результата можно посмотреть в книге «Руководство пользователя».

ОтменитьИсправление

Отменяет исправление записи журнала расчетов, сделанное ранее.

Синтаксис:

ОтменитьИсправление()

Англоязычный синоним:

UndoUpdate

Описание:

Отменяет исправление, сделанное ранее (вручную или из языка методом Исправить). Метод выполняет те же действие, что и интерактивная процедура отмены исправления записи журнала расчетов. Описание интерактивной процедуры отмены исправления результата записи журнала расчетов можно посмотреть в книге «Руководство пользователя».

Методы контекста Модуля формы журнала расчетов

Описанные в данном разделе методы доступны только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

ВидыОтбора

Установить доступные виды отборов журнала для вызова их в интерактивном режиме.

Синтаксис:

ВидыОтбора(<СписокИмеяОтборов>)

Англоязычный синоним:

KindsOfSelection

Параметры:

<СписокИменОтборов>

Необязательный параметр. Строковое выражение, содержащее список имен отборов для журнала. Виды указываются через запятую. Если вместо списка —символ "*", то значит для журнала используются все назначенные в конфигураторе виды отборов.

Возвращаемое значение:

Строковое значение, содержащее текущий список имен отборов для журнала, разделенных запятыми (на момент до исполнения метода).

Описание:

Метод ВидыОтбора устанавливает доступные виды отборов журнала для вызова их в интерактивном режиме.

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

ВидыОтбора("Сотрудник, Расчетчик");

УстановитьОтбор

Установить выборку по графе отбора.

Синтаксис:

УстановитьОтбор(<ИмяГрафыОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

SetSelection

Параметры:

<ИмяГрафыОтбора> | Строковое значение. Наименование графы отбора, как она определена при конфигурировании.
<ЗначениеОтбора> | Отбираемое значение.

Возвращаемое значение:

Число: 1 — если отбор успешно установлен; 0 — в противном случае.

Описание:

Метод предназначен для выборки записей журнала расчетов, которые содержат в графе отбора <ИмяГрафыОтбора> заданное <ЗначениеОтбора>. Если первый параметр задан неверно — т. е. нет такой графы отбора, выборка не будет выполнена и метод возвратит 0. Если заданное <ЗначениеОтбора> не будет найдено ни в одной строке журнала расчетов, выборка окажется пустой (т. е. в нее не попадет ни одна запись журнала расчетов), но метод возвратит значение 1.

Если метод сработал, т. е. выборка реально установлена, происходит перерисовка окна журнала расчетов так же, как это происходит при интерактивном выполнении операции отбора.

Для отказа от отбора по значению необходимо вызвать данный метод, указав в качестве первого параметра пустую строку.

Замечание. Наименованиями граф отбора журнала расчетов могут служить реквизиты справочника объектов расчета, заданного для журнала расчетов, а также значения «Владелец» и «Родитель» этого справочника. Это значит, что в общем случае, в качестве первого параметра, методу могут передаваться предопределенные имена «Родитель» и «Владелец», а также названия реквизитов справочника.

Какие именно графы отбора задействованы в журнале расчетов, задается при конфигурировании.

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

// модуль формы журнала расчетов

// процедура снимает отбор

Процедура ВыбратьВсе();

   УстановитьОтбор("");

КонецПроцедуры

// Установим отбор сразу при открытии журнала расчетов Зарплата

// Расчетчик — глобальная переменная со ссылкой на группу

// сотрудников

УстановитьОтбор("Родитель", Расчетчик);

См. также: ПолучитьОтбор, ЗакладкиОтбора

ПолучитьОтбор

Получить значение предварительно установленного отбора.

Синтаксис:

ПолучитьОтбор(<ИмяГрафыОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

GetSelection

Параметры:

<ИмяГрафыОтбора> | Переменная в которую будет возвращено строковое значение — наименование графы отбора, как она определена при конфигурировании.
<ЗначениеОтбора> | Переменная, в которую будет возвращено ранее установленное значение отбора.

Возвращаемое значение:

Число: 1 — если отбор был установлен и <ИмяГрафыОтбора> и <ЗначениеОтбора> заполнены установками сделанными ранее методом УстановитьОтбор; 0 — если отбор прежде не был установлен.

Описание:

Метод предназначен для получение текущих значений отбора, установленных в форме журнала расчетов программным образом или интерактивно. Метод заполняет параметры <ИмяГрафыОтбора> и <ЗначениеОтбора>, переданные по ссылке. Если отбор ранее не был установлен, метод возвращает 0, а значения переменных, переданных в качестве параметров, не изменяются.

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

// модуль формы журнала расчетов

Перем ИмяОтбора;

Перем ЗначОтб;

Процедура ОтборПодразделения(Подразд)

   // ниже ИмяОтбора и ЗначениеОтбора будут заполнены

   // текущими значениями

   БылОтбор = ПолучитьОтбор(ИмяОтбора, ЗначОтб);

   Если БылОтбор = 1 Тогда

      Если ИмяОтбора = "Родитель" Тогда

         // снимем отбор

         УстановитьОтбор("");

      ИначеЕсли ИмяОтбора = "Подразделение" Тогда

         Сообщить("Было отобрано " + ЗначОтб.Наименование);

         УстановитьОтбор(ИмяОтбора, Подразд);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: УстановитьОтбор, ЗакладкиОтбора

ЗакладкиОтбора

Установить в форме журнала расчетов закладки для интерактивного осуществления отбора.

Синтаксис:

ЗакладкиОтбора(<ИмяОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

TabCtrlSelection

Параметры:

<ИмяОтбора> | Строковое выражение, содержащее имя графы отбора, по которой будут созданы закладки.
<ЗначениеОтбора> | Значение отбора, соответствующее закладке устанавливаемой первоначально.

Возвращаемое значение:

Число: 1 — если операция успешно выполнена; 0 — в противном случае.

Описание:

Метод ЗакладкиОтбора устанавливает в форме журнала расчетов закладки (tab control), позволяющие быстро переключаться между разными значениями по одному и тому же отбору.

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

// в форме журнала расчетов "зарплата" установим закладки

// по умолчанию будет использована закладка, соответств.

// текущему расчетчику

ЗакладкиОтбора("Родитель", Расчетчик);

См. также: УстановитьОтбор, ПолучитьОтбор

ГраницаПросмотра

Установить в форме журнала расчетов границу видимости записей.

Синтаксис:

ГраницаПросмотра(<Период>)

Англоязычный синоним:

ViewBound

Параметры:

<Период>

Значение типа «Период журнала расчетов», которое устанавливается как граница видимости записей журнала расчетов.

Возвращаемое значение:

Значение типа «Период журнала расчетов». Текущее значение границы просмотра записей журнала расчетов, установленное до вызова метода программным образом или интерактивно.

Описание:

Метод ГраницаПросмотра устанавливает в форме журнала расчетов границу видимости записей. Видимыми (т. е. отображаемыми в окне журнала расчетов) становятся записи журнала с периодом регистрации от расчетного периода, заданного параметром <Период> до текущего расчетного периода. После вызова данного метода происходит перерисовка окна, так же как и при интерактивной смене границы просмотра журнала расчетов.

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

// в форме журнала расчетов "зарплата" отодвинемся

// на два расчетных периода назад

СтараяГраница = ГраницаПросмотра();

ГраницаПросмотра(Ст.ПрибавитьПериод(-2));

См. также: методы РежимПредставления, УстановитьОтбор, атрибут ПериодРегистрации

УстановитьПредставление

Установить в форме журнала расчетов режим представления записей.

Синтаксис:

УстановитьПредставление(<Режим>, <Объект>)

Англоязычный синоним:

SetPresentation

Параметры:

<Режим> | Числовое значение — режим представления журнала расчетов.
<Объект> | Объект, записи которого отображаются. Если устанавливаемый режим — «по одному документу» (см. ниже), этот параметр должен иметь тип «документ», если режим устанавливаемого представления — «по одному объекту», этот параметр должен иметь тип «элемент справочника».

Возвращаемое значение:

Число: 1, если представление успешно установлено; 0 — если представление по каким-либо причинам не установлено.

Описание:

Метод УстановитьПредставление устанавливает режим вывода записей в форме журнала расчетов. Значение <Режим> может принимать следующие значения:

1. Записи по всем объектам расчета.

2. Записи по одному объекту расчета.

3. Записи по одному документу-основанию.

Параметр <Объект> должен иметь тот или иной тип значения, в зависимости от устанавливаемого режима. Если устанавливается режим просмотра записей по одному документу, то тип значения этого параметра — «документ»; если устанавливается режим просмотра записей по одному объекту расчета (элементу справочника-родителя данного журнала расчетов), то тип значения этого параметра — «элемент справочника».

Если устанавливаемый режим — просмотр записей по всем объектам расчета, параметр <Объект> не используется.

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

Перем СтРежим;

Перем СтОбъект;

Перем СменилиРежим;

Процедура ПоОдному(Сотрудник)

   // запомним предыдущие установки

   ПолучитьПредставление(СтРежим, СтОбъект);

   // Сменим режим

   СменилиРежим = УстановитьПредставление(2, Сотрудник);

КонецПроцедуры

Процедура Восстановить()

   Если СменилиРежим = 1 Тогда

      УстановитьПредставление(СтРежим, СтОбъект);

   КонецЕсли;

КонецПроцедуры

См. также: ПолучитьПредставление, ГраницаПросмотра

ПолучитьПредставление

Получить установки представления журнала расчетов — режим представления и отображаемый объект.

Синтаксис:

ПолучитьПредставление(<Режим>, <Объект>}

Англоязычный синоним:

GetPresentation

Параметры:

<Режим> | Переменная, в которую записывается числовое значение — текущий режим представления журнала расчетов.
<Объект> | Переменная, в которую записывается объект, записи которого отображаются. Если текущий режим — «по одному документу» (см. ниже), этот параметр примет значение типа «документ», если режим устанавливаемого представления — «по одному объекту», этот параметр примет значение типа «элемент справочника».

Возвращаемое значение:

Число: 1, если представление успешно установлено; 0 — если представление по каким-либо причинам не установлено.

Описание:

Метод ПолучитьПредставление считывает текущие установки вывода записей в форме журнала расчетов. Параметр <Режим>, переданный по ссылке, в результате работы метода может принять следующие значения:

1. Записи по всем объектам расчета.

2. Записи по одному объекту расчета.

3. Записи по одному документу-основанию.

Параметр <Объект> получит значение того или иного типа, в зависимости от устанавливаемого режима. Если текущий режим — «по одному документу», этот параметр примет значение типа «документ», если режим устанавливаемого представления — «по одному объекту», этот параметр примет значение типа «элемент справочника».

Если текущий режим представления — просмотр записей по всем объектам расчета, параметр <Объект> не заполняется и его значение остается прежним.

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

Перем СтРежим;

Перем СтОбъект;

Перем СменилиРежим;

Процедура ПоОдному(Сотрудник)

   // запомним предыдущие установки

   ПолучитьПредставление(СтРежим, СтОбъект);

   // Сменим режим

   СменилиРежим = УстановитьПредставление(2.Сотрудник);

КонецПроцедуры

Процедура Восстановить()

   Если СменилиРежим = 1 Тогда

      УстановитьПредставление(СтРежим, СтОбъект);

   КонецЕсли;

КонецПроцедуры

См. также: УстановитьПредставление, ГраницаПросмотра

РассчитыватьПриОтменеИсправления

Устанавливает значение флага автоматического расчета записи журнала расчетов при интерактивной отмене ее исправления.

Синтаксис:

РассчитыватьПриОтменеИсправления(<Флаг>)

Англоязычный синоним:

CalculateOnEditCancel

Параметры:

<Флаг>

Необязательный параметр. Число: 1 — автоматически рассчитывать записи журнала расчетов при интерактивной отмене ее исправления; 0 — не рассчитывать автоматически.

Возвращаемое значение:

Текущее числовое значение флага (до испольнения метода).

Описание:

Метод РассчитыватьПриОтменеИсправления устанавливает значение флага автоматического расчета записи журнала расчетов при интерактивной отмене ее исправления. По умолчанию форма журнала расчетов всегда открывается со значением флага 0 (не рассчитывать записи журнала расчетов автоматически).

Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).

Пример:

РассчитыватьПриОтменеИсправления(1);

Предопределенные процедуры Модуля формы журнала расчетов

Описанные в данном разделе системные предопределенные процедуры могут располагаться только в программном модуле формы журнала расчетов (см. «Виды программных модулей»).

Данные процедуры предназначены для расширения возможности программного управления правами пользователей на выполнение тех или иных действий.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ПриИсправленииРезультата

Предопределенная процедура при редактировании результата расчета записи журнала расчетов.

Синтаксис:

ПриИсправленииРезультата(<3апись>}

Англоязычный синоним:

OnResuitUpdate

Параметры:

<3апись>

Ссылка на запись журнала расчетов, результат расчета которой исправляется.

Описание:

Вызов предопределенной процедуры ПриИсправленииРезультата производится системой 1С:Предприятие неявно при попытке «ручного» исправления результата расчета записи журнала расчетов. Если в данной предопределенной процедуре установить статус возврата — 0, то результат не будет отредактирован.

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриИсправленииРезультата(Запись)

   // группа нередактируемых расчетов

   НГ = ГруппаРасчетов.Нередактируемые;

   Если Запись.ВидРасч.ВходитВГруппу(НГ) = 1 Тогда

      Предупреждение("Операция не выполняется");

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ПриОтменеИсправления

ПриОтменеИсправления

Предопределенная процедура при отказе от ручного редактирования записи.

Синтаксис:

ПриОтменеИсправления(<3апись>)

Англоязычный синоним:

OnUpdateCancel

Параметры:

<3aпиcь>

Ссылка на запись журнала расчетов, исправление результата которой отменяется.

Описание:

Вызов предопределенной процедуры ПриОтменеИсправления производится системой 1С:Предприятие неявно при попытке отмены «ручного» исправления результата расчета записи журнала расчетов. Это действие вызывается пунктом «Отменить ручное редактирование» меню «Действия» при работе с журналом расчетов. Если в данной предопределенной процедуре установить статус возврата — 0, то ручное редактирование не будет отменено (будет оставлено).

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриОтменеИсправления(Запись)

   // Расчетчик — элемент справочника со списком расчетчиков

   Если Расчетчик.ПравоНаОтмену = Да Тогда

      // отреагируем на это действие

      ПересчитатьСотрудника(Запись.Объект);

   Иначе

      // иначе — нельзя!

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ПриИсправленииРезультата

ПриРасчете

Предопределенная процедура, вызываемая из формы журнала расчетов при расчете записи журнала расчетов, всего объекта расчета или всех записей по документу.

Синтаксис:

ПриРасчете(<ОбъектРасчета>)

Англоязычный синоним:

OnCalculating

Параметры:

<ОбъектРасчета>

Запись журнала расчетов или элемент справочника, являющийся объектом расчета, или документ, записи которого рассчитываются. Что в данный момент передается системой при вызове процедуры — зависит от выполняемого действия: расчет одной записи, расчет объекта или расчет документа.

Описание:

Вызов предопределенной процедуры ПриРасчете на исполнение производится системой 1С:Предприятие неявно при выполнении одной из трех команд «Рассчитать запись», «РассчитатьОбъект» или «Рассчитать документ» меню «Действия» журнала расчетов. Если в данной предопределенной процедуре установить статус возврата — 0, то расчет проводиться не будет.

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриРасчете(Объект)

   // определим, что считаем?

   Если ТипЗначения(Объект) = 12 Тогда

      // имеем дело с документом

      Если Объект.Автор <> Расчетчик Тогда

         // если автор данного документа не текущий расчетчик, то

         // запретим расчет чужого документа!

         СтатусВозврата(0);

      КонецЕсли;

   ИначеЕсли ТипЗначения(Объект) = 11 Тогда

      // а это — элемент справочника

      Если Объект.Владелец <> Расчетчик Тогда

         // если рассчитываемый объект лежит в папке текущего расчетчика

         // считать можно иначе — нет

         СтатусВозврата(0);

      КонецЕсли;

   Иначе

      // иначе — считаем одну запись

      Если (Объект.Документ.Автор <> Расчетчик) ИЛИ

             (Объект.Объект.Владелец <> Расчетчик) Тогда

         //не дадим считать запись чужого документа или объекта

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВыбореВладельца

Предопределенная процедура выбора элемента справочника по которому будут выведены расчеты.

Синтаксис:

ПриВыбореВладельца(<Владелед>)

Англоязычный синоним:

OnSetOwner

Параметры:

<Владелец>

Значение устанавливаемого владельца — т. е. элемент справочника по которому будут выведены расчеты.

Описание:

Вызов предопределенной процедуры ПриВыбореВладельца производится в системе 1С:Предприятие при интерактивном выборе владельца журнала расчетов (при интерактивной смене владельца, т. е. смене позиции в справочнике-владельце, которая приводит к смене отображаемых расчетов). Если в данной предопределенной процедуре установить статус возврата — 0, то выбор владельца не будет произведен.

Внимание! Процедура выполняется только в том случае, когда журнал расчетов выводится «по объекту», т. е. в нем отображаются записи по одному объекту расчета. Вызов процедуры происходит в момент смены текущего элемента в «главном» справочнике, для которого создан журнал расчетов.

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриВыбореВладельца(Владелец)

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Если Владелец = ЗапрещенныйВладелец Тогда

         Предупреждение("Нельзя изменять объект расчетов;", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУстановкеОтбора

Предопределенная процедура, вызываемая при установке отбора в форме журнала расчетов.

Синтаксис:

ПриУстановкеОтбора(<ИмяОтбора>, <ЗначениеОтбора>)

Англоязычный синоним:

OnSetSelection

Параметры:

<ИмяОтбора> | Строковое значение. Наименование графы отбора, которая выбрана пользователем при интерактивной установке отбора.
<ЗначениеОтбора> | Значение отбора, которое выбрано пользователем при интерактивной установке отбора.

Описание:

Вызов предопределенной процедуры ПриУстановкеОтбора производится системой 1С:Предприятие неявно при интерактивной попытке установить отбор записей в журнале расчетов. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя устанавливать данное значение отбора документов), установка не будет выполнена.

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора)

   Если НазваниеНабораПрав() = "Расчетчик" Тогда

      Если (ИмяОтбора = "Владелец") И (ЗначОтбора <> ТекущийРасчетчик) Тогда

         Предупреждение("Недостаточно прав!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, УстановитьОтбор, ПолучитьОтбор

ПриУстановкеГраницыПросмотра

Предопределенная процедура, вызываемая при установке границы (по периоду регистрации записи) просматриваемых в журнале расчетов записей.

Синтаксис:

ПриУстановкеГраницыПросмотра(<Период>)

Англоязычный синоним:

OnSetViewBound

Параметры:

<Период>

Значение типа «Период журнала расчетов». Период, устанавливаемый пользователем как граница просмотра записей.

Описание:

Вызов этой предопределенной процедуры производится системой 1С:Предприятие неявно при интерактивной попытке установить другую границу просмотра записей в журнале расчетов. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя просматривать расчеты определенной «давности»), установка не будет выполнена.

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриУстановкеГраницыПросмотра(Период)

   Если НазваниеНабораПрав() = "Расчетчик" Тогда

      ТП = ТекущийПериод();

      // не позволим смотреть более чем на три периода назад

      МинПер = ТП.ПрибавитьПериод(-3);

      Если (Период.ДатаНачала<МинПер.ДатаНачала) Тогда

         Предупреждение("Недостаточно прав 1", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ГраницаПросмотра

ПриУстановкеПредставления

Предопределенная процедура, вызываемая при установке режима представления журнала расчетов (по всем объектам расчетов, по одному объекту расчета, по одному документу расчета).

Синтаксис:

ПриУстановкеПредставления(<Режим>}

Англоязычный синоним:

OnSetPresentation

Параметры:

<Режим>

Числовое значение — режим представления записей журнала расчетов, устанавливаемый пользователем.

Описание:

Вызов этой предопределенной процедуры производится системой 1С:Предприятие неявно при интерактивной попытке установить другой режим представления записей в журнале расчетов. Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя использовать определенный режим), установка не будет выполнена.

Параметр <Режим> может принимать следующие значения:

1. Записи по всем объектам расчета.

2. Записи по одному объекту расчета.

3. Записи по одному документу-основанию.

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриУстановкеПредставления(Режим)

   Если НазваниеНабораПрав() = "Расчетчик" Тогда

      Если (Режим = 1) Тогда

         Предупреждение("Недостаточно прав!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, УстановитьПредставление


Part23

Глава 23
Работа с Видами и Группами расчетов

Контекст работы с видами расчетов и группами расчетов

Так же как константы и регистры, виды расчетов и группы видов расчета являются частью глобального контекста выполнения программы 1С:Предприятие. Таким образом, для использования атрибутов и методов видов расчетов и групп расчетов достаточно писать непосредственно обращение к атрибутам и методам того или иного расчета или группы с использованием ключевого слова «ВидРасчета» или «ГруппаРасчетов». Это исключает необходимость использования функции СоздатьОбъект для получения ссылки на соответствующий агрегатный объект.

Англоязычный синоним ключевого слова ВидРасчета — CalculationKind.

Англоязычный синоним ключевого слова ГруппаРасчетов — CalculationGroup.

Пример:

*

// Узнаем, входит ли вид расчета ОплатаПоОкладу

//в группу ОблагаютсяНалогом

Проверка =

    ВидРасчета.ОплатаПоОкладу.ВходитВГруппу(ГруппаРасчетов.ОблагаютсяНалогом);

*

// Выведем наименование вида расчета

Сообщить(ВидРасчета.Доплата.Наименование);

Кроме того, объекты типа «вид расчета» могут сохраняться в базе данных, т. е. реквизиты справочников, документов, журналов расчета могут иметь тип «ВидРасчета» и хранить ссылки на объекты этого типа.

В глобальном контексте программы 1С:Предприятие есть атрибут «ВидРасчета». Этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту вида расчета конкретного вида по его имени. Т. е. допустимы следующие синтаксические конструкции:

Проверка =

   ВидРасчета.ОплатаПоОкладу.ВходитВГруппу(ГруппаРасчетов.ОблагаетсяНалогом);

Проверка =

   ВидРасчета.ПолучитьАтрибут("ОплатаПоОкладу").

                  ВходитВГруппу(ГруппаРасчетов.ОблагаютсяНалогом);

Атрибуты видов расчета и групп видов расчета

Код

Код вида расчета или группы видов расчета.

Синтаксис:

Код

ААнглоязычный синоним:

Code

Описание:

Атрибут типа «строка».

Представляет собой строку, соответствующую идентификатору, заданному при конфигурировании.

Пример:

ВРО1 = ВидРасчета.ПоОкладу;

ВР02 = ВидРасчета.АмортизацияС_НДС;

Группа = ГруппаРасчетов.ОблагаютсяНалогом;

Сообщить(ВРО1.Код);

Сообщить(ВР02.Код);

Сообщить(Группа.Код);

См. также: Наименование

Наименование

Наименование группы видов расчета или вида расчета.

Синтаксис:

Наименование

Англоязычный синоним:

Descriptor

Описание:

Атрибут типа «строка». Представляет собой строку, соответствующую комментарию, заданному при конфигурировании.

Пример:

ВР01 = ВидРасчета.ПоОкладу;

ВРО2 = Вид Расчета.АмортизацияС_НДС;

Группа = ГруппаРасчетов.ОблагаютсяНалогом;

Сообщить("Это расчет " + ВР01.Наименование);

Сообщить(ВР02.Наименование + " " + ВР02.Код);

Сообщить(Строка(Группа.Наименование));

См. также: Наименование

Атрибуты видов расчета

Очередность

Очередность вида расчета.

Синтаксис:

Очередность

Англоязычный синоним:

Priority

Описание:

Атрибут типа «число». Представляет собой число, соответствующее очередности вида расчета, заданной при конфигурировании.

Понятие очередности используется для упорядочивания записей журнала расчетов. Это помогает упорядочить расчет записей, тем самым выполняя, например, расчет всех начислений раньше, чем расчет базирующихся на них удержаний.

Пример:

ВР01 = ВидРасчета.ПоОкладу;

Сообщить("Это расчет "+ВР01.Наименование+"с очередностью "+ВРО1.Очередность);

См. также: ПриоритетВытеснения

ПриоритетВытеснения

Приоритет вытеснения вида расчета.

Синтаксис:

ПриоритетВытеснения

Англоязычный синоним:

ReplacePriority

Описание:

Атрибут типа «число». Представляет собой число, соответствующее приоритету вытеснения вида расчета, заданному при конфигурировании. Система использует приоритет вытеснения при разрешении ситуации, когда полностью или частично пересекаются периоды действия видов расчета. Например, когда метод журнала расчетов ВвестиРасчет вводит расчет в «занятый» временной интервал.

Для невытесняющих видов расчета значение этого атрибута равно нулю.

Замечание. Атрибут сохранен для поддержания совместимости с предыдущими версиями программы. Вместо использования данного атрибута рекомендуется использовать методы ВытесняетВидРасчета и ВытесняетсяВидомРасчета.

Пример:

*

ВР01 = ВидРасчета.ПоОкладу;

Сообщить("Это расчет "+ВР01.Наименование+" с очередностью "+ВР01.Очередность);

*

Процедура ПровестиДокумент()

   ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Сотрудник, Начало, Окончание};

   Можно = 1;

   Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

      Если ЖрнЗарплата.ВидРасч.ПриоритетВытеснения >=

           ВидРасчета.ОплатаБЛ.ПриоритетВытеснения Тогда

         Можно = 0;

      КонецЕсли;

   КонецЦикла;

   Если Начало > Окончание Тогда

      Можно = 0;

   КонецЕсли;

   Если Можно = 1 Тогда

      ЖрнЗарплата.ВвестиРасчет(Сотрудник, ВидРасчета.ОплатаБЛ, Начало,

                    Окончание, 0);

      Если Начало < ЖрнЗарплата.НачалоТекущегоПериода() Тогда

         Перерасчет(ГруппаРасчетов.ПересчДляБЛ, Сотрудник, ТекущийДокумент(),

                     Начало, Окончание);

      КонецЕсли;

   Иначе

      Предупреждение("Некорректный больничный лист!

                | Проверьте и исправьте даты начала и окончания.

                | После этого закройте документ, повторно откройте

                | и проведите его");

      НеПроводитьДокумент();

   КонецЕсли;

КонецПроцедуры

См. также: методы журнала расчетов ВвестиРасчет, ЗаписатьРасчет

Методы видов расчета

ПолучитьАтрибут

Получить доступ к объекту вида расчета конкретного вида по его имени.

Синтаксис:

ПолучитьАтрибут(<ИмяВидаРасчета>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяВидаРасчета>

Строковое выражение, содержащее идентификатор вида расчета, как он задан в конфигураторе.

Возвращаемое значение:

Объект вид расчета.

Описание:

Метод ПолучитьАтрибут позволяет получить доступ к объекту вида расчета конкретного вида по его имени, как оно задано в конфигураторе.

Этот метод применяется только к объекту глобально контекста ВидРасчета.

Пример:

Начисл = ВидРасчета.ПолучитьАтрибут("Начисления");

ВходитВГруппу

Определяет входимость вида расчетов в группу видов расчета.

Синтаксис:

ВходитВГруппу(<Группа>)

Англоязычный синоним:

BelongsToGroup

Параметры:

<Группа>

Группа расчетов, входимость в которую проверяется.

Возвращаемое значение:

Число: 1 — если вид расчета входит в группу <Группа>; 0 в противном случае.

Описание:

Этот метод предназначен для определения входимости вида расчета в конкретную группу расчетов.

Пример:

*

// В журнале расчетов зарплаты посчитаем все начисления

// для текущего сотрудника

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

// Начало и конец текущего периода журнала

НТП = ЖР.НачалоТекущегоПериода();

КТП = ЖР.КонецТекущегоПериода();

Группа = Группа.ВсеНачисления;

Всего = 0;

ЖР.ВыбратьЗаписиПоОбъекту(Объект, НТП, КТП);

Пока ЖР.ПолучитьЗапись() = 1 Цикл

   Если (ЖР.ВидРасч.ВходитВГруппу(Группа)=1) Тогда

      Всего = Всего + ЖР.Результат;

   КонецЕсли;

КонецЦикла;

// ...

*

Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

   Если ЖрнЗарплата.ВидРасч = ВидРасчета.РайонныйКоэФйициент Тогда

      СуммаРайонн = СуммаРайонн + ЖрнЗарплата.Результат;

   КонецЕсли;

   Если ЖрнЗарплата.ВидРасч = ВидРасчета.СевернаяНадбавка Тогда

      СуммаСеверн = СуммаСеверн + ЖрнЗарплата.Результат;

   КонецЕсли;

   Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(Группа) = 1 Тогда

      Сумма = Сумма + ЖрнЗарплата.Результат;

      Если ТипРасчета = 1 Тогда

         Дней = Дней + КалендОтп.Дней(ЖрнЗарплата.ДатаНачала,

                                      ЖрнЗарплата.ДатаОкончания);

      Иначе

         Дней = Дней + ЖрнЗарплата.Дни;

      КонецЕсли;

   КонецЕсли;

КонецЦикла;

См. также: СодержитВидРасчета

Выбран

Возвращает признак того, выбран конкретный вид расчета или нет.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Число: 1 — если конкретный вид расчета выбран; 0 в противном случае.

Описание:

Этот метод предназначен для определения, не является ли «пустым» значение переменной или реквизита типа «ВидРасчета».

Вид расчета (в отличие от группы расчетов, например) в рамках описываемого встроенного языка — сохраняемый агрегатный тип данных, т. е. объекты этого типа могут сохраняться в информационной базе. Например, реквизиты справочника, документа или журнала расчетов, могут иметь тип «ВидРасчета» и, следовательно, хранить ссылки на конкретные виды расчетов. При этом часто необходимо иметь возможность определить выбрано ли конкретное значение для реквизита (например, справочника или документа) этого типа.

Пример:

// Допл — объект типа "группа расчетов"

Допл = ГруппаРасчетов.Доплаты;

ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");

// Док — ссылка на документ, имеющий реквизит Сотрудник

ЖЗ.ВыбратьЗаписиПоОбъекту(Док.Сотрудник);

Пока ЖЗ.ПолучитьЗапись() = 1 Цикл

   Если ЖЗ.ВидРасч.ВходитВГРуппу(Допл) = 1 Тогда

      // предполагается, что документы-основания этих

      // видов расчета имеют реквизит ВР

      Если ЖЗ.Документ.ВР.Выбран() = 0 Тогда

         Сообщить("Не указан конкретный вид расчета в документе!");

      КонецЕсли;

   КонецЕсли;

КонецЦикла;

ВытесняетВидРасчета

Определяет, вытесняет ли данный вид расчета, заданный в качестве параметра.

Синтаксис:

ВытесняетВидРасчета(<ВидРасчета>)

Англоязычный синоним:

DisplaceCalc

Параметры:

<ВидРасчета>

Вид расчета, для которого проверяется, вытесняется ли он текущим видом расчета.

Возвращаемое значение:

Число: 1 — если вид расчета, метод которого вызывается, вытесняет заданный в качестве параметра <ВидРасчета>; 0 в противном случае.

Описание:

Метод предназначен для определения взаимного влияния видов расчета при вводе их в журнал расчетов.

Пример:

// ВР — реквизит документа типа "вид расчета",

// тогда при проведении документа

// Сотр — реквизит документа типа "элемент справочника Сотрудники".

// ДтНач, ДтОконч — реквизиты документа типа "дата"

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ЖР.ВыбратьПоОбъекту(Сотр, ДтНач, ДтОконч);

Пока ЖР.ПолучитьЗапись() = 1 Цикл

   Если ЖР.ВидРасч.ВытесняетВидРасчета(ВР) = 0 Тогда

      // если нашли вид расчета, который мы не сможем вытеснить

      Сообщить("Невозможно корректное проведение документа");

      СтатусВозврата(0);

      Возврат;

   КонецЕсли;

КонецЦикла;

См. также: ВытесняетсяВидомРасчета

ВытесняетсяВидомРасчета

Определяет, вытесняется ли текущий вид расчета заданным видом расчета.

Синтаксис:

ВытесняетсяВидомРасчета(<ВидРасчета>)

Англоязычный синоним:

DisplaceByCalc

Параметры:

<ВидРасчета>

Вид расчета, для которого проверяется, вытесняет ли он текущий вид расчета.

Возвращаемое значение:

Число: 1 — если вид расчета, метод которого вызывается, вытесняется видом расчета, заданным в качестве параметра <ВидРасчета>; 0 в противном случае.

Описание:

Метод предназначен для определения взаимного влияния видов расчета при вводе их в журнал расчетов.

См. также: ВытесняетВидРасчета

Методы групп видов расчета

СодержитВидРасчета

Определяет, содержит ли группа вид расчета.

Синтаксис:

СодержитВидРасчета(<ВидРасчета>)

Англоязычный синоним:

ContainCalculationKind

Параметры:

<ВидРасчета>

Вид расчета, входимость которого проверяется.

Возвращаемое значение:

Число: 1 — если <ВидРасчета> входит в группу; 0 в противном случае.

Описание:

Метод предназначен для определения того, содержит ли группа заданный вид расчета.

Пример:

Входит = ГруппаРасчетов.ОблНалогом.СодержитВидРасчета(ЖР.ВидРасч);

См. также: ВходитВГруппу

Количество

Количество видов расчета, включенных в группу видов расчета.

Синтаксис:

Количество()

Англоязычный синоним:

Count

Возвращаемое значение:

Целое положительное число — количество видов расчета, входящих в группу.

Описание:

Метод группы видов расчета, который позволяет определить количество видов расчета, включенных в данную группу. Обычно применяется в цикле с методом ПолучитьВидРасчета.

Пример:

// модуль выполняется в контексте журнала расчетов

// текущий сотрудник Сотр = Объект;

// Для всех видов удержаний проведем расчет в

// журнале расчетов зарплаты

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

ВсеУд = Группа.ВсеУдержания;

Счетчик = 1;

Пока Счетчик <= ВсеУд.Количество() Цикл

   ЖР.ВвестиРасчет(Сотр, ВсеУд.ПолучитьВидРасчета(Счетчик));

   Счетчик = Счетчик + 1;

КонецЦикла;

См. также: ПолучитьВидРасчета

ПолучитьРасчет

Получает ссылку на вид расчета.

Синтаксис:

ПолучитьРасчет(<Номер>)

Англоязычный синоним:

GetCalculation

Параметры:

<Номер>

Номер вида расчета в списке видов расчета данной группы.

Возвращаемое значение:

Агрегатный объект типа «Вид Расчета».

Описание:

Метод позволяет получить ссылку на вид расчета, входящий в данную группу под определенным номером. Обычно применяется в цикле с методом Количество.

Пример:

См. предыдущий пример.

См. также: Количество


Part24

Глава 24
Работа с Правилами перерасчета

«Правила перерасчета» являются вспомогательными объектами метаданных компоненты «Расчет». Они предназначены для автоматического отслеживания актуальности результатов проведенных расчетов при вводе новых записей журнала расчетов.

При создании правила перерасчета в конфигураторе определяются виды расчетов, при редактировании которых правило перерасчета «срабатывает», и виды расчетов, которые должны быть перерасчитаны при срабатывании данного правила.

Список видов расчета, на основании которых срабатывает правило перерасчета условно называется «ведущие виды расчета». Список видов расчета, которые должны быть перерасчитаны при срабатывании данного правила условно называется «зависимые виды расчета».

Для организации правильного перерасчета доплат следует в качестве ведущих видов расчета указать те, на основании которых считаются доплаты (например: оклад, тариф, сдельная оплата), а в качестве зависимых видов расчета следует указать собственно перерасчитываемые доплаты.

После ввода в систему такого правила перерасчетов журнал расчетов будет вести себя описанным ниже образом. При этом сначала рассмотрим случай для взаимосвязи видов расчета в одном периоде.

Итак, если в журнале расчетов появится новая (в результате проведения документа), исчезнет (при отмене проведения) или будет исправлена существующая запись с одним из «ведущих» видов расчета (в нашем примере оклад, тариф, сдельная оплата), то будет снят признак «Рассчитана» со всех записей, соответствующих доплатам, если найдутся таковые с тем же периодом действия, что и введенная, удаленная или исправленная запись.

Если при этом вводится запись с периодом действия не в текущем расчетном периоде, а в одном из прошлых (например, расчет оклада задним числом за прошлый месяц), то система введет записи-перерасчеты для всех доплат соответствующего прошлого периода.

Правило перерасчета может быть двух типов: перерасчет «по текущему периоду» или «по будущим периодам».

В первом случае перерасчитываются заданные виды расчетов с тем же периодом действия, что и новая введенная запись. Во втором — перерасчитываются записи одного или нескольких будущих расчетных периодов.

Контекст работы с правилами перерасчета

Средства языка предоставляют возможность непосредственного доступа к атрибутам и методам правил перерасчета, объявленных в конфигураторе, в любом программном модуле (все объявленные в конфигураторе правила перерасчета принадлежат глобальному контексту конфигурации). Во всех текстах программных модулей для доступа к атрибутам или вызова методов правил перерасчета можно записать соответствующий метод или атрибут через точку после полного имени правила перерасчета.

Полное имя правила перерасчета записывается следующим образом:

ПравилоПерерасчета.<ХХХХХ>,

где <ХХХХХ> — идентификатор Правила Перерасчета, объявленный в конфигураторе.

Англоязычный синоним ключевого слова ПравилоПерерасчета — RecalculationRule.

Пример:

КолПериодов = ПравилоПерерасчета.Главное.КоличествоПериодов;

ВР = ВидРасчета.ПоОкладу;

ЗависитОтОклада = ПравилоПерерасчета.ПересчДоплат.ИмеетВедущий(ВР);

Атрибуты правил перерасчета

Тип

Тип правила перерасчета.

Синтаксис:

Тип

Англоязычный синоним:

Type

Описание:

Атрибут Тип позволяет прочитать/установить значение типа правила перерасчета. Данный атрибут может принимать следующие значения:

· 0 — зависимые виды расчетов должны быть перерасчитаны в том же периоде, что и вводимая запись журнала расчетов;

· 1 — зависимые виды расчетов должны быть перерасчитаны в нескольких периодах, следующих за периодом действия вводимой записи журнала расчетов (количество периодов задано атрибутом КоличествоПериодов).

Пример:

Тип = ПравилоПерерасчета.Главное.Тип;

КоличествоПериодов

Количество перерасчитываемых периодов для правила перерасчета.

Синтаксис:

КоличествоПериодов

Англоязычный синоним:

NumberOfPeriods

Описание:

Атрибут КоличествоПериодов позволяет прочитать/установить количество периодов перерасчета.

Пример:

КолПер = ПравилоПерерасчета.Главное.КоличествоПериодов;

Методы правил перерасчета

КоличествоВедущих

Возвращает количество «ведущих» видов расчета.

Синтаксис:

КоличествоВедущих()

Англоязычный синоним:

NumberOfLeadings

Возвращаемое значение:

Количество «ведущих» видов расчета.

Описание:

Метод КоличествоВедущих возвращает количество «ведущих» видов расчета (при вводе которых в журнал расчетов необходимо произвести перерасчеты согласно данного правила).

Пример:

// выведем все виды расчета от которых зависят доплаты

Для Сч = 1 По ПравилоПерерасчета.Доплаты.КоличествоВедущих() Цикл

   Сообщить(ПравилоПерерасчета.Доплаты.ПолучитьВедущий(Сч));

КонецЦикла;

ИмеетВедущий

Установить принадлежность вида расчета к ведущим для правила перерасчета.

Синтаксис:

ИмеетВедущий(<ВидРасчета>)

Англоязычный синоним:

HasLeading

Параметры:

<ВидРасчета>

Вид расчета.

Возвращаемое значение:

Число: 1, если данное правило перерасчета имеет заданный вид расчета в качестве ведущего (т. е. при вводе этого вида расчета в журнал расчетов сработает данное правило перерасчета); 0, если данное правило перерасчета не имеет заданный вид расчета в качестве ведущего.

Описание:

Метод ИмеетВедущий позволяет установить принадлежность вида расчета к ведущим для правила перерасчета.

Пример:

// зависит ли доплата от премии?

Зависит = ПравилоПерерасчета.Доплаты.ИмеетВедущий(ВидРасчета.Премия);

ПолучитьВедущий

Возвращает вид расчета из списка «ведущих» расчетов.

Синтаксис:

ПолучитьВедущий(<НомерВР>)

Англоязычный синоним:

GetLeading

Параметры:

<НомерВР>

Числовое выражение — номер вида расчета в списке «ведущих» расчетов.

Возвращаемое значение:

Вид расчета с номером <НомерВР> из списка «ведущих» расчетов.

Описание:

Метод ПолучитьВедущий возвращает вид расчета с номером <НомерВР> из списка «ведущих» расчетов.

Пример:

ВидВедРасч = ПравилоПерерасчета.Доплаты.ПолучитьВедущий(Инд);

ДобавитьКакВедущий

Добавляет вид расчета в список «ведущих».

Синтаксис:

ДобавитьКакВедущий(<ВидРасчета>)

Англоязычный синоним:

AddAsLeading

Параметры:

<ВидРасчета>

Вид расчета.

Описание:

Метод ДобавитьКакВедущий добавляет <ВидРасчета> в список «ведущих».

Пример:

ПравилоПерерасчета.Доплаты.ДобавитьКакВедущий(ВидРасчета.Премия);

УдалитьВсеВедущие

Удаляет все виды расчета из списка «ведущих».

Синтаксис:

УдалитьВсеВедущие()

Англоязычный синоним:

DeleteAlILeadings

Описание:

Метод УдалитьВсеВедущие удаляет все виды расчета из списка «ведущих».

Пример:

ПравилоПерерасчета.Доплаты.УдалитьВсеВедущие();

КоличествоПодчиненных

Возвращает количество «подчиненных» видов расчета.

Синтаксис:

КоличествоПодчиненных()

Англоязычный синоним:

NumberOfDependents

Возвращаемое значение:

Количество «подчиненных» видов расчета.

Описание:

Метод КоличествоПодчиненных возвращает количество «подчиненных» видов расчета (для которых необходимо произвести перерасчеты согласно данного правила).

Пример:

Колич = ПравилоПерерасчета.Доплаты.КоличествоПодчиненных();

ИмеетПодчиненный

Установить принадлежность вида расчета к «подчиненным» для правила перерасчета.

Синтаксис:

ИмеетПодчиненный(<ВидРасчета>)

Англоязычный синоним:

HasDependent

Параметры:

<ВидРасчета>

Вид расчета.

Возвращаемое значение:

Число: 1, если данное правило перерасчета имеет заданный вид расчета в качестве подчиненного (т. е. для этого вида расчета в журнале расчетов сработает данное правило перерасчета); 0, если данное правило перерасчета не имеет заданный вид расчета в качестве подчиненного.

Описание:

Метод ИмеетПодчиненный позволяет установить принадлежность вида расчета к подчиненным для правила перерасчета.

Пример:

Подч = ПравилоПерерасчета.Доплаты.ИмеетПодчиненный(ВидРасчета.Премия);

ПолучитьПодчиненный

Возвращает вид расчета из списка «подчиненных» расчетов.

Синтаксис:

ПолучитьПодчиненный(<НомерВР>)

Англоязычный синоним:

GetDependent

Параметры:

<НомерВР>

Числовое выражение — номер вида расчета в списке «подчиненных» расчетов.

Возвращаемое значение:

Вид расчета с номером <НомерВР> из списка «подчиненных» расчетов.

Описание:

Метод ПолучитьПодчиненный возвращает вид расчета с номером <НомерВР> из списка «подчиненных» расчетов.

Пример:

ВидПодчРасч = ПравилоПерерасчета.Доплаты.ПолучитьПодчиненный(Инд);

ДобавитьКакПодчиненный

Добавляет вид расчета в список «подчиненных».

Синтаксис:

ДобавитьКакПодчиненный(<ВидРасчета>)

Англоязычный синоним:

AddAsDependent

Параметры:

<ВидРасчета>

Вид расчета.

Описание:

Метод ДобавитьКакПодчиненный добавляет <ВидРасчета> в список «подчиненных».

Пример:

ПравилоПерерасчета.Доплаты.ДобавитьКакПодчиненный(ВидРасчета.Премия);

УдалитьВсеПодчиненные

Удаляет все виды расчета из списка «подчиненных».

Синтаксис:

УдалитьВсеПодчиненные()

Англоязычный синоним:

DeleteAllDependents

Описание:

Метод УдалитьВсеПодчиненные удаляет все виды расчета из списка «подчиненных».

Пример:

ПравилоПерерасчета.Доплаты.УдалитьВсеПодчиненные();

Применять

Устанавливает необходимость применять или не применять все правила перерасчетов при вводе новых записей в журнал расчетов.

Синтаксис:

Применять(<ФлагПрименения>)

Англоязычный синоним:

Use

Параметры:

<ФлагПрименения>

Число: 1 — применять; 0 — не применять.

Возвращаемое значение:

Текущее значение флага применения (до исполнения метода).

Описание:

Метод Применять устанавливает необходимость применять или не применять все заданные в конфигурации правила перерасчетов при изменении состава или исправлении записей журнала расчетов.

Пример:

ПравилоПерерасчета.Применять(1);


Part25

Глава 25
Работа с Календарями и Праздниками

Объект Календарь в системе 1С:Предприятие предназначен для вычисления временных интервалов на основании произвольных временных графиков. Этот объект может использоваться, например, для учета графика работы предприятия, графика работы внешних организаций, графика учета рабочего времени тех или иных работников предприятия и пр.

Календарь представляет собой объект, который устанавливает для каждой календарной даты некоторое числовое значение, которое может интерпретироваться при работе программы тем или иным образом. Например, в календаре, представляющем собой график работы организации или предприятия, каждому рабочему дню может соответствовать единица, а каждому выходному — ноль. В календаре учета рабочего времени сотрудников предприятия, каждой дате календаря может соответствовать число — продолжительность рабочего дня в часах и т. д.

В глобальном контексте программы 1С:Предприятие есть атрибут "Календари". Этот объект в качестве своих атрибутов имеет значения объектов конкретных видов календарей, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту календаря конкретного вида по его имени. Т.е. допустимы следующие синтаксические конструкции:

Календари.Служащие.Дней(ТекДата, ТекДата + 5);

Календари.ПолучитьАтрибут("Служащие").Дней(ТекДата, ТекДата + 5);

Праздники в системе 1С:Предприятие представляет собой объект похожий на календарь, но он заполняется выборочно (не все даты подряд) и в нем могут вводиться и удаляться строки для определенных дат. Данный объект используются как набор исключений при заполнении календарей (см. метод календаря УчитыватьПраздники).

Контекст работы с календарями

Доступ к атрибутам и методам календарей осуществляется, например, через объект, созданный системной функцией СоздатьОбъект с ключевым словом

"Календарь".

Англоязычный синоним ключевого слова "Календарь" — "Calendar".

Пример:

// Рассчитать продолжительность месяца в часах по календарю "Служащие"

Календ = СоздатьОбъект("Календарь.Служащие");

Час = Календ.Часов('01.01.96', '31.01.96');

// Рассчитать продолжительность текущего расчетного

// периода журнала расчетов Зарплата по календарю Служащие

Календ = СоздатьОбъект("Календарь.Служащие");

ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

Час = Календ.Часов(ЖР.НачалоТекущегоПериода(), ЖР.КонецТекущегоПериода());

Кроме того, объекты типа «календарь» являются сохраняемыми, т. е. реквизиты справочников, документов, журналов расчета могут иметь тип «календарь» и хранить ссылки на объекты этого типа.

Пример:

Процедура ПровестиРасчет()

   // ВнСовместитель — реквизит журнала расчетов

   // Категории — периодический реквизит справочника ВнутренниеСовместители

   // Календарь — реквизит справочника Категории

   Календ = ВнСовместитель.Категория.Получить(ДатаОкончания).Календарь;

   // размер оклада

   Оклад = ВнСовместитель.Оклад.Получить(ДатаОкончания) *

                       ВнСовместитель.Ставка.Получить(ДатаОкончания);

   Дней = Календ.Дней(ДатаНачала, ДатаОкончания);

   ВсегоДней = Календ.Дней(НачалоПериодаПоДате(ДатаНачала),

                           КонецПериодаПоДате(ДатаНачала));

   Если ВсегоДней > 0 Тогда

      Если Документ.Вид() = "НачалоМесяца" Тогда

         Результат = Окр(Оклад * Дней / ВсегоДней);

      Иначе

         Результат = -Окр(Оклад*Дней/ВсегоДней);

      КонецЕсли;

   Иначе

      Результат = 0;

      Сообщить("Неправильно указан календарь (" + Объект.Наименование + ")");

      Сообщить("Возможно, не задана категория работника");

   КонецЕсли;

КонецПроцедуры

Контекст работы с праздниками

Доступ к атрибутам и методам праздников осуществляется через объект, создаваемый системной функцией СоздатьОбъект с ключевым словом "Праздники".

Англоязычный синоним ключевого слова "Праздники" — "Holidays".

Атрибуты и методы объекта Календари

<ИмяКалендаря>

Установить значение календаря конкретного вида.

Синтаксис:

<ИмяКалендаря>

Описание:

Атрибут <ИмяКалендаря> задает значение календаря конкретного вида. В тексте программного модуля используется название конкретного вида календаря, как он назван в конфигураторе.

Пример:

Календари.Служащие.Дней(ТекДата, ТекДата + 5);

ПолучитьАтрибут

Получить значение объекта конкретного вида календаря по идентификатору.

Синтаксис:

ПолучитьАтрибут(<ИмяАтрибута>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяАтрибута>

Строковое выражение, содержащее имя конкретного вида календаря, как оно задано в конфигураторе.

Возвращаемое значение:

Значение атрибута <ИмяАтрибута >.

Описание:

Метод ПолучитьАтрибут позволяет получить значение объекта конкретного вида календаря по идентификатору, как оно задано в метаданных.

Пример:

Календари.ПолучитьАтрибут("Служащие").Дней(ТекДата, ТекДата - 5);

Атрибуты календарей и праздников

Дата

Дата текущей строки календаря/праздника.

Синтаксис:

Дата

Англоязычный синоним:

Date

Описание:

Атрибут Дата (только для чтения) содержит дату текущей (на которой позиционирована выборка) строки календаря/праздника.

Значение

Значение текущей строки календаря/праздника

Синтаксис:

Значение

Англоязычный синоним:

Value

Описание:

Атрибут Значение (доступно чтание и запись) содержит значение текущей (на которой позиционирована выборка) строки календаря/праздника — число с двумя знаками после запятой.

Общие методы календарей и праздников

ПолучитьАтрибут

Получить значение атрибута по идентификатору.

Синтаксис:

ПолучитьАтрибут(<ИмяАтрибута>}

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяАтрибута>

Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе.

Возвращаемое значение:

Значение атрибута <ИмяАтрибута >.

Описание:

Метод ПолучитьАтрибут позволяет получить значение атрибута по идентификатору, как оно задано в метаданных. Доступные имена атрибутов — "Дата" и "Значение".

Пример:

// Календарь служащих

Календ = СоздатьОбъект("Календарь.Служащие");

Календ.ВыбратьДаты(ДатаНачала, ДатаОкончания);

Пока Календ.СледующаяДата() = 1 Цикл

   Сообщить("" + Календ.ПолучитьАтрибут("Дата") + "; ");

   // ...

КонецЦикла;

УстановитьАтрибут

Установить значение атрибута по имени идентификатора.

Синтаксис:

УстановитьАтрибут(<ИмяРеквизита>, <Значение>)

Англоязычный синоним:

SetAttrib

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе.
<Значение> | Выражение, содержащее устанавливаемое значение атрибута.

Описание:

Метод УстановитьАтрибут позволяет установить значение атрибута по имени идентификатора, как оно задано в конфигураторе. Доступные имена атрибутов — "Дата" и "Значение".

Пример:

// Календарь служащих

Календ = СоздатьОбъект("Календарь.Служащие");

Календ.ВыбратьДаты(ДатаНачала, ДатаОкончания);

Пока Календ.СледующаяДата() = 1 Цикл

   Календ.УстановитьАтрибут("Значение", 1);

   // ...

КонецЦикла;

Методы календарей

Выбран

Возвращает признак того, выбран конкретный календарь или нет.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Число: 1, если конкретный календарь выбран; 0 в противном случае.

Описание:

Этот метод предназначен для определения, не является ли «пустым» значение переменной или реквизита типа «Календарь».

Календарь в рамках описываемого встроенного языка — сохраняемый агрегатный тип данных, т. е. объекты этого типа могут сохраняться в информацион-йой базе. Например, реквизиты справочника, документа или журнала расчетов, Могут иметь тип «Календарь» и, следовательно, хранить ссылки на конкретные календари. При этом часто необходимо иметь возможность определить выбрано ли конкретное значение для реквизита (например, справочника или документа) этого типа.

Пример:

// реквизит справочника Календ имеет тип "Календарь"

Спр = СоздатьОбъект("Справочник.Категории");

Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент() = 1 Цикл

   Если Спр.Календ.Выбран() = 0 Тогда

      Сообщить("Не указан конкретный календарь! ");

   КонецЕсли;

КонецЦикла;

ВыбратьДаты

Открывает выборку записей календаря.

Синтаксис:

ВыбратьДаты(<ДатаНачала>, <ДатаОкончания>)

Англоязычный синоним:

SelectDates

Параметры:

<ДатаНачала> | Дата начала периода выборки.
<ДатаОкончания> | Дата окончания периода выборки.

Возвращаемое значение:

Число: 1 — выборка открыта и в ней есть хоть одна запись; 0 — не обнаружено записей.

Описание:

Метод ВыбратьДаты открывает выборку записей календаря. Выбираются все элементы с даты начала по дату окончания включительно.

Пример:

// Календарь служащих

Календ = СоздатьОбъект("Календарь.Служащие");

Календ.ВыбратьДаты(ДатаНачала, ДатаОкончания);

Пока Календ.СледующаяДата() = 1 Цикл

   // ...

КонецЦикла;

См. также: СледующаяДата

СледующаяДата

Выбирает следующий день календаря в выборке.

Синтаксис:

СледующаяДата()

Англоязычный синоним:

NextDate

Возвращаемое значение:

Число: 1 — получена очередна язапись; 0 — не обнаружено очередной записи, т. е. конец выборки.

Описание:

Выбирает следующий день календаря (позиционируется на очередной записи выборки) в порядге дат.

Пример:

// Календарь служащих

Календ = СоздатьОбъект("Календарь.Служащие");

Календ.ВыбратьДаты(ДатаНачала, ДатаОкончания);

Пока Календ.СледующаяДата() = 1 Цикл

   //. . .

КонецЦикла;

См. также: ВыбратьДаты

Дней

Получить количество «ненулевых» дней за период.

Синтаксис:

Дней(<ДатаНачала>, <ДатаОкончания>)

Англоязычный синоним:

Days

Параметры:

<ДатаНачала> | Дата начала периода, в котором определяется количество дней.
<ДатаОкончания> | Дата окончания периода, в котором определяется количество дней.

Возвращаемое значение:

Целое положительное число — количество дней.

Описание:

Метод предназначен для определения количества календарных дней, которым соответствует ненулевое числовое значение. <ДатаНачала> и <ДатаОкончания> включаются в рассматриваемый период. Следовательно, если даты начала и окончания совпадают, метод возвратит ноль или единицу в зависимости от значения числа, соответствующего заданной дате. Если <ДaтaHaчaлa> больше, чем <ДатаОкончания>, будет выведено сообщение об ошибке.

Пример:

// Расчет оплаты по окладу

// Календарь служащих

Календ = СоздатьОбъект("Календарь.Служащие");

// отработал...

Дни = Календ.Дней(ДатаНачала, ДатаОкончания);

// должен был бы работать...

Норма = Календ.Дней(НачалоПериодаПоДате(ДатаНачала),

                    КонецПериодаПоДате(ДатаНачала));

// получим оклад сотрудника на дату начала

// действия данного расчета

Оклад = Объект.Оклад.Получить(ДатаНачала);

// результат

Результат = Дни * Оклад / Норма;

См. также: Часов

Часов

Получить сумму числовых значений дней за определенный период.

Синтаксис:

Часов(<ДатаНачала>, <ДатаОкончания>)

Англоязычный синоним:

Hours

Параметры:

<ДатаНачала> | Дата начала периода, в котором определяется сумма числовых значений, интерпретируемая как количество часов.
<ДатаОкончания> | Дата окончания периода, в котором определяется сумма числовых значений, интерпретируемая как количество часов.

Возвращаемое значение:

Положительное число — сумма числовых значений соответствующих тем дням календаря, которые попадают в заданный период.

Описание:

Метод предназначен для суммирования числовых значений по календарю за промежуток времени с даты начала по дату окончания. Метод удобен при интерпретации числовых значений календаря как продолжительности рабочих дней в часах (что отражается в названии метода). <ДатаНачала> и <ДатаОкончания> включаются в рассматриваемый период. Если <ДатаНачала> больше, чем <ДатаОкончания>, будет выведено сообщение об ошибке.

Пример:

// Расчет оплаты по часовому тарифу

// Календарь рабочих

Календ = СоздатьОбъект("Календарь.Рабочие");

// отработал...

Чс = Календ.Часов(ДатаНачала, ДатаОкончания);

// должен был бы работать...

Норма = Календ.Часов(НачалоПериодаПоДате(ДатаНачала),

                     КонецПериодаПоДате(ДатаНачала));

// получим тариф сотрудника на дату начала действия данного расчета

Тариф = Объект.Тариф.Получить(ДатаНачала);

// результат

Результат = Чс * Тариф / Норма;

См. также: Дней

Автозаполнение

Выполняет автозаполнение календаря в заданном периоде.

Синтаксис:

Автозаполнение(<ДатаНачала>, <ДатаОкончания>)

Англоязычный синоним:

Autolayout

Параметры:

<ДатаНачала> | Дата начала периода автозаполнения.
<ДатаОкончания> | Дата окончания периода автозаполнения.

Возвращаемое значение:

Число: 1 — получилось; 0 — не получилось.

Описание:

Метод Автозаполнение выполняет автозаполнение календаря в заданном периоде. При этом старые данные (в т.ч. «ручные» исправления) в указанном периоде пропадают.

Пример:

// Календарь служащих

Календ = СоздатьОбъект("Календарь.Служащие");

Календ.УчитыватьПраздники(1);

Результат = Календ.Автозаполнение(ДатаНачала, ДатаОкончания);

См. также: УчитыватьПраздники

УчитыватьПраздники

Установка флага учета праздников при автозаполнении.

Синтаксис:

УчитыватьПраздники(<Флаг>)

Англоязычный синоним:

UseHolidays

Параметры:

<Флаг>

Необязательный параметр. Число: 1 — учитываются праздники при автозаполнении; 0 — не учитываются праздники при автозаполнении.

Возвращаемое значение:

Возвращает текущую установку. Число: 1 — учитываются праздники при автозаполнении; 0 — не учитываются праздники при автозаполнении.

Описание:

Метод УчитыватьПраздники выполняет установку флага учета праздников при автозаполнении.

Пример:

// Календарь служащих

Календ = СоздатьОбъект("Календарь.Служащие");

Календ.УчитыватьПраздники(1);

Результат = Календ.Автозаполнение(ДатаНачала, ДатаОкончания);

См. также: Автозаполнение

ПолучитьДату

Получить дату календаря.

Синтаксис:

ПолучитьДату(<ДатаНачала>, <Количество>)

Англоязычный синоним:

GetDate

Параметры:

<ДатаНачала> | Дата начала периода, от которой будут отсчитываться дни.
<Количество> | Количество дней, отсчитываемых от <ДатаНачала>.

Возвращаемое значение:

Значение типа «дата».

Описание:

Метод предназначен для определения даты, отстоящей от заданной даты на известное количество дней. В отличие от простого прибавления числа к дате, результатом которого является дата, смещенная на заданное количество дней, данный метод календаря производит определение итоговой даты, пропуская дни календаря, для которых задано нулевое значение. Это значит, например, что если в конфигурации присутствует календарь, представляющий собой график работы предприятия, то данный метод позволит легко определить дату, отстоящую от заданной на определенное количество «рабочих» дней (т. е. дней, для которых задано ненулевое числовое значение).

Пример:

Процедура ПровестиДокумент()

   Если Число(Окончание) = 0 Тогда

      // календарь

      Календ = Сотрудник.Категория.Получить(Начало).Календарь;

      // при расчете отпуска, запишем дату его окончания

      Календ = СоздатъОбъект("Календарь.Отпуск");

      Окончание = Календ.ПолучитьДату(Начало, КоличДней);

   КонецЕсли;

   Если Расчет <> ВидРасчета.ОтпускПоУходуЗаРебенком Тогда

      Если Окончание > ЖрнЗарплата.КонецТекущегоПериода() Тогда

         РасчетВперед(ГруппаРасчетов.ПересчДляОтпуска, Сотрудник,

                      ТекущийДокумент());

      КонецЕсли;

      ЖрнЗарплата.ВвестиРасчет(Сотрудник, Расчет, Начало, Окончание, 0);

   Иначе

      ЖрнЗарплата. ВвестиРасчет (Сотрудник, Расчет,

             Максимум(Начало, ЖрнЗарплата.НачалоТекущегоПериода()),

                  Минимум(Окончание, ЖрнЗарплата.КонецТекущегоПериода()), 0);

      Зарегистрировать(Контекст, ТекущийДокумент());

   КонецЕсли;

КонецПроцедуры

Методы праздников

Новый

Ввести новый «праздничный» день.

Синтаксис:

Новый(<Дата>, <Значение>)

Англоязычный синоним:

New

Параметры:

<Дата> | Дата нового праздника.
<Значение> | Положительное число с двумя знаками после запятой (не более 100). Поскольку объект «Праздники», как правило, используется для ввода выходных праздничных дней по календарям, то значение, как правило, задают равным нулю.

Описание:

Метод Новый вводит и записывает новую запись (новый «праздничный» день).

Пример:

// Праздничные дни

Празд = СоздатьОбъект("Праздники");

Празд.Новый('01.05.99', 0)

Удалить

Удаляет «праздничный» день.

Синтаксис:

Удалить(<Дата>)

Англоязычный синоним:

Delete

Параметры:

<Дaтa>

Дата удаляемой строки (праздника).

Описание:

Метод Удалить позволяет удалить существующую запись («праздничный» день). Если строка с такой датой не найдена, то метод ничего не делает. Возвращаемого значения нет.

Пример:

// Праздничные дни

Празд = СоздатьОбъект("Праздники");

Празд.Удалить('01.05.99');

ВыбратьДаты

Открывает выборку записей праздников.

Синтаксис:

ВыбратьДаты(<ДатаНачала>, <ДатаОкончания>)

Англоязычный синоним:

SelectDates

Параметры:

<ДатаНачала> | Дата начала периода выборки.
<ДатаОкончания> | Дата окончания периода выборки.

Возвращаемое значение:

Число: 1 — выборка открыта и в ней есть хоть одна запись; 0 — не обнаружено записей.

Описание:

Метод ВыбратьДаты открывает выборку записей праздников. Выбираются все элементы с даты начала по дату окончания включительно.

Пример:

// Праздничные дни

Празд = СоздатьОбъект("Праздники");

Празд.ВыбратьДаты(ДатаНачала, ДатаОкончания);

Пока Празд.СледующаяДата() = 1 Цикл

   // ...

КонецЦикла;

См. также: СледующаяДата

СледующаяДата

Выбирает следующий день праздников в выборке.

Синтаксис:

СледующаяДата()

Англоязычный синоним:

NextDate

Возвращаемое значение:

Число: 1 — получена очередна язапись; 0 — не обнаружено очередной записи, т. е. конец выборки.

Описание:

Выбирает следующий день праздников (позиционируется на очередной записи выборки) в порядке дат.

Пример:

// Праздничные дни

Празд = СоздатьОбъект("Праздники");

Празд.ВыбратьДаты(ДатаНачала, ДатаОкончания);

Пока Празд.СледующаяДата() = 1 Цикл

   // ...

КонецЦикла;

См. также: ВыбратьДаты


Part26

Глава 26
Работа с последовательностями документов

«Последовательности документов» являются вспомогательными объектами метаданных для компонент «Оперативный учет» и «Бухгалтерский учет». Они предназначены для обеспечения проведения определенных документов в непрерывной хронологической последовательности.

При создании последовательности определяется, какие виды документов входят в данную последовательность, а также виды движений, влияющих на последовательность. Виды движений определяют, какие из изменений итогов будут влиять на необходимость перепроведения документов данной последовательности, то есть итоги каких механизмов учета используются документами данной последовательности при проведении.

Например, для организации правильного списания товаров следует в качестве движения, влияющего на последовательность указать регистр оперативного учета, на котором ведется стоимостной учет товаров или, если учет ведется на бухгалтерских счетах, указать счет, на котором ведется учет товаров. В качестве документов, на проведение которых будет влиять данная последовательность, следует указать те виды документов, которые будут анализировать при проведении указанный регистр или остатки по указанному счету. Например, такими документами могут быть расходные накладные, накладные на передачу на реализацию и т. п.

Подробнее о последовательностях документов следует читать в книге «Руководство по конфигурированию и администрированию».

Контекст работы с последовательностями

Несмотря на то, что механизм отслеживания и восстановления последовательности документов отрабатывает системой автоматически, средства языка предоставляют возможность непосредственного доступа к методам последовательностей. Доступ к методам возможен в любом программном модуле (все объявленные в конфигураторе последовательности принадлежат глобальному контексту конфигурации). Во всех текстах программных модулей вызовы методов последовательностей можно записывать просто через точку после полного имени последовательности. Полное имя последовательности записывается следующим образом:

Последовательность.<ХХХХХ>

где <ХХХХХ> — идентификатор последовательности, объявленный в конфигураторе.

Англоязычный синоним ключевого слова Последовательность — Sequence.

Пример:

Последовательность.УправленческийУчет.Установить(ТекущийДокумент())

Методы последовательностей

ПолучитьПозицию

Получить позицию Границы Последовательности.

Синтаксис:

ПолучитьПозицию()

Англоязычный синоним:

GetPosition

Возвращаемое значение:

32-х символьное строковое значение позиции Границы Последовательности.

Описание:

Метод ПолучитьПозицию возвращает позицию Границы Последовательности.

Пример:

ГП = Последовательность.УправленческийУчет.ПолучитьПозицию();

Получить

Получить строковое представление Границы Последовательности.

Синтаксис:

Получить()

Англоязычный синоним:

Get

Возвращаемое значение:

Строковое представление Границы Последовательности.

Описание:

Метод Получить возвращает строковое представление Границы Последовательности.

Пример:

ПредставлениеГП = Последовательность.УправленческийУчет.Получить();

ПолучитьДокумент

Получить документ Границы Последовательности.

Синтаксис:

ПолучитьДокумент()

Англоязычный синоним:

GetDocument

Возвращаемое значение:

Документ Границы Последовательности.

Описание:

Метод ПолучитьДокумент возвращает документ Границы Последовательности.

Пример:

ПокумГП = Последовательность.УправленческийУчет.ПолучитьДокумент();

ПолучитьДату

Получить дату Границы Последовательности.

Синтаксис:

ПолучитьДату()

Англоязычный синоним:

GetDate

Возвращаемое значение:

Дата Границы Последовательности.

Описание:

Метод ПолучитьДату возвращает дату Границы Последовательности.

Пример:

ДатаГП = Последовательность.УправленческийУчет.ПолучитьДату();

ПолучитьВремя

Получить время Границы Последовательности.

Синтаксис:

ПолучитьВремя(<Часы>, <Минуты>, <Секунды>)

Англоязычный синоним:

GetTime

Параметры:

<Часы> | Идентификатор переменной, в которую метод возвращает строковое значение часа ГП.
<Минуты> | Идентификатор переменной, в которую метод возвращает строковое значение минут ГП.
<Ceкyнды> | Идентификатор переменной, в которую метод возвращает строковое значение секунд ГП.

Возвращаемое значение:

Строковое значение времени Границы Последовательности в виде "ЧЧ.ММ.СС".

Описание:

Метод ПолучитьВремя возвращает время Границы Последовательности.

Пример:

Функция ВремяГП()

   Перем Ч;

   Перем М;

   Перем С;

   ВремяГП = Последовательность.УправленческийУчет.ПолучитьВремя();

   Возврат "Время ГП в " + Ч + " час " + М + " мин. " + С + " с";

КонецФункции

Установить

Установить ГП на новую дату документ или позицию.

Синтаксис:

Установить(<ПоложениеГП>)

Англоязычный синоним:

Set

Параметры:

<ПоложениеГП>

Выражение типа «дата», «документ» или «позиция документа», на который устанавливается ГП.

Описание:

Метод Установить изменяет положение Границы Последовательности на начало даты или документа.

Внимание. Следует особо обратить внимание, что механизм последовательности документов отрабатывает системой автоматически, поэтому метод Установить можно применять только в особых случаях, в основном, чтобы ГП принудительно отодвинуть назад, так как при установке вперед документы не перерасчитываются.

Пример:

Последовательность.УправленческийУчет.Установить(ТекущийДокумент());

Сравнить

Сравнить ГП с датой, документом или позицией.

Синтаксис:

Сравнить(<Докум>)

Англоязычный синоним:

Compare

Параметры:

<Докум>

Выражение типа «дата», «документ» или «позиция документа», с которым сравнивается ГП.

Возвращаемое значение:

Число: -1 (минус единица), если ГП меньше (раньше); 0 если равны; 1 если ГП больше (позже).

Описание:

Метод Сравнить сравнивает ГП с датой, документом или позицией документа.

Пример:

Если Последовательность.УправленческийУчет.Сравнить(Док) = 1 Тогда

   Последовательность.УправленческийУчет.Установить(Док);

КонецЕсли;

ПринадлежитПоследовательности

Определить, принадлежит ли последовательности заданный документ или вид, заданный строкой.

Синтаксис:

ПринадлежитПоследовательности(<Докум>}

Англоязычный синоним:

BelongSequence

Параметры:

<Докум>

Выражение типа «документ» или «строка», определяющая вид документа.

Возвращаемое значение:

Число: 1 — если документ принадлежит последовательности; 0 — если не принадлежит.

Описание:

Метод ПринадлежитПоследовательности позволяет определить, принадлежит ли последовательности заданный документ или вид, заданный строкой.

Пример:

Если Последовательность.УпрУчет.ПринадлежитПоследовательности(Док) = 1 Тогда

   Если Последовательность.УпрУчет.Сравнить(Док) = 1 Тогда

      Последовательность.УпрУчет.Установить(Док);

   КонецЕсли;

КонецЕсли;

Проверить

Проверяет, является ли последовательность непрерывной от ГП до заданного документа.

Синтаксис:

Проверить(<Докум>)

Англоязычный синоним:

Validate

Параметры:

<Докум>

Выражение типа «дата», «документ» или «позиция документа», от которой проверяется непрерывность последовательности.

Возвращаемое значение:

Число: 1 если последовательность непрерывна; 0 если есть проведенные документы между ГП и документом.

Описание:

Метод Проверить проверяет, есть ли между ГП и данной точкой проведенные документы входящие в даную последовательность (т. е. является ли последовательность непрерывной от ГП до этой точки).

Пример:

Если Последовательность.УправленческийУчет.Проверить(Док) = 1 Тогда

   Последовательность.УправленческийУчет.Установить(Док);

КонецЕсли;


Part27

Глава 27
Работа с объектом Периодический

Для работы с периодическими реквизитами справочников и периодическими константами в системе используется специальный агрегатный тип данных — «Периодический». Объекты данного типа предназначены для возможности записи, редактирования и удаления значений периодических реквизитов справочников и периодических констант непосредственно из программного модуля, без необходимости прибегать к интерактивным операциям.

Контекст работы с объектом Периодический

Во всех программных модулях доступ к атрибутам и вызов методов объекта Периодический может выполняться только при помощи переменной со ссылкой на объект этого типа. Объект создается при помощи функции СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной.

При создании объекта данного типа функции СоздатьОбъект в качестве параметра передается ключевое слово "Периодический".

Англоязычный синоним ключевого слова Периодический — Periodic.

Пример:

ВремРеквизиты = СоздатьОбъект("Периодический");

Атрибуты объекта Периодический

Значение

Значение периодического реквизита справочника или константы.

Синтаксис:

Значение

Англоязычный синоним:

Value

Описание:

Атрибут Значение предоставляет доступ к значению выбранного периодического реквизита справочника или константы.

Пример:

Вал = СоздатьОбъект("Справочник.Валюты");

// Позиционируем созданный объект Вал по известному коду

Вал.НайтиПоКоду(1);

Если Вал.Выбран() = 1 Тогда

   Доллар = Вал.ТекущийЭлемент();

Иначе

   Предупреждение("Не найдена валюта!");

   Возврат;

КонецЕсли;

ПерВал = СоздатьОбъект("Периодический");

ПерВал.ИспользоватьОбъект("Текущ_курс".Доллар);

ПерВал.ОбратныйПорядок(1);

ПерВал.ВыбратьЗначения();

Пока ПерВал.ПолучитьЗначение() = 1 Цикл

   Курс = ПерВал.Значение;

   ДатаКурса = ПерВал.ДатаЗнач;

КонецЦикла;

ДатаЗнач

Дата значения периодического реквизита справочника или константы.

Синтаксис:

ДатаЗнач

Англоязычный синоним:

DateVal

Описание:

Атрибут ДатаЗнач предоставляет доступ к дате значения выбранного периодического реквизита справочника или константы.

Пример:

См. предыдущий пример

Методы объекта Периодический

ИспользоватьОбъект

Задать объект применения.

Синтаксис:

ИспользоватьОбъект(<ИмяРеквизита>, <Объект>)

Англоязычный синоним:

UseObject

Параметры:

<ИмяРеквизита> | Строковое выражение, задающее название периодического реквизита справочника или название периодической константы, как они названы в конфигураторе.
<Объект> | Необязательный параметр. Значение элемента справочника, для которого задается применение объекта «Периодический». Данный параметр требуется задавать только в случае, если <ИмяРеквизита> — периодический реквизит справочника.

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод ИспользоватьОбъект задает соответствие созданного ранее объекта типа «Периодический» тому периодическому реквизиту справочника или периодической константе, для которой он будет применяться. Если параметр <ИмяРеквизита> не задан (пустая строка), а параметр <Объект> задает элемент справочника, то выборка будет осуществляться по всем периодическим реквизитам справочника.

Пример:

Вал = СоздатьОбъект("Справочник.Валюты");

// Позиционируем созданный справочник Валюты по известному коду

Вал.НайтиПоКоду(1);

Если Вал.Выбран() = 1 Тогда

   Доллар = Вал.ТекущийЭлемент();

Иначе

   Предупреждение{"Не найдена валюта!");

   Возврат;

КонецЕсли;

ПерВал = СоздатьОбъект("Периодический");

ПерВал.ИспользоватьОбъект("Текущ_курс", Доллар);

ПерВал.ОбратныйПорядок(1);

ПерВал.ВыбратьЗначения();

Пока ПерВал.ПолучитьЗначение() = 1 Цикл

   Курс = ПерВал.Значение;

   ДатаКурса = ПерВал.ДатаЗнач;

КонецЦикла;

НазначитьТип

Назначить тип для периодического объекта неопределенного типа.

Синтаксис:

НазначитьТип(<ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяТипа> | Строковое выражение — название типа данных, который назначается периодическому реквизиту справочника или периодической константе неопределенного типа. Например: "Строка", "Число", "Справочник.Товары", "Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип периодического реквизита справочника или периодической константе неопределенного типа.

Пример:

Тов = СоздатьОбъект("Справочник.Номенклатура");

// Позиционируем созданный справочник по известному коду

Тов.НайтиПоКоду(51);

Если Тов.Выбран() = 1 Тогда

   ВыбТМЦ = Тов.ТекущийЭлемент();

Иначе

   Предупреждение("Не найден товар!");

   Возврат;

КонецЕсли;

ПерТМЦ = СоздатьОбъект("Периодический");

ПерТМЦ.ИспользоватьОбъект("ТМЦ", ВыбТМЦ);

ПерТМЦ.НазначитьТип("Справочник.Товары");

ЗначениеНаДату

Получить актуальное значение на заданную дату.

Синтаксис:

ЗначениеНаДату(<Дата>)

Англоязычный синоним:

ValueOnDate

Параметры:

<Дата>

Выражение, задающее значение даты, на которую требуется получить периодический реквизит справочника или периодическую константу.

Возвращаемое значение:

Полученное актуальное значение на заданную дату.

Описание:

С помощью метода ЗначениеНаДату можно получить значение, актуальное на заданную дату. Причем текущая позиция выборки (см. ВыбратьЗначение) не сдвигается и не сбрасывается.

Пример:

К = ПерВал.ЗначениеНаДату(ДатаП);

НайтиЗначение

Найти значение на заданную дату.

Синтаксис:

НайтиЗначение(<Дата>, <Режим>)

Англоязычный синоним:

FindValue

Параметры:

<Дата> | Выражение, задающее значение даты, на которую требуется найти периодический реквизит справочника или периодическую константу.
<Режим> | Числовое выражение, значение которого задает режим поиска, если на заданную дату не существует значения периодического реквизита. Если -1 (минус единица) — возвращается значение на предыдущую дату, если 0 — возвращается код завершения неуспешной операции, если 1 — возвращается значение на последующую дату.

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод НайтиЗначение позволяет найти периодическое значение на заданную дату <Дата>. Режим поиска в случае, если на заданную дату не существует значения периодического реквизита задается параметром <Режим>. Само полученное значение следует считывать из атрибута Значение.

Пример:

Если ПерВал.НайтиЗначение(ДатаП, Нап) = 0 Тогда

   Предупреждение("Не нашли значение!", 3);

   Возврат;

КонецЕсли;

ВыбратьЗначения

Открыть выборку периодических значений по датам.

Синтаксис:

ВыбратьЗначения(<ДатаНачала>, <ДатаКонца>)

Англоязычный синоним:

Selectltems

Параметры:

<ДатаНачала> | Необязательный параметр. Выражение типа «дата» — дата начала периода выборки периодических значений. Если параметр не задан, то выборка начинается с самой ранней имеющейся даты.
<ДатаКонца> | Необязательный параметр. Выражение типа «дата» — дата конца периода выборки периодических значений. Если параметр не задан, то выборка заканчивается самой последней имеющейся датой.

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод ВыбратьЗначения предоставляет возможность (открывает выборку) выбирать периодические значения при помощи метода ПолучитьЗначение.

Дальнейшая выборка при помощи метода ПолучитьЗначение будет происходить среди периодических значений текущего объекта применения, заданного методом ИспользоватьОбъект.

Пример:

Процедура КурсыВалюты(КодВалюты)

   Вал = СоздатьОбъект("Справочник.Валюты");

   // Позиционируем созданный объект Вал по известному коду

   Вал.НайтиПоКоду(КодВалюты);

   Если Вал.Выбран() = 1 Тогда

      Доллар = Вал.ТекущийЭлемент();

   Иначе

      Предупреждение("Не найдена валюта!");

      Возврат;

   КонецЕсли;

   ПерВал = СоздатьОбъект("Периодический");

   ПерВал.ИспользоватьОбъект("Текуш_курс", Доллар);

   ПерВал.ОбратныйПорядок(1);

   ПерВал.ВыбратьЗначения();

   Пока ПерВал.ПолучитьЗначение() = 1 Цикл

      Сообщить("Курс: " + Строка(ПерВал.ДатаЗнач) + ПерВал.Значение);

   КонецЦикла;

КонецПроцедуры

См. также: ПолучитьЗначение, ИспользоватьОбъект

ВыбратьПоДокументу

Открыть выборку всех изменений периодических реквизитов справочника, сделанных документом.

Синтаксис:

ВыбратьПоДокументу(<Документ>)

Англоязычный синоним:

SelectByDoc

Параметры:

<Документ>

Выражение со значением типа «документ».

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод ВыбратьПоДокументу предоставляет возможность (открывает выборку) выбирать все периодические значения (по всем справочникам и реквизитам), заданные в справочнике документом.

Дальнейшая выборка осуществляется при помощи метода ПолучитьЗначение. При использовании данного метода не используется (игнорируется) установка объекта применения, задаваемая методом ИспользоватьОбъект.

См. также: УстановитьРеквизитСправочника, ТекущийОбъект, ТекущийРеквизит, ПолучитьЗначение

Пример:

Процедура ПечатьУстановокДокумента(Док)

   Если Док.Выбран() = 0 Тогда

      Возврат;

   КонецЕсли;

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("ПечатьИстории");

   Таб.ВывестиСекцию("Отчет" );

   Ист = СоздатьОбъект ("Периодический");

   Ист.ВыбратьПоДокументу(Док);

   Пока Ист.ПолучитьЗначение() = 1 Цикл

      Таб.ВывестиСекцию("Строка");

   КонецЦикла;

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Отчет");

КонецПроцедуры

ПолучитьЗначение

Получить из выборки следующее периодическое значение.

Синтаксис:

ПолучитьЗначение()

Англоязычный синоним:

GetValue

Возвращаемое значение:

Число: 1 — если элемент выбран успешно, 0 — если элемент не выбран (отсутствует).

Описание:

Метод ПолучитьЗначение выбирает периодическое значение в последовательности выборки, открытой перед этим при помощи метода ВыбратьЗначения или ВыбратьПоДокументу. Само полученное значение следует считывать из атрибута Значение. Дату этого значения можно считать из атрибута ДатаЗнач. Если значение периодического реквизита установлено документом, то этот документ можно получить при помощи метода ТекущийДокумент. Метод ТекущийОбъект позволит определить значение текущего элемента справочника, а метод ТекущийРеквизит — определить наименование текущего реквизита справочника.

Пример:

Процедура КурсыВалюты(КодВалюты)

   Вал = СоздатьОбъект("Справочник.Валюты");

   // Позиционируем созданный объект Вал по известному коду

   Вал.НайтиПоКоду(КодВалюты);

   Если Вал.Выбран() = 1 Тогда

      Доллар = Вал.ТекущийЭлемент();

   Иначе

      Предупреждение("Не найдена валюта!");

      Возврат;

   КонецЕсли;

   ПерВал = СоздатьОбъект("Периодический");

   ПерВал.ИспользоватьОбъект("Текущ_курс", Доллар);

   ПерВал.ОбратныйПорядок(1);

   ПерВал.ВыбратьЗначения();

   Пока ПерВал.ПолучитьЗначение() = 1 Цикл

      Сообщить("Курс на " + Строка(ПерВал.ДатаЗнач) + " = " + ПерВал.Значение);

   КонецЦикла;

КонецПроцедуры

См. также: ВыбратьЗначения, ВыбратьПоДокументу, ТекущийОбъект, ТекущийРеквизит, ТекущийДокумент

ОбратныйПорядок

Установить порядок выборки периодических значений.

Синтаксис:

ОбратныйПорядок(<Режим>)

Англоязычный синоним:

BackwardOrder

Параметры:

<Режим>

Необязательный параметр. Числовое выражение, значение которого задает режим выборки периодических значений. Если 0 — прямой порядок выборки, если значение отлично от 0 — обратный порядок выборки. По умолчанию — 1.

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод ОбратныйПорядок устанавливает порядок выборки периодических значений. Данный метод используется до вызова метода ВыбратьЗначения, который фактически открывает выборку. Дальнейшая выборка при помощи ПолучитьЗначение будет происходить в заданном порядке.

Пример:

Процедура ЗаполнитьСписокОбр()

   Вал = СоздатьОбъект("Справочник.Валюты");

   // Позиционируем созданный объект Вал по известному коду

   Вал.НайтиПоКоду(1);

   Если Вал.Выбран() = 1 Тогда

      Доллар = Вал.ТекущийЭлемент(};

   Иначе

      Предупреждение("Не найдена валюта!");

      Возврат;

   КонецЕсли;

   ПерВал = СоздатьОбъект("Периодический");

   ПерВал.ИспользоватьОбъект("Текущ_курс", Доллар);

   ПерВал.ОбратныйПорядок(1);

   ПерВал.ВыбратьЗначения();

   Пока ПерВал.ПолучитьЗначение() = 1 Цикл

      СпВал.ДобавитьЗначение(ПерВал.Значение, Строка(ПерВал.ДатаЗнач) +

                             ПерВал.Значение);

   КонецЦикла;

КонецПроцедуры

См. также: ВыбратьЗначения, ПолучитьЗначение

ТекущийДокумент

Возвращает документ, который установил значение периодического реквизита справочника.

Синтаксис:

ТекущийДокумент()

Англоязычный синоним:

Current Document

Возвращаемое значение:

Документа, который задал значение периодического реквизита справочника.

Описание:

Метод ТекущийДокумент возвращает документ, который задал значение периодического реквизита справочника. Метод используется после получения очередного значения из выборки (см. метод ПолучитьЗначение).

Пример:

Процедура ПечатьИстории(Элем)

   Если Элем.Выбран() = 0 Тогда

      Возврат;

   КонецЕсли;

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("ПечатьИстории");

   Таб.ВывестиСекцию("Отчет");

   Ист = СоздатьОбъект("Периодический");

   // Просмотрим все периодические реквизиты справочника

   Ист.ИспользоватьОбъект("", Элем);

   Ист.ВыбратьЗначения();

   Пока Ист.ПолучитьЗначение() = 1 Цикл

      ДокИст = Ист.ТекущийДокумент();

      Если ДокИст.Выбран() = 1 Тогда

         // если значение задано документом

         Таб.ВывестиСекцию("ПоДокументу");

      Иначе

         // если значение задано интерактивно

         Таб.ВывестиСекцию("Строка");

      КонецЕсли;

   КонецЦикла;

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Отчет");

КонецПроцедуры

См. также: УстановитьРеквизитСправочника

ТекущийОбъект

Возвращает значение текущего элемента справочника.

Синтаксис:

ТекущийОбъект()

Англоязычный синоним:

CurrentObj

Возвращаемое значение:

Значение текущего элемента справочника.

Описание:

Метод ТекущийОбъект возвращает значение текущего элемента справочника. Метод используется после получения очередного значения из выборки, особенно полезен при выборке по документу (см. методы ВыбратьПоДокументу, ПолучитьЗначение).

Пример:

Процедура ПечатьУстановокДокумента(Док)

   // выведем все установки, которые произвел документ

   Если Док.Выбран() = 0 Тогда

      Возврат;

   КонецЕсли;

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("ПечатьИстории");

   Таб.ВывестиСекцию("Отчет");

   Ист = СоздатьОбъект("Периодический");

   Ист.ВыбратьПоДокумекту(Док);

   Пока Ист.ПолучитьЗначение() = 1 Цикл

      ИстОбъект = Ист.ТекущийОбъект();

      Если ИстОбъект.Вид() = "Товары" Тогда

         // если документом заданы изменения в справочнике Товары

         Таб.ВывестиСекцию("ПоТовару");

      ИначеЕсли ИстОбъект.Вид() = "Клиенты" Тогда

         // если документом заданы изменения в справочнике Клиенты

         Таб.ВывестиСекцию("ПоКлиенту");

      КонецЕсли;

   КонецЦикла;

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Отчет");

КонецПроцедуры

См. также: УстановитьРеквизитСправочника, ВыбратьПоДокументу, ПолучитьЗначение

ТекущийРеквизит

Возвращает наименование текущего реквизита справочника.

Синтаксис:

ТекущийРеквизит()

Англоязычный синоним:

CurrentAttrubute

Возвращаемое значение:

Строковое значение — наименование текущего реквизита справочника.

Описание:

Метод ТекущийРеквизит возвращает наименование текущего реквизита справочника. Если выборка производится по документу, то в возвращаемом значении сначала записано наименование справочника, а затем через точку наименования реквизита. Метод используется после получения очередного значения из выборки, особенно полезен при выборке по документу или по всем реквизитам.

Пример:

Процедура ПечатьУстановокДокумента(Док)

   // выведем все установки, которые произвел документ

   Если Док.Выбран() = 0 Тогда

      Возврат;

   КонецЕсли;

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("ПечатьИстории");

   Таб.ВывестиСекцию("Отчет");

   Ист = СоздатьОбъект("Периодический");

   Ист.ВыбратьПоДокументу(Док);

   Пока Ист.ПолучитьЗначение() = 1 Цикл

      Если Ист.ТекущийРеквизит() = "Товары.Цена" Тогда

         // если документом заданы изменения Цены Товара

         Таб.ВывестиСекцию("ПоЦенеТовара");

      ИначеЕсли Ист.ТекущийРеквизит() = "Клиенты.Статус" Тогда

         // если документом заданы изменения Статуса Клиента

         Таб.ВывестиСекцию("ПоСтатусу Клиента");

      КонецЕсли;

   КонецЦикла;

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Отчет");

КонецПроцедуры

См. также: УстановитьРеквизитСправочника, ВыбратьЗначения, ВыбратьПоДокументу, ПолучитьЗначение

НомерСтроки

Возвращает номер строки текущего документа, изменившего периодическое значение реквизита справочника.

Синтаксис:

НомерСтроки()

Англоязычный синоним:

LineNurn

Возвращаемое значение:

Числовое значение — номер строки документа, изменившего периодическое значение реквизита справочника.

Описание:

Метод НомерСтроки возвращает значение номера строки документа, изменившего периодическое значение реквизита справочника (в случае, когда в Модуле документа использовали метод ПривязыватьСтроку). Метод используется после получения очередного значения из выборки, особенно полезен при выборке по документу или по всем реквизитам (см. методы ВыбратьЗначения, ВыбратьПоДокументу, ПолучитьЗначение).

Пример:

Процедура ПечатьИстории(Элем)

   Если Элем.Выбран() = 0 Тогда

      Возврат;

   КонецЕсли;

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("ПечатьИстории");

   Таб.ВывестиСекцию("Отчет");

   Ист = СоздатьОбъект("Периодический");

   // Просмотрим все периодические реквизиты справочника

   Ист.ИспользоватьОбъект("", Элем);

   Ист.ВыбратьЗначения();

   Пока Ист.ПолучитьЗначение() = 1 Цикл

      ДокИст = Ист.ТекущийДокумент();

      Если ДокИст.Выбран() = 1 Тогда

         // если значение задано документом

         НомСтрДок = Ист.НомерСтроки();

         Таб.ВывестиСекцию("ПоДокументу");

      Иначе

         // если значение задано интерактивно

         Таб.ВывестиСекцию("Строка");

      КонецЕсли;

   КонецЦикла;

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Отчет");

КонецПроцедуры

См. также: УстановитьРеквизитСправочника, ВыбратьПоДокументу, ПолучитьЗначение

Записать

Записать (обновить) периодическое значение.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод Записать выполняет запись периодического значения на заданную дату. Если на заданную дату уже существует запись, то она модифицируется. До вызова данного метода следует само значение записать в атрибут Значение. Дату этого значения следует записать в атрибут ДатаЗнач.

Пример:

Процедура ЗаписьКурсаДоллара(Курс)

   Вал = СоздатьОбъект("Справочник.Валюты");

   // Позиционируем созданный объект Вал по известному коду

   Вал.НайтиПоКоду(1);

   Если Вал.Выбран() = 1 Тогда

      Доллар = Вал.ТекущийЭлемент();

   Иначе

      Предупреждение("Не найдена валюта!");

      Возврат;

   КонецЕсли;

   ПерВал = СоздатьОбъект("Периодический");

   ПерВал.ИспользоватьОбъект("Текущ_курс".Доллар);

   ПерВал.Значение = Курс;

   ПерВал.ДатаЗнач = РабочаяДата();

   ПерВал.Записать();

КонецПроцедуры

Удалить

Удалить периодическое значение.

Синтаксис:

Удалить()

Англоязычный синоним:

Delete

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод Удалить удаляет периодическое значение на заданную дату. До вызова данного метода атрибут ДатаЗнач должен содержать дату удаляемого периодического значения..

Пример:

Процедура ЧисткаКурсов()

   Вал = СоздатьОбъект("Справочник.Валюты");

   // Позиционируем созданный объект Вал по известному коду

   Вал.НайтиПоКоду(1);

   Если Вал.Выбран() = 1 Тогда

      Доллар = Вал.ТекущийЭлемент();

   Иначе

      Предупреждение("Не найдена валюта!");

      Возврат;

   КонецЕсли;

   ПерВал = СоздатьОбъект("Периодический");

   ПерВал.ИспользоватьОбъект("Текущ_курс".Доллар);

   ПерВал.ВыбратьЗначения();

   Пока ПерВал.ПолучитьЗначение() = 1 Цикл

      Курс = ПерВал.Значение;

      ДатаКурса = ПерВал.ДатаЗнач;

      Если Курс < 1000 Тогда

         ПерВал.Удалить();

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры


Part28

Глава 28
Работа со Списком Значений

При формировании пользовательского интерфейса прикладной задачи довольно часто возникают ситуации, когда для удобства работы пользователя необходимо дать ему возможность выбирать какое-либо значение из заранее подготовленного списка. Возможности работы со справочниками, журналами и перечислениями предоставляют достаточно мощные средства выбора этих объектов. Однако, существует также необходимость в выборе значений из списков, сформированных и отсортированных нестандарнным образом, которые невозможно или неудобно получать непосредственно при работе со стандартными визуальными представлениями журналов, справочников или перечислений. Для этого в системе 1С:Предприятие используется специальный агрегатный тип данных — «СписокЗначений» и специальные элементы форм диалога: «Список» и «Поле со списком».

Объект типа «СписокЗначений» — это средство языка (не сохраняемый в БД объект), которое позволяет строить «динамические массивы» и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Список значений может быть наполнен значениями любого типа, т. е. в одном списке типы хранимых значений могут быть разными. Одним из примеров использования данного объекта может служить организация выбора конкретного документа из списка возможных документов, сформированного по сложному алгоритму.

Контекст работы со Списком Значений

Во всех программных модулях вызов соответствующих методов может выполняться при помощи переменной со ссылкой на объект типа «СписокЗначений». Такие объекты можно создавать при помощи функции СоздатьОбъект, ссылка на который присваивается переменной. Кроме того, если в форму диалога при помощи визуальных средств конфигуратора вставлены специальные элементы форм диалога «Список» и «Поле со списком», то идентификаторы этих элементов доступны в контексте программного модуля этой формы как уже существующие объекты типа «СписокЗначений».

Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после имени объекта.

При создании объекта типа «СписокЗначений» при помощи функции СоздатьОбъект, в качестве названия агрегатного типа данных обязательно Должно выступать ключевое слово СписокЗначений.

Англоязычный синоним ключевого слова СписокЗначений — ValueList.

Пример:

МойСписок = СоздатьОбъект("СписокЗначений");

Методы объекта Список Значений

ДобавитьЗначение

Добавить значение в список.

Синтаксис:

ДобавитьЗначение(<Значение>, <Строка>)

Англоязычный синоним:

AddValue

Параметры:

<Значение> | Выражение со значением, которое добавляется в список.
<Строка> | Необязательный параметр. Строковое выражение, содержащее задаваемое символьное представление добавляемого значения. По умолчанию принимает стандартное в системе 1С:Предприятие символьное представление объекта.

Описание:

Метод ДобавитьЗначение добавляет значение и его символьное представление в конец списка. Представление используется в дальнейшем для удобства сортировки и выбора значений из списка (отображается в диалоговом окне выбора).

Пример:

// Объявляем переменные

Перем Список;

Перем ВР;

// процедура выбора значения

Процедура ВыбратьВР()

   Если Список.ВыбратьЗначение(ВР, "Выбор дог: паты") = 1 Тогда

      Расчет = ВР;

      НазваниеВР = Расчет.Код;

   КонецЕсли;

КонецПроцедуры

// инициализация переменных

Список = СоздатьОбъект("СписокЗначений");

Список.ДобавитьЗначение(ВидРасчета.ДоплатаЛроцентом, "Процентом");

Список.ДобавитьЗначение(ВидРасчета.ДоплатаСуммой, "Суммой");

// первоначальное значение

НазваниеВР = Расчет.Код;

ВставитьЗначение

Вставить значение в указанную позицию списка.

Синтаксис:

ВставитьЗначение(<Позиция>, <Знач>, <Строка>, <Колич>)

АНГЛОЯЗЫЧНЫЙ СИНОНИМ:

InsertValue

Параметры:

<Позиция> | Числовое выражение — номер позиции в списке, начиная с которого будут вставлены новые значения. Номер позиции может быть от 1 до РазмерСписка() + 1.
<Знач> | Выражение со значением, которое добавляется в список.
<Строка> | Необязательный параметр. Строковое выражение, содержащее задаваемое символьное представление добавляемого значения. По умолчанию принимает стандартное в системе 1С:Предприятие символьное представление объекта.
<Колич> | Необязательный параметр. Числовое выражение — количество повторов. По умолчанию — 1.

Описание:

Метод ВставитьЗначение добавляет значение и его символьное представление в указанную позицию списка <Позиция> заданное число раз <Колич>. Представление используется в дальнейшем для удобства сортировки и выбора значений из списка (отображается в диалоговом окне выбора).

Пример:

// Объявляем переменные

Перем Список;

Перем ВР;

// процедура выбора значения

Процедура ВыбратьВР()

   Если Список.ВыбратьЗначение(ВР, "Выбор доплаты") = 1 Тогда

      Расчет = ВР;

      НазваниеВР = Расчет.Код;

   КонецЕсли;

КонецПроцедуры

// инициализация переменных

Список = СоздатьОбъект("СписокЗначений");

Список.ВставитьЗначение(1, Вид Расчета.ДоплатаПроцентом, "Процентом");

Список.ВставитьЗначение(1, Вид Расчета.ДоплатаСуммой, "Суммой");

// первоначальное значение

НазваниеВР = Расчет.Код;

РазмерСписка

Определить размер списка.

Синтаксис:

РазмерСписка()

Англоязычный синоним:

GetListSize

Возвращаемое значение:

Числовое значение — количество элементов в списке.

Описание:

Метод РазмерСписка позволяет определить общее количество элементов в списке.

Пример:

Разм = Список.РазмерСписка();

НайтиЗначение

Определить номер позиции в списке для элемента, имеющего заданное значение.

Синтаксис:

НайтиЗначение(<Знач>)

Англоязычный синоним:

FindValue

Параметры:

<Знач>

Выражение со значением, которое необходимо найти в списке.

Возвращаемое значение:

Номер позиции в списке, где расположено требуемое значение. Если значение не найдено, то — 0.

Описание:

С помощью метода НайтиЗначение можно определить номер позиции в списке для элемента, имеющего значение <Знач>.

Пример:

Позиция = Спис.НайтиЗначение(Вид Расчета.ДоплатаПроцентом);

ПолучитьЗначение

Получить значение элемента по номеру в списке.

Синтаксис:

ПолучитьЗначение(<Позиция>, <Перем>)

Англоязычный синоним:

GetValue

Параметры:

<Позиция> | Числовое выражение — номер элемента в списке, значение которого будет возвращено. Номер позиции может быть от 1 до количества элементов в списке.
<Перем> | Идентификатор переменной в которую будет возвращено строковое выражение, содержащее символьное представление получаемого значения.

Возвращаемое значение:

Полученное значение из списка.

Описание:

С помощью метода ПолучитьЗначение можно получить значение элемента, находящегося в указанной позиции списка.

Пример:

ОпредПредст = "";

ОпредВид=Спис.ПолучитьЗначение(1, ОпредПредст);

УстановитьЗначение

Установить значение в указанной позиции списка.

Синтаксис:

УстановитьЗначение(<Позиция>, <Знач>, <Строка>, <Колич>)

Англоязычный синоним:

SetValue

Параметры:

<Позиция> | Числовое выражение — номер позиции в списке, начиная с которого будут установлены новые значения, т. е. «старые» будут заменены. Номер позиции может быть от 1 до РазмерСписка+1.
<Знач> | Выражение со значением, которое добавляется в список.
<Строка> | Необязательный параметр. Строковое выражение, содержащее задаваемое символьное представление добавляемого значения. По умолчанию принимает стандартное в системе 1С:Предприятие символьное представление объекта.
<Колич> | Необязательный параметр. Числовое выражение — количество повторов. По умолчанию — 1.

Описание:

Метод УстановитьЗначение устанавливает значения и его символьные лредставления, начиная с указанной позиции списка <Позиция> заданное число повторов <Колич>. Представление используется в дальнейшем для удобства сортировки и выбора значений из списка (отображается в диалоговом окне выбора).

Пример:

Спис.УстановитьЗначение(1, ВидРасчета.ДоплатаПроцентом, "Процентом");

Получить

Получить значение элемента по указанному представлению.

Синтаксис:

Получить(<Строка>)

Англоязычный синоним:

Get

Параметры:

<Строка>

Строковое выражение, содержащее задаваемое символьное представление получаемого значения.

Возвращаемое значение:

Полученное значение из списка.

Описание:

Метод Получить возвращает значение по указанному представлению. Если значения с таким представлением нет, то возвращается пустое значение.

Пример:

ОпредЗнач = Спис.Получить("ОпредПредст");

Установить

Установить значение с указанным представлением.

Синтаксис:

Установить(<Строка>, <Знач>)

Англоязычный синоним:

Set

Параметры:

<Строка> | Строковое выражение, содержащее задаваемое символьное представление добавляемого значения.
<Знач> | Выражение со значением, которое добавляется в список.

Описание:

Метод Установить устанавливает в списке значение с указанным представлением, если значение с таким представлением уже есть — изменятеся значение, если нет — добавляется в конец списка значение с указанным представлением.

Пример:

Спис.Установить("Процентом", ВидРасчета.ДоплатаПроцентом);

УдалитьЗначение

Удалить значение в указанной позиции списка.

Синтаксис:

УдалитьЗначение(<Позиция>, <Колич>)

Англоязычный синоним:

RemoveValue

Параметры:

<Позиция> | Числовое выражение — номер позиции в списке, начиная с которой будут удалены значения. Номер позиции может быть от 1 до количества элементов в списке.
<Колич> | Необязательный параметр. Числовое выражение — количество повторов. По умолчанию — 1.

Описание:

Метод УдалитьЗначение удаляет <Колич> значений, начиная с указаний позиции <Позиция>.

Пример:

Список.УдалитьЗначение(1, 2);

УдалитьВсе

Удалить все элементы списка.

Синтаксис:

УдалитьВсе()

Англоязычный синоним:

RemoveAll

Описание:

Метод УдалитьВсе удаляет все элементы списка.

Пример:

Список.УдалитьВсе();

Сортировать

Отсортировать список по значениям.

Синтаксис:

Сортировать(<Направление>, <ДокументыПоДате>)

Англоязычный синоним:

Sort

Параметры:

<Направление> | Необязательный параметр. Числовое выражение. Если — 0, то сортировка по возрастанию. Если не 0 то сортировка по убыванию. Значение по умолчанию — 0.
<ДокументыПоДате> | Необязательный параметр. Имеет смысл только в том случае, если значениями списка значений являются документы. В этом случае можно задавать сортировку документов по их хронологии. Число: 1 — сортировка по хронологии документов; 0 — нет. Значение по умолчанию — 0.

Описание:

Метод Сортировать выполняет сортировку списка по значениям. Если первый элемент списка (значение в первой позиции) имеет базовый тип данных (число, строка, дата), то сортировка проводится по значениям элементов, приведенных стандартными правилами к типу первого элемента. В противном случае, если первый элемент имеет агрегатный тип данных, сортировка проводится по значениям элементов, приведенных к строковому представлению типа данных.

Пример:

Спис.Сортировать();

СортироватьПоПредставлению

Отсортировать список по представлению.

Синтаксис:

СортироватьПоПредставлению(<Направление>)

Англоязычный синоним:

SortByPresent

Параметры:

<Направление>

Необязательный параметр. Числовое выражение. Если — 0, то сортировка производится по возрастанию. Если отлично от 0, то сортировка по убыванию.

Описание:

Метод СортироватьПоПредставлению выполняет сортировку списка по символьному представлению в соответствии с порядком, заданным параметром <Направление>.

Пример:

Спис.СортироватьПоПредставлению();

СдвинутьЗначение

Переместить значение списка значений на новую позицию.

Синтаксис:

СдвинутьЗначение(<Колич>, <НомерПоз>)

Англоязычный синоним:

MoveValue

Параметры:

<Колич> | Числовое выражение — количество позиций, на которое надо переместить значение. Если число положительное, то значение сдвигается вниз, если отрицательное, то вверх.
<НомерПоз> | Номер позиции, значение которой надо переместить.

Описание:

С помощью метода СдвинутьЗначение можно переместить значение списка значений на новую позицию.

Пример:

Спис.СдвинутьЗначение(1, Поз);

Принадлежит

Проверяет вхождение в список значений указанного значения.

Синтаксис:

Принадлежит(<Значение>)

Англоязычный синоним:

Belong

Параметры:

<Значение>

Значение, проверяемое на вхождение в список значений.

Возвращаемое значение:

Число: 1 — если проверяемое значение входит в список значений; 0 — если не входит.

Описание:

Метод Принадлежит проверяет вхождение в список значений заданного значения. Другими словами, оператор Список.Принадлежит(ВыбДок) проверяет, является ли значение ВыбДок подмножеством списка значений Список.

Если на принадлежность проверяется значение типа элемент справочника, то проверка выполняется с учетом его возможного вхождения в группы справочников, которые являются значениями списка значений.

Данный метод оптимизирует проверку принадлежности при массовых последовательных сравнениях, если между сравнениями сам список значений не меняется.

Пример:

Процедура ПроверитьКлиентов(СписокГруппКлиентов)

   // в качестве параметра Процедуры передается СписокЗначений

   // в котором записаны как элементы справочника Клиенты, так и

   // группы этого справочника

   Док = СоздатьОбъект("Документ.Накладная");

   Док.ВыбратьДокументы();

   Пока Док.ПолучитьДокумент() = 1 Цикл

      Если СписокГруппКлиентов.Принадлежит(Док.Клиент) = 1 Тогда

         Сообщить(Док.Клиент.Наименование + " " + Док);

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

ВыбратьЗначение

Открыть окно для интерактивного выбора значения из списка.

Синтаксис:

ВыбратьЗначение(<Значение>, <3аголовок>, <Позиция> , <Таймаут>, <Спосо6Выбора>)

Англоязычный синоним:

ChooseValue

Параметры:

<Значение>

Идентификатор переменной, куда помещается значение — результат выбора.

<3аголовок>

Строковое выражение, значение которого отображается в заголовке диалогового окна. Может использоваться для подсказки пользователю.

<Позиция>

Идентификатор переменной, куда помещается номер позиции выбранного значения в списке.

<Таймаут>

Необязательный параметр. Числовое выражение, значение которого задает время ожидания системы (в секундах) на отклик пользователя.

<СпособВыбора>

Необязательный параметр. Числовое выражение, значение которого задает способ выбора значения:

0 — в виде диалога;

1 — выбор производится в виде меню, которое подстраивается по месту текущего элемента диалога или ячейки таблицы, откуда вызвано;

2 — выбор маленьким списком (список похож на выбор значения перечисления), также привязанным к позиции элемента диалога.

Значение по умолчанию — 0.

Возвращаемое значение:

Число: 1 — если выбор произведен (нажата кнопка «ОК»); 0 — если выбор не призведен (нажата кнопка «ОТМЕНА»); -1 (минус единица) — закончилось время <Таймаут> ожидания отклика пользователя.

Описание:

Метод ВыбратьЗначение вызывает диалоговое окно для интерактивного выбора значения из заранее подготовленного списка. Возвращаемое числовое значение: 1 — если выбор произведен, 0 — если нет. Параметр <Значение> указывает на значение того элемента списка, на котором будет установлен курсор при открытии окна выбора. В этот же параметр возвращается выбранное значение. В параметр <Позиция> возвращается номер позиции выбранного значения в списке. Если выбор отменен, то значение параметров не меняются.

Данный метод может использоваться только для переменных созданных функцией СоздатьОбъект.

Пример:

Процедура ВыбратьКредит(ДокКредита)

   Список = СоздатьОбъект("СписокЗначений");

   Рег = СоздатьОбъект("Регистр.ТоварныйКредит");

   Per.УстановитьФильтр(Клиент, );

   Per.ВыбратьИтоги();

   Пока Per.ПолучитьИтог() = 1 Цикл

      Док = Рег.Документ;

      Список.ДобавитьЗначение(Док, "" + Док + " — Остаток = " + Рег.Долг);

   КонецЦикла;

   Если Список.ВыбратьЗначение(ВыбДок, "Выберите кредит") = 1 Тогда

      ДокКредита = ВыбДок;

   КонецЕсли;

КонецПроцедуры

ОтметитьЗначения

Открыть окно для интерактивной пометки значений списка.

Синтаксис:

ОтметитьЗначения(<Значение>, <3аголовок>, <Позиция>, <Таймаут>)

Англоязычный синоним:

CheckValues

Параметры:

<Значение> | Идентификатор переменной, куда помещается значение — результат выбора.
<Загoлoвoк> | Строковое выражение, значение которого отображается в заголовке диалогового окна. Может использоваться для подсказки пользователю.
<Пoзиция> | Необязательный параметр. Идентификатор переменной, куда помещается номер позиции выбранного значения в списке.
<Tаймayт> | Необязательный параметр. Числовое выражение, значение которого задает время ожидания системы (в секундах) на отклик пользователя.

Возвращаемое значение:

Число: 1 — если выбор произведен (нажата кнопка «ОК»); 0 — если выбоо не произведен (нажата кнопка «ОТМЕНА»); -1 (минус единица) — закончилось время <Таймаут> ожидания отклика пользователя.

Описание:

Метод ОтметитьЗначения вызывает диалоговое окно для интерактивной пометки значений списка из заранее подготовленного списка.

Возможность выбора значения — это дополнительная возможность, предоставляемая данным методом. Параметр <Значение> указывает на значение того элемента списка, на котором будет установлен курсор при открытии окна выбора. В этот же параметр возвращается последнее выбранное значение- В параметр <Позиция> возвращается номер позиции последнего выбранного значения в списке. Если выбор отменен, то значение параметров не меняются.

Данный метод может использоваться только для переменных созданных функцией СоздатьОбъект.

Пример:

Функция ВыбратьКредит (ДокКредита)

   Перем ВыбДок;

   Список = СоздатьОбъект("СписокЗначений");

   Рег = СоздатьОбъект("Регистр.ТоварныйКредит");

   Рег.УстановитьФильтр(Клиент, );

   Рег.ВыбратьИтоги();

   Пока Рег.ПолучитьИтог() = 1 Цикл

      Док = Рег.Документ;

      Список. ДобавитьЗначение(Док, "" + Док + " — Остаток = " + Рег.Долг);

   КонецЦикла;

   Список.ОтметитьЗначения(ВыбДок, "Выберите кредиты");

   Возврат Список;

КонецФункции

Пометка

Пометить значение списка.

Синтаксис:

Пометка(<Позиция>, <Отметка>}

Англоязычный синоним:

Check

Параметры:

<Позиция> Номер позиции выбранного значения в списке.

<Отметка> Необязательный параметр. Число: 1 — установить отметку; 0 — снять отметку. Если данный параметр опущен, то отметка значения списка не изменяется.

Возвращаемое значение:

Значение метки до выполнения метода. Число: 1 — отметка установлена; 0 _- отметка не установлена.

Описание:

Метод Пометка позволяет пометить указанную позицию списка значений.

Пример:

Функция ОтметитьДокумент(Список, ВыбДок)

   Для Н = 1 по Список.РазмерСписка() Цикл

      Док = Список.ПолучитьЗначение(Н);

      Если Док = ВыбДок Тогда

         Список.Пометка(Н, 1);

      КонецЕсли;

   КонецЦикла;

КонецФункции

ТекущаяСтрока

Установить/определить текущий элемент списка в элементе диалога типа «Список» или «Поле со списком».

Синтаксис:

ТекущаяСтрока(<ИндексСтроки>)

Англоязычный синоним:

CurSel

Параметры:

<ИндексСтроки>

Необязательный параметр. Числовое выражение с задаваемым индексом строки для элемента диалога типа «Список» или «Поле со списком», на которое требуется установить курсор. Если параметр не задан, то положение курсора в поле диалога не меняется.

Возвращаемое значение:

Числовое значение, соответствующее индексу текущей строки поля диалога (до его изменения).

Описание:

Метод ТекущаяСтрока в тексте программного модуля можно использовать синтаксически как функцию или процедуру. Данный метод позволяет установить и/или считать текущее положение курсора в элементе диалога типа «Список» или «Поле со списком».

Данный метод можно использовать только для объектов, которые созданы при помощи визуальных средств конфигуратора (в форму вставлены элементы Диалога типа «Список» или «Поле со списком», а идентификаторы этих элементов доступны в контексте программного модуля этой формы как уже существующие объекты типа «СписокЗначений»).

Пример:

Список.ТекущаяСтрока(2);

ИзСтрокиСРазделителями

Заполнить список значениями из переданной строки.

Синтаксис:

ИзСтрокиСРазделителями(<Строка>)

Англоязычный синоним:

FromSeparatedString

Параметры:

<Строка>

Строковое выражение, содержащее строки в двойных кавычках и числа, разделенные запятыми.

Описание:

Метод ИзСтрокиСРазделителями заполняет список значениями из переданной в качестве параметра строки, содержащей строки в двойных кавычках и числа, разделенные запятыми.

Пример:

Спис.ИзСтрокиСРазделителями("5, 6, 12, 68, ""ОпредПредст""");

ВСтрокуСРазделителями

Преобразует список значений в строку, содержащую строки в двойных кавычках и числа, разделенные запятыми.

Синтаксис:

ВСтрокуСРазделителями()

Англоязычный синоним:

ToSeparatedString

Описание:

Метод ВСтрокуСРазделителями преобразует список значений в строку, содержащую строки в двойных кавычках и числа, разделенные запятыми.

Пример:

СтрПроводка = Спис.ВСтрокуСРазделителями();

Выгрузить

Выгрузить список значений в другой список значений или таблицу значений.

Синтаксис:

Выгрузить(<Знач>, <НачПоз>, <Колич>)

Англоязычный синоним:

Unload

Параметры:

<Знач> | Значение типа «Таблица значений» или «Список значений», в которое нужно выгрузить данные. При выгрузке в таблицу значений, в ней добавляется новая колонка. Если переданное значение пустое, тогда система сама создаст объект типа «Список значений».
<НачПоз> | Необязательный параметр. Номер начальной позиции, с которой надо начинать выгрузку. Значение по умолчанию 1.
<Колич> | Необязательный параметр. Количество выгружаемых значений, если не указан то все.

Описание:

Метод Выгрузить позволяет выгрузить список значений в другой список значений или таблицу значений. При выгрузке в таблицу значений, в ней добавляется новая колонка.

Пример:

СтарСписок.Выгрузить(НовСписок);


Part29

Глава 29
Работа с Таблицей Значений

Объект типа «ТаблицаЗначений» ~ это средство языка (не сохраняемый в информационной базе объект), которое позволяет строить «динамические массивы» и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Таблица значений может быть наполнена значениями любого типа, т. е. в одной таблице типы хранимых значений могут быть разными. Таблица значений может использоваться и как простой двумерный массив (матрица) значений и как таблица строк определенной структуры, когда колонки типизованы и имеют идентификаторы.

Специальный элемент формы диалога «ТаблицаЗначений» является интерфейсным средством отображения и манипулирования этим объектом в формах диалогов. При формировании пользовательского интерфейса прикладной задачи довольно часто возникают ситуации, когда для удобства работы пользователя необходимо дать ему возможность выбирать какое-либо значение из заранее подготовленной таблицы значений. Возможности работы со справочниками, журналами и перечислениями предоставляют достаточно мощные средства выбора этих объектов. Однако, существует также необходимость в выборе значений из таблиц, сформированных и отсортированных нестандартным образом, которые невозможно или неудобно получать непосредственно при работе со стандартными визуальными представлениями журналов, справочников или перечислений.

Одним из примеров использования данного объекта может служить организация выбора конкретного товара из таблицы возможных товаров, сформированной по сложному алгоритму.

При работе с таблицей значений следует различать два понятия текущей строки таблицы. Во-первых, существует текущая строка объекта «ТаблицаЗначений», которая устанавливается при помощи методов ПолучитьСтрокуПоНомеру, ВыбратьСтроки, ПолучитьСтроку, эта текущая строка меняется программно и служит для обращения к значениям колонок с помощью идентификаторов уже без указания строки. Во-вторых, существует текущая строка элемента формы диалога «ТаблицаЗначений», которая является активной строкой (на ней установлен курсор) в диалоге. Текущая строка элемента диалога возвращается и устанавливается исключительно только при помощи метода ТекущаяСтрока. Например, если программно сменить текущую строку объекта, курсор в визуальном представлении диалога сам собой не передвинется, это можно выполнить только при помощи метода ТекущаяСтрока. Однако, при вызове из формы процедуры обработки, текущая строка объекта будет совпадать с текущей строкой визуального представления.

Контекст работы с Таблицей Значений

Во всех программных модулях вызов соответствующих методов может выполняться при помощи переменной со ссылкой на объект типа «ТаблицаЗначений». Такой объект можно создавать при помощи функции СоздатьОбъект ссылка на который присваивается переменной. Кроме того, если в форму диалога при помощи визуальных средств конфигуратора вставлен специальный элемент формы диалога «ТаблицаЗначений», то идентификатор этого элемента доступен в контексте программного модуля этой формы как уже существующий объект типа «ТаблицаЗначений».

Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после имени объекта.

При создании объекта типа «ТаблицаЗначений» при помощи функции СоздатьОбъект, в качестве названия агрегатного типа данных обязательно должно выступать ключевое слово ТаблицаЗначений.

Англоязычный синоним ключевого слова ТаблицаЗначений — ValueTable.

Пример:

МояТаблицаЗначений = СоздатьОбъект("ТаблицаЗначений");

Атрибуты Таблицы Значений

НомерСтроки

Номер текущей строки таблицы.

Синтаксис:

НомерСтроки

Англоязычный синоним:

LineNo

Описание;

Атрибут (только для чтения) НомерСтроки содержит номер текущей строки таблицы значений.

<ИдентификаторКолонки>

Значение элемента таблицы в текущей строке в колонке, заданной идентификатором.

Синтаксис:

<ИдетификаторКолонки>

Описание:

Данный атрибут содержит значение таблицы значений в текущей строке в колонке, заданной идентификатором. В тексте программного модуля используется идентификатор конкретной колонки, который задается при создании колонки при помощи методов ДобавитьКолонку и ВставитьКолонку. Если при создании колонки идентификатор колонки не указан, то обращение к колонке возможно только по номеру.

Методы объекта Таблица Значений

КоличествоКолонок

Устанавливает/возвращает количество колонок.

Синтаксис:

КоличествоКолонок(<КоличКолонок>)

Англоязычный синоним:

ColumnCount

Параметры:

<КоличКолонок>

Необязательный параметр. Числовое выражение, которое указывает новое количество колонок. Если параметр опущен, то количество колонок не меняется.

Возвращаемое значение: количество колонок до вызова метода.

Описание:

Метод КоличествоКолонок устанавливает/возвращает количество колонок таблицы значений.

Пример:

Разм = ТаблицаТоваров.КоличествоКолонок();

НоваяКолонка

Добавить в конец таблицы значений новую колонку.

Синтаксис:

НоваяКолонка(<Идентификатор>, <Тип>, <Длина>, <Точность>, <3аголовок>, <Ширина>,

              <Формат>, <Положение>)

Англоязычный синоним:

NewColumn

Параметры:

<Идентификатор> | Необязательный параметр. Идентификатор колонки, если не указан обращение к колонке возможно только по номеру.
<Тип> | Необязательный параметр. Строка или вид субкон-то, задающий тип колонки. Если не указан, то можно хранить любой тип.
<Длина> | Необязательный параметр. Длина для числовой или строковой колонки.
<Точность> | Необязательный параметр. Точность (длина дробной части) для числовой колонки.
<3аголовок> | Необязательный параметр. Строковое выражение содержащее заголовок колонки в элементе диалога типа «ТаблицаЗначений».
<Ширина> | Необязательный параметр. Числовое выражение, содержащее ширину колонки (в символах) для представления колонки в элементе диалога типа «ТаблицаЗначений».
<Формат> | Необязательный параметр. Строковое выражение, содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
<Положение> | Необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки. Число: 1 — слева; 2 — справа.

Возвращаемое значение: номер новой колонки.

Описание:

Метод НоваяКолонка добавляет в конец таблицы значений новую колонку,

Пример:

Табл.НоваяКолонка("Код", "Число", 6, 0, "Код", 6);

ВставитьКолонку

Вставить новую колонку в таблицу значений в указанную позицию.

Синтаксис:

ВставитьКолонку(<Идентификатор>, <НомерКолонки>, <Тип>, <Длина>, <Точность>,

                <3аголовок>, <Ширина>, <Формат>, <Положение>)

Англоязычный синоним:

InsertColumn

Параметры:

<Идентификатор> | Необязательный параметр. Идентификатор колонки, если не указан обращение к колонке возможно только по номеру.
<НомерКолонки> | Необязательный параметр. Числовое выражение, содержащее позицию, в которую вставляется новая колонка.
<Тип> | Необязательный параметр. Строка или вид суб кон-то, задающий тип колонки. Если не указан, то можно хранить любой тип.
<Длина> | Необязательный параметр. Длина для числовой или строковой колонки.
<Точность> | Необязательный параметр. Точность (длина дробной части) для числовой колонки.
<Заголовок> | Необязательный параметр. Строковое выражение, содержащее заголовок колонки в элементе диалога типа «ТаблицаЗначений».
<Ширина> | Необязательный параметр. Числовое выражение, содержащее ширину колонки (в символах) для представления колонки в элементе диалога типа «ТаблицаЗначений».
<Формат> | Необязательный параметр. Строковое выражение, содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
<Положение> | Необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки. Число: 1 — слева; 2 — справа.

Возвращаемое значение: номер новой колонки.

Описание:

Метод ВставитьКолонку вставляет новую колонку в таблицу значений в указанную позицию.

Пример:

Табл.ВставитьКолонку("Код", 1, "Число", 6, 0, "Код", 6);

УдалитьКолонку

Удаляет колонку из таблицы значений.

Синтаксис:

УдалитьКолонку(<Колонка>)

Англоязычный синоним:

DeleteColumn

Параметры:

<Колонка>

Номер или идентификатор колонки.

Описание:

Метод УдалитьКолонку удаляет колонку <Колонка> из таблицы значений.

Пример:

ТаблДокументов.УдалитьКолонку(2);

УстановитьПараметрыКолонки

Устанавливает новые значения параметров колонки.

Синтаксис:

УстановитьПараметрыКолонки(<Колонка>, <Тип>, <Длина>, <Точность>, <3аголовок>,

                           <Ширина>, <Формат>, <Положение>)

Англоязычный синоним:

SetColumnParameters

Параметры:

<Колонка> | Номер или идентификатор колонки, для которой будут установлены новые параметры.
<Тип> | Необязательный параметр. Строка, описывающая тип колонки или вид субконто.
<Длина> | Необязательный параметр. Длина для строковых и числовых значений.
<Точность> | Необязательный параметр. Точность для числовых значений.
<3аголовок> | Необязательный параметр. Заголовок колонки для показа.
<Ширина> | Необязательный параметр. Ширина колонки в таблице.
<Формат> | Необязательный параметр. Строковое выражение, содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
<Положение> | Необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки. Число: 1 — слева; 2 — справа.

Описание:

Метод УстановитьПараметрыКолонки устанавливает новые значения параметров колонки (только те которые указаны). Если какой либо параметр при вызове метода не задан, то данный параметр колонки не изменяется.

Пример:

Табл.УстановитьПараметрыКолонки("Код", "Число", 6, 0, "Код", 6);

ПолучитьПараметрыКолонки

Возвращает значения параметров колонки.

Синтаксис:

ПолучитьПараметрыКолонки(<Колонка>, <Тип>, <Длина>, <Точность>, <3аголовок>,

                         <Ширина>, <Формат>, <Положение>)

Англоязычный синоним:

GetColumnParameters

Параметры:

<Колонка> | Номер или идентификатор колонки, для которой требуется получить параметры.
<Тип> | Необязательный параметр. Идентификатор переменной, в которую метод вернет строку, описывающую тип колонки.
<Длина> | Необязательный параметр. Идентификатор переменной, в которую метод вернет длину для строковых и числовых значений.
<Точность> | Необязательный параметр. Идентификатор переменной, в которую метод вернет точность для числовых значений колонки.
<3аголовок> | Необязательный параметр. Идентификатор переменной, в которую метод вернет строку, описывающую заголовок колонки для показа.
<Ширина> | Необязательный параметр. Идентификатор переменной, в которую метод вернет ширину колонки в таблице.
<Формат> | Необязательный параметр. Строковое выражение, содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
<Положение> | Необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки. Число: 1 — слева; 2 — справа.

Возвращаемое значение:

Номер или идентификатор колонки. Если в параметре <Колонка> задан номер колонки, то возвращается идентификатор колонки, и наоборот.

Описание:

Метод ПолучитьПараметрыКолонки возвращает значения параметров колонки по номеру колонки или по ее идентификатору.

Пример:

Перем ВыбТип;

Перем ВыбДлина;

Перем ВыбТочность;

Перем ВыбЗаголовок;

Перем ВыбШирина;

Табл.ПолучитьПараметрыКолонки("Код", ВыбТип, ВыбДлина, ВыбТочность, ВыбЗаголовок,

                                ВыбШирина);

КоличествоСтрок

Устанавливает/возвращает количество строк в таблице значений,

Синтаксис:

КоличествоСтрок(<НовоеКоличествоСтрок>)

Англоязычный синоним:

LinesCnt

Параметры:

<НовоеКоличествоСтрок>

Необязательный параметр. Новое количество строк в таблице значений.

Возвращаемое значение:

Числовое значение — количество строк в таблице значений до вызова метода.

Описание:

Метод КоличествоСтрок устанавливает/возвращает количество строк в таблице значений

Пример:

Разм = ТаблицаТоваров.КоличествоСтрок();

НоваяСтрока

Добавляет новую строку в таблицу значений.

Синтаксис:

НоваяСтрока(<НомерСтроки>)

Англоязычный синоним:

NewLine

Параметры:

<НомерСтроки>       Необязательный параметр. Числовое выражение, содержащее позицию, в которую следует вставить новую строку.

Возвращаемое значение: номер новой строки.

Описание:

Метод НоваяСтрока вставляет новую строку в таблицу значений в указанную позицию.

Пример:

Табл.НоваяСтрока(1);

УдалитьСтроку

Удаляет строку из таблицы значений.

Синтаксис:

УдалитьСтроку(<НомерСтроки>)

Англоязычный синоним:

DeleteLine

Параметры:

<НомерСтроки>

Необязательный параметр. Номер строки. Если не указан, то удаляется текущая строка

Описание:

Метод УдалитьСтроку удаляет строку из таблицы значений.

Пример:

ТаблДокументов.УдалитьСтроку(2);

УдалитьСтроки

Удаляет все строки из таблицы значений.

Синтаксис:

УдалитьСтроки()

Англоязычный синоним:

DeleteLines

Описание:

Метод УдалитьСтроки удаляет все строки из таблицы значений.

Пример:

ТаблДокументов.УдалитьСтроки();

ВыбратьСтроки

Открывает выборку строк таблицы значений.

Синтаксис:

ВыбратьСтроки()

Англоязычный синоним:

SelectLines

Описание:

Метод ВыбратьСтроки предоставляет возможность перебирать строки таблицы значений (открывает выборку). Дальнейшая выборка осуществляется при помощи метода ПолучитьСтроку.

Пример:

Табл.ВыбратьСтроки();

Пока Табл.ПолучитьСтроку() = 1 Цикл

   ...

КонецЦикла;

ПолучитьСтроку

Получить из выборки следующую строку таблицы значений.

Синтаксис:

ПолучитьСтроку()

Англоязычный синоним:

GetLine

Возвращаемое значение:

Число: 1 — если строка выбрана успешно, 0 — если строка не выбрана (выборка закончилась).

Описание:

Метод ПолучитьСтроку выбирает следующую строку таблицы значений в последовательности выборки, открытой перед этим при помощи метода ВыбратьСтроки.

Пример:

Табл.ВыбратьСтроки();

Пока Табл.ПолучитьСтроку() = 1 Цикл

   ...

КонецЦикла;

ВыбратьСтроку

Открыть окно для интерактивного выбора строки в таблице значений.

Синтаксис:

ВыбратьСтроку(<Строка>, <3аголовок>, < Таймаут>)

Англоязычный синоним:

ChooseLine

Параметры:

<Строка> | Необязательный параметр. Идентификатор переменной, куда помещается значение — номер выбранной строки. При вызове метода здесь можно передавать значение начального номера строки.
<3аголовок> | Необязательный параметр. Строковое выражение, значение которого отображается в заголовке диалогового окна. Может использоваться для подсказки пользователю.
<Таймаут> | Необязательный параметр. Числовое выражение, значение которого задает время ожидания системы (в секундах) на отклик пользователя. Если не задано, то время ожидания бесконечно.

Возвращаемое значение:

Числовое значение: 1 — если выбор произведен (нажата кнопка «ОК»); 0 — если выбор не произведен (нажата кнопка «ОТМЕНА»); -1 (минус единица) — закончилось время <Таймаут> ожидания отклика пользователя.

Описание:

Метод ВыбратьСтроку вызывает диалоговое окно для интерактивного выбора строки из заранее подготовленной таблицы значений. Параметр <Строка> указывает на ту строку таблицы значений, на которой будет установлен курсор при открытии окна выбора. В этот же параметр возвращается выбранное значение. Если выбор отменен, то значение параметров не меняются.

Пример:

Перем НомСтроки;

Табл.ВыбратьСтроку(НомСтроки, "Выберите строку");

ПолучитьСтрокуПоНомеру

Получить строку таблицы значений по номеру.

Синтаксис:

ПолучитьСтрокуПоНомеру(<НомерСтроки>)

Англоязычный синоним:

GetLineByNumber

Параметры:

<НомерСтроки>

Номер строки, на которую следует переместиться.

Описание:

Метод ПолучитьСтрокуПоНомеру получает строку таблицы значений по заданному номеру. Указанная строка становится текущей.

Пример:

Табл.ПолучитьСтрокуПоНомеру(3);

СдвинутьСтроку

Переместить строку таблицы значений на новую позицию.

Синтаксис:

СдвинутьСтроку(<КоличествоСтрок>, <НомерСтроки>)

Англоязычный синоним:

MoveLine

Параметры:

<КоличествоСтрок> | Число строк, на которое надо переместить строку. Если число положительное, то строка сдвигается вниз, если отрицательное, то вверх.
<НомерСтроки> | Необязательный параметр. Номер строки, которую надо переместить, если не задан, то текущая.

Возвращаемое значение: новая позиция строки

Описание:

Метод СдвинутьСтроку перемещает строку таблицы значений на новую позицию.

Пример:

Табл.СдвинутьСтроку(3, 5);

УстановитьЗначение

Установить значение конкретной колонки в данной строке таблицы значений.

Синтаксис:

УстановитьЗначение(<Строка>, <Колонка>, <Знач>)

Англоязычный синоним:

SetValue

Параметры:

<Строка> | Номер строки.
<Колонка> | Номер или идентификатор колонки.
<Знач> | Устанавливаемое значение.

Описание:

Метод УстановитьЗначение устанавливает значение конкретной колонки в данной строке таблицы значений.

Пример:

Табл.УстановитьЗначение(3, 5, ВыбЗнач);

ПолучитьЗначение

Получить значение конкретной колонки в данной строке таблицы значений.

Синтаксис:

ПолучитьЗначение(<Строка>, <Колонка>)

Англоязычный синоним:

GetValue

Параметры:

<Строка> | Номер строки.
<Колонка> | Номер или идентификатор колонки.

Возвращаемое значение:

Значение конкретной колонки в данной строке.

Описание:

Метод ПолучитьЗначение получает значение конкретной колонки в данной строке таблицы значений.

Пример:

ВыбЗнач = Табл.ПолучитьЗначение(3, 5);

НайтиЗначение

Найти заданное значение в таблице значений.

Синтаксис:

НайтиЗначение(<Знач>, <Строка>, <Колонка>)

Англоязычный синоним:

FindValue

Параметры:

<Знач> | Значение для поиска.
<Строка> | Идентификатор переменной, куда возвращается номер найденной строки. Если при вызове метода передать в этот параметр номер строки, то поиск будет осуществляться только по указанной строке.
<Колонка> | Идентификатор переменной, куда возвращается номер найденной колонки. Если при вызове метода передать в этот параметр номер или идентификатор колонки, то поиск будет осуществляться только по указанной колонке.

Возвращаемое значение:

Число: 0 — значение не найдено; 1 — значение найдено.

Описание:

Метод НайтиЗначение позволяет найти искомое значение в таблице значений и определить номер строки и номер колонки таблицы значений.

Пример:

Перем НомСтр;

Перем НомКолонки;

Табл.НайтиЗначение(ВыбЗнач, НомСтр, НомКолонки);

Сортировать

Сортировать таблицу значений по колонкам.

Синтаксис:

Сортировать(<Колонки>, <ДокументыПоДате>)

Англоязычный синоним:

Sort

Параметры:

<Колонки> | Строковое выражение, которое определяет колонки, порядок и направление сортировки. Формат передаваемой строки — это разделенные запятыми номера или идентификаторы колонок со знаком направления сортировки ("+" по возрастанию, "-" по убыванию, "*" по внутреннему значению). Знак направления сортировки следует указывать до обозначения колонки через пробел или без пробела. По умолчанию направление сортировки принимается по возрастанию. Например: "-Код, +Цена, -8, 5".
<ДокументыПоДате> | Необязательный параметр. Имеет смысл только в том случае, если значениями таблицы значений являются документы. В этом случае можно задавать сортировку документов по их хронологии. Число: 1 — сортировка по хронологии документов; 0 — нет. Значение по умолчанию — 0.

Описание:

Метод Сортировать выполняет сортировку таблицы значений по заданным колонкам, порядку и направлению сортировки.

Пример:

Табл.Сортировать("-Код, +Цена, -8, 5");

Очистить

Очистить таблицу значений и удалить колонки.

Синтаксис:

Очистить()

Англоязычный синоним:

Clear

Описание:

Метод Очистить выполняет очистку таблицы значений и удаляет колонки.

Пример:

Табл.Очистить();

Итог

Вычислить сумму по колонке таблицы значений.

Синтаксис:

Итог(<Колонка>)

Англоязычный синоним:

Total

Параметры:

<Колонка>

Номер или идентификатор колонки, по которой считать сумму.

Возвращаемое значение:

Сумма по колонке.

Описание:

Метод Итог вычисляет сумму по заданной колонке таблицы значений.

Пример:

Табл.Итог(2);

Заполнить

Заполнить значения конкретных колонок в строках таблицы значений переданным значением.

Синтаксис:

Заполнить(<Знач>, <НачСтрока>, <КонСтрока>, <Колонки>)

Англоязычный синоним:

Fill

Параметры:

<Знач> | Одиночное значение или список значений или таблица значений.
<НачСтрока> | Необязательный параметр. Номер начальной строки, с которой надо начинать заполнение. Значение по умолчанию 1.
<КонСтрока> | Необязательный параметр. Номер последней строки, по которую надо заполнять, если не указана то до последней.
<Колонки> | Необязательный параметр. Номера или идентификаторы колонок, которые надо заполнять. Если параметр не задан, то заполняются все колонки.

Описание:

Метод Заполнить позволяет заполнить значения конкретных колонок в строках таблицы значений переданным значением.

Пример:

Табл.Заполнить(ВыбЗнач, 2, 5, "5, 6, 7");

Свернуть

Свернуть таблицу значений но соответствующим значениям колонок.

Синтаксис:

Свернуть(<ГруппКолонки>, <СуммКолонки>)

Англоязычный синоним:

GroupBy

Параметры:

<ГруппКолонки> | Группировочные колонки (номера или идентификаторы колонок через запятую), по которым группировать данные.
<СуммКолонки> | Суммируемые колонки (номера или идентификаторы колонок через запятую), по которым суммировать данные.

Описание:

Метод Свернуть позволяет свернуть таблицу значений по соответствующим значениям колонок, т. е. заменяет на одну строку все дублирующие (по значениям группировочных колонок) строки, суммируя значения но суммируемым колонкам.

Пример:

Табл.Свернуть("1,2,3,4", "5,6,7");

Выгрузить

Выгрузить данные из таблицы значений.

Синтаксис:

Выгрузить(<Знач>, <НачСтрока>, <КонСтрока>, <Колонки>)

Англоязычный синоним:

Unload

Параметры:

<Знач> | Идентификатор переменной, содержащей значение типа «Таблица значений» или «Список значений», в которое нужно выгрузить данные. Если переданное значение пустое, тогда система сама создаст объект типа «Таблица значений».
<НачСтрока> | Необязательный параметр. Номер начальной строки, с которой надо начинать выгрузку. Значение по умолчанию 1.
<КонСтрока> | Необязательный параметр. Номер последней строки, по которую надо выгружать, если не указана, то до последней.
<Колонки> | Необязательный параметр. Номера или идентификаторы колонок, которые надо выгружать. Если параметр не задан, то выгружаются все колонки.

Описание:

Метод Выгрузить позволяет выгрузить заданную область таблицы значений в переданное значение. Если в качестве значения для выгрузки задан список значений, то система выгружает данные из таблицы значений по колонкам.

Пример:

НовТабл = СоздатьОбъект("ТаблицаЗначений");

СтарТабл.Выгрузить(НовТабл, 1, 5, "1,3,5,7");

Загрузить

Скопировать структуру и значения таблицы значений.

Синтаксис:

Загрузить(<ТаблицаЗначений>)

Англоязычный синоним:

Load

Параметры:

<ТаблицаЗначений>

Значение типа «Таблица значений». Структура и значения для загрузки.

Описание:

Метод Загрузить позволяет скопировать структуру и значения таблицы значений. Прежняя структура колонок таблицы значений при этом очищается.

Пример:

НовТабл = СоздатьОбъект("ТаблицаЗначений");

НовТабл.Загрузить(СтарТабл);

ВидимостьКолонки

Показать/скрыть колонки таблицы значений.

Синтаксис:

ВидимостьКолонки(<Колонки>, <Видимость>, <Позиция>)

Англоязычный синоним:

ColumnVisibility

Параметры:

<Колонки> | Строковое выражение, которое определяет список колонок. Формат передаваемой строки — это разделенные запятыми номера или идентификаторы колонок, для которых применяется данный метод. Например: «Код, Цена, 8, 5».
<Видимость> | Необязательный параметр. Число: 1 — показать колонки; 0 — скрыть. По умолчанию — 1.
<Пoзиция> | Необязательный параметр. Позиция, в которой показывать колонку. Если параметр не задан, то колонки отображаются в соответствии с порядком колонок в таблице.

Возвращаемое значение:

Если передана одна колонка, то возвращается значение видимости колонки до вызова метода. Число: 1 — колонка показана; 0 — колонка скрыта.

Описание:

Метод ВидимостьКолонки определяет перечень колонок и их видимость в визуальном представлении таблицы значений.

Пример:

ТаблДиалога.ВидимостьКолонки("Код, Цена, 8, 5");

ТекущаяСтрока

Установить/определить текущую строку таблицы в элементе диалога типа «ТаблицаЗначений».

Синтаксис:

ТекущаяСтрока(<ИндексСтроки>)

Англоязычный синоним:

CurrentLine

Параметры:

<ИндексСтроки>

Необязательный параметр. Числовое выражение с задаваемым индексом строки для элемента диалога типа «ТаблицаЗначений», на которую требуется установить курсор. Если параметр не задан, то положение курсора в поле диалога не меняется.

Возвращаемое значение:

Числовое значение, соответствующее индексу текущей строки поля диалога (до его изменения) или 0, если текущей строки нет.

Описание:

Метод ТекущаяСтрока в тексте программного модуля можно использовать синтаксически как функцию или процедуру. Данный метод позволяет установить и/или считать текущее положение курсора в элементе диалога типа «ТаблицаЗначений».

Данный метод можно использовать только для объектов, которые созданы при помощи визуальных средств конфигуратора (в форму вставлены элементы диалога «ТаблицаЗначений», а идентификаторы этих элементов доступны в контексте программного модуля этой формы как уже существующие объекты типа «ТаблицаЗначений»).

Пример:

ТаблДиалога.ТекущаяСтрока(2);

ТекущаяКолонка

Установить/определить текущую колонку таблицы в элементе диалога типа «ТаблицаЗначений».

Синтаксис:

ТекущаяКолонка(<НоваяКолонка>, <ТекущаяКолонка>)

Англоязычный синоним:

CurrentColumn

Параметры:

<НоваяКолонка> | Необязательный параметр. Номер или идентификатор колонки для элемента диалога типа «ТаблицаЗначений», на которую требуется установить курсор. Если параметр не задан, то текущая колонка в поле диалога не меняется.
<ТекущаяКолонка> | Необязательный параметр. Идентификатор переменной, куда система возвращает номер текущей колонки.

Возвращаемое значение:

Идентификатор текущей колонки поля диалога (до его изменения) или "" (пустая строка), если ее нет.

Описание:

Метод ТекущаяКолонка в тексте программного модуля можно использовать синтаксически как функцию или процедуру. Данный метод позволяет установить и/или считать текущее положение курсора в элементе диалога типа «ТаблицаЗначений».

Данный метод можно использовать только для объектов, которые созданы при помощи визуальных средств конфигуратора (в форму вставлены элементы диалога «ТаблицаЗначений», а идентификаторы этих элементов доступны в контексте программного модуля этой формы как уже существующие объекты типа «ТаблицаЗначений»).

Пример:

Перем НомКолонки;

ТаблДиалога.ТекущаяКолонка(2, НомКолонки);

Фиксировать

Фиксировать в элементе диалога типа «ТаблицаЗначений» колонки и строки.

Синтаксис:

Фиксировать(<КолСтрок>, <КолКолонок>)

Англоязычный синоним:

Fix

Параметры:

<КолСтрок> | Необязательный параметр. Количество фиксируемых строк. Если не указаны, то не изменять фиксацию.
<КолКолонок> | Необязательный параметр. Количество фиксируемых колонок. Если не указаны, то не изменять фиксацию.

Описание:

Метод Фиксировать позволяет фиксировать в элементе диалога типа «ТаблицаЗначений» колонки и строки.

Пример:

ТаблДиалога.Фиксировать(1, 1);

ВыводитьПиктограммы

Выводить в элементе диалога типа «ТаблицаЗначений» пиктограммы.

Синтаксис:

ВыводитьПиктограммы(<Колонка>, <Пиктограмма>)

Англоязычный синоним:

Showlmages

Параметры:

<Колонка> | Номер или идентификатор колонки, которая содержит номера пиктограмм.
<Пиктограмма> | Необязательный параметр. Начальный номер пиктограммы. Значение по умолчанию: 1.

Описание:

Метод ВыводитьПиктограммы устанавливает режим, при котором в колонке выводится не текст, а пиктограмма. Пиктограмма будет браться из картинки, назначенной элементу диалога «ТаблицаЗначений» в закладке «Картинка» в конфигураторе. Картинка должна быть формата .bmp, содержать все пиктограммы для этой таблицы значений, и состоять из последовательности пиктограмм размером 16х15 пикселей. Пиктограммы будут выбираться из картинки по номеру, взятому из числового значения данной колонки в текущей строке. Параметр <Пиктограмма> позволяет установить для данной колонки начальный номер пиктограмм в картинке.

Пример:

ТаблДиалога.ВыводитьПиктограммы(1, 1);

Пример использования объекта Таблица Значений

Пример:

Функция ВыбратьОплаты(ВыбДок)

   ТЗ = СоздатьОбъект("ТаблицаЗначений");

   ТЗ.НоваяКолонка("ДатаДок", "Дата", , , "Дата", 15);

   ТЗ.НоваяКолонка("Номер", "Строка", 20, , "Номер", 15);

   ТЗ.НоваяКолонка("Сумма", "Число", 18, 2, "Сумма", 20);

   ТЗ.НоваяКолонка("РасчетныйСчет", "Справочник.БанковскиеСчета", , ,

                   "Расч.счет", 30);

   ТЗ.НоваяКолонка("ПодчДок", "Документ", , , );

   ТЗ.ВидимостьКолонки("ПодчДок", 0);

   Док = СоздатьОбъект("Документ");

   Док.ВыбратьПодчиненныеДокументы(, , ВыбДок);

   Пока Док.ПолучитьДокумент() = 1 Цикл

      Если Док.Вид() = "ОплатаПоставщикам" Тогда

         ТЗ.НоваяСтрока();

         ТЗ.ДатаДок = Док.ДатаДок;

         ТЗ.Номер = Док.НомерДок;

         ТЗ.Сумма = Док.Итог("Сумма");

         ТЗ.РасчетныйСчет = Док.РасчетныйСчет;

         ТЗ.ПодчДок = Док.ТекущийДокумент();

      КонецЕсли;

   КонецЦикла;

   ВыбСтрока = 0;

   Если ТЗ.ВыбратьСтроку(ВыбСтрока, "Выберите оплату") = 1 Тогда

      Возврат ТЗ.ПолучитьЗначение(ВыбСтрока, "ПодчДок");

КонецФункции


Part30

Глава 30
Атрибуты и методы контекста Модуля формы

Описанные в данной главе атрибуты и методы доступны только в контексте Модуля формы (см. «Виды программных модулей»). К Модулям форм относятся практически все программные модули (исключение составляют Глобальный модуль, Модуль документа, Модуль вида расчета).

Атрибуты контекста Модуля формы

СтрокаДействийФормы

Содержит командную строку системных действий в кнопке формы.

Синтаксис:

СтрокаДействийФормы

Англоязычный синоним:

StringFormActions

Описание:

Атрибут СтрокаДействийФормы предоставляет доступ к значению командной строки кнопки формы (строка системных команд в свойствах кнопки после символа #). Данный атрибут доступен в процедуре, вызываемой перед знаком # из строки формулы кнопки (кнопка — «Свойства» — «Дополнительные» — «Формула»).

Доступ к данному атрибуту возможен только в контексте Модуля формы.

Пример:

* Допустим, что в некоторой форме в свойствах какой-либо кнопки записана следующая формула:

УстКоманд() # Записать? Провести? Закрыть?

В программном модуле можно записать процедуру, которая будет устанавливать значение командной строки действий:

Процедура УстКоманд()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      СтрокаДействийФормы = "Записать? Закрыть?";

   ИначеЕсли НазваниеНабораПрав() = "Менеджер" Тогда

      СтрокаДействийФормы = "Записать? Провести? Закрыть?";

   Иначе

      СтрокаДействийФормы = "Закрыть?";

КонецПроцедуры

Форма

Объект агрегатного типа «Форма».

Синтаксис:

Форма

Англоязычный синоним:

Form

Описание:

Атрибут Форма представляет собой ссылку на объект типа «Форма». Атрибуты и методы объекта «Форма» позволяют в программном модуле изменять свойства визуального отображения диалога в целом (такие как Заголовок, Закладки и т. п.), а также свойства визуального отображения отдельных элементов диалога.

В тексте программного модуля через точку после имени атрибута «Форма» можно записывать идентификаторы элементов диалога, а далее через точку можно вызывать методы управления свойствами этих элементов.

Доступ к данному атрибуту возможен только в контексте Модуля формы.

Пример:

Форма.ТолькоПросмотр(0);

Форма.Prompt.Видимость(0);

Атрибуты объекта Форма

Закладки

Объект типа «СписокЗначений», содержащий описания закладок текущей формы.

Синтаксис:

Закладки

Англоязычный синоним:

TabCtrl

Описание:

Атрибут объекта «Форма» Закладки представляет собой объект типа «СписокЗначений», содержащий описания закладок текущей формы. Данный атрибут предоставляет возможность программно манипулировать порядком и названиями закладок формы. В тексте программного модуля через точку после имени объекта «Форма» можно вызвать атрибут «Закладки», а далее через точку можно вызывать методы управления закладками как объектом типа «СписокЗначений».

Доступ к данному атрибуту возможен только в контексте Модуля формы после применения метода ИспользоватьЗакладки.

Пример:

Процедура ОбработкаКлиектов()

   Если ФлагФранчайзи = 1 Тогда

      Если Форма.Закладки.НайтиЗначение(2) = 0 Тогда

         Форма.Закладки.ДобавитьЗначение(2, "Поставщики");

      КонецЕсли;

   Иначе

      Позиция = Форма.Закладки.НайтиЗначение(2);

      Если Позиция > 0 Тогда

         Форма.Закладки.УдалитьЗначение(Позиция);

      КонецЕсли;

   КонецЕсли;

   форма.Закладки.Сортировать();

КонецПроцедуры

См. также: ИспользоватьЗакладки, ПриВыбореЗакладки, «Работа со СпискомЗначений»

<ЭлементДиалога>

Объект агрегатного типа «элемент диалога».

Синтаксис:

<ЭлементДиалога>

Описание:

Значение атрибута объекта «Форма» <ЭлементДиалога> представляет собой ссылку на элемент диалога. Элементы диалога — это объекты специального агрегатного типа. Методы элементов диалога позволяют в программном модуле изменять их свойства, такие как Цвет, Видимость, Доступность.

В тексте программного модуля через точку после имени объекта «Форма» можно вызвать атрибут <ЭлементДиалога>, а далее через точку можно вызывать методы управления их свойствами. В тексте программного модуля в качестве названия данного атрибута подставляется идентификатор конкретного элемента диалога, существующего в диалоговом окне формы.

Пример:

// в форме диалога существуют элементы

// НазвФирмы, ИнформПоле, Название

// Поменяем свойства этих элементов диалога

Форма.НазвФирмы.Доступность(0);

Форма.ИнформПоле.Видимость(0);

Форма.Название.Цвет(255, 0, 0);

См. также: Цвет, Видимость, Доступность

Параметр

Параметр, переданный при программном открытии формы.

Синтаксис:

Параметр

Англоязычный синоним:

Parameter

Описание:

Атрибут Параметр объекта «Форма» представляет собой значение, переданное данной форме при ее открытии программно с помощью методов Открытьформу, ОткрытьФормуМодально, ОткрытьПодбор. Если форма открыта интерактивно или если параметр при программном открытии не передавался, то данный атрибут содержит значение неопределенного типа.

Доступ к данному атрибуту возможен только в контексте Модуля формы.

Пример:

ПереданныйПараметр = Форма.Параметр;

См. также: ОткрытьФорму, ОткрытьФормуМодально, ОткрытьПодбор

Методы объекта Форма

При помощи объекта «Форма» предоставляется возможность управлять визуальным представлением текущей формы, опрашивать текущее состояние режима работы формы и т. п.

ТолькоПросмотр

Установка режима редактирования формы,

Синтаксис:

ТолькоПросмотр(<Режим>)

Англоязычный синоним:

Readonly

Параметры:

<Режим>

Необязательный параметр. Числовое выражение:

0 — разрешено редактирование элементов формы;

1 — запрещено редактирование.

Возвращаемое значение:

Текущее числовое значение режима редактирования формы (на момент до исполнения метода).

Описание:

Метод ТолькоПросмотр позволяет установить режим редактирования текущей формы.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.ТолькоПросмотр(0);

Обновить

Обновить форму.

Синтаксис:

Обновись(<Флаг>)

Англоязычный синоним:

Refresh

Параметры:

<Флаг>

Числовое выражение:

1 — установить флаг модифицированности (признак изменения реквизитов текущей формы справочника или документа);

0 — не устанавливать флаг модифицированности.

Описание:

Метод Обновить выполняет обновление окна формы. Кроме того, этот метод позволяет программно установить флаг модифицированности формы. Данный метод имеет смысл вызывать, если через контекст формы (извне, из другого программного модуля) были произведены изменения реквизитов формы.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.Обновить(1)

См. также: ОткрытьФорму, ОткрытьПодбор, Модифицированность

ИспользоватьЗакладки

Установить режим использования закладок в форме.

Синтаксис:

ИспользоватьЗакладки(<Флаг>)

Англоязычный синоним:

TabCtrlState

Параметры:

<Флаг>

Необязательный параметр. Числовое выражение:

1 — включить закладки в форме;

0 — выключить закладки в форме.

Возвращаемое значение:

Текущее значение режима использования закладок формы (на момент до исполнения метода).

Описание:

Метод ИспользоватьЗакладки устанавливает режим использования закладок в форме.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.ИспользоватьЗакладки(1)

См. также: Закладки, ПриВыбореЗакладки, ИспользоватьСлой

ИспользоватьСлой

Установить режим отображения слоя в форме.

Синтаксис:

ИспользоватьСлой(<ИмяСлоя>, <Режим>)

Англоязычный синоним:

UseLayer

Параметры:

<ИмяСлоя> | Строковое выражение — название слоя формы как оно задано в конфигураторе. Параметр может быть составным (указывать несколько слоев). В этом случае имена слоев перечисляются через запятую.
<Режим> | Необязательный параметр. Числовое выражение: 0 — скрыть слой <ИмяСлоя> в форме; 1 — показать слой <ИмяСлоя> в форме; 2 — показать слой <ИмяСлоя> и скрыть все остальные. Значение по умолчанию — 2.

Описание:

Метод Использовать Слой устанавливает режим отображения слоя в форме. Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.ИспользоватьСлой("Основной, КнопкиДиалога, Дополнительный", 1);

См. также: Закладки, ПриВыбореЗакладки

Заголовок

Установка заголовка окна формы.

Синтаксис:

Заголовок(<Название>, <Режим>)

Англоязычный синоним:

Caption

Параметры:

<Название> | Строковое выражение — новый заголовок окна формы.
<Режим> | Числовое выражение: 0 — выводит заданный заголовок вместо стандартного заголовка окна; 1 — выводит заданный загловок вместе со стандартным заголовком окна.

Возвращаемое значение:

Текущий заголовок окна формы, установленный этой функцией.

Описание:

Метод Заголовок позволяет установить новый заголовок окна формы. Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.Заголовок("Накладная №" + Док.НомерДок, 0 );

ПанельИнструментов

Управление видимостью панели инструментов окна формы.

Синтаксис:

ПаяельИнструментов(<Режим>)

Англоязычный синоним:

ToolBar

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — показать панель инструментов; 0 — не показывать панель инструментов. Если параметр не задан, то метод просто возвращает текущее состояние видимости панели инструментов.

Возвращаемое значение:

Текущее состояние видимости панели инструментов окна формы.

Описание:

Метод ПанельИнструментов предоставляет возможность управления видимостью панели инструментов окна формы.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.ПанельИнструментов(0);

КнопкаПоУмолчанию

Задает кнопку в форме, которая будет «срабатывать» при нажатии комбинации клавиш Ctrl + Enter.

Синтаксис:

КнопкаПоУмолчанию(<ИдентификаторКнопки>)

Англоязычный синоним:

DefButton

Параметры:

<ИдентификаторКнопки>

Строковое выражение — идентификатор одной из кнопок формы объекта метаданных.

Описание:

Метод КнопкаПоУмолчанию позволяет назначить одну из кнопок формы кнопкой «по умолчанию»: в этом случае нажатие комбинации клавиш Ctrl+Enter приведет к такому же результату, как и нажатие такой кнопки мышью.

В качестве параметра методу передается идентификатор одной из кнопок формы — так, как он указан в палитре свойств соответствующего элемента диалога типа «Кнопка».

Пример:

* В модуле формы документа «ПлатежноеПоручение» кнопкой по умолчанию назначается кнопка с идентификатором " ОК".

Процедура ПриОткрытии()

   Форма.КнопкаПоУмолчанию("ОК");

КонецПроцедуры

ОбработкаВыбораСтроки

Включает в форме списка обработку выбора строки предопределенной процедурой ПриВыбореСтроки.

Синтаксис:

ОбработкаВыбораСтроки(<Флаг>)

Англоязычный синоним:

ProcessSelectLine

Параметры:

<Флаг>

Числовое выражение: 1 — включает обработку выбора предопределенной процедурой; 0 — выключает обработку выбора предопределенной процедурой.

Описание:

Метод ОбработкаВыбораСтроки включает в форме списка (справочника, журнала, счетов, журнала операций, журнала проводок) обработку выбора строки предопределенной процедурой ПриВыбореСтроки.

Доступ к данному методу возможен только в контексте Модуля формы списка.

Пример:

Форма.ОбработкаВыбораСтроки(1)

См. также: ПриВыбореСтроки

ВыполнитьВыбор

Осуществляет выбор из формы подбора.

Синтаксис:

ВыполнитьВыбор(<Знач>)

Англоязычный синоним:

MakeChoise

Параметры:

<Знач>

Значение, которое выбирается в форме, открытой для подбора или выбора значения.

Описание:

Метод ВыполнитьВыбор осуществляет выбор в форме, открытой для подбора или выбора значения (аналогично интерактивному двойному щелчку в подборе). Метод предназначен, прежде всего, для организации подбора из формы отчета.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

// осуществим выбор в форме журнала документов

Форма.ВыполнитьВыбор(ТекущийДокумент);

РежимВыбора

Возвращает режим работы формы.

Синтаксис:

РежимВыбора()

Англоязычный синоним:

ChoiseMode

Возвращаемое значение:

Число: 0 — форма открыта не для выбора; 1 — форма открыта для выбора одного значения; 2 — форма открыта для выбора нескольких значений.

Описание:

Метод РежимВыбора возвращает режим работы формы. Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

РежимРаботыФормы = Форма.РежимВыбора();

МодальныйРежим

Возвращает режим работы формы.

Синтаксис:

МодальныйРежим()

Англоязычный синоним:

ModalMode

Возвращаемое значение:

Число: 0 — немодальный режим; 1 — модальный режим.

Описание:

Метод МодальныйРежим возвращает режим работы формы. Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

РежимРаботыФормы = Форма.МодальныйРежим();

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

ПолучитьАтрибут(<ИмяРеквизита>)

Англоязычный синоним:

GetAttrib

Параметры:

<ИмяРеквизита>

Строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.

Возвращаемое значение:

Значение реквизита <ИмяРеквизита>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Форма.ПолучитьАтрибут("ЦенаРозн");

АктивныйЭлемент

Возвращает идентификатор активного элемента диалога.

Синтаксис:

АктивныйЭлемент()

Англоязычный синоним:

ActiveControl

Возвращаемое значение:

Строковое значение — идентификатор активного элемента диалога.

Описание:

Метод АктивныйЭлемент возвращает идентификатор активного элемента диалога.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

ИдАктЭлем = Форма.АктивныйЭлемент();

ТекущаяКолонка

Возвращает идентификатор текущей колонки многострочной части.

Синтаксис:

ТекущаяКолонка()

Англоязычный синоним:

CurrentColumn

Возвращаемое значение:

Строковое значение — идентификатор текущей колонки многострочной части.

Описание:

Метод ТекущаяКолонка возвращает идентификатор текущей колонки многострочной части.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

ИдТекКолонки = Форма.ТекущаяКолонка();

Закрыть

Закрыть форму.

Синтаксис:

Закрыть(<ЗапрСохр>)

Англоязычный синоним:

Close

Параметры:

<ЗапрСохр>

Необязательный параметр. Число: 0 — закрыть форму без вопросов; 1 — если документ, счет, элемент справочника изменен, то будет запрос о сохранении изменений. Значение по умолчанию — 1.

Описание:

Метод Закрыть закрывает форму. Доступ к данному методу возможен только в контексте Модуля формы.

Замечание. Действие данного метода не прерывает выполнения текущей процедуры программы, т. е. процедура доработает до конца. Данный метод лишь устанавливает признак, который отрабатывает после окончания выполнения процедуры.

Пример:

Форма.Закрыть();

Методы элементов диалога

При помощи атрибута «Форма» средства языка предоставляют возможность программно управлять свойствами элементов диалога. В тексте программного модуля формы через точку после имени атрибута «Форма» можно записывать идентификаторы элементов диалога, а далее через точку можно вызывать методы управления свойствами этих элементов.

Доступ к данным методам возможен только в контексте Модуля формы.

Видимость

Установка режима отображения.

Синтаксис:

Видимость(<Режим>)

Англоязычный синоним:

Visible

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — элемент диалога отображается; 0 — элемент диалога скрыт (невидим).

Возвращаемое значение:

Текущее числовое значение режима видимости элемента формы или колонки многострочной части (на момент до исполнения метода).

Описание:

Метод Видимость позволяет установить режим отображения выбранного элемента формы или колонки многострочной части формы.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.ИнформПоле.Видимость(0);

Доступность

Установка режима редактирования.

Синтаксис:

Доступность(<Режим>)

Англоязычный синоним:

Enable

Параметры:

<Режим>

Необязательный параметр. Числовое выражение:

1 — разрешено редактирование элемента формы;

0 — запрещено редактирование.

Возвращаемое значение:

Текущее числовое значение режима редактирования элемента формы (на момент до исполнения метода).

Описание:

Метод Доступность позволяет установить режим редактирования выбранного элемента формы.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.НазвФирмы.Доступность(0);

Редактирование

Определяет возможность редактирования значения элемента диалога.

Синтаксис:

Редактирование(<Флаг>)

Англоязычный синоним:

EnableEdit

Параметры:

<Флаг>

Число: 1 — значение элемента редактируется как обычно; 0 — значение не редактируется но может выбираться кнопкой выбора. Отличие от метода Доступность в том, что Доступность отключает и кнопку выбора.

Описание:

Метод Редактирование определяет возможность редактирования значения непосредственно в элементе диалога для полей ввода типа Число, Строка, Дата, Счет.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.КолонкаЦены.Редактирование(1);

Цвет

Установка режима отображения цвета.

Синтаксис 1:

Цвет(<Цвет>)

Синтаксис 2:

Цвет(<R>, <G>, <В>)

Англоязычный синоним:

Color

Параметры:

<Цвет> | Необязательный параметр. Числовое выражение, значение которого задает RGB цвет. Допустимые значения от 0 до 16'777'215. Значение -1 (минус единица) задает цвет, заданный для всей формы по умолчанию.
<R> | Числовое выражение, значение которого задает красную компоненту цвета. Допустимые значения от 0 до 255.
<G> | Числовое выражение, значение которого задает зеленую компоненту цвета. Допустимые значения от 0 до 255.
<В> | Числовое выражение, значение которого задает синюю компоненту цвета. Допустимые значения от 0 до 255.

Возвращаемое значение:

Текущее числовое значение RGB-цвета элемента формы (на момент до исполнения метода).

Описание:

Метод Цвет позволяет установить режим отображения цвета выбранного элемента формы.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Процедура ОбработкаНаименования()

   Если (Наименование = "") Тогда

      Форма.Название.Цвет(255, 0, 0);

   Иначе

      Форма.Название.Цвет(-1);

   КонецЕсли

КонецПроцедуры

Маска

Установить/определить маску интерактивного ввода для элементов диалога типа «поле ввода».

Синтаксис:

Маска(<СтрокаМаски>)

Англоязычный синоним:

Mask

Параметры:

<СтрокаМаски>

Необязательный параметр. Строковое выражение — посимвольная маска интерактивного ввода для строковых реквизитов диалога (аналогично установке в свойствах реквизита диалога в конфигураторе).

Возвращаемое значение:

Строковое значение — текущая маска интерактивного ввода для строковых реквизитов (на момент до исполнения метода).

Описание:

Метод Маска позволяет установить посимвольную маску интерактивного ввода для элементов диалога типа «поле ввода» (аналогично установке в свойствах реквизита диалога в конфигураторе).

В параметре <СтрокаМаски> допустимы следующие символы:

· ! — введенный символ преобразуется в верхний регистр;

· 9 — произвольный символ цифры;

· # — произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;

· N — любые алфавитно-цифровые символы (буквы или цифры);

· Х (латинского алфавита) — произвольный символ;

· @ — любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

форма.Телефон.Маска("999-99-99");

ВыборГруппы

Установить режим выборки групп для элемента диалога типа «справочник».

Синтаксис:

ВыборГруппы(<Режим>)

Англоязычный синоним:

SelectGroup

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — выбирать группы; 0 — не выбирать группы. Значение по умолчанию — 1.

Возвращаемое значение:

Текущее числовое значение режима выборки групп для элемента диалога (на момент до исполнения метода).

Описание:

Метод ВыборГруппы устанавливает режим выборки групп для выбранного элемента диалога типа «справочник».

По умолчанию, выборка элементов справочников для реквизитов в формах документов, журналов и справочников установлена без выбора групп, а в форме отчета — с выбором групп. Поэтому реально имеет смысл применять данный метод только в том случае, если надо изменить режим выборки групп.

Особенно необходим данный метод в случае, когда необходимо установить возможность выбора групп в графе табличной части документа.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

* Если в табличной части документа существует какой-либо реквизит, например, «Статус» и необходимо, чтобы он мог принимать значения как элемента, так и группы, то в форме документа этому реквизиту следует установить:

Форма.Статус.ВыборГруппы(1);

ВыполнятьФормулуТолькоПриИзменении

Установка режима выполнения формулы.

Синтаксис:

ВыполнятьФормулуТолькоПриИзменении(<Режим>)

Англоязычный синоним:

ProcessFormulaOnlyWhenChanged

Параметры:

<Режим>

Числовое выражение: 1 — устанавливает режим, при котором в табличной части документа формула («Свойства» — «Дополнительные» — «Формула») вызывается только при изменении значения поля, а не при переходе между полями; 0 — устанавливает режим, при котором в табличной части документа формула вызывается при изменении значения поля и при переходе между полями.

Описание:

Метод ВыполнятьФормулуТолькоПриИзменении позволяет изменить режим выполнения формулы выбранного поля табличной части документа. Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.Цена.ВыполнятьФормулуТолькоПриИзменении(1);

Заголовок

Устанавливает/выдает заголовок элемента диалога.

Синтаксис:

Заголовок(<Название>)

Англоязычный синоним:

Caption

Параметры:

<Название>

Строковое выражение — новый заголовок колонки многострочной части формы, кнопки, рамки группы, текста, флажка, переключателя.

Возвращаемое значение:

Текущий заголовок элемента диалога.

Описание:

Метод Заголовок позволяет установить/прочитать заголовок колонки многострочной части формы, копки, рамки группы, текста, флажка, переключателя.

Доступ к данному методу возможен только в контексте Модуля формы.

Пример:

Форма.КолонкаЦены.Заголовок("Цена");

УстановитьТип

Установить тип для элемента диалога неопределенного вида.

Синтаксис:

УстановитьТип(<Выражение>)

Англоязычный синоним:

AssignType

Параметры:

<Выражение>

Выражение. Тип значения этого выражения будет присвоен элементу диалога.

Описание:

Метод УстановитьТип позволяет установить тип для элемента диалога, которому в конфигураторе назначен тип «Неопределенный».

Данный метод доступен в контексте Модуля формы (см. «Виды программных модулей»).

Пример:

Форма.ВыбЗнач.УстановитьТип(Товар);

См. также: НазначитьТип, ТипЗначения, ТипЗначенияСтр

НазначитьТип

Назначить тип для элемента диалога неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

AssignType

Параметры:

<ИмяТипа> | Строковое выражение — название типа данных, которое назначается элементу диалога. Например: "Строка", "Число", "Справочник.Товары", "Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для элемента диалога, которому в конфигураторе назначен тип «Неопределенный».

Данный метод доступен в контексте Модуля формы (см. «Виды программных модулей»).

Пример:

Форма.ВыбКолич.НазначитьТип("Число", 15, 2);

Форма.ВыбДата.НазначитьТип("Дата");

Форма.ВыбТовар.НазначитьТип("Справочник.Товары");

Форма.ВыбДокум.НазначитьТип("Документ");

См. также: УстановитьТип, ТипЗначения, ТипЗначенияСтр

НеИзменятьВид

Позволяет запретить пользователю при выборе значения справочника, документа, счета неопределенного вида изменять вид.

Синтаксис:

НеИзменятьВид(<Признак>)

Англоязычный синоним:

FixKind

Параметры:

<Признак>

Числовое выражение — признак запрета изменения вида. Может принимать значения:

0 — разрешить изменение вида при выборе значения;

1 — запретить изменение вида при выборе значения.

Возвращаемое значение:

Число — текущее значение признака.

Описание:

Метод НеИзменятьВид применяется для реквизитов диалога формы, имеющих тип справочника, документа, счета неопределенного вида. Он позволяет запретить при выборе значения изменение вида значения.

Предположим, в диалоге существует реквизит типа справочник неопределенного вида. Вид этого элемента устанавливается при помощи встроенного языка процедурой НазначитьВид. Метод НеИзменятьВид(1) позволяет запретить пользователю при выборе значения выбрать вид справочника.

Пример:

* Например, в некотором документе, для его реквизита «Контрагент» типа справочник неопределенного вида, назначается вид «Организации» или «Сотрудники» и запрещается интерактивное изменение вида пользователем.

Процедура ВводНаОсновании(ДокОсн)

   Если ДокОсн.Вид() = "Счет" Тогда

      НазначитьВид(Контрагент, «Организации»);

   Иначе

      НазначитьВид(Контрагент, «Сотрудники»);

   КонецЕсли;

   Форма.Контрагент.НеИзменятьВид(1);

КонецПроцедуры

Методы контекста Модуля формы

Описанные в данном разделе методы доступны только в контексте Модуля формы (см. «Виды программных модулей»). К модулям форм относятся практически все программные модули (исключение составляют Глобальный модуль, Модуль документа, Модуль вида расчета).

ОткрытьПодбор

Открыть форму для подбора значений.

Синтаксис:

ОткрытьПодбор(<ИмяОбъекта>, <ИмяФормы>, <КонтекстФормы>, <ФлагМножВыбора>,

              <ТекЗнач>)

Англоязычный синоним:

OpenPermanentChoice

Параметры:

<ИмяОбъекта>

Строковое выражение — имя объекта агрегатного типа, форму списка которого требуется открыть для подбора. Можно указывать справочник, журнал, документ (при указании документа открывается форма журнала для указанного документа). Имя объекта задается в следующем виде:

· "Справочник.ХХХХХ";

· "Документ.ХХХХХ";

· "Отчет.ХХХХХХ";

· "Обработка.ХХХХХХ";

· "Журнал.ХХХХХ" , где ХХХХХ — имя вида соответствующего объекта, как он задан в конфигураторе, например: "Справочник.Товары";

· "Журнал.Подчиненные";

· "ЖурналОпераций.ХХХХХ", где ХХХХХ — форма журнала пераций.

· "ПланСчетов.ХХХХХ", где ХХХХХ — идентификатор плана счетов, как он задан в конфигураторе. Если ХХХХХ не задан, то открывается подбор из любого (всех) плана счетов.

<ИмяФормы>

Строковое выражение — имя формы подбора, как она задана в конфигураторе. Поскольку и справочники и журналы могут иметь несколько форм представления, то этим параметром можно конкретно указать, какая из форм представления объекта вызывается для подбора значений.

<КонтекстФормы>

Необязательный параметр. Имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр.

После исполнения данного метода система вернет в данную переменную контекст формы подбора (см. «Передача контекста в качестве параметра»). С помощью значения этого контекста можно затем произвольно манипулировать формой подбора, пока она открыта. Пока форма открыта, тип значения данного параметра равен 100 (см. ТипЗначения), если закрыта — 0.

<ФлагМножВы6ора>

Необязательный параметр. Число: 1 — выбор нескольких значений; 0 — выбор одного значения, после чего окно закрывается. Значение по умолчанию: 1.

<ТекЗнач>

Необязательный параметр. В случае выбора из списка, здесь можно передать значение, на которое следует изначально установить курсор при открытии формы подбора.

Описание:

Метод ОткрытьПодбор, который доступен только в контексте Модуля формы, выполняет открытие формы для подбора значений. Используется, например, для подбора значения реквизита документа.

При открытии подбора по журналу подчиненных документов, т. е. когда первый параметр <ИмяОбъекта> имеет значение "Журнал.Подчиненные", документ владелец, по которому следует построить журнал подчиненных документов, передается после вызова метода через полученный контекст формы.

Пример:

Процедура Подбор()

   ГруппаДляВыбора = ТекущийЭлемент();

   Если ГруппаДляВыбора.ЭтоГруппа() = 0 Тогда

      ГруппаДляВыбора = ГруппаДляВыбора.Родитель;

   КонецЕсли;

   ОткрытьПодбор("Справочник.Товары", "ДляПодбора", КонтПодб, 0);

   // установим в форме подбора реквизит "ГруппаВыбора"

   // используя полученный контекст формы подбора

   КонтПодб.ГруппаВыбора.ВыборГруппы(1);

   КонтПодб.ГруппаВыбора = ГруппаДляВыбора;

   КонтПодб.Обновить(0);

   УстановитьЗначениеВПодборе("ГруппаВыбора", ГруппаДляВыбора);

КонецПроцедуры

См. также: ОбработкаПодбора, УстановитьЗначениеВПодборе

УстановитьЗначениеВПодборе

Установить значение некоторого реквизита диалога в окне, открытом для подбора значения.

Синтаксис:

УстановитьЗначениеВПодборе(<ИмяРеквизита>, <Значение>)

Англоязычный синоним:

SetValueInPermanentChoice

Параметры:

<ИмяРеквизита> | Строковое выражение, содержащее имя реквизита формы подбора значения.
<Значение> | Выражение, значение которого заносится в реквизит.

Описание:

Метод УстановитьЗначениеВПодборе, который доступен только в контексте Модуля формы, используется для того, чтобы в окне диалога, открытом для подбора значения, установить значение некоторого реквизита диалога (он может быть затем использован для отображения некоторой информации в информационных элементах диалога подбора значения).

Данный метод следует использовать после вызова метода ОткрытьПодбор.

Пример:

Процедура Подбор()

   ГруппаДляВыбора = ТекуцийЭлемент();

   Если ГруппаДляВыбора.ЭтоГруппа() = 0 Тогда

      ГруппаДляВыбора = ГруппаДляВыбора.Родитель;

   КонецЕсли;

   ОткрытьПодбор("Справочник.Товары", "ДляПодбора", КонтПодб);

   // установим в форме подбора реквизит "ГруппаВыбора"

   // используя метод УстановитьЗначениеВПодборе

   УстановитьЗначениеВПодборе("ГруппаВыбора", ГруппаДляВыбора);

КонецПроцедуры

См. также: ОткрытьПодбор, ОбработкаПодбора

ПолучитьЗначениеИзПодбора

Вычислить выражение в контексте открытой формы подбора.

Синтаксис:

ПолучитьЗначениеИзПодбора(<Выражение>)

Англоязычный синоним:

GetValueFromPermanentChoice

Параметры:

<Выражение>

Строковое выражение, которое должно содержать запись выражения на встроенном языке. Значение этого выражения вычисляется в контексте открытой формы подбора.

Возвращаемое значение:

Значение вычисленного в контексте формы подбора выражения.

Описание:

Метод ПолучитьЗначениеИзПодбора, который доступен только в контексте Модуля формы, позволяет получить результат выражения, выполненного в контексте формы подбора (т. е. получить любые данные из той формы, например выбранный элемент списка справочника подбора значения).

Данный метод следует использовать только после вызова метода ОткрытьПодбор.

Пример:

Процедура ОбработкаПодбора(Выб, Конформы)

   Кол = 0;

   Если ВвестиЧисло(Кол, "Введите количество", 10, 0) = 1 Тогда

      НоваяСтрока();

      ТипPaб = Выб;

      Количество = Кол;

      АктивизироватьСтроку();

      Активизировать("Стоимость", 0);

   КонецЕсли;

   // тип выполненной работы

   ТР = ПолучитьЗначениеИзПодбора("Наименование");

КонецПроцедуры

См. также: ОткрытьПодбор, ОбработкаПодбора

Активизировать

Установить курсор на выбранный элемент диалога.

Синтаксис:

Активизировать(<ИмяРеквизита>, <Режим>)

Англоязычный синоним:

Activate

Параметры:

<ИмяРеквизита> | Необязательный параметр. Строковое выражение, содержащее имя элемента диалога, который должен быть активизирован. Пустое имя элемента диалога используется для активизации всей формы.
<Режим> | Необязательный параметр. Имеет смысл только для реквизитов многострочной части формы документа. Числовое выражение: 1 — войти в режим редактирования; 0 — не входить в режим редактирования. Значение по умолчанию — 1.

Описание:

Метод Активизировать, который доступен только в контексте Модуля формы, устанавливает курсор для редактирования нужного элемента диалога. Например, если необходимо установить курсор на реквизит многострочной части документа (в форме документа) после выхода из предопределенной процедуры ОбработкаПодбора.

Метод Активизировать может быть вызван из другого (внешнего) модуля, если в нем известен контекст формы, в которой нужно активизировать элемента диалога.

Пример:

См. предыдущий пример.

АктивизироватьОбъект

Установить курсор в списке на выбранном объекте.

Синтаксис:

АктивизироватьОбъект(<Объект>)

Англоязычный синоним:

ActivateObj

Параметры:

<Объект>

Выражение, которое может содержать значение элемента справочника или документ или запись журнала расчетов (в зависимости от типа модуля формы, в котором должен быть активизирован элемент диалога).

Описание:

Метод АктивизироватьОбъект, который доступен только в контексте Модуля формы, устанавливает курсор на нужной строке списка диалога, например документ в форме журнала или элемент в форме списка справочника, или запись расчета в форме журнала расчетов.

Пример:

АктивизироватьОбъект(ВыбДокумент);

Предопределенные процедуры Модуля формы

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях форм (см. «Виды программных модулей»). К Модулям форм относятся практически все программные модули (исключение составляют Глобальный модуль, Модуль документа, Модуль вида расчета).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ПриОткрытии

Предопределенная процедура при открытии формы.

Синтаксис:

ПриОткрытии()

Англоязычный синоним:

OnOpen

Описание:

Вызов предопределенной процедуры ПриОткрытии производится самой системой 1С:Предприятие неявно при интерактивном открытии формы. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю зыпрещено просматривать форму объекта), открытие формы не будет выполнено.

Данная предопределенная процедура может располагаться только в программном модуле формы.

Пример:

Процедура ПриОткрытии()

   ПриЗаписиПерепроводить(1);

КонецПроцедуры

См. также: СтатусВозврата

ПриПовторномОткрытии

Предопределенная процедура при повторном открытии формы.

Синтаксис:

ПриПовторномОткрытии()

Англоязычный синоним:

OnReopen

Описание:

Вызов предопределенной процедуры ПриПовторномОткрытии производится самой системой 1С:Предприятие неявно при открытии формы, в случае, если открывают уже открытую форму — то есть форма просто активизируется.

Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю запрещено просматривать форму объекта), открытие формы не будет выполнено.

Данная предопределенная процедура может располагаться только в программном модуле формы.

Пример:

Процедура ПриПовторномОткрытии()

   ПриЗаписиПерепроводить(1);

КонецПроцедуры

См. также: СтатусВозврата

ПриЗакрытии

Предопределенная процедура при закрытии формы.

Синтаксис:

ПриЗакрытии()

Англоязычный синоним:

OnClose

Описание:

Вызов предопределенной процедуры ПриЗакрытии производится самой системой 1С:Предприятие неявно при интерактивном закрытии формы. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если неверно или не полностью заполнены реквизиты объекта), закрытие формы не будет выполнено.

Данная предопределенная процедура может располагаться только в программном модуле формы.

Пример:

Процедура ПриЗакрытии()

   Если ПоСчетуФактуре.Выбран() = 0 Тогда

      Предупреждение("Укажите Счет-Фактуру", 4);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВыбореЗакладки

Предопределенная процедура смены закладки формы.

Синтаксис:

ПриВыбореЗакладки(<НомерЗакладки>, <Значение3акладки>)

Англоязычный синоним:

OnTabCtrlPosChanged

Параметры:

<НомерЗакладки> | Числовое значение — номер выбранной закладки формы.
<Значение3акладки> | Значение выбранной закладки формы.

Описание:

Вызов предопределенной процедуры ПриВыбореЗакладки производится в системе 1С:Предприятие неявно в момент интерактивного выбора пользователем закладки в форме. При вызове процедуры, система подставляет фактические значения параметров, характеризующие выбранную закладку.

Параметры <НомерЗакладки> и <Значение3акладки> используется в теле процедуры для обработки передаваемого системой события смены закладки формы.

Данная предопределенная процедура может располагаться только в программном модуле формы.

Пример:

Процедура ЗакладкаОбщиеВидимость(ФлагВидимости)

   Форма.Название.Видимость(ФлагВидимости);

   Форма.Наименование.Видимость(ФлагВидимости);

   Форма.Код.Видимость(ФлагВидимости);

   Форма.Статус.Видимость(ФлагВидимости);

   Форма.Адрес.Видимость(ФлагВидимости);

   Форма.Телефон.Видимость(ФлагВидимости);

   Активизировать("Наименование", 0);

КонецПроцедуры

Процедура ЗакладкаЗаметкиВидимость(ФлагВидимости)

   Форма.Заметки.Видимость(ФлагВидимости);

   Активизировать("Заметки", 0);

КонецПроцедуры

Процедура ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)

   Если Значение3акладки = 1 Тогда

      Закладка.Заметки.Видимость(0);

      Закладка.Общие.Видимость(1);

   ИначеЕсли ЗначениеЗакладки = 2 Тогда

      Закладка.Общие.Видимость(0);

      Закладка.Заметки.Видимость(1);

   КонецЕсли;

КонецПроцедуры

См. также: ИспользоватьЗакладки, Закладки, СтатусВозврата

ПриНачалеВыбораЗначения

Предопределенная процедура при начале выбора значения.

Синтаксис:

ПриНачалеВыбораЗначения(<ИдентЭлемДиалога>, <ФлагСтанд06р>)

Англоязычный синоним:

OnStartValueChoice

Параметры:

<ИдентЭлемДиалога> | Строковое значение — идентификатор элемента диалога формы.
<ФлагСтандОбр> | Изначально, при вызове процедуры равен 1, если в теле процедуры значение этого параметра поменять на 0, то стандартный процесс выбора значения не будет происходить.

Описание:

Вызов предопределенной процедуры ПриНачалеВыбораЗначения производится в системе 1С:Предприятие неявно в момент, когда в форме пользователь интерактивно инициировал выбор значения (выбор может быть интерактивно инициирован в немодальном режиме при помощи элемента диалога с кнопкой выбора или клавишей «F4»). При вызове процедуры, система подставляет фактические значения параметров, характеризующие элемент диалога и флаг стандартной обработки.

Замечание. В теле этой процедуры методы ОткрытьФорму и ОткрытьПодбор работают для выбора.

Данная предопределенная процедура может располагаться только в программном модуле формы.

Пример:

Процедура ПриНачалеВыбораЗначения(Элемент, Флаг)

   Перем КонтПодб;

   Если Элемент = "ИдВыбКлиент" Тогда

      Флаг = 0;

      ОткрытьПодбор("Справочник.Клиенты", "ДляПодбора", КонтПодб);

   КонецЕсли;

КонецПроцедуры

ОбработкаПодбора

Предопределенная процедура обработки подбора значения.

Синтаксис:

ОбработкаПодбора(<ЗначениеПод6ора>, <КонтФормы>)

Англоязычный синоним:

ProcessPermanentChoice

Параметры:

<ЗначениеПодбора> | Элемент справочника или документ, передаваемый для обработки.
<КонтФормы> | Контекст той формы, из которой шел подбор.

Описание:

Вызов предопределенной процедуры ОбработкаПодбора производится в системе 1С:Предприятие неявно после нажатия кнопки «Выбрать» в форме подбора значения (см. метод ОткрытьПодбор). В этот момент система подставляет фактическое значение параметра <ЗначениеПодбора>.

Формальный параметр <ЗначениеПодбора> используется в теле процедуры для приема и обработки передаваемого системой значения элемента подбора.

Данная предопределенная процедура может располагаться только в программном модуле формы.

Пример:

Процедура ОбработкаПодбора(Знач, КонтФормы)

   НоваяСтрока();

   Товар = Знач;

   Знач.ИспользоватьДату(ДатаДок);

   Цена = Знач.Цена;

   Сообщить(Знач.Цена);

   Сообщить(Знач.МОЛ.Наименование);

   АктивизироватьСтроку();

КонецПроцедуры

См. также: ОткрытьПодбор

ОбработкаВыбораЗначения

Предопределенная процедура обработки выбора значения.

Синтаксис:

ОбработкаВыбораЗначения(<Вы6Знач>, <ИдентЭлемДиалога>, <ФлагСтандОбр>)

Англоязычный синоним:

ProcessPermanentChoice

Параметры:

<ВыбЗнач> | Выбранный элемент справочника, документ или иной объект, передаваемый для обработки.
<ИдентЭлемДиалога> | Идентификатор элемента диалога, которым инициализирован выбор значения.
<ФлагСтандОбр> | Флаг, установка которого в теле процедуры в 0 (ноль) приведет к отмене стандартного присвоения значения.

Описание:

Вызов предопределенной процедуры ОбработкаВыбораЗначения производится в системе 1С:Предприятие неявно, после выбора значения в форм6 выбора (выбор может быть инициирован в немодальном режиме интерактивно, при помощи элемента диалога с кнопкой выбора). В момент выбора система автоматически подставляет фактическое значение параметра <Вы6Знач>.

Формальный параметр <ВыбЗнач> используется в теле процедуры для приема и обработки передаваемого системой выбранного значения.

Данная предопределенная процедура может располагаться только в программном модуле формы.

Пример:

Процедура ОбработкаВыбораЗначения(Знач, Идент, Флаг)

   ...

КонецПроцедуры

ПриВыбореСтроки

Предопределенная процедура при выборе строки списка.

Синтаксис:

ПриВыбореСтроки()

Англоязычный синоним:

OnSelectLine

Описание:

Вызов предопределенной процедуры ПриВыбореСтроки производится в системе 1С:Предприятие при интерактивном выборе строки списка в форме списка справочника, журнала документов, счетов, журнала операций, журнала проводок. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя вводить новые строки списка справочника), то строка списка не будет выбрана.

Замечание: Режим обработки выбора строки (двойной щелчок мыши или клавиша Enter) предопределенной процедурой ПриВыбореСтроки включается в форме списка справочника, журнала, счетов, журнала операций, журнала проводок при помощи метода Форма.ОбработкаВыбораСтроки(1)

Данная предопределенная процедура может располагаться в Модуле формы списка справочника, журнала, счетов, журнала операций, журнала проводок (см. «Виды программных модулей»).

Пример:

Процедура ПриВыбореСтроки()

   Если НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права просмотра строки!", 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ОбработкаВыбораСтроки

Атрибуты и методы контекста Модуля формы отчета (обработки)

Таблица

Объект агрегатного типа «Таблица».

Синтаксис:

Таблица

Англоязычный синоним:

Table

Описание:

Атрибут Таблица (только для чтения) представляет собой ссылку на объект типа «Таблица». Доступ к данному атрибуту возможен только в контексте Модуля формы отчета или обработки. При настройке формы отчета (обработки), если табличный документ размещен непосредственно в форме (для этого в диалоге, вызываемом пунктом «Свойства формы» меню «Действия» в параметре «Использовать таблицу» выбирается вариант «Пустую» или «Для ввода данных»), то доступ к такому объекту осуществляется через атрибут контекста формы отчета (обработки) Таблица.

Атрибуты и методы объекта «Таблица» описаны в разделе «Работа с таблицами» и позволяют в программном модуле управлять процессом формирования и визуального отображения таблицы в целом, а также изменять свойства визуального отображения отдельных областей таблицы.

В тексте программного модуля через точку после имени атрибута «Таблица» можно записывать адреса областей таблицы, а далее через точку можно вызывать методы управления свойствами этих областей.

Пример:

Таблица.ИсходнаяТаблица("price");

Таблица.Вывести();

Таблица.ТолькоПросмотр(0);

Таблица.Показать("Каталог", "Catalog.mxl");

Таблица.ТолькоПросмотр(1);

Пример:

ВыбОбласть = Таблица.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.ЦветФона(34, 126, 211);

См. также: разд. «Работа с таблицами»

<ИмяОбласти>

Возвращает или задает значение, записанное в именованной области таблицы в режиме ввода данных.

Синтаксис:

<ИмяОбласти>

Имя области таблицы, как она задана в табличном документе.

Описание:

Атрибут <ИмяОбласти> позволяет обращаться к значениям, записанным в поименованных областях таблицы в режиме ввода данных. Для обращения к значению конкретной области следует указать имя этой области, заданный в конфигураторе.

Данный атрибут существует и доступен в форме, если при конфигурировании данной формы в свойствах формы выбраны опция «Использовать таблицу» — «Для ввода данных». Установка данной опции в свойствах формы означает наличие у данной формы таблицы в режиме ввода данных. В процессе конфигурирования в таблице можно задать любое число выделенных и поименованных областей.

Доступ к данному атрибуту возможен только в контексте Модуля формы отчета или обработки.

Замечание: Данный атрибут работает на чтение только в том случае, если в качестве области таблицы помечена одна единственная ячейка.

Пример:

* В диалоге формы есть элемент диалога ВыбКод. В форме использована таблица в режиме ввода данных. Одна из ячеек таблицы помечена как область с именем «ВыбранныйКлиент». В этом случае в модуле формы можно задать значение данной области.

Клн = СоздатьОбъект("Справочник.Клиенты");

Клн.НайтиПоКоду(ВыбКод, 0);

ВыбранныйКлиент = Клн.ТекущийЭлемент();

См. также: разд. «Работа с таблицами»

РасположениеФайла

Определить, где располагается данный внешний отчет.

Синтаксис:

РасположениеФайла(<Путь>, <Имя>)

Англоязычный синоним:

FilePath

Параметры:

<Путь> | Идентификатор переменной, куда метод возвращает путь к файлу, где располагается данный внешний отчет.
<Имя> | Идентификатор переменной, куда метод возвращает имя файла, где располагается данный внешний отчет.

Возвращаемое значение:

Строковое значение полного имени (вместе с путем) файла, где располагается данный внешний отчет.

Описание:

Метод РасположениеФайла позволяет узнать, где располагается данный внешний отчет.

Замечание. Данный метод следует использовать только в модуле формы внешнего отчета.

Пример:

Имя = "";

Путь = "";

ПолноеИмя = РасположениеФайла(Путь, Имя);

Предопределенные процедуры модуля формы отчета (обработки)

Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. «Системные предопределенные процедуры».

ВводНового

Предопределенная процедура при открытии формы отчета (обработки) или при восстановлении сохраненной настройки отчета (обработки).

Синтаксис:

ВводНового()

Англоязычный синоним:

InputNew

Описание:

При работе с формой отчета у пользователя существует возможность сохранять и восстанавливать настройки отчета — содержимое реквизитов диалога формы. Предопределенная процедура ВводНового вызывается и в вомент открытия формы и в момент восстановления значений настройки. Это позволяет контролировать содержимое реквизитов диалога во всех случаях их изменения системой.

Пример:

Процедура ВводНового()

   ДатаНач = РабочаяДата();

   ДатаКон = РабочаяДата();

КонецПроцедуры

См. также: СтатусВоз врата

ПриОткрытии

Предопределенная процедура при открытии формы отчета (обработки).

Синтаксис:

ПриОткрытии(<ФлагЧтенияНастройки>)

Англоязычный синоним:

OnOpen

Параметры:

<ФлагЧтенияНастройки>

Числовое значение — признак считывания сохраненной настройки отчета (обработки). Может принимать значения:

1 — при открытии формы была восстановлена последняя сохраненная настройка отчета (обработки);

0 — при открытии формы настройка не восстановлена.

Описание:

Форма любого отчета или обработки в системе 1С:Предприятие обязательно содержит экранный диалог. В диалоге могут размещаться элементы для задания различных параметров построения отчета или выполнения обработки. При Использовании отчета (обработки) набор параметров, использованных при формировании отчета или выполнения обработки, можно запомнить, а при следующем использовании этого же отчета (обработки) — восстановить. Для выполнения этих операций существуют команды в меню «Действия» системы 1С:Предприятие.

Набор параметров формирования отчета или выполнения обработки называется настройкой отчета (обработки). Последняя сохраненная настройка автоматически восстанавливается системой 1С:Предприятие, при вызове отчета (обработки).

Вызов предопределенной процедуры ПриОткрытии производится самой системой 1С:Предприятие неявно при интерактивном открытии отчета (обработки). Параметр <ФлагЧтенияНастройки> позволяет определить, была ли при открытии отчета (обработки) восстановлена сохраненная настройка.

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю запрещено формировать выбранный отчет), открытие формы не будет выполнено.

Пример:

Процедура ПриОткрытии(ФлагСохрНастр)

   Если ФлагСохрНастр = 0 Тогда

      ВыбВалюта = Константа.ОснВалюта;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


Part31

Глава 31
Работа с Таблицами

Для работы с табличными документами в системе используется специальный агрегатный тип данных «Таблица». Основным назначением табличного документа в системе 1С:Предприятие является создание печатных форм отчетов и первичных документов.

Печатные формы формируются при помощи встроенного языка с использованием агрегатного объекта «Таблица», создаваемого функцией СоздатьОбъект. Наиболее типичным способом заполнения табличного документа является включение в него секций. Для этого используется исходный табличный документ, который может располагаться в той же форме, в тексте программного модуля которого создан агрегатный объект «Таблица». Кроме того, исходная таблица может располагаться и в общих таблицах конфигурации и во внешнем файле. Назначение исходного табличного документа выполняется методом объекта «Таблица» — ИсходнаяТаблица.

Исходная таблица является заготовкой, содержащей текстовые фрагменты отчета, рамки, рисунки и т. д. Исходная таблица может быть включена в создаваемый отчет целиком. Однако часто необходимо включать в отчет отдельные фрагменты заготовки в определенной последовательности. Например, при печати накладной, нужно один раз вывести шапку и много раз вывести строку документа. Для этого части исходной таблицы выделяются в виде фрагментов-секций. Метод ВывестиСекцию позволяет включить выделенный фрагмент исходной таблицы в формируемый табличный документ.

В ячейках исходной таблицы может размещаться обычный текст или выражение встроенного языка 1С:Предприятия. При включении в табличный документ секции исходной таблицы автоматически происходит вычисление всех выражений и в табличный документ уже включается секция, содержащая результаты этих вычислений. Таким образом, происходит заполнение включаемых секций конкретными данными. Описанный способ, с одной стороны, позволяет наиболее наглядным образом визуально в исходной таблице спроектировать внешний вид и содержание отчета, а с другой, позволяет достаточно просто включать подготовленные фрагменты в заполняемый табличный документ.

Приведем пример формирования таким способом печатной формы документа.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("ПечатьСчета");

Таб.ВывестиСекцию("Шапка");

ВыбратьСтроки();

Пока ПолучитьСтроку() = 1 Цикл

   Таб.ВывестиСекцию("Строка");

КонецЦикла;

Таб.Показать();

В приведенном примере в ячейках секций "Шапка" и "Строка" исходной таблицы располагаются выражения выдающие различные реквизиты документа.

Существует другой способ заполнения данными включаемых секций. Этот способ отличается от описанного тем, что в секциях ячеек не задаются выражения. Заполнение секции данными описывается прямо в алгоритме программного модуля. Для этого секция сначала выбирается из исходной таблицы, затем в ней заполняются значениями ячейки, в которых должны выводиться данные, а затем секция включается в табличный документ. Для получения секции из исходной таблицы используется метод ПолучитьСекцию. Полученная секция запоминается в переменной как специальный объект типа «СекцияТаблицы». Для того, чтобы в этом объекте можно было заполнять отдельные ячейки им нужно предварительно задать имена в исходной таблице. У объекта «СекцияТаблицы» отдельные именованные ячейки являются атрибутами, имеющими тип «ОбластьТаблицы» (область может содержать и несколько ячеек). Заполнение ячеек выполняется присвоением атрибуту "Текст" объекта «ОбластьТаблицы» необходимых значений.

Приведем пример формирования табличного документа этим способом.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("ПечатьСчета");

Шапка = Таб.ПолучитьСекцию("Шапка");

Шапка.Клиент.Текст = Контрагент;

Шапка = Таб.ВывестиСекцию(Шапка);

......

ВыбратьСтроки();

Пока ПолучитьСтроку () = 1 Цикл

   Строка = Таб.ПолучитьСекцию("Строка");

   Строка.Товар.Текст = Товар;

   ......

   Строка = Таб.ВывестиСекцию(Строка);

КонецЦикла;

Таб.Показать();

Этот способ может применяться в отдельных случаях для ускорения заполнения табличного документа, если для заполнения данными используются достаточно сложные выражения. Кроме того, этот способ позволяет манипулировать при включении секций различными свойствами ячеек. Например, можно для отдельных ячеек устанавливать жирный шрифт.

Кроме описанных способов существует способ заполнения табличного документа путем непосредственного обращения к ячейкам таблицы без использования в качестве заготовки исходной таблицы. Для этого используется метод Область, позволяющий по координатам строки и столбца исходной таблицы получить объект типа «ОбластьТаблицы». Атрибуты и методы этого объекта позволяют задать содержимое и элементы оформления ячеек (текст, цвета, рамки и т. д.).

Приведем фрагмент примера печати документа этим способом.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Область(2, 3).Текст = Контрагент;

......

ВыбратьСтроки();

Пока ПолучитьСтроку() = 1 Цикл

   Таб.Область(НомерСтроки + 3, 3).Текст = Товар;

   ......

КонецЦикла;

Таб.Показать();

Этот способ используется в основном для создания универсальных отчетов, для которых невозможно определить заранее их внешний вид. Заметим, что такой способ является наиболее трудоемким с точки зрения написания алгоритма.

Во всех описанных способах основным содержанием ячеек таблицы является текст. При заполнении ячеек все данные преобразуются к текстовому виду. Кроме того, у ячейки может заполняться значение расшифровки. Это дополнительная возможность, которая никак не влияет на внешний вид таблицы при просмотре и печати, а используется для создания связанных отчетов и открытия различных объектов, отображаемых в отчете. При просмотре сформированного отчета в режиме «только просмотр», при подведении курсора к ячейке, у которой заполнено значение расшифровки, курсор принимает форму крестика с лупой и при двойном щелчке мышью или нажатии клавиши <Enter> выполняется отработка значения расшифровки.

Стандартный механизм расшифровки позволяет открыть объект (документ, элемент справочника, счет). Кроме того, использование специальной предопределенной процедуры позволяет определить в модуле формы специальные действия по отработки расшифровки, например построение детализирующего отчета.

Заполнение значения расшифровки при включении секций из исходной таблицы выполняется автоматическим вычислением значения выражения указанного в поле «Расшифровка» закладки «Текст» свойств ячейки. При использовании двух других описанных способов значение расшифровки может быть заполнено с помощью метода Расшифровка объекта типа «ОбластьТаблицы».

Заметим, что указанием "#" в поле «Расшифровка» закладки «Текст» или параметра метода Расшифровка можно включить режим, при котором расшифровка будет действовать на всю строку таблицы, что позволит избежать Дублирования значений для нескольких ячеек и, тем самым, избежать излиш-иих затрат времени при формировании отчета на вычисление выражений расшифровки.

Описанный выше способ заполнения табличного документа созданного функцией СоздатьОбъект открывает табличный документ в отдельном окне при использовании метода Показать. Кроме того, при настройке формы отчета (обработки), существует возможность табличный документ разместить непосредственно в форме. Для этого в диалоге, вызываемом пунктом «Свойства формы» меню «Действия» в параметре «Использовать таблицу» выбирается вариант «Пустую». В этом случае при открытии формы непосредственно в ней размещается табличный документ. Он может заполняться так же, как и табличный документ, созданный функцией СоздатьОбъект. Для доступа к такой таблице используется атрибут контекста формы отчета (обработки) Таблица.

Кроме описанного использования табличного документа для вывода сформированных печатных форм, существует возможность использования табличного документа в специальном режиме для ввода данных. Этот режим доступен только в формах отчета (обработки). Данный режим использования табличного документа включается через свойства формы (вызов свойств формы выполняется из меню «Действия» пунктом «Свойства формы» в параметре «Использовать таблицу» выбирается вариант «Для ввода данных»).

Режим ввода данных позволяет совместить в одной форме отчета (обработки) диалог формы вместе с табличным документом или вовсе заменить диалог табличным документом. Этот режим предполагает обязательное наличие созданной в форме отчета (обработки) таблицы, которая выбирается в свойствах формы, как используемая для ввода данных. В этом режиме в свойствах ячеек табличного документа появляется дополнительная закладка, на которой определяется тип данных хранимых ячейкой, аналогично элементу диалога формы. Для ячеек, в которых предполагается вводить данные, в закладке «Текст» выключается признак «Защита». При открытии формы с установленным свойством использование таблицы для ввода данных, указанная таблица размещается в окне формы и пользователю предоставляется возможность интерактивно вводить значения ячеек, предназначенных для ввода, аналогично вводу в поля диалога.

Работа в режиме ввода данных имеет ряд особенностей с точки зрения обращения к таблице средствами встроенного языка. Прежде всего, доступ к используемой для ввода данных таблице в модуле формы отчета (обработки) осуществляется с помощью ключевого слова "Таблица". Кроме того, в модуле формы возможно непосредственное обращение к значениям именованных ячеек таблицы по их именам. При обращении к области таблицы, используемой в режиме ввода данных, кроме обычных атрибутов используется атрибут "Значение", также предоставляющий доступ к значению ячейки. При этом тип значения определяется типом, выбранным в закладке свойств ячейки «Данные».

Для таблицы, используемой для ввода, в свойствах ячеек данных задаются-формулы. Для ячеек, предназначенных для ввода, формула выполняется после ввода значений, как у реквизитов диалога и используется обычно для вызова процедуры заполнения других ячеек. У ячеек имеющих признак «Защита» формула является выражением и вычисляет собственно значение ячейки как у элементов диалога типа «Текст».

Применение табличного документа для ввода данных используется в специальных случаях, например, когда необходимо ввести большое количество данных или необходимо, чтобы форма ввода была оформлена с использованием разнообразных шрифтов, рамок, картинок и т. п.

Контекст работы с таблицами

Объект типа «Таблица» создается функцией СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной.

Для создания объекта типа «Таблица» в качестве параметра функции СоздатьОбъект передается ключевое слово "Таблица".

Англоязычный синоним ключевого слова Таблица — Table.

Пример:

// Подготовка к заполнению выходных форм

Таб = СоздатьОбъект("Таблица");

Пока Запрос.Группировка("Сотр") = 1 Цикл

   // Заполнение полей Сотр

   Таб, ВывестиСекцию("РЛ<");

   Пока Запрос.Группировка("Расч") = 1 Цикл

      // Заполнение полей Расч

      Таб.ВывестиСекцию("ОТ");

   КонецЦикла;

   Таб.ВывестиСекцию("РЛ>");

КонецЦикла;

// Вывод заполненной формы

Таб.Опции(0, 0, 0, 0);

Таб.ТолькоПросмотр(1);

Таб.Показать("Результат");

При настройке формы отчета (обработки), если табличный документ размещен непосредственно в форме (для этого в диалоге, вызываемом пунктом «Свойства формы» меню «Действия» в параметре «Использовать таблицу» выбирается вариант «Пустую»), то доступ к такому объекту осуществляется через атрибут контекста формы отчета (обработки) Таблица.

Атрибуты таблиц

ТекущийОбъект

Значение встроенного объекта таблицы.

Синтаксис:

ТекущийОбъект

Англоязычный синоним:

CurrentObj

Описание:

Атрибут (только для чтения) ТекущийОбъект содержит значение встроенного объекта таблицы типа «Картинка», «Диаграмма» или «OLE объект». Он доступен только в выражении (и в теле процедур, которые вызываются в выражении), которое записывается в конфигураторе в свойствах встроенного объекта таблицы типа «Картинка», «Диаграмма» или «OLE объект» («Свойства» — «Дополнительныо» — «Текст»). Этот атрибут позволяет использовать в программном модуле полученное значение объекта для манипуляции с ним. Например, для взаимодействия с внешним приложением через механизм OLE Automation.

Пример:

* Допустим, в таблицу для построения диаграммы внедрен OLE-объект «MicrosoftGraf97». В свойствах этого объекта («Свойства» — «Дополнительные» — «Текст») в конфигураторе записано выражение:

ПостроитьГрафик(Таб.ТекущийОбъект, Запрос)

в программном модуле, в процедуре ПостроитьГрафик, можно записать алгоритм построения графика, непосредственно управляя внешним приложением MicrosoftGraf97.

Процедура ПостроитьГрафик(График, Запрос)

   Datasheet = График.Application.Datasheet;

   XCounter = 2;

   YCounter = 2;

   Пока Запрос.Группировка("Клиент") = 1 Цикл

      Если Запрос.Клиент.ЭтоГруппа() = 1 Тогда

         Продолжить;

      КонецЕсли;

      range = Datasheet.Cells(1, XCounter);

      range.Value = Запрос.Клиент.Наименование;

      Пока Запрос.Группировка("Товар") = 1 Цикл

         range = Datasheet.Cells(YCounter, 1);

         range.Value = Запрос.Товар.Наименование;

         range = Datasheet.Cells(YCounter, XCounter);

         range.Value = Запрос.ПродСум;

         YCounter = YCounter+1;

      КонецЦикла;

      YCounter = 2;

      XCounter = XCounter+l;

   КонецЦикла;

КонецПроцедуры

Замечание. Следует отметить, что в процессе конфигурирования, когда в таблицу внедряется объект, он может быть визуально предварительно полностью настроен. В данном примере, при внедрении «MicrosoftGraf97» ему установили все параметры требуемой диаграммы: размеры, вид, необходимые надписи и т. п. Атрибут ТекущийОбъект содержит объект таким, как он настроен в конфигураторе, поэтому в режиме исполнения ему достаточно только передать актуальные данные для работы.

См. также: «Работа с Диаграммами», «Связь с внешними приложениями посредством механизмов OLE Automation»

Методы таблиц

ИсходнаяТаблица

Переназначить исходную таблицу.

Синтаксис:

ИсходнаяТаблица(<Строка>)

Англоязычный синоним:

SourceTable

Параметры:

<Строка>

Строковое выражение, содержащее имя исходной таблицы формы, определенное в конфигураторе, или имя файла, содержащего таблицу.

Описание:

Метод ИсходнаяТаблица переназначает в качестве исходной таблицы-шаблона одну из таблиц той формы, в программном модуле которой запущена данная процедура. Имя таблицы сначала ищется в форме модуля, потом в общих таблицах. Если такой таблицы нет, то переданное имя будет рассматриваться как имя файла, содержащего данную таблицу.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("price");

Таб.Вывести();

Таб.ТолькоПросмотр(0);

Таб.Показать("Каталог", "Catalog.mxl");

Таб.ТолькоПросмотр(1);

ИспользоватьФормат

Устанавливает стандартный формат по умолчанию для вывода всех выражений выводимых секций таблицы.

Синтаксис:

Использоватьформат(<СтрокаФормата>)

Англоязычный синоним:

DefaultFormat

Параметры:

<СтрокаФормата>

Необязательный параметр. Строковое выражение, содержащее форматную строку (см. Формат).

Возвращаемое значение:

Строковое значение, содержащее текущую форматную строку по умолчанию для таблицы (на момент до исполнения метода).

Описание:

Метод Использоватьформат устанавливает стандартный формат по умолчанию для вывода всех выражений выводимых секций таблицы. В ячейках таблицы, при выводе которых требуется формат, отличный от установленного методом ИспользоватьФормат, должен быть установлен формат явным образом. Форматная строка записывается через символ "#" после выражения, заданного для ячейки. Если выражение, заданное для ячейки просто завершается символом "#", то будет использоваться системный формат по умолчанию.

Пример:

Таб.ИспользоватьФормат("415.2");

Открыть

Открыть таблицу из файла.

Синтаксис:

Открыть(<ИмяФайла>)

Англоязычный синоним:

Open

Параметры:

<ИмяФайла>

Строковое выражение с именем файла.

Описание:

Метод Открыть открывает таблицу из файла с именем <ИмяФайла>.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("\v7\db\src.mox");

Таб.Показать();

Вывести

Перенести всю исходную таблицу-шаблон в результирующую таблицу.

Синтаксис:

Вывести()

Англоязычный синоним:

Put

Описание:

Метод Вывести целиком переносит исходную таблицу-шаблон в результирующую таблицу.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("catalog");

Таб.Вывести();

Таб.ТолькоПросмотр(0);

Таб.Показать("Каталог", "catalog.mxl");

Таб.ТолькоПросмотр(1);

ПолучитьСекцию

Получить значение секции исходной таблицы.

Синтаксис:

ПолучитьСекцию(<ИмяСекции>)

Англоязычный синоним:

GetSection

Параметры:

<ИмяСекции>

Выражение типа строка, задающее имя секции.

Возвращаемое значение:

Объект типа секция.

Описание:

Метод ПолучитьСекцию возвращает именованную секцию исходной таблицы-шаблона. При получении секции, ячейки секции, имеющие тип «Шаблон» и «Выражение» будут заполнены соответствующими данными. Имя секции задается строковым выражением следующего формата:

ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]

Символы "<" , ">" , "-" после идентификатора секции указывают на то, что выбирается только часть секции:

< | заголовочная часть (с начала секции до начала вложенной секции).
> | подвальная часть (с конца вложенной секции до конца секции).
— | средняя часть (собственно вложенная секция).

В выражении <ИмяСекции> можно задавать имена двух секций, разделенных знаком "|". При этом будет получена область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая — вертикальной (состоять из колонок). В результате получится прямоугольная область таблицы.

Пример:

//Выводим секцию таблицы

Секция = Таб.ПолучитьСекцию("Документ<|ДокументВерт<");

Таб.ВывестиСекцию(Секция);

ВывестиСекцию

Перенести секцию исходной таблицы-шаблона в результирующую таблицу.

Синтаксис:

ВывестиСекцию(<Секция>)

Англоязычный синоним:

PutSection

Параметры:

<Ceкция>

Выражение типа строка, задающее имя выводимой секции, или значение типа секция, полученное при помощи метода ПолучитьСекцию.

Описание:

Метод ВывестиСекцию выполняет перенос именованной секции из исходной таблицы-шаблона в результирующую таблицу. Имя секции задается строковым выражением следующего формата:

ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]

Символы "<" , ">" , "-" после идентификатора секции указывают на то, что выбирается только часть секции:

< | заголовочная часть (с начала секции до начала вложенной секции).
> | подвальная часть (с конца вложенной секции до конца секции).
— | средняя часть (собственно вложенная секция).

В выражении <Секция> можно задавать имена двух секций, разделенных знаком "|". При этом перенесена будет область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая — вертикальной (состоять из колонок). В результате перенесется прямоугольная область таблицы.

Если в качестве параметра метода задано строковое значение имени секции, то при переносе ячейки таблицы, имеющие тип «Шаблон» и «Выражение», будут заполнены соответствующими данными.

Метод ВывестиСекцию помещает новую секцию со следующей строки вслед за последней выведенной секцией, начиная с первой колонки.

Пример:

//Выводим заглавие таблицы

Таб.ВывестиСекцию("Документ<|ДокументВерт<");

Пока ЗапросКат.Группировка("Ктг") = 1 Цикл

   Таб.ПрисоединитьСекцию("Документ<|Осн2");

КонецЦикла;

Таб.ПрисоединитьСекцию("Документ<|ДокументВерт>");

//Выводим колонтитул таблицы

Таб.ВывестиСекцию("КолонТитул|ДокументВерт<");

Пока 3апросКат.Группировка("Ктг") = 1 Цикл

   Таб.ПрисоединитьСекцию("КолонТитул|Осн2");

КонецЦикла;

Таб.ПрисоединитьСекцию("КолонТитул|ДокументВерт>");

Продолжать = 1;

Пока Запрос.Группировка("Пдр") = 1 Цикл

   // Заполнение полей

   Пдр Таб.ВывестиСекцию("Осн1|ДокументВерт<");

   Далее = 1;

   Пока Продолжать = 1 Цикл

      // Заполнение полей Ктг

      СлКат = ЗапросКат.Группировка("Ктг");

      Если Далее = 1 Тогда

         ОК = Запрос.Группировка("Ктг");

      КонецЕсли;

      Если СлКат = 0 Тогда

         Прервать;

      КонецЕсли;

      Если ЗапросКат.Ктг = Запрос.Ктг Тогда

         Таб.ПрисоединитьСекцию("Осн1|Осн2");

         Далее = 1;

      Иначе

         Таб.ПрисоединитьСекцию("Осн1|Пусто");

         Далее = 0;

      КонецЕсли;

   КонецЦикла;

   Таб.ПрисоединитьСекцию("Осн1|ДокументВерт>");

КонецЦикла;

ПрисоединитьСекцию

Присоединить секцию исходной таблицы-шаблона к результирующей таблице.

Синтаксис:

ПрисоединитьСекцию(<Секция>)

Англоязычный синоним:

AttachSection

Параметры:

<Секция> Выражение типа строка, задающее имя выводимой секции, или значение типа секция, полученное при помощи метода ПолучитьСекцию.

Возвращаемое значение: Нет.

Описание:

Метод ПрисоединитьСекцию выполняет присоединение именованной секции из исходной таблицы-шаблона к результирующей таблице. Имя секции задается строковым выражением следующего формата:

ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]

Символы "<" , ">" , "-" после идентификатора секции указывают на то, что выбирается только часть секции:

< | заголовочная часть (с начала секции до начала вложенной секции).
> | подвальная часть (с конца вложенной секции до конца секции).
— | средняя часть (собственно вложенная секция).

В выражении <Секция> можно задавать имена двух секций, разделенных знаком "|". При этом перенесена будет область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая — вертикальной (состоять из колонок). В результате перенесется прямоугольная область таблицы.

Если в качестве параметра метода задано строковое значение имени секции, то при переносе ячейки таблицы, имеющие тип «Шаблон» и «Выражение», будут заполнены соответствующими данными.

Метод ПрисоединитьСекцию помещает новую секцию в следующей колонке, правее последней ранее выведенной секции. При этом секция, передаваемая в качестве параметра метода ПрисоединитьСекцию, должна иметь прямоугольную форму, т. е. задаваться как пересечение горизонтальных и вертикальных секций.

Пример:

См. предыдущий пример.

НоваяСтраница

Вставить в результирующую таблицу разделитель страниц.

Синтаксис:

НоваяСтраница(<Ном>)

Англоязычный синоним:

NewPage

Параметры:

<Ном>

Необязательный параметр. Номер строки, после которой начинать новую страницу. Если параметр не указан, то новая страница вставляется по текущей высоте таблицы.

Описание:

Процедура НоваяСтраница вставляет в результирующую таблицу разделитель страниц.

Пример:

Таб.НоваяСтраница();

НоваяКолонка

Вставить в результирующую таблицу разделитель колонок.

Синтаксис:

НоваяКолонка(<Ном>)

Англоязычный синоним:

NewColumn

Параметры:

<Ном>

Необязательный параметр. Номер столбца, после которого начинать новую колонку. Если параметр не указан, то новая колонка вставляется по текущей ширине таблицы.

Описание:

Метод НоваяКолонка вставляет в результирующую таблицу разделитель колонок.

Пример:

Таб.НоваяКолонка();

ЩиринаТаблицы

Определить текущую ширину результирующей таблицы.

Синтаксис:

ЩиринаТаблицы()

Англоязычный синоним:

TableWidth

Возвращаемое значение:

Числовое значение, содержащее количество столбцов в результирующей таблице.

Описание:

Метод ШиринаТаблицы позволяет определить текущее количество столбцов в результирующей таблице.

Пример:

Шир = Таб.ШиринаТаблицы();

ВысотаТаблицы

Определить текущую высоту результирующей таблицы.

Синтаксис:

ВысотаТаблицы()

Англоязычный синоним:

TableHeight

Возвращаемое значение:

Числовое значение, содержащее количество строк в результирующей таблице.

Описание:

Метод ВысотаТаблицы позволяет определить текущее количество строк в результирующей таблице.

Пример:

Выс = Таб.ВысотаТаблицы();

ШиринаСекции

Определить ширину секции таблицы-шаблона.

Синтаксис:

ШиринаСекции(<ИмяСекции>)

Англоязычный синоним:

SectionWidth

Параметры:

<ИмяСекции>

Строковое выражение — название секции таблицы.

Возвращаемое значение:

Числовое значение, содержащее количество столбцов в секции таблицы-шаблона.

Описание:

Метод ШиринаСекции позволяет определить количество столбцов в секции таблицы-шаблона.

Пример:

ШирС = Таб.ШиринаСекции("БоковикОтчета");

ВысотаСекции

Определить высоту секции таблицы-шаблона.

Синтаксис:

ВысотаСекции(<ИмяСекции>)

Англоязычный синоним:

SectionHeight

Параметры:

<ИмяСекции>

Строковое выражение — название секции таблицы.

Возвращаемое значение:

Числовое значение, содержащее количество строк в секции таблицы-шаблона.

Описание:

Метод ВысотаСекции позволяет определить количество столбцов в секции таблицы-шаблона.

Пример:

ВысС = Таб.ВысотаСекции("ШапкаОтчета");

ТолькоПросмотр

Установить режим редактирования таблицы.

Синтаксис:

ТолькоПросмотр(<Режим>)

Англоязычный синоним:

Readonly

Параметры:

<Режим>

Необязательный параметр. Числовое выражение — режим редактирования: 1 — только просмотр, 0 — допускается редактирование.

Возвращаемое значение:

Текущее числовое значение режима редактирования таблицы (на момент до исполнения метода).

Описание:

Метод ТолькоПросмотр устанавливает флаг возможности редактирования таблицы в окне. Данный метод должен вызываться до вызова метода Показать. По умолчанию, для табличных документов устанавливается режим с возможностью редактирования.

Замечание: Режим «только просмотр» позволяет воспринимать сгруппированные ячейки таблицы как единое целое и использовать фиксацию шапки и боковика таблицы при просмотре. Таким образом данный режим рекомендуется для отчетов, которые предназначены в основном для просмотра и печати.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("catalog.txt");

Таб.ТолькоПросмотр(0);

Таб.Показать("Редактирование Прайс-листа", "price.txt");

Очистить

Очищает содержимое табличного документа.

Синтаксис:

Очистить()

Англоязычный синоним:

Clear

Описание:

Метод Очистить очищает текущее содержимое-табличного документа. Его использование позволяет заново заполнить содержимое табличного документа уже открытого в окне методом Показать. Использование данного метода имеет смысл, если сам объект типа «Таблица» не уничтожался после первого заполнения.

Пример:

* Модуль отчета позволяет выводить отчет заново в уже открытое окно.

Перем Таб;

Процедура Сформировать()

   Таб.Очистить();

   Таб.ВывестиСекцию("Отчет");

   Таб.Показать();

КонецПроцедуры

Таб=СоздатьОбъект("Таблица");

Показать

Открыть окно табличного документа.

Синтаксис:

Показать([<3аголовок>], [<ИмяФайла>], [<Активизировать>])

Англоязычный синоним:

Show

Параметры:

<Заголовок> | Необязательный параметр. Строковое выражение — заголовок окна табличного документа.
<ИмяФайла> | Необязательный параметр. Строковое выражение — имя файла для сохранения табличного документа.
<Активизировать> | Необязательный параметр. Числовое выражение — признак активизации. Может принимать значения: 1 — активизировать окно табличного документа; 0 — не активизировать окно табличного документа; -1 (минус единица) — закрыть окно если оно открыто. Значение по умолчанию: 1.

Описание:

Метод Показать открывает окно с табличным документом для просмотра и редактирования.

Параметр <Заголовок> позволяет задать заголовок окна, содержащего табличнй документ. Если параметр не указан, в заголовке будет выдаваться слово «Таблица».

Если указан параметр <ИмяФайла>, то при закрытии окна табличного документа система 1С:Предприятие будет предлагать сохранить документ в файл с указанным именем. Если файла с именем <ИмяФайла> не существует, будет создан новый файл с таким именем.

Если параметр <ИмяФайла> опущен или имеет пустое значение, то при закрытии окна табличного документа система 1С:Предприятие не будет предлагать сохранить данные в файл. Это имеет смысл для документов, которые формируются только для просмотра или печати, и их не обязательно записывать в файл. Вместе с этим, пользователь в любом случае может записать табличный документ в файл, используя команды «Сохранить» и «Сохранить как» из меню «Файл» главного меню системы 1С:Предприятие.

Параметр <Активизировать> позволяет регулировать активизацию окна табличного документа при вызове метода Показать. Если значение параметра — 0 , то окно открывается, но не становится активным.

Пример:

* Создается объект типа «Таблица» для работы с табличными документами, Открывается табличный документ, находящийся в файле SRC.MOX .

// Для работы с табличными документами создаем

// объект типа "Таблица"

Таб = СоздатьОбъект("Таблица");

// Открываем табличный документ из файла

Таб.Открыть("\v7\db\src.mox");

// Показ табличного документа

Таб.Показать();

Защита

Защитить таблицу от изменений.

Синтаксис:

Защита(<Флаг>)

Англоязычный синоним:

Protection

Параметры:

<Флаг>

Необязательный параметр. Числовое выражение — флаг защиты: 1 — установить защиту; 0 — снять защиту. Значение по умолчанию — 1.

Возвращаемое значение:

Текущее значение флага защиты таблицы (на момент до исполнения метода).

Описание:

Метод Защита предназначен для установки режима полной защиты таблицы от редактирования и копирования (в том числе через буфер обмена). Если не использовать метод Защита, то таблица выводится в незащищенном режиме.

Пример:

Таб.3ащита(1);

Записать

Записать таблицу в файл.

Синтаксис:

Записать(<ИмяФайла>, <ТипФайла>)

Англоязычный синоним:

Write

Параметры:

<ИмяФaйлa> | Строковое выражение с именем файла.
<ТипФайла> | Необязательный параметр. Числовое или строковое выражение, определяющее тип файла. · отсутствует, 0 или "MXL" — формат 1С; · 1 или "XLS" — формат MS Excel · 2 или "НТМ" или "HTML" — формат HTML; · 3 или "ТХТ" — формат ТХТ.

Описание:

Метод Записать записывает таблицу в файл с именем <ИмяФайла>.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

Таб.Записать("tabl_2.mxl");

Таб.Записать("tabl_2", "XLS");

ЗначениеТекущейЯчейки

Возвращает вычисленное значение, записанное в ячейку таблицы.

Синтаксис:

ЗначениеТекущейЯчейки(<Адрес>)

Англоязычный синоним:

ValueOfCurrentCell

Параметры:

<Адрес>

Необязательный параметр. Идентификатор переменной, куда система возвратит адрес текущей ячейки в формате «RnCn».

Возвращаемое значение:

Значение, записанное в ячейку таблицы.

Описание:

Метод ЗначениеТекущейЯчейки возвращает значение, записанное в ячейку таблицы путем вычисления выражения, заданного в конфигураторе («Свойства» ячейки — закладка «Текст» — поле «Значение»).

Замечание. Для того, чтобы иметь доступ к этому методу, необходимо, чтобы переменная, содержащая таблицу, была объявлена как переменная модуля, а не локальная переменная процедуры. В этом случае во всех процедурах программного модуля вы сможете использовать данный метод и, на основании значения текущей ячейки, формировать, например, более подробные отчеты.

Пример:

Док = Таб.ЗначениеТекущейЯчейки();

См. также: ЗначениеВСтрокуВнутр, ЗначениеИзСтрокиВнутр

Область

Возращает Область выходной таблицы.

Синтаксис 1:

Область(<Адрес>)

Синтаксис 2:

Область(<R1>, <С1>, <R2>, <С2>)

Англоязычный синоним:

Area

Параметры:

<Адрес> | Необязательный параметр. Строковое выражение, задающее имя области или адрес в формате «R1C1:R2C2».
<R1> | Необязательный параметр. Числовое выражение. Номер первой строки области.
<С1> | Необязательный параметр. Числовое выражение. Номер первого столбца области.
<R2> | Необязательный параметр. Числовое выражение. Номер последней строки области.
<С2> | Необязательный параметр. Числовое выражение. Номер последнего столбца области.

Возвращаемое значение:

Значение типа «ОбластьТаблицы».

Описание:

Функция Область возвращает значение области выходной таблицы или таблицы в режиме ввода данных. Если последняя строка и последний столбец отсутствуют, то область задана единственной ячейкой. Если строки или столбцы отсутсвуют, то область задана диапазоном столбцов или строк соответственно. Если метод вызван без параметров, то область задана всей таблицей.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R1C1:R8C16");

ПовторятьПриПечатиСтроки

Задать строки результирующей таблицы, повторяющиеся при печати в начале каждой страницы.

Синтаксис:

ПовторятьПриПечатиСтроки(<НачСтрока>, <КонСтрока>)

Англоязычный синоним:

RepeatRowsWhilePrinting

Параметры:

<НачСтрока> | Числовое выражение — номер первой строки повторения.
<КонСтрока> | Числовое выражение — номер последней строки повторения.

Описание:

Метод ПовторятьПриПечатиСтроки позволяет задать строки результирующей таблицы, повторяющиеся при печати в начале каждой страницы.

Пример:

Таб.ПовторятьПриПечатиСтроки(1, Таб.ВысотаСекции("ШапкаОтчета"));

ПовторятьПриПечатиСтолбцы

Задать столбцы результирующей таблицы, повторяющиеся при печати на каждой странице слева.

Синтаксис:

ПовторятьПриПечатиСтолбцы(<НачСтолбец>, <КонСтолбец>)

Англоязычный синоним:

RepeatColsWhilePrinting

Параметры:

<НачСтолбец> | Числовое выражение — номер первого столбца повторения.
<КонСтолбец> | Числовое выражение — номер последнего столбца повторения.

Описание:

Метод ПовторятьПриПечатиСтолбцы позволяет задать столбцы результирующей таблицы, повторяющиеся при печати на каждой странице слева.

Пример:

Таб.ПовторятьПриПечатиСтолбцы(1, Таб.ШиринаСекции("БоковикОтчета"));

Опции

Установить флаги вывода сетки, заголовков, фиксации строк и столбцов, опции печати

Синтаксис:

Опции(<ВыводСетки>, <ВыводЗаголовков>, <ФиксСтрок>, <ФиксСтолбцов>,

      <ИмяОпцийПечати>, <ИмяСохрРазмОкна>, <ФлагЧерноБелогоПросмотра>,

      <НаправлениеПерехода>)

Англоязычный синоним:

Options

Параметры:

<ВыводСетки> | Необязательный параметр. Числовое выражение — флаг вывода сетки: 1 — показывать, 0 не показывать. Значение по умолчанию — 1.
<ВыводЗаголовков> | Необязательный параметр. Числовое выражение — флаг вывода заголовков строк и столбцов: 1 — показывать, 0 не показывать. Значение по умолчанию — 1.
<ФиксСтрок> | Необязательный параметр. Числовое выражение — количество фиксируемых строк. Значение по умолчанию — 0.
<ФиксСтолбцов> | Необязательный параметр. Числовое выражение — количество фиксируемых столбцов. Значение по умолчанию — 0.
<ИмяОпцийПечати> | Необязательный параметр. Строковое выражение — идентификатор набора опций печати для данной таблицы. Значение по умолчанию — пустая строка — в этом случае используются системные опции печати по умолчанию.
<ИмяСохрРазмОкна> | Необязательный параметр. Строковое выражение — идентификатор сохраняемых параметров размеров окна. Если этот параметр указан, то система будет сохранять размер окна и использовать его при следующем открытии табличного документа. Фактически, указывая этот параметр можно указать системе режим сохранения и восстановления размеров окна для данного табличного документа, который идентифицируется этой строкой. Параметр необязателен. Значение по умолчанию — пустая строка — в этом случае размеры окна не запоминаются.
<ФлагЧерноБелогоПросмотра> | Необязательный параметр. Число: 1 — чернобелый просмотр; 0 — обычный режим просмотра. Значение по умолчанию — 0.
<НаправлениеПерехода> | Необязательный параметр. Число: 1 — по строкам, т. е. при вводе данных в ячейки при нажатии клавиши <Enter> будет автоматически выполняться переход к следующей вводимой ячейке в этой строке, а если таковых нет, то в самой левой вводимой ячейке следующей строки; 2 — по столбцам, т. е. при вводе данных в ячейки при нажатии клавиши <Enter> будет автоматически выполняться переход к следующей вводимой ячейке в этом столбце, а если таковых нет, то в самой верхней вводимой ячейке следующего столбца; 3 — при вводе данных в ячейки автоматический переход при нажатии клавиши <Enter> выполняться не будет. Значение по умолчанию 1.

Описание:

Метод Опции позволяет перед показом таблицы установить флаги вывода сетки и вывода заголовков строк и столбцов, а также фиксацию строк и столбцов. Если перед отображением таблицы не использовать метод Опции, то для табличных документов устанавливается режим «только для чтения», а все флаги имеют значение 0.

Даный метод позволяет назначить для каждой таблицы свой собственный набор опций печати, который сохраняется в системе под именем <ИмяОпцийПечати>. Набор опций печати привязан к конкретному рабочему месту (компьютеру) и запоминается всякий раз, когда в режиме исполнения при открытом окне редактирования таблицы пользователь перенастраивает параметры настройки печати (главное меню — «Файл» — «Печать»).

Пример: Если при формировании отчетов в методе Опции используются уникальные имена для хранения настройки печати, то, например, для отчета «Прайс-лист» можно установить в параметрах печати ориентацию бумаги — «портрет», а для отчета «Оборотно-сальдовая ведомость» — «ландшафт». В дальнейшем, при формировании этих отчетов параметры печати будут настраиваться автоматически.

Пример:

//Вызов выходного отчета в окно просмотра и редактирования.

Таб.ТолькоПросмотр(1);

Таб.Опции(0, 0, 5, 0, "ОстаткиТоваров");

Таб.Показать("Остатки товаров на складах", "");

ОбластьПечати

Устанавливает из языка область печати табличного документа.

Синтаксис:

ОбластьПечати(<Верх>, <Лево>, <Низ>, <Право>)

Англоязычный синоним:

PrintRange

Параметры:

<Верх> | Числовое выражение — номер верхней строки таблицы, выводимой на печать.
<Лево> | Числовое выражение — номер крайнего левого столбца, выводимого на печать.
<Низ> | Числовое выражение — номер нижней строки таблицы, выводимой на печать.
<Право> | Числовое выражение — номер крайнего правого столбца, выводимого на печать.

Описание:

Метод ОбластьПечати устанавливает из языка область печати табличного

документа

Пример:

Таб.Напечатать(0);

ПараметрыСтраницы

Установить параметры страницы.

Синтаксис:

ПараметрыСтраницы(<Ориентация>, <Масштаб>, <РежимПечатиКопий>, <ПолеСлева>,

                  <ПолеСправа>, <ПолеСверху>, <ПолеСнизу>, <КолонтитулСверху>,

                  <КолонтитулСнизу>, <Автомасштаб> , <ФлагЧерноБелойПечати>,

                  <ИмяПринтера>)

Англоязычный синоним:

PageSetup

Параметры:

<Ориентация> | Необязательный параметр. Числовое выражение — ориентация вывода на печать: 1 — портрет; 2 — ландшафт.
<Масштаб> | Необязательный параметр. Числовое выражение — масштаб (в процентах) вывода на печать.
<РежимПечатиКопий> | Необязательный параметр. Числовое выражение — режим вывода нескольких копий на печать: 0 — (collate) выводить сначала первые страницы всех копий, затем вторые и т. д.;1 — (разобрать) выводить страницы копий по порядку.
<ПолеСлева> | Необязательный параметр. Числовое выражение — расстояние (в миллиметрах) от правого края страницы.
<ПолеСверху> | Необязательный параметр. Числовое выражение — расстояние (в миллиметрах) от верхнего края страницы.
<ПолеСнизу> | Необязательный параметр. Числовое выражение — расстояние (в миллиметрах) от нижнего края страницы.
<КолонтитулСверху> | Необязательный параметр. Числовое выражение — размер (в миллиметрах) верхнего колонтитула.
<КолонтитулСнизу> | Необязательный параметр. Числовое выражение — размер (в миллиметрах) нижнего колонтитула.
<Автомасштаб> | Необязательный параметр. Числовое выражение — указывает режим автоматического подбора масштаба для размещения документа при печате на листе по ширине. 1 — Включить; 0 — Выключить. По молчанию — 0.
<ФлагЧерноБелойПечати> | Необязательный параметр. Число: 1 — черно-белая печать; 0 — обычный режим печати. Значение по умолчанию — 0.
<ИмяПринтера> | Необязательный параметр. Строка как в стандартном диалоге печати.

Описание:

Метод ПараметрыСтраницы позволяет установить параметры страницы вывода на печать.

Пример:

Таб.ПараметрыСтраницы(1, 100, 1, 17, 17, 25, 25, 10, 10);

См. также: Опции

КоличествоЭкземпляров

Установить количество печатаемых экземпляров.

Синтаксис:

КоличествоЭкземпляров(<Колич>)

Англоязычный синоним:

NumberOfCopies

Параметры:

<Колич>

Необязательный параметр. Числовое выражение — количество печатаемых экземпляров.

Возвращаемое значение:

Текущее заданное количество печатаемых экземпляров (на момент до исполнения метода).

Описание:

Метод КоличествоЭкземпляров позволяет установить количество печатаемых экземпляров. Если для текущей таблицы используется набор опций печати (см. Опции), то данный метод следует вызывать только после вызова метода Показать, т. к. иначе будут действовать автоматически устанавливаемые настройки печати.

Пример:

Таб.КоличествоЭкземпляров(5);

См. также: Опции

ЭкземпляровНаСтранице

Установить количество печатаемых экземпляров на странице.

Синтаксис:

ЭкземпляровНаСтранице(<Колич>)

Англоязычный синоним:

CopyesPerPage

Параметры:

<Колич>

Необязательный параметр. Числовое выражение — количество печатаемых экземпляров на странице. Может принимать значения:

1 — один экземпляр на странице;

2 — два экземпляра на странице;

0 — автоматический режим размещения двух экземпляров на странице исходя из размеров документа.

Возвращаемое значение:

Текущее заданное количество печатаемых экземпляров на странице (на момент до исполнения метода).

Описание:

Метод ЭкземпляровНаСтранице позволяет установить количество печатаемых экземпляров на странице.

Пример:

Таб.ЭкземпляровНаСтранице(2);

См. также: Опции

Напечатать

Напечатать таблицу без предварительного просмотра.

Синтаксис:

Напечатать{<Флаг>)

Англоязычный синоним:

Print

Параметры:

<Флаг>

Числовое выражение — режим запроса диалога печати: 1 — запрашивать диалог печати; 0 — не запрашивать диалог печати.

Описание:

Метод Напечатать позволяет вывести таблицу на печать без открытия окна редактирования (см. Показать).

Пример:

Таб.Напечатать(0);

См. также: Показать

Атрибуты и методы объекта «СекцияТаблицы»

<ИмяОбласти>

Возвращает или задает объект «область».

Синтаксис:

<ИмяОбласти>

Идентификатор области секции, как она задана в конфигураторе.

Описание:

В процессе конфигурирования для секции можно задавать практически неограниченное число дополнительно выделенных и поименованных областей для выделения любой необходимой информации.

Атрибут <ИмяОбласти> позволяет обращаться к поименованной области секции. Для обращения к конкретной области секции следует указать ее идентификатор, заданный для этой области в конфигураторе.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

Секция = Таб.ПолучитьСекцию("ЗаголовокОтчета");

Секция.Заглавие.Текст = "Товарный отчет";

Таб.ВывестиСекцию(Секция);

Область

Возращает Область секции.

Синтаксис 1:

Область(<Адрес>)

Синтаксис 2:

Область(<R1>, <С1>, <R2>, <С2 >)

Англоязычный синоним:

Area

Параметры:

<Адрес> | Необязательный параметр. Строковое выражение, задающее либо имя области, заданное в конфигураторе, либо адрес в формате «R1C1:R2C2».
<Rl> | Необязательный параметр. Числовое выражение. Номер первой строки области.
<С1> | Необязательный параметр. Числовое выражение. Номер первого столбца области.
<R2> | Необязательный параметр. Числовое выражение. Номер последней строки области.
<С2> | Необязательный параметр. Числовое выражение. Номер последнего столбца области.

Возвращаемое значение:

Значение типа «ОбластьТаблицы».

Описание:

Функция Область возвращает значение области секции. При задании адреса области, номера строк и столбцов задаются относительно начала данной секции. Если последняя строка и последний столбец отсутствуют, то область задана единственной ячейкой. Если строки или столбцы отсутсвуют, то область задана диапазоном столбцов или строк соответственно. Если метод вызван без параметров, то область задана всей секцией.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

Секция = Таб.ПолучитьСекцию("ЗаголовокОтчета");

ВыбОбласть = Секция.Область("Заглавие");

ВыбОбласть.Текст = "Товарный отчет";

Таб.ВывестиСекцию(Секция);

Атрибуты и методы объекта «ОбластьТаблицы»

Текст

Прочитать/установить значение текста области.

Синтаксис:

Текст

Англоязычный синоним:

Text

Описание:

Атрибут Текст позволяет прочитать\установить значение текста области (аналогично тому, как в конфигураторе интерактивно задают значение формулы в свойствах ячейки талины «Свойства»- закладка «Текст»).

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R1C1");

ВыбОбласть.Текст = "Товарный отчет";

Расшифровка

Установить расшифровку области.

Синтаксис:

Расшифровка(<Значение>, <ФлагДляВсейСтроки>)

Англоязычный синоним:

Details

Параметры:

<Значение> | Значение расшифровки области.
<ФлагДляВсейСтроки> | Необязательный параметр. Число: 0 — обычный режим; 1 — установить данную расшифровку для всей строки; 2 — не вызывать расшифровку для данной ячейки. Значение по умолчанию — 0.

Описание:

Метод Расшифровка записывает расшифровку области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Расшифровка(ВыбДокумент, 1);

Объединить

Объединить ячейки области.

Синтаксис:

Объединить()

Англоязычный синоним:

Merge

Описание:

Метод Объединить объединяет ячейки области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R1C1:R8C4");

ВыбОбласть.Объединить();

Шрифт

Получить/установить шрифт области.

Синтаксис:

Шрифт(<ИмяШрифта>)

Англоязычный синоним:

Font

Параметры:

<ИмяШрифта>

Необязательный параметр. Строковое выражение, задающее имя шрифта или «имя, набор символов», где основные наборы символов: 204 — русский; 238 — европейский; 186 — балтийский; 161 — греческий; 162 — турецкий. Если параметр опущен, то шрифт области не изменяется.

Возвращаемое значение:

Имя шрифта до исполнения метода.

Описание:

Метод Шрифт устанавливает шрифт области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial, 204");

РазмерШрифта

Получить/установить размер шрифта области.

Синтаксис:

РазмерШрифта(<Размер>)

Англоязычный синоним:

FontSize

Параметры:

<Размер>

Необязательный параметр. Числовое выражение, задающее размер шрифта. Если параметр опущен, то размер шрифта области не изменяется.

Возвращаемое значение:

Размер шрифта до исполнения метода.

Описание:

Метод РазмерШрифта устанавливает размер шрифта области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

Полужирный

Получить/установить признак жирного шрифта области.

Синтаксис:

Полужирный(<Жирный>)

Англоязычный синоним:

Bold

Параметры:

<Жирный>

Необязательный параметр. Число: 1 — жирный шрифт; 0 — не жирный шрифт. Если параметр опущен, то жирность шрифта области не изменяется.

Возвращаемое значение:

Признак жирного шрифта до исполнения метода.

Описание:

Метод Полужирный устанавливает признак жирного шрифта области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Полужирный(1);

Курсив

Получить/установить признак шрифта курсив области.

Синтаксис:

Курсив(<Курсив>)

Англоязычный синоним:

Italic

Параметры:

<Курсив>

Необязательный параметр. Число: 1 — шрифт курсив; 0 — шрифт не курсив. Если параметр опущен, то признак курсив шрифта области не изменяется.

Возвращаемое значение:

Признак шрифта курсив до исполнения метода.

Описание:

Метод Курсив устанавливает признак шрифта курсив области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl__l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Курсив(1);

Подчеркнутый

Получить/установить признак подчеркнутого шрифта области.

Синтаксис:

Подчеркнутый(<Подчеркнутый>)

Англоязычный синоним:

Underline

Параметры:

<Подчеркнутый>

Необязательный параметр. Число: 1 — шрифт подчеркнутый; 0 — шрифт не подчеркнутый. Если параметр опущен, то признак подчеркнутого шрифта области не изменяется.

Возвращаемое значение:

Признак подчеркнутого шрифта до исполнения метода.

Описание:

Метод Подчеркнутый устанавливает признак подчеркнутого шрифта области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВертикальноеПоложение

Получить/установить признак вертикального выравнивания текста области.

Синтаксис:

ВертикальноеПоложение(<Положение>)

Англоязычный синоним:

VerticalAlign

Параметры:

<Положение>

Необязательный параметр. Число: 1 — сверху; 2 — снизу; 3 — по центру. Если параметр опущен, то признак вертикального выравнивания текста области не изменяется.

Возвращаемое значение:

Признак вертикального выравнивания текста до исполнения метода.

Описание:

Метод ВертикальноеПоложение устанавливает признак вертикального выравнивания текста области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВкбОбласть.Подчеркнутый(1);

ВыбОбласть.ВертикальноеПоложение(3);

ГоризонтальноеПоложение

Получить/установить признак горизонтального выравнивания текста области.

Синтаксис:

ГоризонтальноеПоложение(<Положение>)

Англоязычный синоним:

HorizontalAlign

Параметры:

<Положение>

Необязательный параметр. Число: 1 — слева; 2 — справа; 3 — по центру; 4 — по ширине. (5 – 8) — по выделенным столбцам: слева/справа/по центру/по ширине. Если параметр опущен, то признак горизонтального выравнивания текста области не изменяется.

Возвращаемое значение:

Признак горизонтального выравнивания текста до исполнения метода.

Описание:

Метод ГоризонтальноеПоложение устанавливает признак горизонтального выравнивания текста области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть(" tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

Контроль

Получить/установить признак контроля текста области.

Синтаксис:

Контроль(<Контроль>)

Англоязычный синоним:

Control

Параметры:

<Контроль>

Необязательный параметр. Число: 1 — Авто; 2 — Обрезать; 3 — Забивать; 4 — Переносить; 5 — Красный; 6 — Забивать+Красный. Если параметр опущен, то признак контроля текста области не изменяется.

Возвращаемое значение:

Признак контроля текста до исполнения метода.

Описание:

Метод Контроль устанавливает признак контроля текста области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

РамкаСверху

Получить/установить рамку сверху области.

Синтаксис:

РамкаСверху(<Рамка>)

Англоязычный синоним:

TopBorder

Параметры:

<Рамка>

Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка сверху области не изменяется.

Возвращаемое значение:

Рамка сверху до исполнения метода.

Описание:

Метод РамкаС верху устанавливает рамку сверху области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.РамкаСверху(3);

РамкаСнизу

Получить/установить рамку снизу области.

Синтаксис:

РамкаСнизу(<Рамка>)

Англоязычный синоним:

BottomBorder

Параметры:

<Рамка>

Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка снизу области не изменяется.

Возвращаемое значение:

Рамка снизу до исполнения метода.

Описание:

Метод РамкаСнизу устанавливает рамку снизу области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.РамкаСнизу(3 );

РамкаСлева

Получить/установить рамку слева области.

Синтаксис:

РамкаСлева(<Рамка>)

Англоязычный синоним:

LeftBorder

Параметры:

<Рамка>

Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка слева области не изменяется.

Возвращаемое значение:

Рамка слева до исполнения метода.

Описание:

Метод РамкаСлева устанавливает рамку слева области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.РамкаСлева(3);

РамкаСправа

Получить/установить рамку справа области.

Синтаксис:

РамкаСправа(<Рамка>)

Англоязычный синоним:

RightBorder

Параметры:

<Рамка>

Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка справа области не изменяется.

Возвращаемое значение:

Рамка справа до исполнения метода.

Описание:

Метод РамкаСправа устанавливает рамку справа области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.РамкаСправа(3);

Рамка

Установить рамки всех ячеек области.

Синтаксис:

Рамка(<РамкаСлева>, <РамкаСверху>, <РамкаСправа>, <РамкаСнизу>)

Англоязычный синоним:

Border

Параметры:

<РамкаСлева>
<РамкаСверху> <РамкаСправа> <РамкаСнизу>

Необязательные параметры. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если какой либо параметр опущен, то соответствующая рамка ячеек области не изменяется.

Описание:

Метод Рамка устанавливает рамки всех ячеек области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10 );

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.Рамка(0, 3, 3, 3);

РамкаОбвести

Установить рамки по краям области.

Синтаксис:

РамкаОбвести(<Рамка Слева>, <РамкаСверху>, <РамкаСправа>, <РамкаСнизу>)

днглоязычный синоним:

BorderOutline

Параметры:

<РамкаСлева>
<РамкаСверху> <РамкаСправа> <РамкаСнизу>

Необязательные параметры. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если какой либо параметр опущен, то соответствующая рамка ячеек области не изменяется.

Описание:

Метод РамкаОбвести устанавливает рамки по краям области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.РамкаОбвести(0, 3, 3, 3);

ЦветФона

Получить/установить режим отображения цвета фона области.

Синтаксис 1:

ЦзетФона(<Цвет>)

Синтаксис 2:

ЦветФона(<R>, <G>, <B>)

Англоязычный синоним:

BackgroundColor

Параметры:

<Цвет> | Необязательный параметр. Числовое выражение, значение которого задает RGB цвет. Допустимые значения от 0 до 16777'215. Значение -1 (минус единица) задает цвет, заданный для всей области по умолчанию.
<R> | Числовое выражение, значение которого задает красную компоненту цвета. Допустимые значения от 0 до 256.
<G> | Числовое выражение, значение которого задает зеленую компоненту цвета. Допустимые значения от 0 до 256.
<B> | Числовое выражение, значение которого задает синюю компоненту цвета. Допустимые значения от 0 до 256.

Возвращаемое значение:

Текущее числовое значение RGB-цвета фона области (на момент до исполнения метода).

Описание:

Метод ЦветФона позволяет установить режим отображения цвета фона области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.ЦветФона(34, 126, 211);

ЦветРамки

Получить/установить режим отображения цвета рамки области.

Синтаксис 1:

ЦветРамки(<Цвет>)

Синтаксис 2:

ЦветРамки(<R>, <G>, <В>)

Англоязычный синоним:

BorderColor

Параметры:

<Цвет> | Необязательный параметр. Числовое выражение, значение которого задает RGB цвет. Допустимые значения от 0 до 16777'215. Значение -1 (минус единица) задает цвет, заданный для всей области по умолчанию.
<R> | Числовое выражение, значение которого задает красную компоненту цвета. Допустимые значения от 0 до 256.
<G> | Числовое выражение, значение которого задает зеленую компоненту цвета. Допустимые значения от 0 до 256.
<B> | Числовое выражение, значение которого задает синюю компоненту цвета. Допустимые значения от 0 до 256.

Возвращаемое значение:

Текущее числовое значение RGB-цвета рамки области (на момент до исполнения метода).

Описание:

Метод ЦветРамки позволяет установить режим отображения цвета рамки области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.ЦветРамки(34, 126, 211);

ЦветТекста

Получить/установить режим отображения цвета текста области.

Синтаксис 1:

ЦветТекста(<Цвет>}

Синтаксис 2:

ЦветТекста(<R>, <G>, <В>)

Англоязычный синоним:

TextColor

Параметры:

<Цвет> | Необязательный параметр. Числовое выражение, значение которого задает RGB цвет. Допустимые значения от 0 до 16777'215. Значение -1 (минус единица) задает цвет, заданный для всей области по умолчанию.
<R> | Числовое выражение, значение которого задает красную компоненту цвета. Допустимые значения от 0 до 256.
<G> | Числовое выражение, значение которого задает зеленую компоненту цвета. Допустимые значения от 0 до 256.
<B> | Числовое выражение, значение которого задает синюю компоненту цвета. Допустимые значения от 0 до 256.

Возвращаемое значение:

Текущее числовое значение RGB-цвета текста области (на момент до исполнения метода).

Описание:

Метод ЦветТекста позволяет установить режим отображения цвета текста области.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.ЦветТекста(34, 126, 211);

ВысотаСтроки

Получить/установить высоту строк, проходящих через область.

Синтаксис:

ВысотаСтроки(<Высота>)

Англоязычный синоним:

RowHeight

Параметры:

<Высота>    Необязательный параметр. Число: высота строк, проходящих через область в пунктах с точностью до 0,25. Если параметр опущен, то высота строк области не изменяется.

Возвращаемое значение:

Высота строк области в пунктах области (на момент до исполнения метода).

Описание:

Метод ВысотаСтроки устанавливает высоту строк, проходящих через область.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.ВысотаСтроки(3 );

ШиринаСтолбца

Получить/установить ширину столбцов, проходящих через область.

Синтаксис:

ШиринаСтолбца(<Ширина>)

Англоязычный синоним:

ColumnWidth

Параметры:

<Ширина>

Необязательный параметр. Число: ширина столбцов, проходящих через область в стандартных символах с точностью до 0, 125. Если параметр опущен, то ширина столбцов области не изменяется.

Возвращаемое значение:

Ширина столбцов области в стандартных символах (на момент до исполнения метода).

Описание:

Метод ШиринаСтолбца устанавливает ширину столбцов, проходящих через область.

Пример:

Таб = СоздатьОбъект("Таблица");

Таб.Открыть("tabl_l.mxl");

ВыбОбласть = Таб.Область("R8C4");

ВыбОбласть.Шрифт("Arial");

ВыбОбласть.РазмерШрифта(10);

ВыбОбласть.Подчеркнутый(1);

ВыбОбласть.ГоризонтальноеПоложение(3);

ВыбОбласть.Контроль(4);

ВыбОбласть.ШиринаСтолбца(13);

Атрибуты и методы таблицы в режиме ввода данных

При работе с таблицей в режиме ввода данных не могут использоваться методы и атрибуты, предназначенные для заполнения таблицы в обычном режиме, например, методы вывода секций, метод Показать и другие, не имеющие смысла для табличного документа в режиме ввода данных. Разумеется, могут использоваться методы управляющие параметрами печати табличного документа, а также собственно метод Напечатать.

В данном разделе приводятся специфические атрибуты и методы, используемые для работы с табличным документом в режиме ввода данных.

<ИмяОбласти>

Предоставляет доступ к именованной области таблицы в режиме ввода данных.

Синтаксис:

<ИмяОбласти>

Имя области таблицы в режиме ввода данных.

Описание:

В процессе конфигурирования для таблицы в режиме ввода данных можно задавать практически неограниченное число поименованных областей.

Атрибут <имяОбласти> позволяет обращаться к поименованной области таблицы. Для обращения к конкретной области следует указать ее имя, заданное для этой области в конфигураторе.

Пример:

Таблица.Заглавие.Текст = "Товарный отчет";

АктивнаяОбласть

Активизировать область таблицы.

Синтаксис:

АктивнаяОбласть(<Адрес>)

Англоязычный синоним:

ActiveArea

Параметры:

<Адрес>

Необязательный параметр. Строковое выражение, задающее имя области или адрес в формате «R1C1:R2C2».

Возвращаемое значение:

Строковое значение имени активной области или адрес в формате «R1C1:R2C2» до начала выполнения метода.

Описание:

Функция АктивнаяОбласть активизирует область таблицы.

Пример:

Таблица.АктивнаяОбласть("tabl_l");

Выгрузить

Выгружает значения и имена для всех предназначенных для ввода ячеек в объект типа «Список значений».

Синтаксис:

Выгрузить(<СписокЗначений>)

Англоязычный синоним:

Load

Параметры:

<СписокЗначений>

Идентификатор объекта типа «Список значений», куда выгружаются парами значения и имена для всех предназначенных для ввода ячеек.

Описание:

Метод Выгрузить выгружает значения и имена для всех предназначенных для ввода ячеек таблицы в объект типа «Список значений», причем имя ячейки становится представлением а данные из ячейки — значением в записи списка значений.

Пример:

Список = СоздатьОбъект("СписокЗначений");

Таблица.Выгрузить(Список);

Загрузить

Загружает значения и имена для всех предназначенных для ввода ячеек из объекта типа «Список значений».

Синтаксис:

Загрузить(<СписокЗначений>)

Англоязычный синоним:

Save

Параметры:

<СписокЗначений> Идентификатор объекта типа «Список значений», откуда загружаются парами значения и имена для всех предназначенных для ввода ячеек.

Описание:

Метод Загрузить загружает значения и имена для всех предназначенных для ввода ячеек таблицы из объекта типа «Список значений», причем представление списка значений становится именем ячейки, а значение записи становится значением ячейки.

Пример:

Процедура ОчиститьТаблицу()

   Список = СоздатьОбъект("СписокЗначений");

   Таблица.Выгрузить(Список);

   ИмяЯчейки = "";

   Для Н = 1 По Список.РазмерСписка() Цикл

      ЗначЯчейки = Список.ПолучитьЗначение(Н, ИмяЯчейки);

      Список.УстановитьЗначение(Н, 0, ИмяЯчейки, 1);

   КонецЦикла;

   Таблица.Загрузить(Список);

КонецПроцедуры;

Атрибуты и методы области таблицы в режиме ввода данных

При работе с областью таблицы в режиме ввода данных не может использоваться метод Расшифровка, а также метод Объединить.

В данном разделе приводятся специфические атрибуты и методы, используемые для работы с областью таблицы в режиме ввода данных.

Значение

Арибут, предоставляет доступ к значению, записанному в области.

Синтаксис:

Значение

Англоязычный синоним:

Value

Описание:

Атрибут Значение позволяет прочитать\установить значение, записанное в области (аналогично тому, как в конфигураторе интерактивно задают значение в свойствах ячейки талины «Свойства»- закладка «Данные»).

Пример:

ВыбОбласть = Таблица.Область("R1C1");

ВыбОбласть.Значение = '01.09.98';

Формат

Устанавливает формат для вывода всех выражений в ячейках области таблицы.

Синтаксис:

Формат(<СтрокаФормата>)

Англоязычный синоним:

Format

Параметры:

<СтрокаФормата>

Необязательный параметр. Строковое выражение, содержащее форматную строку (см. Формат).

Возвращаемое значение:

Строковое значение, содержащее текущую форматную строку по умолчанию для области таблицы (на момент до исполнения метода).

Описание:

Метод Формат устанавливает формат для вывода всех выражений выводимых в ячейках области таблицы.

Пример:

ВыбОбласть.Формат("415.2");

УстановитьТип

Установить тип для значения ячейки неопределенного вида.

Синтаксис:

УстановитьТип(<Выражение>)

Англоязычный синоним:

AssignType

Параметры:

<Выражение>

Выражение. Тип значения этого выражения будет присвоен значению ячейки.

Описание:

Метод УстановитьТип позволяет установить тип для значения ячейки, которому в конфигураторе назначен тип «Неопределенный».

Пример:

ВыбОбласть.УстановитьТип(Товар);

См. также: НазначитьТип, ТипЗначения, ТипЗначенияСтр

НазначитьТип

Назначить тип для значения ячейки неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:

<ИмяТипа> | Строковое выражение — название типа данных, которое назначается значению ячейки. Например: "Строка", "Число", "Справочник.Товары", " Документ.РасходнаяНакладная" и т. п.
<Длина> | Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> | Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:

Метод НазначитьТип позволяет назначить тип для значения ячейки, которому в конфигураторе назначен тип «Неопределенный».

Пример:

ВыбОбласть.НазначитьТип("Число", 15, 2);

См. также: УстановитьТип, ТипЗначения, ТипЗначенияСтр

Доступность

Установка режима редактирования.

Синтаксис:

Доступность(<Режим>)

Англоязычный синоним:

Enable

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — разрешено редактирование элемента формы; 0 — запрещено редактирование.

Возвращаемое значение:

Текущее числовое значение режима редактирования области таблицы (на момент до исполнения метода).

Описание:

Метод Доступность позволяет установить режим редактирования выбранной области таблицы.

Пример:

ВыбОбласть.Доступность(0);

Редактирование

Определяет возможность редактирования значения области таблицы.

Синтаксис:

Редактирование(<Флаг>)

Англоязычный синоним:

EnableEdit

Параметры:

<Флаг>

Число: 1 — значения ячеек области таблицы редактируются как обычно; 0 — значения не редактируется но могут выбираться кнопкой выбора. Отличие от метода Доступность в том, что Доступность отключает и кнопку выбора.

Описание:

Метод Редактирование определяет возможность редактирования значения непосредственно в ячейках области таблицы для полей ввода типа «Число», «Строка», «Дата», «Счет».

Пример:

ВыбОбласть.Редактирование(1);

Системные предопределенные процедуры работы с таблицами

ОбработкаЯчейкиТаблицы

Предопределенная процедура обработки ячейки таблицы.

Описание:

ОбработкаЯчейкиТаблицы(<Значение>, <ФлагСтандартнойОбработки> , <КонтекстТаблицы>,

                       <Адрес>)

Англоязычный синоним:

SheetCellProcessing

Параметры:

<Значение> | Здесь в процедуру передается вычисленное значение ячейки (задается в конфигураторе: «Свойства» ячейки, «Текст», «Значение»).
<ФлагСтандартнойОбработки> | Флаг, установка которого в теле процедуры в 1 приведет к выполнению стандартной обработки значения ячейки (открытию документа, элемента справочника и т. п.).
<КонтекстТаблицы> | Необязательный параметр. Имя переменной, куда система передаст контекст всей таблицы (см. Передача контекста в качестве параметра). С помощью значения этого контекста можно произвольно манипулировать данной таблицей пока она открыта, например, вывести туда дополнительные секции или очистить и заполнить всю таблицу заново. Пока данный объект «Таблица» существует, тип значения данного параметра равен 100 (см. ТипЗначения), если закрыта — 0.
<Адрес> | Необязательный параметр. Имя переменной, куда система передаст адрес ячейки/объекта в формате «R1C1:R2C2».

Описание:

Вызов процедуры ОбработкаЯчейкиТаблицы на исполнение производится в системе 1С:Предприятие по двойному щелчку мыши или по нажатию клавиши «Enter» в табличном документе на выбранной ячейке

Замечание ОбработкаЯчейкиТаблицы — предопределенная процедура. Она не является встроенной процедурой языка. Для нее определено только название и синтаксис. Тело процедуры должно быть написано пользователем, осуществляющим конфигурирование, в программном модуле формы, из которой сформирован табличный документ или в глобальном модуле.

Замечание Объект типа «СписокЗначений» может записываться в поле «значение» ячейки таблицы и использоваться затем процедурой ОбработкаЯчейкиТаблицы.

Важно! Если процедура описана в модуле формы, то вызывается она, иначе система запускает одноименную процедуру из глобального модуля.

Внимание! Данная предопределенная процедура не вызывается при выборе ячейки таблицы в режиме ввода данных. Для этого случая вызывается предопределенная процедура ПриВыбореЯчейкиТаблицы.

Пример:

Процедура ОбработкаЯчейкиТаблицы(ЗначениеЯчейки, Флаг)

   // Тело процедуры

   //. . .

КонецПроцедуры

ПриВыбореЯчейкиТаблицы

Предопределенная процедура обработки ячейки таблицы в режиме ввода данных.

Описание:

ПриВыбореЯчейкиТаблицы(<ИмяИлиАдрес>, <Значение>)

Англоязычный синоним:

OnSelectSheetCell

Параметры:

<ИмяИлиАдрес> | Здесь в процедуру системой передается строковое значение имени области таблицы, если выбранная ячейка помечена в таблице как отдельная область, или адрес ячейки в формате «R1C1:R2C2».
<Значение> | Здесь в процедуру системой передается значение даной ячейки, а если диаграмма — значение выбранного элемента.

Описание:

Вызов процедуры ПриВыбореЯчейкиТаблицы на исполнение производится в системе 1С:Предприятие по двойному щелчку мыши или по нажатию клавиши «Enter» на выбранной ячейке в таблице

Внимание! Данная предопределенная процедура вызывается в модуле формы при выборе ячейки только для таблиц в режиме ввода данных.

Замечание ПриВыбореЯчейкиТаблицы — предопределенная процедура. Она не является встроенной процедурой языка. Для нее определено только название и синтаксис. Тело процедуры должно быть написано пользователем, осуществляющим конфигурирование, в программном модуле формы, в которой используется таблица в режиме ввода данных.

Пример:

Процедура ПриВыбореЯчейкиТаблицы(ИмяЯчейки, Знач)

   // Тело процедуры

   // ...

КонецПроцедуры


Part32

Глава 32
Работа с Текстом

Для работы с текстами в системе используется специальный агрегатный тип данных — «Текст». Механизм работы с текстами предназначен для формирования отчетов в текстовом виде, а также для обмена информацией с другими программами посредством текстовых файлов. Средства языка имеют возможность не только вывода строк в текстовые файлы, но и считывания имеющихся файлов с последующим разбором его по строкам.

Контекст работы с текстом

Во всех программных модулях вызов методов текста может выполняться только при помощи переменной со ссылкой на объект типа «Текст». Объект создается при помощи функции СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной.

При создании переменной типа «Текст» функции СоздатьОбъект в качестве параметра передается ключевое слово "Текст".

Англоязычный синоним ключевого слова Текст — Text.

Пример:

МойОтчет = СоздатьОбъект("Текст");

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("List.txt");

Методы текста

КоличествоСтрок

Возвратить количество строк текста.

Синтаксис:

КоличествоСтрок()

Англоязычный синоним:

LinesCnt

Возвращаемое значение:

Количество строк в тексте.

Описание:

Метод КоличествоСтрок возвращает количество строк в тексте.

Пример:

Процедура ЗагрузкаПродукцииПоКаталогу()

   Прод = СоздатьОбъект("Справочник.ГотоваяПродукция");

   Если ВыбГруппа.Выбран() = 0 Тогда

      Предупреждение("Ошибка! Не выбрана группа!");

      Возврат;

   ИначеЕсли ВыбГруппа.ЭтоГруппа() = 0 Тогда

      Предупреждение("Не выбрана группа! Загрузка в корень!");

   Иначе

      Тов.ИспользоватьРодителя(ВыбГруппа);

   КонецЕсли;

   Текст = СоздатьОбъект("Текст");

   Текст.Открыть(ИмяФайла);

   Если Текст.КоличествоСтрок() = 0 Тогда

      Предупреждение("Текст пустой!");

      Возврат;

   КонецЕсли;

   Для Ном = 1 По Текст.КоличествоСтрок() Цикл

      Стр = Текст.ПолучитьСтроку(Ном);

      Поле = 0;

      Пока СтрДлина(Стр) > 0 Цикл

         Поле = Поле + 1;

         Инд = Найти(Стр, "-");

         Если Инд > 0 Тогда

            Стр1 = Сред(Стр, 2, Инд - 3);

            Стр = Сред(Стр, Инд + 1);

         Иначе

            Стр1 = Сред(Стр, 2, (СтрДлина(Стр) - 2));

            Стр = "";

         КонецЕсли;

         Если Поле = 1 Тогда

            Код = Стр1;

         ИначеЕсли Поле = 2 Тогда

            Имя = Стр1;

         КонецЕсли;

      КонецЦикла;

      Прод.НоваяГруппа();

      Сообщить(Формат(Ном, "ЧЗ") + "-загрузка: " + Формат(Код, "45") + ":" + Имя);

      Прод.Наименование = Имя;

      Прод.Код = Число(Код);

      Прод.Записать();

      Сообщить(" — Загружен!");

   КонецЦикла;

КонецПроцедуры

ПолучитьСтроку

Полнить строку текста по номеру.

Синтаксис:

ПолучитьСтроку(<НомерСтроки>)

Англоязычный синоним:

GetLine

Параметры:

<НомерСтроки>

Числовое выражение — номер строки.

Возвращаемое значение:

Строковое значение — требуемая строка текста.

Описание:

Метод ПолучитьСтроку возвращает значение строки с номером <НомерСтроки>.

Пример:

Процедура Тест()

   Текст = СоздатьОбъект("Текст");

   Текст.Открыть(ИмяФайла);

   Если Текст.КоличествоСтрок() = 0 Тогда

      Предупреждение("Текст пустой!");

      Возврат;

   КонецЕсли;

   Для Ном = 1 по Текст.КоличествоСтрок() Цикл

      Стр = Текст.ПолучитьСтроку(Ном);

      Сообщить(Строка(Ном) + Стр);

   КонецЦикла;

КонецПроцедуры

Открыть

Открыть текстовый файл.

Синтаксис:

Открыть(<ИмяФайла>)

Англоязычный синоним:

Open

Параметры:

<ИмяФайла>

Строковое выражение — имя файла.

Описание:

Метод Открыть открывает файл с именем <ИмяФайла>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

Шаблон

Установить флаг добавления строк по шаблону.

Синтаксис:

Шаблон(<Флаг>)

Англоязычный синоним:

Template

Параметры:

<Флаг>

Необязательный параметр. Числовое выражение: 1 — установить флаг добавления строк по шаблону, 0 — отменить.

Возвращаемое значение:

Текущее числовое значение флага добавления строк по шаблону (на момент до исполнения метода).

Описание:

Метод Шаблон устанавливает флаг при котором все добавления строк в текст выполняются с заменой полей ограниченных квадратными скобками на значения содержащихся в них выражений (см. гл. «Системные процедуры и функции», функция Шаблон).

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Шаблон(1);

ТекстДок.ЗаменитьСтроку(52, "[Услуга.Наименование],

                        арт.[Услуга.Код]......[Услуга.Цена]");

ТекстДок.Шаблон(0);

ТекстДок.ВставитьСтроку(53, "Вывоз мусора, 6321, 58.000");

ТекстДок.ТолькоПросмотр(1);

См. также: «Системные процедуры и функции», функция Шаблон

ФиксШаблон

Установить флаг добавления строк по фиксированному шаблону.

Синтаксис:

ФиксШаблон(<Флаг>)

Англоязычный синоним:

FixTemplate

Параметры:

<Флаг>

Числовое выражение: 1 — установить флаг добавления строк по фиксированному шаблону, 0 — снять флаг.

Возвращаемое значение:

Текущее числовое значение флага добавления строк по фиксированному шаблону (на момент до исполнения метода).

Описание:

Метод ФиксШаблон устанавливает флаг при котором все добавления строк в текст выполняются с заменой полей ограниченных квадратными скобками на значения содержащихся в них выражений (см. гл. «Системные процедуры и функции», функция ФиксШаблон).

В отличие от метода Шаблон, ограниченные квадратными скобками поля замещаются значениями выражений с сохранением своей длины в символах, то есть обрезаются, если поле короче результата вычисления выражения и дополняются пробелами если длиннее. Если результат числовой, то в границах поля строка прижимается к правой границе.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ФиксШаблон(1);

ТекстДок.ЗаменитьСтроку(52, "[Услуга.Наименование],

                             арт.[Услуга.Код]......[Услуга.Цена]");

ТекстДок.Шаблон(0);

ТекстДок.ВставитьСтроку(53, "Вывоз мусора, 6321, 58.000");

ТекстДок.ТолькоПросмотр(1);

См. также: «Системные процедуры и функции», функция ФиксШаблон

ВставитьСтроку

Вставить строку с указанным номером.

Синтаксис:

ВставитьСтроку(<НомерСтроки>, <Строка>)

Англоязычный синоним:

InsertLine

Параметры:

<НомерСтроки> | Числовое выражение — номер вставляемой строки.
<Строка> | Строковое выражение.

Описание:

Метод ВставитьСтроку вставляет в текст строку <Строка> с номером <НомерСтроки>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ЗаменитьСтроку(52, "Установка оборудоввания 3456......" + Стоимость);

ТекстДок.ВставитьСтроку(53, "Замена оборудования 5691... ");

ТекстДок.ТолькоПросмотр(1);

ДобавитьСтроку

Добавить строку в конец текста.

Синтаксис:

ДобавитьСтроку(<Строка>)

Англоязычный синоним:

AddLine

Параметры:

<Строка>

Строковое выражение.

Описание:

Метод ДобавитьСтроку добавляет в конец текста строку <Строка>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ДобавитьСтроку("Работы ..., 3056 ..75 000 руб.");

ТекстДок.ТолькоПросмотр(1).

ЗаменитьСтроку

Заменить строку с указанным номером.

Синтаксис:

ЗаменитьСтроку(<НомерСтроки>, <Строка>)

Англоязычный синоним:

ReplaceLine

Параметры:

<НомерСтроки> | Числовое выражение — номер замещаемой строки.
<Строка> | Строковое выражение.

Описание:

Метод ЗаменитьСтроку замещает строку текста с номером <НомерСтроки> на строку <Строка>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ЗаменитьСтроку(52, "Работы ..., 3056 ..75 000 руб.");

ТекстДок.ТолькоПросмотр(1).

УдалитьСтроку

Удалить строку с указанным номером.

Синтаксис:

УдалитьСтроку(<НомерСтроки>)

Англоязычный синоним:

DeleteLine

Параметры:

<НомерСтроки>

Числовое выражение — номер удаляемой строки.

Описание:

Метод УдалитьСтроку удаляет из текста строку с номером <НомерСтроки>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.УдалитьСтроку(5 3);

ТолькоПросмотр

Установить режима редактирования текста.

Синтаксис:

ТолькоПросмотр(<Режим>)

Англоязычный синоним:

Readonly

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — запрещено редактирование текста, 0 — разрешено редактирование текста.

Возвращаемое значение:

Текущее числовое значение режима редактирования текста (на момент до исполнения метода).

Описание:

Метод ТолькоПросмотр позволяет установить режим редактирования текста в окне редактирования.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.ТолькоПросмотр(1);

ТекстДок.Показать("Редактирование Прайс-листа", "catalog.txt");

Показать

Открыть окно редактирования текста.

Синтаксис:

Показать(<3аголовок>, <ИмяФайла>)

Англоязычный синоним:

Show

Параметры:

<Заголовок> | Заголовок окна редактирования.
<ИмяФайла> | Строковое выражение с именем файла.

Описание:

Метод Показать открывает окно с текстом для редактирования и просмотра. Если параметр <ИмяФайла> имеет непустое значение, то при закрытии окна система будет предлагать сохранить данные в указанный файл. Если файла с именем <ИмяФайла> не существует, то будет создан новый файл с таким именем для сохранения текста. Если параметр <ИмяФайла> опущен или имеет пустое значение, то при закрытии окна система не будет предлагать сохранить данные в файл. Это имеет смысл для текстовых документов, которые формируются только для просмотра или печати, и их не обязательно записывать в файл. Разумеется, после открытия окна пользователь в любом случае может записать такой текст в файл, используя команды главного меню «Файл».

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Показать("Редактирование Прайс-листа", "catalog.txt");

Очистить

Очищает содержимое текстового документа.

Синтаксис:

Очистить()

Англоязычный синоним:

Clear

Описание:

Метод Очистить очищает содержимое текстового документа. Его использование позволяет заново заполнить содержимое текстового документа.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Очистиь();

КодоваяСтраница

Установить/определить режим кодировки.

Синтаксис:

КодоваяСтраница(<Режим>)

Англоязычный синоним:

SetCodePage

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 0 — Windows-кодировка, 1 — DOS-кодировка. Если параметр не задан, то режим кодировки не меняется (используется для определения текущего режима кодировки без его смены).

Возвращаемое значение:

Текущее числовое значение режима кодировки (на момент до исполнения метода).

Описание:

Метод КодоваяСтраница позволяет установить режим кодировки для чтения и записи строковых значений в файл.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.КодоваяСтраница(0);

ТекстДок.Открыть("catalog.txt");

ТекстДок.Показать("Редактирование Прайс-листа", "catalog.txt");

Записать

Записать текст в файл с указанным именем.

Синтаксис:

Записать(<ИмяФайла>)

Англоязычный синоним:

Write

Параметры:

<ИмяФайла>

Строковое выражение — имя файла.

Описание:

Метод Записать записывает текст в файл с именем <ИмяФайла>.

Пример:

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("catalog.txt");

ТекстДок.Записать("price.txt");


Part33

Глава 33
Работа с Запросами

Для формирования и выполнения запросов к документам, справочникам, регистрам, журналам расчетов, планам счетов, бухгалтерским операциям и проводкам в системе используется специальный агрегатный тип данных — «Запрос». Возможности работы со справочниками, документами и журналами расчетов предоставляют достаточно мощные средства получения различной информации об этих объектах. Однако, существует также необходимость в получении информации, сгруппированной определенным образом, которую невозможно или очень сложно получить непосредственно работая с документами, справочниками, регистрами или журналами расчетов. Для получения такой информации и существует механизм запросов.

Одним из классических примеров его применения может служить сводка по состоянию регистра на конкретный момент времени. В более сложных запросах возможно получение сгруппированной информации по справочникам, журналам расчетов и документам.

Кроме того, механизм запросов позволяет легко получать информацию в различных временных разрезах.

Контекст работы с запросами

Во всех программных модулях доступ к атрибутам и методам запросов может выполняться только через переменную, созданную функцией СоздатьОбъект. Чтобы вызвать атрибут или метод объекта, имя этого атрибута, метода (с указанием необходимых параметров) пишется через точку после имени переменной.

При создании объекта типа «Запрос» в качестве параметра функции СоздатьОбъект используется ключевое слово Запрос .

Англоязычный синоним ключевого слова Запрос — Query.

Пример:

Запрос = СоздатьОбъект("Запрос");

Структура запросов и методика их использования

Использование запросов позволяет легко строить простые отчеты и облегчает построение сложных отчетов. При построении сложных отчетов использование запросов может существенно снизить трафик сети, т.к. однажды выбранная лри исполнении запроса информация, хранящаяся во временном наборе данных на локальном компьютере, может многократно использоваться.

Запросы можно использовать не только для построения отчетов, но и для реализации других процедур конфигурации, требующих получения из БД некой сводной информации. Например, реализация алгоритма списания стоимости товара по методам FIFO или LIFO.

Работа с запросами предполагает следующий порядок:

· при помощи функции СоздатьОбъект создается объект типа «Запрос» и ссылка на него присваивается какой-либо переменной. Далее обращение к запросу производится посредством этой ссылки.

· после создания переменной типа «Запрос» следует обращение к методу Выполнить, которому в качестве параметра передается текст запроса, написанный на специальном языке запросов (см. главу «Язык запросов»). Метод Выполнить анализирует текст запроса, выполняет в соответствии с ним выборку данных и формирует временный выходной набор данных (выборку).

· после этого организуется циклическая обработка сформированного временного набора данных (выборки) с целью получения требуемого отчета.

В данном разделе мы рассмотрим структуру создаваемого запросом временного набора данных и работу методов запросов по выборке информации из этого временного набора.

Дальнейшее описание проведем на простом примере: необходимо получить отчет о количестве товаров, хранящихся на складах. Текст процедуры, выполняющей эту операцию приведен ниже.

Пример:

НашЗапрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать)

|СКЛАД = Регистр.ТоварныйЗапас.Склад;

|ТОВАР = Регистр.ТоварныйЗапас.Товар;

|КОЛИЧЕСТВО = Регистр.ТоварныйЗапас.Количество;

|Группировка ТОВАР Упорядочить По ТОВАР.Код;

|Группировка СКЛАД Упорядочить По СКЛАД.Код;

|Функция КОЛ = КонОст(КОЛИЧЕСТВО);

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если НашЗапрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Структура временного набора данных, созданная запросом "НашЗапрос" после его выполнения, представлена на следующем рисунке:

 | Товар | Склад | Кол.
Итог общий | X | X | 62
Итог по товару Стол | Стол | X | 35
Строка по товару Стол на складе Первый | Стол | Первый | 10
Строка по товару Стол на складе Второй | Стол | Второй | 20
Строка по товару Стол на складе Третий | Стол | Третий | 5
Итог по товару Стул | Стул | X | 9
Строка по товару Стул на складе Второй | Стул | Второй | 7
Строка по товару Стул на складе Третий | Стул | Третий | 2
Итог по товару Шкаф | Шкаф | X | 18
Строка по товару Шкаф на складе Первый | Шкаф | Первый | 8
Строка по товару Шкаф на складе Третий | Шкаф | Третий | 10

После выполнения запроса в программе можно использовать полученный временный набор данных. Изначально объект "НашЗапрос" спозиционирован на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому общие итоги по запросу можно использовать сразу же после выполнения запроса.

Далее, допустим, в цикле мы проходим только по самой внешней группировке запроса: "Товар". В теле этого цикла объект "НашЗапрос" позиционируется во временном наборе данных на записи, содержащие итоги по каждому конкретному товару, поэтому в теле этого цикла мы можем использовать итоги по товарам.

После завершения цикла по самой внешней группировке, объект "НашЗапрос" снова позиционируется на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому, общие итоги по запросу можно использовать в двух местах: до и после цикла по самой внешней группировке запроса.

Продолжение примера:

//Итог общий

Пока НашЗапрос.Группировка("Товар") = 1 Цикл

   //Итог по товару

КонецЦикла;

//Итог общий

Поскольку после первого просмотра временного набора данных (как мы это сделали выше) объект "НашЗапрос" снова спозиционирован на первой записи, то можно запустить просмотр еще раз.

Допустим, теперь нам надо просмотреть в цикле всю информацию по внешней ("Товар") и вложенной группировке запроса ("Склад"). В теле цикла по внешней группировке ("Товар") объект "НашЗапрос" позиционируется во временном наборе данных на записи, содержащие итоги по каждому конкретному товару, поэтому в теле этого цикла мы можем использовать итоги по товарам.

В теле цикла по вложенной группировке ("Склад") объект "НашЗапрос" позиционируется во временном наборе данных на записи, содержащие строки по каждому конкретному товару на конкретном складе, поэтому в теле этого цикла мы можем использовать данные о количестве товара на складе.

После завершения цикла по вложенной группировке ("Склад"), объект "НашЗапрос" снова позиционируется на записи временного набора данных, где содержится общий итог по конкретному товару. Поэтому, общие итоги по конкретному товару можно использовать в двух местах: до и после цикла по вложенной группировке ("Склад").

После завершения цикла по самой внешней группировке, объект "НашЗапрос" снова позиционируется на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому, общие итоги по запросу можно использовать в двух местах: до и после цикла по самой внешней группировке запроса.

Продолжение примера:

//Итог общий

Пока НашЗапрос.Группировка("Товар") = 1 Цикл

   //Итог по товару

   Пока НашЗапрос.Группировка("Склад") = 1 Цикл

      //Строка по товару — складу

   КонецЦикла;

   //Итог по товару

КонецЦикла;

//Итог общий

После выхода из процедуры, где была определена переменная, содержащая объект типа «Запрос» (в нашем примере "НашЗапрос") или после уничтожения объекта типа «Запрос» (Наш3апрос = 0;), временный набор данных на локальной машине пользователя уничтожается.

Из приведенного выше примера можно сделать несколько важных заключений:

· при просмотре временного набора данных, вложенность циклов просмотра должна точно повторять порядок группировок запроса (нельзя входить во вложенную группировку, не войдя в предыдущую);

· допускается просматривать временный набор данных, опуская с некоторого уровня все вложенные (внутренние) группировки;

· не следует прерывать последовательность просмотра временного набора данных (например, оператором Прервать;), если вы собираетесь использовать временный набор дальше или еще раз, т. к. в таком случае теряется точка позиционирования во временном наборе и продолжать просмотр невозможно;

Пример:

Пока Запрос.Группировка("Товар") = 1 Цикл

   Если (Запрос.Товар = НужныйТовар) Тогда

      Пока Запрос.Группировка("Отдел") = 1 Цикл

         Если (Запрос.Отдел = НужныйОтдел) Тогда

            Пока Запрос.Группировка("Сотрудник") = 1 Цикл

               Если (Запрос.Сотрудник = НужныйСотрудник) Тогда

                  Пока Запрос.Группировка("Док") = 1 Цикл

                     Док = Запрос.Док;

                     Если Запрос.ПрихКол <> 0 Тогда

                        Таб.ВывестиСекцию("Приход");

                     ИначеЕсли Запрос.РасхКол <> 0 Тогда

                        Приращение = Запрос.РасхКол;

                        Таб.ВывестиСекцию("Расход");

                     КонецЕсли;

                  КонецЦикла;

               КонецЕсли;

            КонецЦикла;

         КонецЕсли;

      КонецЦикла;

   КонецЕсли;

КонецЦикла;

Атрибуты запросов

Атрибутами запроса являются объявленные в описании запроса внутренние переменные (см. главу «Язык запросов»), имена группировок и функций запроса. Все атрибуты запросов — только для чтения.

Чтобы обратиться к атрибуту запроса, имя этого атрибута пишется через точку после имени ссылки на запрос. Значения атрибутов запроса определяются текущим положением в полученной выборке.

Методы запросов

Выполнить

Выполнить запрос.

Синтаксис:

Выполнить(<ТекстЗапроса>)

Англоязычный синоним:

Execute

Параметры:

<ТекстЗапроса>

Строковое выражение, содержащее текст запроса на языке запросов (см. Главу «Язык запросов»).

Возвращаемое значение:

Число: 1 — если запрос выполнен успешно, 0 — если зафиксирована ошибка при выполнении запроса (синтаксическая или времени выполнения).

Описание:

Метод Выполнить анализирует описание запроса, содержащееся в тексте запроса <ТекстЗапроса>, выполняет выборку данных, формирует временный выходной набор данных (выборку), вычисляет значения функций запроса (см. главу «Язык запросов»).

Язык запросов предназначен для описания запросов к базе данных. Написанный на языке запросов текст описания передается методу Выполнить в качестве параметра. Метод Выполнить непосредственно выполняет запрос, о результате его выполнения формируется временный выходной набор данных, который в дальнейшем используется для заполнения формы отчета.

Пример:

Процедура Сформировать()

   // сформируем данные на начало месяца

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   _Дата = ЖР.НачалоТекущегоПериода();

   // Создание объектов типа "Запрос"

   Запрос = СоздатьОбъект("Запрос");

   ЗапросКат = СоздатьОбъект("Запрос");

   флаг1 = Запрос.Выполнить(

   "//({ЗАПРОС(Двойной)

   |Период с _Дата по _Дата;

   |Оклад = Справочник.Сотрудники.Оклад;

   |Пдр = Справочник.Сотрудники.МестоРаботы.Владелец;

   |Ктг = Справочник.Сотрудники.Категория;

   |Условие((Ктг.Выбран() = 1) И (Пдр.Выбран() = 1));

   |Группировка Пдр без групп;

   |Группировка Ктг без групп;

   |Функция Всего = Сумма(Оклад);

   |"//}} ЗАПРОС

   );

   Флаг2 = ЗапросКат.Выполнить(

   "//{{ЗАПРОС(Одинарный)

   |Период с _Дата по _Дата;

   |Оклад = Справочник.Сотрудники.Оклад;

   |Ктг = Справочник.Сотрудники.Категория;

   |Условие(Ктг.Выбран() = 1);

   |Группировка Ктг без групп;

   |Функция Всего = Сумма(Оклад);

   |"//}}ЗАПРОС

   );

   // Если ошибка в запросе, то выход из процедуры

   Если ((Флаг1 = 0) ИЛИ (Флаг2 = 0)) Тогда

      Сообщить("Ошибка в запросе!");

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса

   Таб = СоздатьОбъект("Таблица");

   // Выводим заглавие таблицы

   Таб.ВывестиСекцию("Документ<|ДокументВерт<");

   Пока ЗапросКат.Группировка("Ктг") = 1 Цикл

      Таб.ПрисоединитьСекцию("Документ<|Осн2");

   КонецЦикла;

   Таб.ПрисоединитьСекцию("Документ<|ДокументВерт>");

   // Выводим колонтитул таблицы

   Таб.ВывестиСекцию("КолонТитул|ДокументВерт<");

   Пока ЗапросКат.Группировка("Ктг") = 1 Цикл

      Таб.ПрисоединитьСекцию("КолонТитул|Осн2");

   КонецЦикла;

   Таб.ПрисоединитьСекцию("КолонТитул|ДокументВерт>");

   Продолжать = 1;

   Пока Запрос.Группировка("Пдр") = 1 Цикл

      // Заполнение полей

      Пдр Таб.ВывестиСекцию("Осн1|ДокументВерт<");

      Далее = 1;

      Пока Продолжать = 1 Цикл

         // Заполнение полей Ктг

         СлКат = ЗапросКат.Группировка("Ктг");

         Если Далее = 1 Тогда

            ОК = Запрос.Группировка("Ктг");

         КонецЕсли;

         Если СлКат = 0 Тогда

            Прервать;

         КонецЕсли;

         Если ЗапросКат.Ктг = Запрос.Ктг Тогда

            Таб.ПрисоединитьСекцию("Осн1|Осн2");

            Далее = 1;

         Иначе

            Таб.ПрисоединитьСекцию("Осн1|Пусто");

            Далее = 0;

         КонецЕсли;

      КонецЦикла;

      Таб.ПрисоединитьСекцию("Осн1|ДокументВерт>");

   КонецЦикла;

   // Заполнение полей "Итого"

   Таб.ВывестиСекцию("Документ>|ДокументВерт<");

   Пока ЗапросКат.Группировка("Ктг") = 1 Цикл

      Таб.ПрисоединитьСекцию("Документ>|Осн2");

   КонецЦикла;

   Таб.ПрисоединитьСекцию("Документ>|ДокументВерт>");

   // Вывод заполненной формы Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Результат", );

КонецПроцедуры

ИспользоватьГрафуОтбора

Установить режим использования графы отбора в запросе.

Синтаксис:

ИспользоватьГрафуОтбора(<ГрафаОтбора>)

Англоязычный синоним:

UseSelectionColumn

Параметры:

<ГрафаОтбора>

Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора.

"*" — автоматический выбор графы отбора.

Пустая строка — не использовать графу отбора.

Возвращаемое значение:

Строковое значение: идентификатор использованной реально графы отбора, если метод вызывается после выполнения запроса.

Описание:

Метод устанавливает режим использования графы отбора в запросе. Если метод не используется — по умолчанию устанавливается автоматический выбор графы отбора.

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(ОбработкаДок)

|Период с '01.10.96' по '05.10.96';

|ОбрабатыватьДокументы Все;

|Тов = Документ.РасхНакл.Товар;

|Клиент = Документ.РасхНакл.Клиент;

|Группировка Клиент;

|Группировка Тов;

|Группировка Документ;

|"//)}ЗАПРОС

;

// ЕСЛИ ошибка в запросе, то выход из процедуры

Запрос.ИспользоватьГрафуОтбора("Клиент");

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Группировка

Получить следующее значение выборки запроса на заданном уровне группировки.

Синтаксис:

Группировка(<Группировка>, <Направление>)

Англоязычный синоним:

Group

Параметры:

<Группировка> | Выражение, содержащее порядковый номер или имя группировки.
<Направление> | Необязательный параметр. Числовое выражение: 1 — выборка значений группировки по возрастанию; -1 (минус единица) — выборка значений группировки по убыванию. Значение по умолчанию: 1.

Возвращаемое значение:

Число: 1 — если получено следующее значение выборки запроса, 0 — если нет.

Описание:

Метод Группировка служит для организации цикла получения данных из выборки, сформированной в результате работы метода Выполнить. Метод Группировка позиционирует в выборке очередную строку в порядке, определенном параметром <Группировка>. Нельзя использовать метод Группировка, задавая в качестве параметра младшие группировки, не использовав предварительно этот метод для позиционирования по старшим группировкам. Старшинство группировок определяется порядком их следования в тексте запроса.

Замечание: Обход группировок по многоуровневым справочникам в порядке убывания не выполняется.

Пример:

Процедура Сформировать()

   Перем Запрос, ТекстЗапроса;

   Если (Число(ДатаНач) = 0) ИЛИ (Число(ДатаКон) = 0) Тогда

      Предупреждение("Не задан период!");

      Возврат;

   КонецЕсли;

   //Создание объекта типа "Запрос" Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса =

   "//{{ЗАПРОС(Сформировать)

   |с ДатаНач по ДатаКон;

   |Рез = ЖурналРасчетов.Зарплата.Результат;

   |Сотр = ЖурналРасчетов.Зарплата.Объект;

   |Группировка Сотр без групп;

   |Группировка ПериодЖурнала;

   |Функция Сум = Сумма(Рез);

   |"//}}ЗАПРОС

   ;

   Если Сотрудник.Выбран() = 1 Тогда

      ТекстЗапроса = ТекстЗапроса + "Условие(Сотр = Сотрудник);";

   КонецЕсли;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапр) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса

   Таб = СоздатьОбъект("Таблица");

   // сначала используем группировку по сотрудникам

   // а потом группировку по периоду журнала!!!

   Пока Запрос.Группировка("Сотр") = 1 Цикл

      // Заполнение полей Сотр

      Таб.ВывестиСекцию("Сотр<");

      Пока Запрос.Группировка("ПериодЖурнала") = 1 Цикл

         // Заполнение полей ПериодЖурнала

         Таб.ВывестиСекцию("Мес");

      КонецЦикла;

      Таб.ВывестиСекцию("Сотр>");

   КонецЦикла;

   // Вывод заполненной формы

   // Заполнение полей "Итого"

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Результат", );

КонецПроцедуры

ЭтоГруппа

Возвращает флаг принадлежности группе справочника.

Синтаксис:

ЭтоГруппа(<ИмяГруппировки>)

Англоязычный синоним:

IsItAGroup

Параметры:

<ИмяГруппировки>

Выражение, содержащее порядковый номер или имя группировки (см. Главу «Язык запросов»).

Возвращаемое значение:

Число: 1 — если текущая строка выборки (временного набора данных, сформированного в результате выполнения запроса) является группой справочника, 0 — если это обычный элемент справочника.

Описание:

Метод ЭтоГруппа предназначен для выделения строк временного набора данных, которые являются группой справочника.

Пример:

Пока (Запр.Группировка("Товар") = 1) И (Запр.ЭтоГруппа("Товар") = 1) Цикл

   ...

КонецЦикла;

НачалоПериода

Возвращает дату начала периода формирования запроса.

Синтаксис:

НачалоПериода()

Англоязычный синоним:

BeginOfPeriod

Возвращаемое значение:

Значение типа «дата» — начало периода формирования запроса.

Описание:

Метод НачалоПериода возвращает дату начала периода запроса. Если в тексте запроса (см. «Язык запросов») указана одна из предопределенных группировок типа период ("Год", "Месяц", "День" и т. д.), то при обработке этой и вложенных в нее группировок метод НачалоПериода будет возвращать начало периодов текущих значений этих группировок.

Пример:

ДатаНачала = Запрос.НачалоПериода();

КонецПериода

Возвращает дату конца периода формирования запроса.

Синтаксис:

КонецПериода()

Англоязычный синоним:

EndOfPeriod

Возвращаемое значение:

Значение типа «дата» — конец периода формирования запроса.

Описание:

Метод КонецПериода возвращает дату конца периода запроса. Если в тексте запроса (см. «Язык запросов») указана одна из предопределенных группировок типа период ("Год" , "Месяц" , "День" и т. д.), то при обработке этой и вложенных в нее группировок метод КонецПериода будет возвращать конец периодов текущих значений этих группировок.

Пример:

ДатаКонца = Запрос.КонецПериода();

Получить

Прямое позиционирование на запись в выборке по конкретным значениям группировок.

Синтаксис:

Получить(<ЗначениеГруппировки_1>, ..., <ЗначениеГруппировки_n>)

Англоязычный синоним:

Get

Параметры:

<ЗначениеГруппировки_n>

Выражение, содержащее значение n-ой группировки запроса.

Возвращаемое значение:

Число: 1 — если запись найдена, 0 — если нет.

Описание:

Метод Получить осуществляет прямое позиционирование на запись в выборке по конкретным значениям группировок.

Количество параметров метода зависит от количества группировок в запросе. Можно пропускать значения одной или нескольких последних группировок, в этом случае метод позиционируется на запись, которая будет содержать итоговые значения для указанных группировок. Пропускаемые при вызове метода последние значения группировок должны заменяться запятыми. Если при вызове метода опущены все параметры, то выборка позиционируется на самое начало временного набора данных, на строку итогов.

После выполнения метода Получить может осуществляться дальнейший обход выборки вызовами метода Группировка.

Пример:

// Текст запроса

Текст3апроса = "

| ...

|Группировка Должность;

|Группировка Категория;

| ...

|";

// Текст процедуры обработки запроса

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Если Запрос.Получить(ВыбДолжн, ВыбКатег) = 0 Тогда

   Если Запрос.Получить(ВыбДолжн, ) = 0 Тогда

      // ...

   КонецЕсли;

КонецЕсли;

ВНачалоВыборки

Осуществляет прямое позиционирование на начало выборки.

Синтаксис:

ВНачалоВыборки()

Англоязычный синоним:

ToSelectionBegin

Возвращаемое значение:

Число: 1 — если операция выполнена успешно, 0 — если нет.

Описание:

Метод ВНачалоВыборки осуществляет прямое позиционирование на начало выборки.

Если необходимо перейти на верхний уровень группировок, чтобы затем организовать проход группировки первого уровня (в любом направлении), следует использовать метод ВНачалоВыборки.

Пример:

// Текст запроса

Текст3апроса = "

| ...

|Группировка Должность;

|Группировка Категория;

| ...

|";

// Текст процедуры обработки запроса

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Если Запрос.Получить(ВыбДолжн, ВыбКатег) = 0 Тогда

   Если Запрос.Получить(ВыбДолжн, ) = 0 Тогда

      // ...

   КонецЕсли;

КонецЕсли;

Запрос.ВНачалоВыборки();

Пока Запрос.Группировка(1, -1) цикл

   // ...

Конеццикла;

Выгрузить

Выгружает результаты запроса в таблицу значений.

Синтаксис:

Выгрузить(<ТаблЗнач>, <Флаг>, <Итоги>)

Англоязычный синоним:

Unload

Параметры:

<ТаблЗнач> | Таблица значений, куда выгружаются результаты запроса.
<Флаг> | Необязательный параметр. Число: 0 — значения групп и функций (по умолчанию); 1 — значения групп и функций, дополнительных переменных; 2 — значения упорядочиваний групп и функций; 3 — значения упорядочиваний групп и функций, дополнительных переменных; Строка — "Товар(1), Товар(2), Товар, Склад, Приход, Расход" , где Товар(1) — значение первого упорядочивания группировки "Товар".
<Итоги> | Необязательный параметр. Число: 0 — итоги по группировкам не выводить; 1 — итоги по группировкам выводить сверху (по умолчанию); 2 — итоги по группировкам выводить снизу; 3 — итоги по группировкам выводить сверху и снизу.

Возвращаемое значение:

Число: 1 — если выгрузка произошла успешно, иначе — 0.

Описание:

Метод Выгрузить выгружает результаты запроса в таблицу значений.

Пример:

// Текст запроса

Текст3апроса = "

| ...

|Группировка Должность;

|Группировка Категория;

| ...

|";

// Текст процедуры обработки запроса

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

ТаблЗнач = Создать("ТаблицаЗначений");

Запрос.Выгрузить(ТаблЗнач, 0, 0);

ЗначениеУпорядочивания

Возвращает значение поля упорядочивания для заданной группировки.

Синтаксис:

ЗначениеУпорядочивания(<Группировка>, <Упорядочив>)

Англоязычный синоним:

OrderValue

Параметры:

<Группировка> | Выражение, содержащее значение номера или имени группировки (номер работает быстрее).
<Упорядочив> | Необязательный параметр. Порядковый номер параметра упорядочивания указанной группировки. Значение по умолчанию: 1.

Возвращаемое значение:

Значение поля упорядочивания.

Описание:

Метод ЗначениеУпорядочивания возвращает значение поля упорядочивания, выбирая его из временной выборки запроса, не обращаясь к базе данных.

Замечание: Если в тексте запроса для данной группировки не используется конструкция "Упорядочить по", то в этом случае действует упорядочивание по умолчанию:

· для справочников — зависит от основного представления при описании справочника в конфигураторе (код или наименование).

· для документов — дата и время создания документа.

Пример:

// Текст запроса

ТекстЗапроса = "

|ВидРаб = Документ.Наряд.ВидРаботы;

|Сотр = Документ.Наряд.Сотрудник;

|Группировка ВидРаб

|Упорядочить По ВидРаб.Код, ВидРаб.Стоимость;

|Группировка Сотр;

|";

//...

// Фрагмент заполнения таблицы

// Выбираем значение

ВидРаб.Стоимость

Запрос.ЗначениеУпорядочивания("ВидРаб", 2);

// Выбираем имя сотрудника

Запрос.ЗначениеУпорядочивания(2, 1);

ПолучитьАтрибут

Возвращает значение атрибута запроса по его имени.

Синтаксис:

ПолучитьАтрибут(<ИмяАтрибута>)

Англоязычный синоним;

SetAttrib

Параметры:

<ИмяАтрибута>

Строковое выражение, содержащее значение любого атрибута запроса.

Возвращаемое значение:

Значение атрибута запроса.

Описание:

Метод ПолучитьАтрибут возвращает значение атрибута запроса по его имени.

Пример:

// Текст запроса

ТекстЗапроса = "

|ВидРаб = Документ.Наряд.ВидРаботы;

|Сотр = Документ.Наряд.Сотрудник;

|Группировка ВидРаб

|Упорядочить По ВидРаб.Код, ВидРаб.Стоимость;

|Группировка Сотр;

|";

// ...

// Фрагмент заполнения таблицы

// Выбираем значение ВидРаб

Запрос.ПолучитьАтрибут("ВидРаб");

// Выбираем сотрудника

Запрос.ПолучитьАтрибут("Сотр");


Part34

Глава 34
Язык Запросов

Язык запросов предназначен для описания запросов к документам, справочникам, регистрам, журналам расчетов, планам счетов, бухгалтерским операциям и проводкам. Текст описания запроса передается методу Выполнить (см. Главу «Работа с Запросами») в качестве параметра. В результате выполнения этого метода генерируется временный выходной набор данных, который в дальнейшем используется для заполнения формы отчета.

Формат текста описания запроса

Текст описания запроса на языке запросов состоит из последовательности операторов. Концом оператора является символ ";". Операторы могут записываться в любом порядке, однако, следует помнить, что интерпретатор языка запросов однопроходный, следовательно, сначала следует описать переменную, и только потом ее использовать в операторах Группировка, Функция или Условие.

Пример:

ТекстЗапроса =

"//({ЗАПРОС(РасчЛистки)

|  // Задаем интервал запроса

|Период с ДатаНач по ДатаКон;

|  // Определяем внутренние переменные

|Рез = ЖурналРасчетов.Зарплата.Результат;

|Расч = ЖурналРасчетов.Зарплата.ВидРасч;

|Дни = ЖурналРасчетов.Зарплата.Дни;

|Сотр = ЖурналРасчетов.Зарплата.Объект;

|  // Назначаем группировки

|Группировка Сотр без групп;

|Группировка Расч;

|  // Назначаем функции

|Функция Сум = Сумма(Рез);

|Функция Дней = Сумма(Дни);

|  // Назначаем условие

|Условие(Рез <> 0);

|"//}}ЗАПРОС

;

// ...

Соглашения и обозначения

В синтаксических диаграммах языка запросов используются следующие символы:

Символ | Значение
[ ] | В квадратных скобках заключаются необязательные синтаксические элементы.
[ ]+ | В квадратных скобках со знаком "+" заключаются обязательные синтаксические элементы, которые могут использоваться один или более раз.
[ ]* | В квадратных скобках со знаком "*" заключаются необязательные синтаксические элементы, которые могут использоваться один или более раз.
( ) | Круглые скобки заключают в себе список параметров.
| | Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбирать один и только один.

Зарезервированные слова языка запросов

Ключевые слова — это слова, которые используются языком запросов для обозначения встроенных операторов.

Приведенные далее ключевые слова являются зарезервированными и не могут использоваться в качестве имен внутренних переменных описания запросов. Каждое ключевое слово имеет как минимум два представления — русское и английское. Английское представление является традиционным для языков программирования. Ключевые слова в русском и английском представлении могут свободно смешиваться в одном исходном тексте. Регистр букв ключевых слов не имеет значения. Ниже приведен полный список зарезервированных слов языка запросов в обоих представлениях.

Русский яз. | Английский яз.
Без | Without
Год | Year
Групп | Groups
Группировка | Group
День | Day
Документ | Document
И | And
Или | Or
Квартал | Quarter
Когда | When
Месяц | Month
Неделя | Week
НомерСтроки | LineNum
Обрабатывать | Process
ОбрабатыватьДокументы | ProcessDocuments
ОбрабатыватьОперации | PrосessOperations
Период | Period
ПериодЖурнала | Journal Period
По | By
По | Till
С | From
СтрокаДокумента | Document Line
Упорядочить | Order
Условие | Condition
Функция | Function

Все ключевые слова могут быть набраны в любом регистре (верхний и нижний), например: Функция, ФУНКЦИЯ, фУНКЦИЯ .

Комментарий

Комментарий в тексте описания запроса начинается парой символов //и заканчивается концом строки.

Пример:

// Это — комментарий

Группировка Кат;  // Это тоже комментарий

Константы и переменные запросов

Константы

Язык содержит следующие типы констант:

Числовая константа описывается следующей синтаксической диаграммой:

[+|-][0-9]+ | [0-9]*.[0-9]+

Пример:

-17

43.712

.43842

Строковая константа — это строка, заключенная в двойные кавычки.

Пример:

"Это текстовая константа" // ОК

"Это ошибочная константа

и должна находиться на одной строке" // Ошибка

Константа типа "дата" задается в виде строки, заключенной в одинарные кавычки, в формате 'ДД.ММ.ГГ' или 'ДД.ММ.ГГГГ'.

Пример:

'21.05.96'

'25.09.1964'

Внутренние переменные

Внутренняя переменная — это переменная, объявленная в тексте описания запроса. Именем переменной может быть любая последовательность букв, цифр и знаков подчеркивания "_", начинающаяся с буквы или знака подчеркивания "_". Имена внутренних переменных не должны совпадать с зарезервированными словами языка запросов. Распознавание имен переменных, названий операторов, процедур и функций ведется без учета регистра букв.

Пример:

*

// имена внутренних переменных в описании запроса

_43842        // ОК

НачалоПериода // ОК

712piece      // Ошибка: начинается с цифры

Week          // Ошибка: ключевое слово зарезервировано

*

// применение имен внутренних переменных описания запроса

// в программном модуле после позиционирования строки

// выборки функцией Группировка

Сотр = НовЗапрос.Сотр;

Кат = НовЗапрос.Кат;

ИТОГ = НовЗапрос.Итого;

Конкретизация переменной

Конкретизация переменной — это уточнение описания внутренней переменной, если это возможно в текущем контексте. Конкретизации переменной могут использоваться в языке запросов в операторах Группировка ... Упорядочить По и в качестве аргумента оператора Функция (см. далее).

Синтаксис:

<ВнутренняяПеременная>[.<Путь>]+;

Параметры:

<ВнутренняяПеременная> | Идентификатор объявленной ранее внутренней переменной.
<Путь> | Доступный атрибут внутренней переменной или конкретизации переменной (см. «Атрибуты, доступные при описании внутренних переменных»).

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

" //{{ЗАПРОС(ОбработкаДок)

|Период с '01.10.96' по '05.10.96';

|ОбрабатыватьДокументы Все;

|Тов = Справочник.Товары.ТекущийЭлемент, Документ.РасхНакл.Товар;

|  // используем конкретизацию внутренней переменной Тов

|Группировка Тов Упорядочить По Тов.Наименование;

|Группировка Документ;

|Группировка СтрокаДокумента;

|"//}}ЗАПРОС

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Внимание! Запрос не манипулирует величинами типа «Строка неограниченной длины».

Внешние переменные

Внешние переменные — это переменные из области видимости процедуры или функции программного модуля, в теле которого используется данный запрос. Внешние переменные в тексте описания запроса могут использоваться в операторах Период С и Условие.

Пример:

Перем ДатаНач, ДатаКон;

Процедура Сформировать()

   Если (Число(ДатаНач) = 0) ИЛИ (Число(ДатаКон) = 0) Тогда

      Предупреждение("Не задан период!");

      Возврат;

   КонецЕсли;

   // Создание объекта типа "Запрос"

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса =

   "//{{ЗАПРОС(Сформировать)

   |  // используем внешние переменные ДатаНач и ДатаКон

   |с ДатаНач по ДатаКон;

   |Рез = ЖурналРасчетов.Зарплата.Результат;

   |Сотр = ЖурналРасчетов.Зарплата.Объект;

   |Группировка Сотр без групп;

   |Группировка ПериодЖурнала;

   |Функция Сум = Сумма(Рез);

   |"//}}ЗАПРОС

   ;

   // используем внешнюю переменную ВыбСотр

   Если ВыбСотр.Выбран() = 1 Тогда

      // используем в запросе внешнюю переменную ВыбСотр

      ТекстЗапроса = ТекстЗапроса + "Условие(Сотр = ВыбСотр);";

   КонецЕсли;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапр) = 0 Тогда

      Возврат;

   КонецЕсли;

   ...

КонецПроцедуры // ВыбСотр — это реквизит диалога

Атрибуты, доступные при описании внутренних переменных

В языке запросов можно обращаться к атрибутам следующих видов данных:

Русское назв. | Англ. Назв. | Описание
Документ | Document | Данные документов.
Справочник | Reference | Данные справочников.
Регистр | Register | Данные регистров.
ЖурналРасчетов | CalcJournal | Данные журналов расчета.
Счет | Account | Данные счетов.
Операция | Operation | Данные бухгалтерских операций и проводок.

Эти названия являются первыми в пути описания переменных. В качестве атрибутов допускается использовать любые реквизиты, которые заданы для них в конфигураторе в дереве метаданных (реквизиты для справочников, документов и журналов расчетов; измерения и ресурсы для регистров). Кроме этих атрибутов, разрешен так же доступ к следующим предопределенным атрибутам:

Доступные атрибуты объектов типа «Документ»:

Русское назв. | Англ. Назв. | Описание
ВремяДок | DocTime | Время документа.
ДатаДок | DocDate | Дата документа.
НомерДок | DocNum | Номер документа.
НомерСтроки | LineNum | Номер строки документа.
ТекущийДокумент | CurDocument | Значение текущего документа.

Доступные атрибуты объектов типа «Справочник»:

Русское назв. | Англ.назв. | Описание
родитель | Parent | Родитель элемента многоуровневого справочника.
Владелец | Owner | Владелец подчиненного справочника.
Код | Code | Код элемента справочника.
Наименование | Description | Наименование элемента справочника.
ТекущийЭлемент | CurItem | Значение текущего элемента справочника.

Доступные атрибуты объектов типа «Регистр»:

Русское назв. | Англ.назв. | Описание
НомерСтроки | LineNum | Номер строки документа, выполнившего движение регистра (в случае, когда в Модулях документов в конфигурации перед движением регистра использовали метод ПривязыватьСтроку).
ТекущийДокумент | CurDocument | Значение документа, выполнившего движение регистра.

Доступные атрибуты объектов типа «ПланСчетов»:

Русское назв. | Англ. назв. | Описание
БезКорреспонденций | IsSingle | Флаг того, что элемент плана счетов — забалансовый.
Валютный | IsCurrency | Флаг валютного учета элемента плана счетов.
КОД | Code | Код элемента плана счетов.
Количественный | Is Amount | Флаг количественного учета элемента плана счетов.
Наименование | Description | Наименование элемента плана счетов.
ТекущийСчет | CurAccount | Значение текущего счета плана счетов.

Доступные атрибуты объектов типа «Операция»:

Русское назв. | Англ. Назв. | Описание
ВремяОперации | OperTime | Время операции.
ДатаОперации | OperDate | Дата операции.
Содержание | Description | Содержание операции.
СуммаОперации | OperSum | Сумма операции.
ТекущийДокумент | CurDocument | Значение документа создавшего операцию.

Доступные атрибуты объектов типа «Проводка»:

Русское назв. | Англ. назв. | Описание
ВалСумма | CurSum | Валютная сумма проводки (для счетов с валютным учетом).
Валюта | Currency | Валюта проводки.
Количество | Amount | Количество проводки (для счетов с количественным учетом).
КорСчет | CorAccount | Корреспондирующий счет. Корреспондирующим счетом, для которого является Счет.
Сумма | Sum | Сумма проводки.
Счет | Account | Счет, для обработки корреспонденции. Корреспондирующим счетом, для которого является КорСчет.

Пример:

*

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "//{{ЗАПРОС(Сформировать)

|Период с НачДата по КонДата;

|ДОКУМ = Документ.РасходнаяБН.ТекущийДокумент,

|   Документ.РасходнаяКредит.ТекущийДокумент,

|   Документ.РасходнаяНал.ТекущийДокумент,

|   Документ.РасходнаяРеализ.ТекущийДокумент,

|   Документ.Счет.ТекущийДокумент;

|Группировка ДОКУМ; //по документам

|"//}}ЗАПРОС

;

*

//Создание объекта типа Запрос

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Печать)

|Товар = Справочник.Товары.ТекущийЭлемент;

|Группировка Товар Упорядочить по Товар.МинЗапас;

|"//}}ЗАПРОС

*

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать)

|Период с НачДата по КонДата;

|ВидТоплива = Регистр.ПокупателиКолво.ВидыТоплива;

|Вес = Регистр.ПокупателиКолво.Кг;

|Покуп = Регистр.ПокупателиКолво.Покупатели;

|Док = Регистр.ПокупателиКолво.ТекущийДокумент;

|Ном = Регистр.ПокупателиКолво.НомерСтроки;

|Группировка ВидТоплива; //по измерению Регистра

|Группировка Док; // по документам, двигавшим Регистр

|Группировка Ном; // по номерам строк документов

|Функция ВсегоКолво = КонОст(Вес);

|Функция ПриходКолво = Приход(Вес);

|Условие(Покуп = ВыбПокупатель);

|"//}}ЗАПРОС

;

Операторы языка запросов

Объявление внутренней переменной

Синтаксис:

<ИмяПеременной> = <ОписаниеПеременной> [, <ОписаниеПеременной>]+;

Параметры:

<ИмяПеременной> | Имя объявляемой внутренней переменной описания запроса.
<ОписаниеПеременной> | Указывает на доступный в языке запросов атрибут документа, справочника, регистра или журнала расчетов (см. «Атрибуты, доступные при описании внутренних переменных»).

Описание:

Внутренние переменные используются в тексте запроса для образования ссылок на объекты конфигурации, чтобы использовать их при построении таких операторов запроса, как Группировка, Функция, Условие.

В объявлении внутренней переменной можно указывать несколько вариантов <ОписанияПеременной>. Все описания должны указывать на один и тот же тип данных (число, строку, справочник или документ). Переменной, указывающей на разные справочники или документы присваивается тип данных «Справочник неопределенного вида» или «Документ неопределенного вида» соответственно.

* Например, можно определить внутреннюю переменную:

Товар = Документ.Перемещение.Товар, Документ.Расходная.Товар;

и использовать ее для создания Группировки. Такой состав внутренней переменной как бы дает Группировке задание — просмотреть все документы видов "Перемещение" и "Расходная" и выбрать все товары, встречающиеся либо в документах вида "Перемещение", либо в документах "Расходная".

* Еще пример. Допустим, у нас есть регистр "Взаиморасчеты" и регистр "Кредиты", и в том и в другом есть измерение "Клиент". Определяем внутреннюю переменную:

Должник = Регистр.Взаиморасчеты.Клиент, Регистр.Кредиты.Клиент;

Если использовать такую внутреннюю переменную для образования Группировки, то она будет означать следующее: пройти по регистру "Взаиморасчеты" и по регистру "Кредиты", вычислить заданные в запросе Функции и выбрать значения "Клиентов", для которых значения хотя бы одной функции будет ненулевой. Здесь мы видим, что формирование запроса по регистрам имеет некоторые особенности (обязательно наличие Функций, причем их вычисленные значения должны быть отличны от нуля, только в этом случае найденные объекты включаются во временный набор данных формируемый запросом).

Если описания внутренней переменной указывают на разные типы данных, например, на «Справочник» и на «Документ», то это просто вызовет сообщение об ошибке. Например, следующее определение внутренней переменной будет ошибочным:

ААА = Справочник.Товары.ТекущийЭлемент, Документ.Счет.ТекущийДокумент;

// ЭТО ОШИБКА !!!

Однако, допускается в описании внутренней переменной указание на разные справочники либо на разные документы. Переменной, указывающей на разные справочники или документы присваивается тип данных «Справочник неопределенного вида» или «Документ неопределенного вида» соответственно.

* Например, правомерно задать такую внутреннюю переменную:

Парам = Документ.Счет.Клиент, Документ.Счет.Фирма;

(Здесь предполагается, что в контексте конфигурации, реквизиты "Клиент" и "Фирма" — это элементы справочников). Если использовать такую внутреннюю переменную для построения Группировки, то она будет означать следующее: пройти по документам "Счет" и выбрать значения клиентов и фирм, встречающихся в них (и, например, упорядочить эти элементы по наименованию). Как интерпретировать результаты полученной выборки при таком запросе — будет зависеть от контекста поставленной задачи.

В языке запросов описание внутренних переменных для агрегатных типов данных типа «Операция» и «Проводка» начинается со слова «Операция» вне зависимости от того, будет ли обращение к бухгалтерским операциям или к проводкам. <ОписаниеПеременной> определяется следующим образом:

Операция.(

   <Реквизиты0перации>

   |  <ПредРеквОпераций>

   |  <РеквизитыПроводок>

   |  <ПредРеквПроводок>

   |  Дебет.(

         Счет

         | <Субконто>

      )

   |  Кредит.(

         Счет

         | <Су6конто>

      )

   |  Субконто.

      <ВидСубконто>

   |  КорСубконто.

      <ВидСубконто>

)

<РеквизитыОперации> | Реквизиты операции объявленные в метаданных.
<ПредРеквОпераций> | Предопределенные реквизиты Операций.
<РеквизитыПроводок> | Реквизиты проводок, объявленные в метаданных.
<ПредРеквПроводок> | Предопределенные реквизиты Проводок.
<ВидСубконто> | Идентификатор вида субконто.

Применение слов "Дебет", "Кредит" в описании переменных позволяют оперировать дебетовой и кредитовой частями проводки, такими как счет и вид субконто.

Применение слов "Субконто" и "КорСубконто" в описании переменных позволяют оперировать как субконто, так и корреспондирующим субконто.

*

Сум = Операция.Сумма;

Сч = Операция.Дебет.Счет, Операция.Кредит.Счет;

Кратко суть этого раздела можно выразить так: при определении внутренних переменных запроса разработчик конфигурации должен ясно себе представлять суть и смысл взаимосвязи объектов конфигурации, которые объединяются в описании единой внутренней переменной, поскольку интерпретация полученных результатов выполнения запроса полностью зависит от контекста решаемой задачи.

Несколько слов о дополнительных именах доступа к стандартной информации, которые определены в языке запросов. Речь идет о конструкции ТекущийЭлемент для справочников и ТекущийДокумент для документов и регистров (не надо путать эти конструкции языка запросов с одноименными методами встроенного языка, хотя их смысл во многом совпадает).

Для справочников использование конструкции ТекущийЭлемент в описании внутренней переменной означает выборку элемента справочника как такового (целиком всей записи справочника).

Аналогично при работе с документами, использование конструкции ТекущийДокумент в описании внутренней переменной, означает выборку документа как такового (целиком всего документа как объекта конфигурации). Сравните два примера:

Пример 1.

* Здесь нас интересуют товары, встречающиеся в документах.

ТОВАР = Документ.РасходнаяБН.Товар,

   Документ.РасходнаяКредит.Товар,

   Документ.РасходнаяНал.Товар,

   Документ.РасходнаяРеализ.Товар,

   Документ.Счет.Товар;

Пример 2.

* Здесь нас интересуют сами документы указанных видов как таковые.

ДОКУМ = Документ.РасходнаяБН.ТекущийДокумент,

   Документ.РасходнаяКредит.ТекущийДокумент,

   Документ.РасходнаяНал.ТекущийДокумент,

   Документ.РасходнаяРеализ.ТекущийДокумент,

   Документ.Счет.ТекущийДокумект;

Использование для документов конструкции НомерСтроки в описании внутренней переменной, означает выборку номеров строк документов (не самих строк, а чисел, обозначающих номера строк в документе).

СТРОКА = Документ.РасходнаяБН.НомерСтроки;

Для регистров использование конструкции ТекущийДокумент в описании внутренней переменной означает выборку документов (целиком всего документа как объекта конфигурации), которые произвели движение по данному регистру.

Использование для регистра конструкции НомерСтроки в описании внутренней переменной, означает выборку связанных номеров строк тех документов, которые произвели движение по регистру (в случае, когда в Модулях документов в конфигурации перед движением регистра использовали метод ПривязыватьСтроку).

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать)

|Период с НачДата по КонДата;

|ВидТоплива = Регистр.ПокупателиКолво.ВидыТоплива;

|Покуп = Регистр.ПокупателиКопво.Покупатели;

|Док = Регистр.ПокупателиКолво.ТекущийДокумент;

|Ном = Регистр.ПокупателиКолво.НомерСтроки;

|Вес = Регистр.ПокупателиКолво.Кг;

|Группировка ВидТоплива; // по измерению Регистра

|Группировка Док; //по документам, двигавшим Регистр

|Группировка Ном; // по номерам строк документов

|Функция ВсегоКолво = КонОст(Вес);

|Функция ПриходКолво = Приход(Вес);

|Условие(Покуп = Покупат);

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

В программном модуле конфигурации (т. е. вне текста запроса) существует доступ (там, где это имеет смысл) к значениям всех объявленных в тексте запроса внутренних переменных, даже тех, которые не участвуют ни в группировках, ни в функциях. Другими словами, если объявленная в тексте запроса внутренняя переменная не задействована в запросе ни в группировке, ни в функции ни в условии, данная внутренняя переменная все же присутствует в запросе.

Период С

Установить временной интервал дат формирования запроса.

Синтаксис:

[[Период] С <Дата>|<ВнешняяПерем> [ПО <Дата>|<ВнешПеременная>];]

Англоязычный синоним:

[[Period] From <Дата>|<ВнешПеременная> [Till <Дата> | <ВнешПеременная>];]

Параметры:

<Дата> | Константа типа «Дата», «Документ» или . позиция документа.
<ВнешПеременная> | Внешняя переменная типа «Дата», «Документ» или позиция документа. Если указан документ, то за момент времени принимается дата и время документа.
По | Добавочное ключевое слово для связки первой части команды со второй, необязательной частью.

Описание:

Оператор Период С устанавливает интервал дат формирования запроса. Если в описании запроса оператор Период С опущен, то интервал дат формирования запроса устанавливается в точку актуальности итогов (ТА) (или на РабочуюДату, если не установлена компонента «Оперативный учет»), запрос формируется только на этот момент времени.

Использование данного оператора актуально только в том случае, если запрос строится для выборки данных по регистрам, журналам расчетов и/или документам. Здесь указывается, в каком интервале выбирать движения регистров и/или подборку документов. При выполнении запроса только по справочникам эта секция не играет никакой роли.

Параметрами оператора Период С являются значения момента времени («Дата», «Документ» или позиция документа) начала и конца временного интервала. Следует особо обратить внимание, что если интервал задается с точностью до даты, то интервал времени считается от начала даты нижней границы интервала до конца даты верхней границы интервала. Если вторая часть оператора после ключевого слова По пропущена или значение второго параметра команды равно нулю, то интервал времени применяется от начального момента времени до ТА (или по РабочуюДату, если не установлена компонента «Оперативный учет»). Это особенно важно при формировании запросов по регистрам, т. к. запрос по регистрам может строиться от любой даты в прошлом до ТА. Поэтому, если вы укажете в запросе верхнюю границу интервала большей или равной дате ТА, то программа скорее всего сообщит «Не могу рассчитать регистры за ТА» (поскольку время ТА лежит где то в пределах даты, а запрос пытается учесть всю дату в целом). Поэтому при формировании текста запроса следует вставлять дополнительную проверку типа той, что приведена в следу ющем примере:

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"Счет = Регистр.Cash.Счет;

|Статья = Регистр.Cash.Статья;

|СуммаЭквивалента2 = Регистр.Cash.СуммаЭквивалента2;

|СуммаЭквивалента1 = Регистр.Cash.СуммаЭквивалента1;

......

Если ДатаКонца >= ПолучитьДатуТА() Тогда

   ТекстЗапроса = ТекстЗапроса + "Период с ДатаНачала;";

Иначе

   ТекстЗапроса = ТекстЗапроса + "Период с ДатаНачала по ДатаКонца;";

КонецЕсли;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Работа команды при формировании запросов к журналам расчетов зависит от того, используется ключевое слово "Период" или нет. Применение конструкции "Период С ... По..." приводит к тому, что выборка записей из журнала расчетов осуществляется в разрезе расчетных периодов конкретного журнала, фактически, по времени ввода строк журнала расчетов в систему.

Применение конструкции "С ... По ..." приводит к тому, что выборка записей из журнала расчетов проводится по времени действия записей журнала расчетов, определяемых реквизитами журнала расчетов "ДатаНачала" и "ДатаОкончания", а не временем их ввода в журнал. Более подробно о двойственности временного представления журналов расчетов см. выше, в главе «Работа с Журналами расчетов».

Замечание. Работа запроса с журналами расчетов, с использованием конструкции "Период С ... По ...", аналогична выборке записей в журнале расчетов, организуемой при помощи метода журнала расчетов ВыбратьПериод. С другой стороны, запрос, использующий конструкцию "С ... По ...", аналогичен выборке, организуемой при помощи метода журнала расчетов ВыбратьЗаписи.

Пример:

*

Процедура РасчЛистки()

   Перем Запрос, Флаг;

   Перем ДатаНач, ДатаКон;

   ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");

   Нач = ЖР.НачалоТекущегоПериода();

   Кон = ЖР.КонецТекущегоПериода();

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   Флаг = Запрос.Выполнить(

   "//{{ЗАПРОС(РасчЛистки)

   |Период С ДатаНач По ДатаКон; // выборка по расчетным периодам!

   |Рез = ЖурналРасчетов.Зарплата.Результат;

   |Расч = ЖурналРасчетов.Зарплата.ВидРасч;

   |Дни = ЖурналРасчетов.Зарплата.Дни;

   |Сотр = ЖурналРасчетов.Зарплата.Объект;

   |Группировка Сотр без групп;

   |Группировка Расч;

   |функция Сум = Сумма(Рез);

   |функция Дней = Сумма(Дни);

   |Условие(Рез о 0);

   |"//}}ЗАПРОС

   );

   // ...

КонецПроцедуры;

*

//Создание объекта типа Запрос

Запрос = СоздатьОбъект("Запрос");

// ниже формируется текст запроса с выборкой по времени

// действия записей журнала расчетов, а не по расчетным периодам!

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать)

|С ДатаНач По ДатаКон;

|Рез = ЖурналРасчетов.Зарплата.Результат;

|Сотр = ЖурналРасчетов.Зарплата.Объект;

|ПЖ = ЖурналРасчетов.Зарплата.ПериодРегистрации;

|Группировка Сотр без групп;

|Группировка ПЖ;

|Функция Сум = Сумма(Рез);

"//}}ЗАПРОС

;

Флаг = Запрос.Выполнить(ТекстЗапроса);

// ...

ОбрабатыватьДокументы

Назначить условие обработки документов в запросе.

Синтаксис:

ОбрабатыватьДокументы[Непроведенные|Проведенные|Все];

Англоязычный синоним:

ProcessDocuments[NonTransacted|Transacted|All];

Описание:

Оператор ОбрабатыватьДокументы назначает режим обработки документов в запросе. В операторе указывается, какими документами должен оперировать запрос: проведенными, непроведенными или теми и другими. По умолчанию в запросе обрабатываются только проведенные документы.

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "//{{ЗАПРОС(ОбработкаДок)

|Период с '01.10.96' по '05.10.96';

|ОбрабатыватьДокументы Все;

|Тов = Справочник.Товары.ТекущийЭлемент, Документ.РасхНакл.Товар;

|Группировка Тов упорядочить по Тов.Наименование;

|Группировка Документ;

|Группировка СтрокаДокумента;

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

ОбрабатыватьОперации

Назначить условие обработки бухгалтерских операций в запросе.

Синтаксис:

ОбрабатыватьОперации[Включенные|Выключенные|Все];

Англоязычный синоним:

ProcessOperations[On|Off|All];

Описание:

Оператор ОбрабатыватьОперации назначает режим обработки бухгалтерских операций в запросе. В операторе указывается, какими операциями должен оперировать запрос: с включенными проводками, с выключенными проводками или теми и другими. По умолчанию в запросе обрабатываются только операции с включенными проводками.

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(ОбработкаОпер)

|Период с '01.10.96' по '05.10.96';

|ОбрабатыватьОперации Все;

|Опер = Операция.ТекущийДокумент;

|Группировка Опер;

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Обрабатывать

Назначить условие обработки помеченных на удаление объектов в запросе.

Синтаксис:

Обрабатывать[ПомеченныеНаУдаление|НеПомеченныеНаУдаление|Все];

Англоязычный синоним:

Process[MarkedOnRemoving|NonMarkedOnRemoving|All];

Описание:

Оператор Обрабатывать назначает режим обработки помеченных на удаление объектов в запросе. В операторе указывается, какими объектами должен оперировать запрос: не помеченными на удаление, помеченными на удаление или теми и другими. По умолчанию в запросе обрабатываются все объекты.

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Обработка)

|Период с '01.10.96' по '05.10.96';

|Обрабатывать НеПомеченныеНаУлаление;

|Товар = Справочник.Товар.ТекущийЭлемент;

|Группировка Товар упорядочить по Товар.Наименование;

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Функция

Вычисляет функцию и включает ее результат в запрос.

Синтаксис:

Функция <ИмяФункции> = <ТипФункции> (<Параметр>|<УточненныйПараметр>)

                 [Когда (<Условие>)];

Англоязычный синоним:

Function <ИмяФункции>= <ТипФункции> (<Параметр>|<УточненныйПараметр>)

                 [When (<Условие>)];

Параметры:

<ИмяФункции> | Имя, которое присваивается функции. По этому имени можно в дальнейшем обращаться к значению вычисленной функции из вызывающего программного модуля как к атрибуту запроса. Данную внутреннюю переменную заранее объявлять не нужно. Она фактически неявно объявляется в операторе Функция.
<TипФyнкции> | Ключевое слово одной из встроенных функций языка. Может быть одним из приведенных ниже.
<Параметр> | Имя объявленной ранее внутренней переменной, значение которой используется как параметр встроенной функции <ТипФункции>. В функциях: Сумма, Среднее, Максимум, Минимум в качестве данного параметра возможно использование арифметического выражения в терминах встроенного языка 1С:Предприятие.
<УточненныйПараметр> | Конкретизация объявленной ранее внутренней переменной, значение которой используется как аргумент встроенной функции < ТипФункции>.
Когда | Необязательное добавочное ключевое слово, использование которого в команде означает, что вычисление функции следует производить только при условии, когда заданное логическое выражение <Условие> истинно.
<Условие> | Логическое выражение встроенного языка 1С:Предприятие. В логическом выражении могут участвовать как внутренние, так и внешние переменные запроса (см. описание метода Условие). Используется только после ключевого слова Когда.

Описание:

Оператор Функция вычисляет функцию <ТипФункции> и присваивает ее значение внутренней переменной <ИмяФункции>.

Типы применяемых функций предопределены и могут быть следующими:

Тип Функции | Англояз. Синоним | Выполняемое действие
Сумма | Sum | Вычисляет сумму выбранных по запросу значений параметра.1
Среднее | Avg | Вычисляет среднее из выбранных по запросу значений параметра.
Минимум | Min | Вычисляет минимум из выбранных по запросу значений параметра.
Максимум | Мах | Вычисляет максимум из выбранных по запросу значений параметра.
Счётчик | Count | Подсчитывает количество записей, вошедших в выборку.
НачОст | BegRest | Вычисляет начальный остаток для выбранных по запросу значений параметра.2
КонОст | EndRest | Вычисляет конечный остаток для выбранных по запросу значений параметра.2
Приход | Debit | Вычисляет приход для выбранных но запросу значений параметра.2
Расход | Credit | Вычисляет расход для выбранных по запросу значений параметра.2
СНД | IDB | Вычисляет сальдо начальное дебетовое для выбранных по запросу значений параметра.3
СКД | FDB | Вычисляет сальдо конечное дебетовое для выбранных по запросу значений параметра.3
СНК | ICD | Вычисляет сальдо начальное кредитовое для выбранных по запросу значений параметра.3
СКК | FCD | Вычисляет сальдо конечное кредитовое для выбранных по запросу значений параметра.3
ДО | TD | Вычисляет дебетовые обороты для выбранных по запросу значений параметра.
КО | TC | Вычисляет кредитовые обороты для выбранных по запросу значений параметра.3
КорДО | CorTD | Вычисляет дебетовые обороты между корреспондирующим счетам или субконто для выбранных по запросу значений параметра.3, 4
КорКО | CorTC | Вычисляет кредитовые обороты между корреспондирующим счетам или субконто для выбранных по запросу значений параметра.3, 4

1Замечание: Для ресурсов оборотных регистров допускается вызывать только тип функции "Сумма".

2Замечание: Типы функций НачОст, КонОст, Приход, Расход можно использовать только с параметрами, указывающими на ресурсы регистров остатков. Для ресурсов регистров остатков другие типы функций вызывать нельзя.

3Замечание: Функции СНД, СНК, СКД, СКК, ДО, КО, КорДО, КорКО можно использовать только с реквизитами проводки: Сумма, Количество или ВалСумма.

4Замечание: Функции КорДО и КорКО накапливают значения только тогда когда в запросе есть обращение к реквизитам проводок Счет, КорСчет Субконто или КорСубконто.

Замечание: В программном модуле, где используется запрос, <ИмяФункции> будет являться атрибутом запроса. При помощи данного атрибута можно обращаться к значению вычисленной в запросе функции.

Замечание: В функциях: Сумма, Среднее, Максимум, Минимум в качестве аргумента возможно использование арифметического выражения в терминах встроенного языка.

Пример:

...

|КолВо = Документ.ВидДокумента.Количество;

|Цена = Документ.ВидДокумента.Цена;

|Функция Сум = Сумма(КолВо * Цена);

|Функция Макс = Максимум(Окр(КолВо) * Окр(Цена));

|Функция Средн = Среднее(ФункцияОпределеннаяВМодуле(КолВо, Цена));

...

Пример:

// Создание объекта типа Запрос

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Функции)

|Период с ДатаНач по ДатаКон;

|Оклад = Справочник.Сотрудники.Оклад;

|Подр = Справочник.Сотрудники.Подразделение;

|Ктг = Справочник.Сотрудники.Категория;

|Группировка Подр без групп;

|Группировка Ктг без групп;

|Функция Всего = Сумма(Оклад);

|Условие((Ктг.Выбран() = 1) И (Подр.Выбран() = 1));

|"//}}ЗАПРОС

;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

// ...

Итог = Запрос.Всего;

// ...

Оператор Функция предназначен для вычисления и накопления некоторых численных значений в процессе формирования выборки по запросу.

Кроме того, при формировании временного набора данных запрос специально формирует итоговые записи, в которые заносит накопленные значения вычисленных функций для каждой вложенной Группировки (подробнее об этом см. главу данной книги «Структура запросов и методика их использования»).

Операторы функций в запросе можно опускать, тогда запрос просто не будет ничего вычислять, а просто во временный набор данных заносятся записи со значениями Группировок. Однако это справедливо только для работы запросов по справочникам и по документам. При работе запроса по регистрам следует помнить, что в этом случае обязательно наличие Функций, причем только в том случае, когда их вычисленные значения отличны от нуля (хотя бы одной из заданных Функций), найденные объекты включаются во временный набор данных, формируемый запросом. Если при работе запроса по регистрам в тексте запроса операторы функций опущены, то программа не выдаст никакого сообщения об ошибке, добросовестно пройдет по всем Группировкам, не вычислит никаких значений Функций и, значит, ничего не запишет во временном файле.

При создании в тексте запроса внутренней переменной, которую вы предполагаете использовать в качестве параметра оператора Функция, надо учитывать, что тип этой внутренней переменной должен быть «число», т. к. функции в языке запросов обрабатывают только численные значения.

В тексте запроса, при описании оператора Функция можно использовать необязательное ключевое слово Когда, использование которого в операторе означает, что вычисление функции следует производить только при условии, что значение логического выражения, заданного в параметре ключевого слова является ИСТИНА. Синтаксис применяемого логического выражения полностью аналогичен синтаксису разрешенному к применению в операторах Условие.

Следует понимать, что не все функции внутри конкретной группировки запроса могут иметь четко интерпретируемый смысл. Например, для группировки по документу движения регистра следующие функции

|Функция ПрихКол = Приход(Количество);

|Функция РасхКол = Расход(Количество);

имеют четкий смысл — приращения, сделанные документом при движении регистра. С другой стороны, в той же группировке следующие функции:

|Функция НачКол = НачОст(Количество);

|Функция КонКол = КонОст(Количество);

явно не имеют смысла (в запросах по регистрам, обычно задают период запроса при помощи оператора Период C. Функция НачКол в данном примере должна по смыслу показывать остаток ресурса "Количество" на начальную дату запроса. Внутри группировки по документу вопрос: «Какой начальный остаток ресурса на дату 10.01.97?» по документу, проведенному, например, 13.01.97, не имеет смысла). Поэтому в таких ситуациях функция будет иметь нулевое значение.

Пример:

Запрос = СоздатьОбъект("Запрос");

Текст3апроса=

'//{{ЗАПРОС(Функции)

|Период с ДатаОтчета;

|Товар = Регистр.КвотыТоваров.Товар;

|Отдел = Регистр.КвотыТоваров.Отдел;

|Сотрудник = Регистр.КвотыТоваров.Сотрудник;

|Партнер = Регистр.КвотыТоваров.Партнер;

|Док = Регистр.КвотыТоваров.ТекущийДокумент;

|Количество = Регистр.КвотыТоваров.КвотаТовара;

|Группировка Товар;

|Группировка Отдел;

|Группировка Сотрудник;

|Группировка Партнер;

|Группировка Док;

|Функция НачКол = НачОст(Количество);

|Функция ПрихКол = Приход(Количество);

|Функция РасхКол = Расход(Количество);

|Функция КонКол = КонОст(Количество);

|// Следующие Функции вычисляем только при определенных

|// условиях, чтобы получить отфильтрованные итоги

|Функция ПрихКолТов = Приход(Количество) Когда (Док.ФлагТовара = 1);

|Функция РасхКолТов = Расход(Количество) Когда (Док.ФлагТовара = 1);

|Функция ПрихКолОтд = Приход(Количество) Когда (Док.ФлагОтдела = 1);

|Функция РасхКолОтд = Расход(Количество) Когда (Док.ФлагОтдела = 1);

|Функция ПрихКолСотр = Приход(Количество) Когда (Док.ФлагСотрудника = 1);

|Функция РасхКолСотр = Расход(Количество) Когда (Док.ФлагСотрудника = 1);

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Группировка

Устанавливает порядок выборки информации.

Синтаксис:

Группировка <ИмяГруппировки>|<ПредопредГруппировка>

           [Упорядочить по <Порядок>[, <Порядок>]*]

           [Без Упорядочивания][Без Групп][Все [ВошедшиеВЗапрос]];

Англоязычный синоним:

Group <ИмяГруппировки>|<ПредопредГруппировка>

           [Order By <Порядок>[, <Порядок>]*]

           [Without Order][Without Groups][All [IncludedInQuery]];

Параметры:

<ИмяГруппировки> | Имя объявленной ранее внутренней переменной, по значению которой устанавливается порядок выборки. По этому имени можно в дальнейшем обращаться к значению группировки из вызывающего программного модуля как к атрибуту запроса.
<ПредопредГруппировка> | Ключевое слово одной из встроенных предопределенных группировок языка запросов. По этому имени можно будет обращаться к значению группировки из вызывающего программного модуля. Возможные значения приведены ниже.
упорядочить по | Необязательное добавочное ключевое слово. Параметры, следующие за данным ключевым словом, определяют упорядочивание строк в группировке. По умолчанию документы упорядочиваются по дате и времени документов, справочники — по коду или наименованию, в зависимости от основного представления, заданного при описании справочника в конфигураторе.
<Порядок> | Используется только после ключевого слова Упорядочить по. Конкретизация внутренней переменной <ИмяГруппировки>, значение которой является параметром упорядочивания строк в группировке. Кроме того, в данном параметре можно использовать имя функции, объявленной в этом же запросе в операторе Функция.
Без Упорядочивания | Необязательное добавочное ключевое слово, которое преследует цель уменьшения времени формирования запроса, при условии, что ни упорядочивание, ни значения упорядочивания при использовании данного запроса не нужны.
Без Групп | Необязательное добавочное ключевое слово, использование которого назначает вывод в запрос только простых элементов справочников (исключая группы). Используется только для группировок, построенных на основе внутренней переменной типа «справочник».
Все | Необязательное добавочное ключевое слово, действие которого зависит от типа внутренней переменной, на основе которой построена группировка. Используется только для группировок, построенных на основе внутренней переменной типа «справочник» или для предопределенных группировок, задающих временной интервал (Год, Месяц, Квартал, Неделя, День). Для предопределенных временных группировок подразумевается, что в запрос будут включены любые значения данных (в том числе нулевые) в каждый заданный момент времени с даты начала запроса по дату конца запроса (интервал задается оператором Период С...) Для группировок по справочникам подразумевается, что в запрос будут включены любые значения данных (в том числе нулевые) для каждого допустимого элемента справочника.
ВошедшиеВЗапрос | Необязательное добавочное ключевое слово действие которого уточняет предыдущее ключевое слово «Все». Использование данного слова подразумевает, что в каждую строку запроса будут включены значения данных (в том числе нулевые), для которых есть ненулевое значение хотя бы в одной строке запроса.

Описание:

Оператор Группировка задает способ группировки информации и порядок ее упорядочивания в запросе.

Предопределенные группировки могут быть следующими:

Предопределенн. Группировка

Англояз.
Синоним

Выполняемое действие

Документ

Document

Позволяет детализацию до каждого документа.

СтрокаДокумента

DocumentLine

Позволяет детализацию до каждой строки табличной части каждого документа.

День
Неделя
Месяц
Квартал
Год

Day
Week
Month
Quarter
Year

Группировки по дате, дают возможность накапливать значения по документам за конкретный период (на каждый день, неделю, месяц и т. д.). В запросе может присутствовать несколько группировок такого типа.

Замечание: В программном модуле, где используется запрос, имя <ИмяГруппировки> (или <ПредопредГруппировка>) будет являться атрибутом запроса. Кроме того, это имя используется в качестве параметра метода запросов Группировка (см. главу «Работа с Запросами»).

Объекты, по которым запрос будет обрабатывать информацию и те значения которые он будет выбирать, упорядочивать и группировать во временном наборе данных, полностью определяются той внутренней переменной, на базе которой объявлена группировка (подробнее см. выше в разделе «Объявление внутренней переменной»).

Несколько операторов Группировка, следующих друг за другом в описании запроса, создают вложенные группировки запроса. Первая группировка — самая старшая, в нее будет вложена следующая группировка, далее будет вложена следующая и т. д. По смыслу, вложенная группировка осуществляет более детальный просмотр объекта внешней группировки. Например, если во внешней группировке мы просматриваем регистр, то во вложенной группировке можно просмотреть документы движений этого регистра, а далее можно сформировать группировку по номерам строк этих документов.

При описании вложенных группировок разработчик конфигурации должен ясно себе представлять суть и смысл образования вложенных группировок в формируемом запросе, поскольку интерпретация полученных результатов выполнения запроса полностью зависит от контекста решаемой задачи.

По умолчанию, документы упорядочиваются в группировке по дате и времени документов, элементы справочников — в зависимости от основного представления, заданного при описании справочника в конфигураторе (код или наименование). Однако критерий упорядочивания в группировке можно установить при помощи необязательного ключевого слова "Упорядочить по". Параметры, следующие за данным ключевым словом, определяют упорядочивание строк в группировке.

С параметром упорядочивания связан специальный метод для доступа к значениям объекта «Запрос». Речь идет об использовании метода ЗначениеУпорядочивания. В программном модуле, после того как запрос уже сформирован, мы можем при помощи этого метода получить значение поля упорядочивания из временного набора данных, не обращаясь к базе данных. Например, если у нас в запросе была группировка "Товар", а нам для формирования некоторого отчета нужны значения наименований товаров, то эти наименования товаров можно получить двумя способами:

Наим = Запрос.Товар.Наименование;

или

Наим = 3апрос.ЗначениеУпорядочивания("Товар", 1);

Смысл использования данного специального метода доступа в том, что значения упорядочивания хранятся во временном наборе данных, сформированном запросом, поэтому за этими значениями программе нет необходимости снова обращаться к информационной базе, а можно получить непосредственно из временного набора. Эффект использования специального метода доступа может проявиться только в сетевой версии информационной базы при формировании очень больших отчетов, время формирования которых порядка десятков минут. В этом случае применение этого метода доступа даст некоторый выигрыш по времени.

Пример:

Процедура Группировки()

   Перем Запрос, ТекстЗапроса;

   Перем ДатаНач, ДатаКон;

   ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");

   Нач = ЖР.НачалоТекущегоПериода();

   Кон = ЖР.КонецТекущегоПериода();

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса =

   "//{{ЗАПРОС(Группировки)

   |Период с ДатаНач по ДатаКон;

   |Рез = ЖурналРасчетов.Зарплата.Результат;

   |Расч = ЖурналРасчетов.Зарплата.ВидРасч;

   |Дни = ЖурналРасчетов.Зарплата.Дни;

   |Сотр = ЖурналРасчетов.Зарплата.Объект;

   |Группировка Сотр без групп;

   |Группировка Расч;

   |Функция Сум = Сумма(Рез);

   |Функция Дней = Сумма(Дни);

   |Условие(Рез о 0);

   |"//})ЗАПРОС

   ;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса

   Таб = СоздатьОбъект("Таблица");

   Пока Запрос.Группировка("Сотр") = 1 Цикл

      // Заполнение полей Сотр

      Таб.ВывестиСекцию("Сотр ");

      Пока Запрос.Группировка("Расч") = 1 Цикл

         // Заполнение полей

         Расч Таб.ВывестиСекцию("Расч");

      КонецЦикла;

   КонецЦикла;

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Результат", );

   // Вывод заполненной формы

КонецПроцедуры

Без итогов

Не накапливать итоги по группировкам.

Синтаксис:

Без итогов;

Англоязычный синоним:

Without Totals;

Описание:

Цель данного оператора — увеличение скорости выполнения запроса, при условии, что итоговые записи при использовании запроса не нужны. Данный оператор языка запросов, дает возможность не накапливать итоги по группировкам. Использовать данный оператор в тексте запроса имеет смысл, когда запрос строится не для формирования сложного отчета, а например, для простой выборки значений из информационной базы для последующей их обработки.

В случае применения данного оператора в тексте запроса, при обходе результатов запроса применяется только один цикл обхода, используя метод объекта «Запрос» Группировка() без параметра.

Пример:

Запрос = СоздатьОбъект("Запрос");

Текст3апроса = "

...

|Группировка Товар;

|Группировка Склад;

|Без Итогов; ";

Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда

   Возврат;

КонецЕсли;

Пока Запрос.Группировка() = 1 Цикл

   ...

КонецЦикла;

Замечание. Если в тексте запроса используется группировка по многоуровневому справочнику и не указано "Без Групп", то итоги по группам справочника будут накапливаться. Другими словами, если в запросе не нужны итоги по группам справочника, то в тексте запроса кроме использования оператора "Без Итогов" дополнительно следует в операторах "Группировка ..." использовать ключевое слово "Без Групп".

Условие

Назначить условие включения информации в запрос.

Синтаксис:

Условие(<ЛогическоеВыражение>);

Англоязычный синоним:

Condition

Параметры:

<ЛогическоеВыражение>

Логическое выражение встроенного языка 1С:Предприятие.

Описание:

Оператор Условие назначает условие включения информации в запрос. Если значение <ЛогическоеВыражение> верно, то информация включается в запрос, иначе нет.

Пример:

ТекстЗапроса =

"//{{ЗАПРОС(Одинарный)

|Период с ДатаНачала по ДатаКонец;

|Оклад = Справочник.Сотрудники.Оклад;

|Ктг = Справочник.Сотрудники.Категория;

|Группировка Ктг без групп;

|Функция Всего = Сумма(Оклад);

|Условие(Ктг.Выбран() = 1);   // только для тех сотрудников

| //у кого заполнен реквизит Категория

|"//}}ЗАПРОС

;

В логическом выражении могут участвовать как внутренние, так и внешние переменные запроса, т. е. переменные программного модуля, доступные в процедуре, использующей запрос.

Пример:

* Здесь показан отрывок текста процедуры, в которой формируется некоторый отчет, причем переменные:

ВыбТовар, ВыбОтдел, ВыбСотрудник

являются реквизитами диалога отчета, значит, они доступны в программном модуле, поэтому могут быть использованы в логическом выражении оператора Условие. В данном примере операторы Условие использованы для фильтрации в запросе только выбранных значений параметров отчета,

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Квоты)

|Товар = Регистр.КвотыТоваров.Товар;

|Отдел = Регистр.КвотыТоваров.Отдел;

|Сотрудник = Регистр.КвотыТоваров.Сотрудник;

|Партнер = Регистр.КвотыТоваров.Партнер;

|Количество = Регистр.КвотыТоваров.КвотаТовара;

|Группировка Товар;

|Группировка Отдел;

|Группировка Сотрудник;

|Группировка Партнер;

|Функция Кол_во = КонОст(Количество);

|Условие(Товар.ПринадлежитГруппе(ВыбТовар) = 1);

|Условие(Отдел = ВыбОтдел);

|Условие(Сотрудник = ВыбСотрудник.Сотрудник);

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса)= 0 Тогда

   Возврат;

КонецЕсли;

В параметре оператора Условие, в принципе, можно записывать логические выражения любой сложности (по правилам встроенного языка 1С:Предприятие), используя любые логические операторы (>, <, =, >=, <>, И, ИЛИ, НЕ и другие), при этом в качестве операндов могут участвовать как внутренние, так и внешние переменные запроса (если существуют внутренняя и внешняя переменные с одинаковым именем, то использоваться по данному имени будет внутренняя переменная).

Пример:

Условие(Цена > 23.5);

Условие((Товар.ПринадлежитГруппе(ВыбТовар) = 1) И (Товар.Розн_Цена = 100));

Если в описании запроса использовано несколько операторов Условие, то они объединяются по логическому "И".

Пример:

* Использование двух операторов:

Условие(Товар.Наименование <> "Стол");

Условие(Товар.Наименование <> "Шкаф");

* аналогично записи одного оператора:

Условие((Товар.Наименование <> "Стол") И (Товар.Наименование<> "Шкаф"));

Логический оператор принадлежности

Кроме обычных логических операторов (>, <, =, >=, <=, <>, И, ИЛИ, НЕ) в операторе "Условие ..." языка запросов можно использовать дополнительный оператор — логический оператор принадлежности.

Синтаксис:

В

Англоязычный синоним:

In

Описание:

Оператор языка запросов "Условие (А в Б);" говорит о том, что условие истинно, когда значение А является подмножеством значения Б.

Следует особо отметить, что если значение Б пустое (объект не выбран), то условие является истинным, в отличии от оператора «=» (равно).

Если на принадлежность проверяется значение типа элемент справочника, то проверка выполняется с учетом его возможного вхождения в группу справочника. Аналогично, проверка на принадлежность субсчета осуществляется с учетом его возможного вхождения в счет-группу.

В качестве включающего подмножества логического оператора принадлежности (второй параметр после слова «в») может выступать как простое значение, так и список значений. В этом случае проверка выполняется с учетом вы-шеотмеченных особенностей для каждой строки списка значений.

Скорость выполнения запросов оптимизирована под использование оператора принадлежности, как в клиент-серверной, так и в файл-серверной версии системы 1С:Предприятие.

Внимание. Логический оператор принадлежности не поддерживается встроенным языком системы 1С:Предприятие, а применяется только в языке запросов.

Оператор принадлежности существенно облегчает написание текстов запроса, делает их более понятными.

Пример:

* без использования логического оператора принадлежности

Текст3апроса =

...

| Товар = Документ.ВидДокумента.Товар;";

...

Если ВыбТовар.Выбран() = 1 Тогда

   Если ВыбТовар.ЭтоГруппа() = 1 Тогда

      ТекстЗапроса = ТекстЗапроса +

               "Условие(Товар.ПринадлежитГруппе(ВыбТовар) = 1);";

   Иначе

      ТекстЗапроса = ТекстЗапроса + "Условие(Товар = ВыбТовар);";

   КонецЕсли

КонецЕсли;

* с использованием логического оператора принадлежности

Текст3апроса=

...

|Товар = Документ.ВидДокумента.Товар;";

...

|Условие (Товар в ВыбТовар);

...

Примеры использования Запросов

Печать каталога товаров

Далее приведена процедура, выполняющая печать всего справочника товаров с использованием формирования запроса. Для простого перебора справочника использование запросов оправдано только в том случае, если мы либо используем полученный временный набор данных многократно, или вычисляем функции, или производим нестандартное упорядочивание объектов. В данном примере запрос используется для сортировки справочника по некоторому реквизиту товара.

//--------------------------------

Процедура ПечатьСправочника()

   // Процедура печати полного справочника товаров

   Перем Запрос, ТекстЗапроса, Таб;

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(Печать)

   |Товар = Справочник.Товары.ТекущийЭлемент;

   |Группировка Товар Упорядочить по Товар.МинЗапас;

   |"//}}ЗАПРОС

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Заполнение выходных форм данными запроса

   // Создание Таблицы для выходного отчета

   Таб = СоздатьОбъект("Таблица");

   Таб.ВывестиСекцию("Отчет");

   Пока Запрос.Группировка("Товар") = 1 Цикл

      // Заполнение полей Товар

      Если Запрос.Товар.ЭтоГруппа() = 1 Тогда

         Таб.ВывестиСекцию("Группа");

      Иначе

         Таб.ВывестиСекцию("Товар");

      КонецЕсли;

   КонецЦикла;

   //Отображение выходного отчета

   Таб.ТолькоПросмотр(1);

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать("Список товаров по каталогу", "");

КонецПроцедуры

Отчет по неходовым товарам

Далее приведен пример нетривиального использования запроса для просмотра одновременно многих видов документов. Цель данной процедуры — вывести в отчет перечень неходовых товаров, которые совсем не продавались за заданный период и показать в каждой строке текущий остаток и стоимость этих товаров. В данном примере запрос формируется с целью определить, что в него не вошло.

Процедура Сформировать()

   Перем Запрос, ТекстЗапроса, Таб;

   Рег = СоздатьОбъект("Регистр.ОстаткиТовара");

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(Сформировать)

   |Период С ДатаНачала По ДатаКонца;

   |ТОВАР = Документ.РасходнаяБН.Товар,

   |   Документ.РасходнаяКредит.Товар, Документ.РасходнаяНал.Товар,

   |   Документ.РасходнаяРеализ.Товар, Документ.Счет.Товар;

   |Группировка ТОВАР упорядочить по ТОВАР.Наименование без групп;

   |"//}}ЗАПРОС

   ;

   Если ДатаКонца >= ПолучитьДатуТА() Тогда

      ТекстЗапроса = ТекстЗапроса + "Период С ДатаНачала;";

   Иначе

      ТекстЗапроса = ТекстЗапроса + "Период С ДатаНачала По ДатаКонца;";

      Per.ВременныйРасчет();

      РассчитатьРегистрыНа(ДатаКонца);

   КонецЕсли;

   // Выполнение Запроса

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   Тов = СоздатьОбъект("Справочник.Товары");

   // обход включая группировки

   Тов.ВключатьПодчиненные(1);

   // упорядочить по наименованиям

   Тов.ПорядокНаименозаний();

   ИтогоОстаток = 0;

   ИтогоСумма = 0;

   Таб = СоздатьОбъект("Таблица");

   Таб.ВывестиСекцию("Отчет");

   Состояние("В отчет выведено " + ЧислоСтрок + " строк.");

   // Запускаем полный цикл по товарам Справочника

   Тов.ВыбратьЭлементы();

   Пока Тов.ПолучитьЭлемент() > 0 Цикл

      Флаг = 0;

      Товар = Тов.ТекущийЭлемент();

      Если Товар.ЭтоГруппа() = 1 Тогда

         Продолжить;

      КонецЕсли;

      // Здесь пытаемся получить из Запроса информацию о товаре,

      // но используем просто сам факт того, что товар попал во

      // временный набор данных Запроса.

      // Если товар есть в Запросе, то значит он упоминался в

      // каких то документах,

      // иначе — товар не пользуется спросом — неходовой.

      Если Запрос.Получить(Товар) = 1 Тогда

         Продолжить;

      КонецЕсли;

      // находим остатки неходового товара на складе

      Рег.СводныеОстатки(Товар, );

      ТекОстаток = Рег.ОстатокТовара;

      ТекСумма = Рег.БазоваяСтоимость;

      Если ТекОстаток = 0 Тогда

         Продолжить;

      КонецЕсли;

      Таб.ВывестиСекцию("Товар");

      ИтогоОстаток = ИтогоОстаток + ТекОстаток;

      ИтогоСумма = ИтогоСумма + ТекСумма;

   КонецЦикла;

   Таб.ВывестиСекцию("Итоги");

   Таб.ТолькоПросмотр(1);

   Таб.Опции(0, 0, 3, 0);

   Таб.Показать("Отчет о неходовых товарах", "");

КонецПроцедуры

ДатаКонца = РабочаяДата();

ДатаНачала = ДатаКонца — Константа.ПериодАнализа;

Отчет по регистру с точностью до строки документа

Далее приведен пример использования запроса для просмотра регистра с выборкой документов, производивших движение данного регистра, с доступом к каждой строке этих документов. Цель данной процедуры — сформировать отчет, чтобы по каждому из видов топлива, отпущенных за заданный период покупателям, показать перечень номеров автомашин, которыми производилась отгрузка. Особенностью данного отчета является то, что номера автомашин не являются измерениями регистра, а зафиксированы в каждой строке отпускного документа.

Использование в описании внутренней переменной для регистра атрибута НомерСтроки, означает выборку связанных номеров строк тех документов, которые произвели движение по регистру (предполагается, что в конфигурации в Модулях документов перед движением данного регистра использовали метод ПривязыватьСтроку).

Процедура Сформировать()

   Перем Запрос, ТекстЗапроса, Таб;

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(Сформировать)

   |Период с НачДата по КонДата;

   |ВидТоплива = Регистр.ПокупателиКолво.ВидыТоплива;

   |Вес = Регистр.ПокупателиКолво.Кг;

   |Покуп = Регистр.ПокупателиКолво.Покупатели;

   |Док = Регистр.ПокупателиКолво.ТекущийДокумент;

   |Ном = Регистр.ПокупателиКолво.НомерСтроки;

   |Группировка ВидТоплива;         //по измерению Регистра

   |Группировка Док;                // по документам, двигавшим Регистр

   |Группировка Ном;                //по номерам строк документов

   |Функция ВсегоКолво = КонОст(Вес);

   |Функция ПриходКолво = Приход(Вес);

   |Условие(Покуп = ВыбПокупатель);

   |"//}}ЗАПРОС

   ;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Заполнение выходных форм данными Запроса

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("Таблица1");

   Таб.ВывестиСекцию("Шапка");

   Пока Запрос.Группировка(1) = 1 Цикл

      // Отображаем значение измерения — ВидТоплива

      Таб.ВывестиСекцию("ВидТоплива");

      // запускаем вложенную группировку по документам,

      // которые производили движения Регистра

      Пока Запрос.Группировка(2) = 1 Цикл

         Док1 = Запрос.Док;

         // отфильтруем нужные нам документы

         Если НЕ(Док1.Вид() = "Продажа") Тогда

            Продолжить;

         КонецЕсли;

         // запускаем вложенную группировку по строкам

         // документа, связанным с движениями регистра

         Пока Запрос.Группировка(3) = 1 Цикл

            // Получаем в документе строку по найденному номеру

            Док1.ПолучитьСтрокуПоНомеру(Запрос.Ном);

            Таб.ВывестиСекцию("Строка");

         КонецЦикла;

      КонецЦикла;

   КонецЦикла;

   // Вывод заполненной формы

   Таб.Опции(О, О, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("", "");

КонецПроцедуры

Анализ счета

Приводим пример использования запроса для работы с бухгалтерскими операциями и проводками. Запрос обрабатывает корреспонденции счета Сч по счетам КорСч за расчетный период. Значение счета для анализа задается в диалоге установкой ВыбСч.

Процедура АнализСчета()

   Перем Запрос, ТекстЗапроса, Таб;

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(Сформировать)

   |Период с ДатаС по ДатаПо;

   |Сч = Операция.Счет;

   |КорСч = Операция.КорСчет;

   |Сумма = Операция.Сумма;

   |Группировка Сч упорядочить по Сч.Код;

   |Группировка КорСч упорядочить по КорСч.Код;

   |Функция КорДо = КорДО(Сумма);

   |Функция КорКо = КорКО(Сумма);

   |Условие(Сч = ВыбСч);

   |"//}}ЗАПРОС

   ;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("Сформировать");

   // Заполнение полей "Заголовок"

   Таб.ВывестиСекцию("Заголовок");

   Состояние("Заполнение выходной таблицы...");

   Пока Запрос.Группировка("Сч") = 1 Цикл

      // Заполнение полей Сч

      Таб.ВывестиСекцию("Сч");

      Пока Запрос.Группировка("КорСч") = 1 Цикл

         // Заполнение полей КорСч

         Таб.ВывестиСекцию("КорСч");

      КонецЦикла;

   КонецЦикла;

   // Заполнение полей "Итого"

   Таб.ВывестиСекцию("Итого");

   // Вывод заполненной формы

   Таб.Опции(1, 0. 1, 0);

   Таб.Показать("Сформировать", "");

КонецПроцедуры

Разработка вложенных отчетов

Средства программы 1С:Предприятие по работе с Таблицами позволяют создавать эффектные отчеты, причем на экране монитора отображается не просто мертвая картинка предварительного просмотра печати, а живой отчет, который можно редактировать или непосредственно из него вызывать дополнительную поясняющую информацию.

Поскольку каждая ячейка Таблицы может содержать значение, записанное в нее (см. Конфигуратор, редактор таблиц — Свойства ячейки — Текст — поле: Значение), то в программном модуле формы отчета возможно обрабатывать это значение. Обработка значения ячейки Таблицы вызывается системой по клавише <Enter> или по двойному щелчку мышью на какой-либо ячейке (если режим «только просмотр»). Стандартными действиями системы на обработку такого события являются: для документа — открытие документа, для элемента справочника — открытие формы редактирования элемента справочника. Другими словами, стандартные действия системы зависят от типа данных содержащегося в ячейке значения. Однако, это событие возможно перехватить и обработать нестандарным способом. Для этого предназначена предопределенная процедура встроенного языка ОбработкаЯчейкиТаблицы.

Примером нестандартной обработки значения ячейки таблицы может быть, например, вызов на формирование другого отчета. Таким образом, мы можем создавать как бы вложенные отчеты, которые вызываются один из другого, выдавая с каждым разом более детальную информацию. Допустим отчет «Взаиморасчеты» при формировании всегда выводится в кратком виде, когда виден только сводный баланс по контрагенту. Для того, чтобы получить детальный отчет по данному контрагенту, достаточно встать курсором в готовой форме отчета на этого контрагента и нажать клавишу <Enter>. Тогда сработает процедура ОбработкаЯчейкиТаблицы, в которой можно записать вызов формирования детального отчета. А если, кроме того, завести флаг режима отображения, то можно вместо этого показывать карточку этого контрагента из справочника.

Рассмотрим построение вложенных отчетов на примере. Допустим, у вас есть отчет «ПродажиТоваров», в котором отображается перечень товаров, количество и сумма проданных за некоторый период товаров. Программный модуль формирования такого отчета приведен ниже.

Пример:

Процедура ПродВсего()

   Перем Запрос, ТекстЗапроса, Таб;

   ДатаКон = ДатаКонца;

   Если ДатаКон >= ПолучитьДатуТА() Тогда

      ДатаКон = Дата(0);

   КонецЕсли;

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(ПродВсего)

   |Период с ДатаНачала по ДатаКон;

   |ТОВАР = Документ.РасхНакл.Товар;

   |Сумма_Прод = Документ.РасхНакл.СуммаРуб;

   |КОЛВО_Прод = Документ.РасхНакл.Количество;

   |Группировка ТОВАР;

   |Функция Продано = Сумма(КОЛВО_Прод);

   |Функция СуммаПродано = Сумма(Сумма_Прод);

   |"//}}ЗАПРОС

   ;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению

   Таб = СоздатьОбъект("Таблица");

   Таб.ИсходнаяТаблица("ТабВсего");

   Таб.ВывестиСекцию("Отчет");

   Пока Запрос.Группировка("Товар") = 1 Цикл

      ПродСумма = Запрос.СуммаПродано;

      Если Запрос.Товар.ЭтоГруппа() = 1 Тогда

         Таб.ВывестиСекцию("Группа");

      Иначе

         Таб.ВывестиСекцию("Товар");

      КонецЕсли;

   КонецЦикла;

   // Вывод заполненной формы

   Таб.ТолькоПросмотр(1);

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать("Продажа товаров ", "");

КонецПроцедуры

Text Box: Отчет по продаже товаров с 01.11.96 по 19.11.96 Товар Продано Кол-во Сумма Обувь 12 1270 Сапоги женские 5 920 Туфли мужские 7 350

В режие исполнения у нас получится такой отчет:

Далее, допустим, мы хотим получить более подробный отчет по конкретному товару, так, чтобы указав на товар в отчете, и дважды нажав кнопку мыши, мы получали отчет по продажам именно этого товара с точностью до каждого клиента. Для этого откроем в Конфигураторе редактор таблицы нашего отчета и в свойствах ячейки (Свойства ячейки — Текст — поле: Значение), отображающей наименование товара, проставим значение ячейки. («Запрос.Товар»)

Далее, в программном модуле напишем процедуру формирования дополнительного отчета.

Продолжение примера:

//*********************************

// Процедура дополнительного отчета

Процедура ПродТовар(ВТовар)

   Перем Запрос, ТекстЗапроса, Таб;

   ДатаКон = ДатаКонца;

   Если ДатаКон >= ПолучитьДатуТА() Тогда

      ДатаКон = Дата(0);

   КонецЕсли;

   //Создание объекта типа Запрос

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(ПродТовар)

   |Период с ДатаНачала по ДатаКон;

   |КЛИЕНТ = Документ.РасхНакл.Клиент;

   |ТОВАР = Документ.РасхНакл.Товар;

   |СУММ = Документ.РасхНакл.СуммаВал;

   |КОЛВО = Документ.РасхНакл.Количество;

   |Группировка КЛИЕНТ Упорядочить По КЛИЕНТ.Наименование;

   |Группировка ТОВАР Упорядочить По ТОВАР.Наименование;

   |Функция Продано = Сумма(КОЛВО);

   |Функция ПродСум = Сумма(СУММ);

   |"//}}ЗАПРОС

   ;

   Если ВТовар.Выбран() = 1 Тогда

      Если ВТовар.ЭтоГруппа() = 1 Тогда

         ТекстЗапроса = ТекстЗапроса +

             "Условие(Товар.ПринадлежитГруппе(ВТовар) = 1);";

      Иначе

         ТекстЗапроса = ТекстЗапроса + "Условие (Товар = ВТовар);";

         ФОдинТовар = 1;

      КонецЕсли;

   КонецЕсли;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению выходных форм

   Таб = СоздатьОбъект("Таблица");

   Таб.ВывестиСекцию("Отчет");

   Пока Запрос.Группировка("Клиент") = 1 Цикл

      Таб.ВывестиСекцию("Клиент");

      Пока Запрос.Группировка("Товар") = 1 Цикл

         Если ФОдинТовар = 0 Тогда

            Таб.ВывестиСекцию("Товар");

         КонецЕсли;

      КонецЦикла;

   КонецЦикла;

   // Вывод заполненной формы

   Таб.ТолькоПросмотр(1);

   Таб.Опции(0, 4, 0, 0);

   Таб.Показать("Продажа товара", "");

КонецПроцедуры

Теперь нам осталось написать предопределенную процедуру, которая возьмет на себя обработку события «двойной щелчок мышью на выбранной ячейке таблицы». Главная задача этой процедуры — определить, что выбрана ячейка, где указано значение товара и вызвать на исполнение процедуру формирования дополнительного отчета, написанную ранее.

Продолжение примера:

//-------------------------

Процедура ОбработкаЯчейкиТаблицы(ЗначЯч, ФлагСтандартнойОбработки)

   Если ТипЗначения(ЗначЯч) = 2 Тогда

      ФлагСтандартнойОбработки = 1;

      Возврат;

   КонецЕсли;

   ПродТовар(ЗначЯч);

КонецПроцедуры

Теперь, в режиме исполнения, если в отчете «Продажи товаров» мы укажем курсором на товар, например, «Сапоги женские» и дважды щелкнем на нем мышью, то сформируется дополнительный подробный отчет «Продажа товара».

Способы оптимизации формирования отчетов

Процесс получения отчетов с использованием запросов можно условно разделить на две фазы: сначала формируется запрос, затем полученные данные выводятся в Таблицу. В данном разделе речь пойдет о второй фазе получения отчета — выводе данных в Таблицу.

Рассмотрим следующий пример. Допустим, требуется вывести в отчет полный перечень товаров со всеми их реквизитами. Для этого сначала формируется запрос с одной Группировкой — "Товар", затем полученные данные выводятся в Таблицу. Ниже приведены три варианта вывода данных в Таблицу.

Вариант 1

В программном модуле текст вывода данных в Таблицу следующий

Пока Запрос.Группировка("Товар") = 1 Цикл

   Таб.ВывестиСекцию("Товар");

КонецЦикла;

Секция "Товар" в Таблице имеет следующий формат:

<Запрос.Товар.Наименование> | <Запрос.Товар.Артикул>
<Запрос.Товар.Цена> | <Запрос.Товар.Валюта>

В первом варианте отображаемые реквизиты товара полностью вычисляются в ячейках Таблицы, причем доступ к каждому реквизиту товара происходит по полному пути: Запрос-Товар-Реквизит. Данный вариант вывода данных в Таблицу самый медленный.

Вариант 2

В программном модуле текст вывода данных в Таблицу следующий

Пока Запрос.Группировка("Товар") = 1 Цикл

   ПечНаим = Запрос.Товар.Наименование;

   ПечАртикул = Запрос.Товар.Артикул;

   ПечЦена = Запрос.Товар.Цена;

   ПечВалюта = Запрос.Товар.Валюта;

   Таб.ВывестиСекцию("Товар1");

КонецЦикла;

Секция "Товар1" в Таблице имеет следующий формат:

<ПечНаим> | <ПечАртикул>
<ПсчЦена> | <ПечВалюта>

Во втором варианте отображаемые реквизиты товара вычисляются в программном модуле, а в ячейках Таблицы размещены простые выражения — ссылки на идентификаторы программного модуля. Доступ к каждому реквизиту товара происходит по полному пути: Запрос-Товар-Реквизит. В данном варианте фаза вывода данных в Таблицу работает быстрее первого варианта (выигрыш ~20%), т. к. в программном модуле выражения вычисляются существенно быстрее, чем выражения, помещенные в ячейках Таблицы (программный модуль при загрузке компилируется, а выражения в ячейках таблицы интерпретируются каждый раз при выводе секций).

Вариант 3

В программном модуле текст вывода данных в Таблицу следующий

Пока Запрос.Группировка("Товар") = 1 Цикл

   Тов = Запрос.Товар;

   ПечНаим = Тов.Наименование;

   ПечАртикул = Тов.Артикул;

   ПечЦена = Тов.Цена;

   ПечВалюта = Тов.Валюта;

   Таб.ВывестиСекцию("Товар1");

КонецЦикла;

Секция "Товар1" в Таблице имеет следующий формат:

<ПечНаим> | <ПечАртикул>
<ПсчЦена> | <ПечВалюта>

В третьем варианте отображаемые реквизиты товара вычисляются в программном модуле, а в ячейках Таблицы размещены простые выражения — ссылки на идентификаторы программного модуля. Доступ к каждому реквизиту товара происходит по сокращенному пути — через промежуточную переменную: Товар — Реквизит. В данном варианте фаза вывода данных в Таблицу работает быстрее, чем во втором варианте (выигрыш ~20%) и существено быстрее, чем в первом варианте (выигрыш ~40%), т. к. вычисление значений реквизитов объектов через «одну точку» выполняется быстрее, чем через «две (и более) точки».

Кратко суть этого раздела можно выразить так: при реализации больших отчетов, которые рассчитаны на отображение более сотни строк, следует придерживаться следующих правил:

· не размещайте сложных выражений в ячейках Таблицы. Лучше вычислить необходимые значения непосредственно в программном модуле;

· если необходимо получить несколько реквизитов одного объекта, который сам является составной частью другого объекта, то следует воспользоваться промежуточной переменной, в которую сначала можно записать значение всего объекта «целиком», а затем уже от нее получать требуемые данные.


Part35

Глава 35
Работа с Картинками

При формировании пользовательского интерфейса прикладной задачи иногда требуется отображать в диалоговых формах и печатных документах графические файлы. Для этого в системе 1С:Предприятие используется специальный агрегатный тип данных — Картинка и специальнй элемент формы диалога и таблицы: «Картинка».

Одним из примеров использования данного объекта может служить диалоговая форма справочника «Сотрудники» в которой при выборе сотрудника отображается его фотография.

Контекст работы с картинками

Если в форму диалога или в таблицу при помощи визуальных средств конфигуратора вставлены элементы формы типа «Картинка», система автоматически создает объекты этого типа, причем идентификаторы этих элементов доступны в контексте программного модуля этой формы как уже существующие объекты типа «Картинка». Кроме того, в программных модулях допускается создавать произвольное число объектов типа «Картинка» просто при помощи вызова системной функции СоздатьОбъект.

При создании объекта типа «Картинка» при помощи функции СоздатьОбъект, в качестве названия агрегатного типа данных обязательно должно выступать ключевое слово Картинка.

Англоязычный синоним ключевого слова Картинка — Picture.

Пример:

Фото=СоздатьОбъект("Картинка");

Методы объекта Картинка

Загрузить

Загрузить из файла.

Синтаксис:

Загрузить(<ИмяФайла>)

Англоязычный синоним:

Load

Параметры:

<ИмяФaйлa>

Строковое выражение, которое может задавать или идентификатор картинки в библиотеке картинок конфигурации или имя файла картинки.

Описание:

Метод Загрузить загружает картинку из файла с указанным именем <ИмяФайла> или берет по идентификатору картинку из библиотеки картинок конфигураци. Файл может быть следующих форматов:

.wmf

.emf

.ico

.bmp

.dib

.rle

Пример:

Фото = СоздатьОбъект("Картинка");

Фото.Загрузить("с:\BMP\Boris.bmp");

Сохранить

Сохранить в файл.

Синтаксис:

Сохранить(<ИмяФайла>)

Англоязычный синоним:

Save

Параметры:

<ИмяФайла>

Строковое выражение — имя файла.

Описание:

Метод Сохранить выгружает картинку в файл с именем <ИмяФайла> в формате загрузки (загрузили в формате bmp — в этом формате и сохраним).

Пример:

Фото.Загрузить("с:\ВМР\Boris.bmp");

Фото.Сохранить("с:\lCv7\DBmy\Boris.bmp");

РежимРисования

Установить режим рисования картинки.

Синтаксис:

РежимРисования(<Режим>)

Англоязычный синоним:

SetDrawMode

Параметры:

<Режим>

Числовое выражение: 1 — растягивать; 2 — рисовать по центру с оригинальным размером; 3 — рисовать сохраняя оригинальное соотношение высоты и ширины.

Возвращаемое значение:

Текущее числовое значение режима рисования картинки (на момент до исполнения метода).

Описание:

Метод РежимРисования устанавливает режим рисования картинки.

Пример:

Фото.РежимРисования(2);

Фото.Загрузить("с:\lCv7\DBmy\Boris.bmp");

УстановитьКартинку

Переустановить объект типа "Картинка".

Синтаксис:

УстановитьКартинку(<Объект>)

Англоязычный синоним:

SetPicture

Параметры:

<Объект>

Выражение, имеющее значение оъекта типа «Картинка» встроенного языка или OLE-объект типа I Picture.

Описание:

Метод УстановитьКартинку переписывает (копирует) значение источника <Объект> в текущий объект. (Данный метод копирует все содержимое одного объекта в другой, в отличие от оператора присваивания (=), который передает значение ссылки на уже существующий объект). Например:

А = СоздатьОбъект("Картинка");

В = А;

// в этом случае переменные А и В ссылаются на один и тот же объект

Рассмотрим другой вариант:

А = СоздатьОбъект("Картинка");

В = СоздатьОбъект("Картинка");

А.Загрузить("с:\BMP\Boris.bmp");

В.УстановитьКартинку(А);

// в этом случае переменные А и В ссылаются на два

// разных объекта, хотя и содержат одно и то же

Пример:

// Допустим в Форме диалога у нас есть элемент типа картинка

// с идентификатором Кино.

// Сделаем анимацию изображения в этой форме

Перем фото[5];

// создадим объекты и загрузим в них картинки

Для Н = 1 По 5 Цикл

   Фото[Н] = СоздатьОбъект("Картинка");

   Фото[Н].Загрузить("с:\BMP\Foto" + Строка(Н)+ ".bmp");

КонецЦикла;

// Теперь запустим анимацию

Для Раз = 1 По 100 Цикл

   Для Н = 1 По 5 Цикл

      Кино.УстановитьКартинку(Фото[H]);

   КонецЦикла;

КонецЦикла;


Part36

Глава 36
Работа с Диаграммами

В настоящий момент существует широкий ряд программных продуктов, позволяющих, в дополнение к табличным отчетам, получать графические отчеты (диаграммы). Одними из наиболее известных продуктов, выполняющих эти функции, являются MS Graph97 и MS Excel chart, система деловой графики, входящая в комплект Lotus 1-2-3 фирмы «Lotus», VCI First impression chart от Visual Components и многие другие.

Все перечисленные продукты могут использоваться (через механизм OLE Automation) для построения диаграмм в системе 1С:Предприятие. Однако 1С:Предприятие имеет собственный встроенный объект, который, из всего многообразия возможностей продуктов данного класса, выполняет наиболее актуальные функции, необходимые для задач, решаемых системой программ 1С:Предприятие.

Настоящая глава является руководством по использованию объекта «Диаграмма» системы 1С:Предприятия.

Использование данной возможности имеет следующие преимущества:

· не требуется наличия на компьютере программных продуктов других производителей;

· за счет более тесного взаимодействия с системой 1С:Предприятие, объект «Диаграмма» обеспечивает большую скорость построения диаграмм;

· интеграция с 1С:Предприятием предоставляет дополнительные возможности (расшифровка диаграммы);

· простота использования — система атрибутов и методов достаточно проста, и ее освоение не потребует больших усилий.

Объект «Диаграмма» предназначен для применения только в табличных документах системы 1С:Предприятие и не может использоваться самостоятельно.

Контекст работы с диаграммами

Для использования диаграмм нужно в табличный документ 1С:Предприятия внедрить объект «Диаграмма», используя специальную кнопку инструментальной панели или через главное меню <Таблица>-<Вставить рисунок>-<Диаграмма>.

Процесс внедрения объекта «Диаграмма» в табличный документ подробно описан в документации к 1С:Предприятию (см. книгу «Руководство по конфигурированию и администрированию»). После внедрения объект нужно активизировать, например, двойным щелчком указателя мыши, и настроить его внешний вид.

Настройка диаграммы обычно проводится на этапе конфигурирования. Задача настройки состоит в определении формата, специфического для каждой из областей диаграммы, их размера и расположения.

В свойствах объекта есть закладка «Текст». В поле «Текст» этой закладки нужно внести вызов процедуры, управляющей объектом диаграммы. Сам объект «Диаграмма», в момент вызова этой процедуры, является текущим объектом таблицы (см. атрибут объекта «Таблицы» ТекущийОбъект) и передается в процедуру как параметр. Например, этот вызов будет выглядеть так:

ПостроитьДиаграмму(Таб.ТекущийОбъект);

Наполнение диаграммы данными осуществляется в теле вызываемой процедуры с помощью атрибутов и методов данного объекта.

Таким образом, во всех программных модулях доступ к атрибутам и вызов методов деловой графики может выполняться только при помощи переменной со ссылкой на объект типа «Диаграмма». Данный объект внедряется в таблицу 1С:Предприятие при конфигурировании. При инициировании построения диаграммы, значение этого объекта в качестве фактического параметра передается в обрабатывающую процедуру, где ссылка на объект становится доступна через идентификатор фиктивного параметра. Чтобы вызвать метод деловой графики, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной.

См. также: ТекущийОбъект

Объект «Диаграмма» — основные принципы и понятия,
используемые при визуальной настройке и управлении

Диаграмма представляет собой определенную фигуру, которая строится на основе матрицы данных размером [M, N], где N — количество серий значений (далее серий), М — количество точек, замерами в которых получены значения серий.

Для количественной ориентации в диаграмме используются координатные оси. Каждому значению, отмеченному на оси, соответствует поясняющее имя (метка). В зависимости от типа координатной оси, метка может быть рассчитанной, или определяться при заполнении данными.

С точки зрения настройки, диаграмма состоит из четырех областей:

· область диаграммы — совокупность всех областей образующих диаграмму;

· область построения диаграммы — содержит координатное пространство и изображенную на нем фигуру;

· заголовок диаграммы;

· легенда — вспомогательная область, содержащая список меток, соответствующих сериям.

Настройка размеров и положения областей диаграммы производится визуально. Подробнее о порядке визуальной настройки формата диаграммы следует читать в книге «Руководство по конфигурированию и администрированию».

Атрибуты диаграммы

Заголовок

Заголовок диаграммы.

Синтаксис:

Заголовок

Англоязычный синоним:

TitleText

Описание:

Атрибут Заголовок содержит текст заголовка диаграммы. По умолчанию имеет значение «Диаграмма».

Пример:

Диаграмма.Заголовок = "Пример использования диаграммы";

Методы диаграммы

КоличествоСерий

Явно устанавливает количество серий диаграммы.

Синтаксис:

КоличествоСерий(<Количество>)

Англоязычный синоним:

SeriesCount

Параметры:

<Количество>

Числовое выражение, которое задает количество серий диаграммы.

Возвращаемое значение:

Текущее значение количества серий (до исполнения метода).

Описание:

Метод КоличествоСерий явно устанавливает количество серий диаграммы. Количество серий может быть изменено и в режиме визуальной настройки. Альтернативой использования этого метода является неявное изменение количества серий: в случае если в метод, одним из параметров, использующий номер серии, передается значение превышающее количество серий, количество серий будет неявно увеличено.

Пример:

Диагр.КоличествоСерий(3);       // установим количество серий 3

КоличествоТочек

Явно устанавливает количество точек диаграммы.

Синтаксис:

КоличествоТочек(<Количество>)

Англоязычный синоним:

PointsCount

Параметры:

<Количество>

Числовое выражение, которое задает количество точек диаграммы.

Возвращаемое значение:

Текущее значение количества точек (до исполнения метода).

Описание:

Метод КоличествоТочек явно устанавливает количество точек диаграммы. Количество точек может быть изменено и в режиме визуальной настройки. Альтернативой использования этого метода является неявное изменение количества точек: в случае если в метод, одним из параметров, использующий номер точек, передается значение превышающее количество точек, количество точек будет неявно увеличено.

Пример:

Диагр.КоличествоТочек(4);      // установим количество точек 4

УстановитьИмяСерии

Устанавливает имя серии.

Синтаксис:

УстановитьИмяСерии(<НомерСерии>, <Имя>)

Англоязычный синоним:

SetSeriesLabel

Параметры:

<НомерСерии> | Числовое выражение, которое задает номер серии, для которой устанавливается имя.
<Имя> | Строка, используемая для обозначения серии в легенде и подписях к координатным осям.

Описание:

Метод УстановитьИмяСерии явно устанавливает имя для заданного номера серии.

Пример:

Диаграмма.УстановитьИмяСерии(СчетчикСерий, Запрос.Товар.Наименование);

УстановитьИмяТочки

Устанавливает имя точки.

Синтаксис:

УстановитьИмяТочки(<НомерТочки>, <Имя>)

Англоязычный синоним:

SetPointLabel

Параметры:

<НомерТочки> | Числовое выражение, которое задает номер точки, для которой устанавливается имя.
<Имя> | Строка, используемая для обозначения точки в подписях к координатным осям.

Описание:

Метод УстановитьИмяТочки явно устанавливает имя для заданного номера точки.

Пример:

Диаграмма.УстановитьИмяТочки(1, "Продано на сумму");

ЦветСерии

Устанавливает цвет серии.

Синтаксис:

ЦветСерии(<НомерСерии>, <Красный>, <3еленый>, <Синий>)

Англоязычный синоним:

SetSeriesColor

Параметры:

<НомерСерии> | Числовое выражение, которое задает номер серии, для которой устанавливается цвет.
<Красный> | Число, задающее красную компоненту цвета.
<3еленый> | Число, задающее зеленую компоненту цвета.
<Синий> | Число, задающее синюю компоненту цвета.

Описание:

Метод ЦветСерии устанавливает RGB цвет для серии <НомерСерии>. По умолчанию первые 54 серии имеют уникальный цвет. Серии с большими номерами изображаются в диаграмме повторяя уже использованный цвет, но перестают окрашиваться сплошным цветом, используя более сложный способ заливки.

Пример:

Диаграмма.ЦветСерии(1, 35, 67, 89);

АвтоУстановкаИменСерий

Автоматическая установка имен серий.

Синтаксис:

АвтоУстановкаИменСерий(<флаг>)

Англоязычный синоним:

AutoSeriesLabels

Параметры:

<Флаг>

Числовое значение: 1 — разрешающий. 0 — запрещающий автогенерацию имен серий.

Описание:

Метод АвтоУстановкаИменСерий устанавливает режим автогенерации имен серий диаграммы. В случае, если автогенерация имен разрешена, сериям диаграммы будут автоматически присваиваться имена Серия1, Серия2, ..., Се-рияN. По умолчанию автогенерация запрещена.

Пример:

Диаграмма.АвтоУстановкаИменСерий(1);

АвтоУстановкаИменТочек

Автоматическая установка имен точек.

Синтаксис:

АвтоУстановкаИменТочек(<флаг>)

Англоязычный синоним:

AutoPointLabels

Параметры:

<Флаг>

Числовое значение: 1 — разрешить автогенерацию имен точек. 0 — запретить автогенерацию имен точек.

Описание:

Метод АвтоУстановкаМменТочек устанавливает режим автогенерации имен точек диаграммы. В случае, если автогенерация имен разрешена, точкам диаграммы будут автоматически присваиваться имена 1, 2, ..., N. По умолчанию автогенерация запрещена.

Пример:

Диаграмма.АвтоУстановкаИменТочек(1);

УстановитьЗначение

Установка значения в заданной точке и серии.

Синтаксис:

УстановитьЗначение(<НомерТочки>, <НомерСерии>, <Значен>, <Расшифровка>)

Англоязычный синоним:

SetValue

Параметры:

<НомерТочки> | Числовое выражение, которое задает номер точки, для которой устанавливается значение.
<НомерСерии> | Числовое выражение, которое задает номер серии, для которой устанавливается значение.
<3начен> | Числовое значение — задаваемое значение диаграммы.
<Расшифровка> | Необязательный параметр. Значение любого типа, используемое для расшифровки диаграммы при помощи предопределенной процедуры ОбработкаЯчейкиТаблицы.

Описание:

Метод УстановитьЗначение устанавливает значение серии <НомерСерии> в точке <НомерТочки> равным <Значен> с возможностью его последующей расшифровки.

Расшифровка может быть реализована при помощи предопределенной процедуры ОбработкаЯчейкиТаблицы. Вызов предопределенной процедуры ОбработкаЯчейкиТаблицы на исполнение производится в системе 1С:Предприятие по двойному щелчку мыши в табличном документе на выбранной точке диаграммы. При этом значение расшифровки <Расшифровка> этой точки диаграммы автоматически передается в качестве первого параметра в вызове предопределенной процедуры.

Пример:

Диаграмма.УстановитьЗначение(1, 5, 14);

См. также: ОбработкаЯчейкиТаблицы

Обновление

Установка режима обновления диаграммы.

Синтаксис:

Обновление(<флаг>)

Англоязычный синоним:

RedrawFlag

Параметры:

<Флаг>

Числовое значение: 1 — разрешить перерисовку диаграммы. 0 — запретить перерисовку диаграммы.

Описание:

Метод Обновление устанавливает режим обновления диаграммы. Запрет перерисовки диаграммы рекомендуется в целях ускорения работы системы на ьремя наполнения данными. По умолчанию перерисовка разрешена.

Пример:

Диаграмма.Обновление(1);         // включим перерисовку

Очистить

Очищает диаграмму.

Синтаксис:

Очистить()

Англоязычный синоним:

Clear

Описание:

Метод Очистить очищает диаграмму, т. е. удаляет все ранее установленные значения; количество серий и точек устанавливает нулевым; стирает все ранее установленные имена.

Пример:

Диагр.Очистить();      // очистить диаграмму

Пример использования

Предположим, что проектируется отчет о продаже товара. Внешний вид отчета визуально настроен. Мы предполагаем, что будет построена объемная гистограмма с одной точкой («Продано на сумму») и количеством серий равным количеству товаров.

Фрагментом модуля отчета, является процедура ПостроитьДиаграмму. Вызов этой процедуры находится в закладке «Текст» свойств внедренного в табличный документ, объекта «Диаграмма», он выглядит так:

ПостроитьДиаграмму(Таб.ТекущийОбъект, Запрос)

Параметрами процедуры являются:

· Объект «Диаграмма», переданный как текущий объект табличного документа (подробнее см. в главе Работа с таблицами);

· запрос к базе данных, сформированный и выполненный ранее.

Пример:

Процедура ПостроитьДиаграмму(Диаграмма, Запрос)

   //На время наполнения данными, запретим перерисовку

   Диаграмма.Обновление(0);

   // задаем текст заголовка

   Диаграмма.Заголовок = "Пример использования диаграммы";

   // задаем текст метки точки

   Диаграмма.УстановитьИмяТочки(1, "Продано на сумму");

   СчетчикСерий = 1;

   Пока Запрос.Группировка("Товар") = 1 Цикл

      ПродСумма = Запрос.СуммаПродано;

      // задаем очередное значение

      Диаграмма.Значение(1, СчетчикСерий, ПродСумма);

      // задаем метку очередной серии

      Диаграмма.УстановитьИмяСерии(СчетчикСерий, Запрос.Товар.Наименование)

      СчетчикСерий = СчетчикСерий + 1;

   КонецЦикла;

   // После заполнения данных, включим перерисовку

   Диаграмма.Обновление(1);

КонецПроцедуры


Part37

Глава 37
Работа с Файлами

Для работы с файлами в системе используется специальный агрегатный тип данных — ФС. Механизм работы с файлами предназначен для обеспечения возможности манипулирования файлами непосредственно из встроенного языка программы 1С:Предприятия.

Контекст работы с Файлами

Во всех программных модулях для работы с файлами следует использовать методы объекта типа «ФС». По умолчанию в системе всегда доступен уже существующий объект с именем ФС (англоязычный синоним — FS) (имя существующего объекта совпадает с названием типа данных), к которому можно непосредственно применять методы объекта ФС. Кроме того, можно создать произвольное число объектов типа «ФС» при помощи функции СоздатьОбъект. Чтобы вызвать метод объекта, имя метода (с указанием необходимых параметров) пишется через точку после имени объекта.

Англоязычный синоним ключевого слова ФС — FS.

Пример:

* Здесь приведены примеры различных способов вызова методов объекта «ФС».

ФС.УдалитьФайл("Текст1.txt");

ВАКФайлы = СоздатьОбъект("ФС");

ВАКФайлы.УдалитьФайл("Текст3.txt");

Методы объекта «ФС»

ВыбратьФайл

Открывает окно диалога выбора/сохранения файла.

Синтаксис:

ВыбратьФайл(<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <3аголовокОкна>, <Фильтр>,

            <Расширение>, <Таймаут>)

Англоязычный синоним:

SelectFile

Параметры:

<TипДиaлoгa> | Числовое выражение, значение которого определяет тип открываемого диалога. Допустимые значения: 0 — диалог типа «открыть», 1 — диалог типа «сохранить».
<ИмяФайла> | Имя переменной, содержащей строковое значение с именем файла. В эту же переменную система возвращает имя выбранного файла.
<ИмяНачКаталога> | Имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога.
<ЗаголовокОкна> | Строковое выражение, с помощью которого можно задать заголовок открываемого окна.
<Фильтр> | Строковое выражение, с помощью которого можно задать список фильтров отбора файлов. Фильтр состоит из двух частей, разделенных сиволом "" (вертикальная черта): строки представления, которая отображается в окне выбора файла, и непосредственно строки маски. В строке маски можно использовать символ "*", что означает наличие любого числа произвольных символов. Символ "?" в строке маски означает наличие одного произвольного символа. Одновременно можно задавать несколько фильтров в виде списка, в качестве разделителей используется символ "|" (вертикальная черта). Например, список из двух фильтров: "Текст(*.txt)|*.txt| Таблицы(*.mxl)|*.mxl"
<Расширение> | Строковое выражение, с помощью которого можно задать расширение файла по умолчанию, которое используется системой при записи файла.
<Таймаут> | Необязательный параметр. Числовое выражение, значение которого задает время ожидания системы (в секундах) на отклик пользователя.

Возвращаемое значение:

Число: 0 — если в окне диалога нажата кнопка «Отмена»; 1 — если в окне диалога нажата кнопка «ОК», при этом в переменную <ИмяФайла> возвращается выбранное имя файла, а в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; -1 (минус единица) — закончилось время <Таймаут> ожидания отклика пользователя.

Описание:

Метод ВыбратьФайл открывает окно диалога выбора/сохранения файла.

Пример:

* В данном примере приведена процедура вызова диалога выбора файла.

Процедура УдалФ()

   ИмяВыбрФайла = "";

   ИмяПути="";

   Если ФС.ВыбратьФайл(0, ИмяВыбрФайла, ИмяПути, "Выберите файл",

           "Все файлы (*.*)!*.*", , ) = 1 Тогда

      ФС.УдалитьФайл(ИмяПути + ИмяФайла);

   КонецЕсли;

КонецПроцедуры

ВыбратьФайлКартинки

Открывает окно диалога выбора/сохранения файла картинки.

Синтаксис:

ВыбратьФайлКартинки(<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <3аголовокОкна>,

                    <Расширение>, <Таймаут>)

Англоязычный синоним:

SelectPictFile

Параметры:

<ТипДиалога> | Числовое выражение, значение которого определяет тип открываемого диалога. Допустимые значения: 0 — диалог типа «открыть», 1 — диалог типа «сохранить».
<ИмяФайла> | Имя переменной, содержащей строковое значение с именем файла. В эту же переменную система возвращает имя выбранного файла.
<ИмяНачКаталога> | Имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога.
<3аголовокОкна> | Строковое выражение, с помощью которого можно задать заголовок открываемого окна.
<Расширение> | Строковое выражение, с помощью которого можно задать расширение файла по умолчанию, которое используется системой при записи файла.
<Таймаут> | Необязательный параметр. Числовое выражение, значение которого задает время ожидания системы (в секундах) на отклик пользователя.

Возвращаемое значение:

Число: 0 — если в окне диалога нажата кнопка «Отмена»; 1 — если в окне диалога нажата кнопка «ОК», при этом в переменную <ИмяФайла> возвращается выбранное имя файла, а в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; -1 (минус единица) — закончилось время <Таймаут> ожидания отклика пользователя.

Описание:

Метод ВыбратьФайлКартинки открывает окно диалога (с возможностью предварительного просмотра) выбора/сохранения файла картинки.

Пример:

* В данном примере приведена процедура вызова диалога выбора файла картинки.

// Фото — Объект типа "Картинка"

Процедура ЗагрКарт()

   ИмяВыбрФайла = "";

   ИмяПути = "";

   // Выбор файла с просмотром

   Если ФС.ВыбратьФайлКартинки(0, ИмяВыбрФайла, ИмяПути,

         "Выберите файл", "bmp", ) = 1 Тогда

      Фото.Загрузить(ИмяПути + ИмяВыбрФайла);

   КонецЕсли;

КонецПроцедуры

ВыбратьКаталог

Открывает окно диалога выбора каталога.

Синтаксис:

ВыбратьКаталог(<ИмяКаталога>, <3аголовок>, <Таймаут>)

Англоязычный синоним:

SelectDirectory

Параметры:

<ИмяКаталога> | Имя переменной, содержащей строковое значение с именем начального каталога. В эту же переменную система возвращает имя выбранного каталога.
<3аголовок> | Строковое выражение, с помощью которого можно задать заголовок открываемого окна.
<Таймаут> | Необязательный параметр. Числовое выражение, значение которого задает время ожидания системы (в секундах) на отклик пользователя.

Возвращаемое значение:

Число: 0 — если в окне диалога нажата кнопка «Отмена»; 1 — если в окне диалога нажата кнопка «ОК», при этом в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; -1 (минус единица) — закончилось время <Таймаут> ожидания отклика пользователя.

Описание:

Метод ВыбратьКаталог открывает окно диалога выбора каталога.

Пример:

* В данном примере приведена процедура вызова диалога выбора каталога.

Функция УстКат(ИмяПути)

   Если ФС.ВыбратьКаталог(ИмяПути, "Выберите каталог", 10) = 1 Тогда

      Возврат ИмяПути;

   Иначе

      Возврат КаталогПользователя();

   КонецЕсли;

КонецПроцедуры

СуществуетФайл

Проверяет существование файла.

Синтаксис:

Существуетфайл(<ИмяФайла>)

Англоязычный синоним:

ExistFile

Параметры:

<ИмяФайла>

Строковое выражение с именем файла.

Возвращаемое значение:

Число: 1 — файл существует; 0 — не существует.

Описание:

Метод СуществуетФайл проверяет существование файла.

Пример:

Процедура СущФ(ИмяФайла)

   Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда

      Сообщить("Файл " + ИмяФайла + " — существует");

   КонецЕсли;

КонецПроцедуры

КопироватьФайл

Копирует файл.

Синтаксис:

КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>, <ФлагОтказаПерезаписи>)

Англоязычный синоним:

FileCopy

Параметры:

<ИмяФайлаИсточника> | Строковое выражение с именем файла источника.
<ИмяФайлаПриемника> | Строковое выражение с именем файла приемника.
<ФлагОтказаПерезаписи> | Числовое выражение: 0 — при существовании файла приемника заменяет его на копируемый; 1 — при существовании файла приемника копирования не производится.

Описание:

Метод КопироватьФайл копирует файл-источник в файл-приемник.

Пример:

* В данном примере приведена процедура копирования файла.

Процедура КопирФ()

   ФС.КопироватьФайл(ИмяВыбрФайла, ФПриемник, 1);

КонецПроцедуры

УдалитьФайл

Удалить файл.

Синтаксис:

УдалитьФайл(<ИмяФайла>)

Англоязычный синоним:

DeleteFile

Параметры:

<ИмяФайла>

Строковое выражение с именем удаляемого файла.

Описание:

Метод УдалитьФайл удаляет указанный файл.

Пример:

* В данном примере приведена процедура удаления файла.

Процедура УдалФ()

   ФС.УдалитьФайл(ИмяФайла);

КонецПроцедуры

ПереименоватьФайл

Переименовать файл.

Синтаксис:

ПереименоватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>, <ФлагПерезаписи>)

Англоязычный синоним:

MoveFile

Параметры:

<ИмяФайлаИсточника> | Строковое выражение с именем файла источника.
<ИмяФайлаПриемника> | Строковое выражение с требуемым именем файла.
<ФлагПерезаписи> | Числовое выражение: 0 — запрещает перемещение файла между дисками и при существовании файла приемника копирования не производится; 1 — разрешает перемещение файла (только для файлов) между дисками и при существовании файла приемника замещает его на копируемый.

Описание:

Метод ПереименоватьФайл выполняет переименование (перемещение) указанного файла.

Пример:

* В данном примере приведена процедура переименования файла.

Процедура ПереимФ()

   ФС.ПереименоватьФайл(Результат, ФПриемник, 1);

КонецПроцедуры

НайтиПервыйФайл

Открывает выборку файлов по заданной маске и находит первый файл.

Синтаксис:

НайтиПервыйФайл(<МаскаИмени>)

Англоязычный синоним:

FindFirstFile

Параметры:

<МаскаИмени>

Строковое выражение с маской имен файлов. В строке маски можно использовать символ "*", что означает наличие любого числа произвольных символов. Символ "?" в строке маски означает наличие одного произвольного символа.

Возвращаемое значение:

Строка с именем найденного файла.

Описание:

Метод НайтиПервыйФайл находит первый файл и открывает выборку файлов по заданной маске.

Замечание. Методы НайтиПервыйФайл и НайтиСледующийФайл возвращают имена файлов в той же последовательности, как это делает команда Dir операционной системы MS DOS, т. е. если задана маска "*.*"для некорневого каталога, первым возвращаемым значением будет "." — обозначающая ссылку на текущий каталог. Имя следующего файла будет ".." — обозначающее ссылку на каталог уровнем выше. При получении следующих файлов возвращаемым значением будет имя найденного файла.

Пример:

* В данном примере приведена процедура открытия выборки файлов по заданной маске.

Процедура ПервФ()

   Результат = ФС.НайтиПервыйФайл("*.*");

КонецПроцедуры

См. также: НайтиСледующийФайл

НайтиСледующийФайл

Находит следующий файл по открытой выборке файлов.

Синтаксис:

НайтиСледующийФайл()

Англоязычный синоним:

FindNextFile

Возвращаемое значение:

Строка с именем найденного файла.

Описание:

Метод НайтиСледующийФайл находит следующий файл по открытой выборке файлов.

Пример:

* В данном примере приведена процедура взятия следующего файла выборки файлов.

Процедура СледФ()

   Результат = ФС.НайтиСледующийФайл();

КонецПроцедуры

См. также: НайтиПервыйФайл

АтрибутыФайла

Возвращает атрибуты файла.

Синтаксис:

АтрибутыФайла(<ИмяФайла>, <РазмерФайла> , <АтрибутыФайла>, <ВремяСоздания>,

            <ВремяПоследнДоступа>, <ВремяПоследнЗаписи>, <РасширенноеИмяФайла>)

Англоязычный синоним:

GetFileAttr

Параметры:

<ИмяФайла> | Строковое выражение с именем файла.
<РазмерФайла> | Возвращаемое Числовое значение размера файла в байтах.
<АтрибутыФайла> | Возвращаемое строковое значение длиной 9 символов, в котором закодированы атрибуты файла. Символы могут принимать значения "0" или "1": Первый символ: если "1" — файл только для чтения; Второй символ: если "1" — скрытый файл; Третий символ: если "1" — системный файл; Четвертый символ: если "1" — каталог; Пятый символ: если "1" — архивный файл; Шестой символ: если "1" — обычный файл (все другие атрибуты не установлены); Седьмой символ: если "1" — временный файл; Восьмой символ: если " 1" — файл, сжатый каким-либо архиватором; Девятый символ: если "1" — нет доступа к файлу. Для проверки атрибута можно применять выражение: Цел(ПолученныйАтрибут/КодАтрибута)/2 где кодАтрибута — 1/2/4/16/32... это выражение возвращает 1 или 0, в зависимости от того, установлен атрибут или нет.
<ВремяСоздания> | Возвращаемое строковое значение, содержащее дату и время создания файла.
<ВремяПоследнДоступа> | Возвращаемое строковое значение, содержащее дату и время последнего доступа к файлу.
<ВремяПоследнЗаписи> | Возвращаемое строковое значение, содержащее дату и время последней записи файла.
<РасширенноеИмяФайла> | Возвращаемое строковое значение, содержащее полное имя файла.

Описание:

Метод АтрибутыФайла считывает атрибуты файла и записывает их значения в передаваемые параметры.

Пример:

* В данном примере приведена процедура считывания атрибутов файла.,

Лроцедура АттрФ()

   ФС.АтрибутыФайла(ИмяВыбрФайла, A, B, C, D, E, F);

КонецПроцедуры

СоздатьКаталог

Создает новый каталог файлов.

Синтаксис:

СоздатьКаталог(<ИмяКат>)

Англоязычный синоним:

CreateDirectory

Параметры:

<ИмяКат>

Строковое выражение с именем создаваемого каталога.

Описание:

Метод СоздатьКаталог создает новый каталог файлов.

Пример:

* В данном примере приведена процедура создания нового каталога файлов.

Процедура СоздДир()

   ФС.СоздатьКаталог(ИмяВыбрДир);

КонецПроцедуры

УдалитьКаталог

Удаляет каталог файлов.

Синтаксис:

УдалитьКаталог(<ИмяКат>)

Англоязычный синоним:

RemoveDirectory

Параметры:

<ИмяКат>    Строковое выражение с именем удаляемого каталога файлов.

Описание:

Метод УдалитьКаталог удаляет каталог файлов.

Пример:

* В данном примере приведена процедура удаления каталога файлов.

Процедура УдалДир()

   ФС.УдалитьКаталог(ИмяВыбрДир);

КонецПроцедуры

УстТекКаталог

Устанавливает текущий каталог файлов.

Синтаксис:

УстТекКаталог(<ИмяКат>)

Англоязычный синоним:

GetCurrentDirectory

Параметры:

<ИмяКат>

Строковое выражение с именем текущего каталога файлов.

Описание:

Метод УстТекКаталог устанавливает текущий каталог файлов.

Пример:

* В данном примере приведена процедура установки текущего каталога файлов

Процедура УстТекДир()

   ФС.УстТекКаталог(ИмяВыбрДир);

КонецПроцедуры

См. также: ТекКаталог

ТекКаталог

Возвращает текущий каталог файлов.

Синтаксис:

ТекКаталог()

Англоязычный синоним:

GetCurrentDirectory

Возвращаемое значение:

Строковое значение имени текущего каталога файлов.

Описание:

Метод ТекКаталог возвращает строковое значение имени текущего каталога файлов.

Пример:

ТекКат = ФС.ТекКаталог();

См. также: УстТекКаталог

WindowsКаталог

Возвращает имя Windows директории.

Синтаксис:

WindowsКаталог()

Англоязычный синоним:

GetWindowsDirectory

Возвращаемое значение:

Строковое значение — имя Windows директории.

Описание:

Метод WindowsКаталог возвращает имя Windows директории.

Пример:

WinKaT = ФC.WindowsКаталог();

СвободноеМестоНаДиске

Определить размер свободного дискового пространства.

Синтаксис:

СвободноеМестоНаДиске(<ИмяДиска>)

Англоязычный синоним:

GetDiskFreeSpace

Параметры:

<ИмяДиска>

Строковое выражение с именем диска.

Возвращаемое значение:

Численое значение — размер свободного дискового пространства в байтах.

Описание:

Метод СвободноеМестоНаДиске возвращает численое значение размера

свободного дискового пространства.

Пример:

* В данном примере приведена процедура определения свободного дискового пространства диска С:

Процедура РазмД()

   Рез = ФС.СвободноеМестоНаДиске("С:");

КонецПроцедуры


Part38

Глава 38
Работа с базами данных формата DBF

Основные понятия

Для облегчения понимания материала данного раздела читателем, не имеющим опыта работы с базами данных, ниже приводятся пояснения терминов, использованных при описании средства встроенного языка для работы с базами данных — агрегатного типа данных XBase.

Поля и записи

Если Вы не знакомы с концепцией базы данных, то ее можно себе представить в виде упорядоченного хранилища информации типа картотеки. Хорошим примером базы данных может служить телефонный справочник организации. Он содержит фамилии, номера телефонов и номера комнат всех сотрудников организации. Каждая строка справочника соответствует одной записи, а каждая колонка — полю. Каждое поле имеет наименование и характеристики информации для хранения которой оно предназначено: тип, длина, точность. Содержимое поля для конкретной записи называется значением поля. Отрывок телефонного справочника, приведенный ниже, иллюстрирует вышесказанное:

 | Поле | Поле | Поле
 | "Фамилия" | "№ комнаты" | "Телефон"
 | Иванов | 25 | 513
Запись № 2 —> | Петров | 31 | 274
 | Сидоров | 25 | 513
 | … | … | …

Таблица, структура таблицы, файл базы данных

Весь справочник целиком в терминах баз данных называется таблицей. Состав входящих в таблицу полей определяет структуру таблицы, а состав входящих в таблицу записей — ее содержание. Каждая запись в таблице состоит из того же набора полей, что и таблица целиком, поэтому иногда употребляется термин структура записи. Это понятие адекватно структуре таблицы, хотя употребление первого термина представляется более корректным, т.к. таблица имеет структуру независимо от того, имеется ли в ней хотя бы одна запись.

Реализация баз данных формата DBF подразумевает, что каждая таблица хранится в отдельном файле. Поэтому в дальнейшем мы будем применять термин «файл базы данных» или «файл БД», имея в виду таблицу базы данных.

Индексы, выражения индекса и фильтра

Для организации упорядочивания содержимого файла БД и поиска в ней по значению одного или нескольких полей применяется механизм индексов. Его применение можно сравнить с сортировкой картотеки по определенному признаку (совокупности признаков). Однако, в отличие от картотеки, файл БД может иметь сразу несколько индексов, и, соответственно, являться упорядоченным одновременно по нескольким признакам. Каждый индекс имеет наименование, признак уникальности, выражение индекса и фильтр. Наименование индекса используется для идентификации индекса. Выражение индекса и фильтр представляют собой написанные на специальном языке выражения, вычисление значения которых для каждой записи позволяет определить ее место при упорядочивании и необходимость помещения ее в упорядоченный список (индекс может содержать упоминание не обо всех записях таблицы, а только об удовлетворяющих выражению фильтра). Подробнее выражения индекса и фильтра, применительно к объектам XBase, рассмотрены в конце данного раздела. Уникальный индекс (имеющий установленным признак уникальности) позволяет иметь в индексе ссылки на записи только с различным значением индексного выражения.

Индексный файл

Индексы хранятся в индексном файле. Индексный файл может содержать информацию более чем об одном индексе.

Назначение агрегатного типа данных XBase

Для работы с базами данных формата DBF в системе может использоваться специальный агрегатный тип данных — XBase. Механизм работы с базами данных формата DBF предназначен для обеспечения возможности манипулирования ими непосредственно из встроенного языка программы 1С:Предприятие. Каждый XBase-объект может быть связан с одним файлом базы данных.

Атрибуты объекта и поля базы данных

Объекты XBase имеют динамически изменяемый набор атрибутов, состав и тип которых зависит от структуры файла базы данных, с которым связан конкретный объект. Объект содержит в своих атрибутах информацию об одной текущей записи. Каждому полю файла базы данных соответствует один атрибут объекта. Наименование атрибута совпадает с именем поля.

Запись изменений в базу данных

Каждый объект представляет собой структуру данных, расположенных в памяти компьютера и изменение содержимого его атрибутов не вызывает немедленного изменения в файлах базы данных. При включенном режиме автосохранения запись содержимого объекта в файлы БД происходит при изменении позиционирования (переход с следующей записи, поиск по ключу и т. д.), при выключенном режиме автосохранения запись изменений происходит только при вызове соответствующего метода объекта.

Работа с индексными файлами

Следует иметь в виду, что одновременно XBase-объект может быть связан не более, чем с одним индексным файлом. Все изменения в базе данных, сделанные в сеансе работы с одним индексным файлом, никак не отражаются на остальных. Поэтому не рекомендуется иметь более одного индексного файла для БД. В противном случае, после каждого открытия БД с индексным файлом, отличным от открытого в предыдущем сеансе работы с базой, следует производить переиндексацию (обновление содержимого индексного файла).

Удаление записей

Удаление записи из базы данных не приводит к физическому уничтожению ее на диске. В этом случае в специальном служебном поле записи, не доступном обычными средствами, ставится пометка об удалении. На записи, помеченные удаленными, позиционирования не происходит, если не включен специальный режим просмотра удаленннх записей. Имеется набор методов для включения/выключения специального режима просмотра, а также определения, является ли спозиционированная запись удаленной, и восстановления удаленной записи.

Метод сжатия базы вызывает физическое уничтожение записей, помеченных как удаленные. Метод очистки базы вызывает физическое уничтожение всех записей. После применения этих методов восстановление удаленных записей становится невозможным.

Создание базы данных, индекса, индексного файла

Помимо работы с существующими базами данных, агрегатный тип XBase имеет набор методов, позволяющих создать новую базу данных произвольной структуры, новые индексы и новый индексный файл. Следует отметить, что, если использование методов, изменяющих структуру БД, возможно только для объектов, не связанных с базой данных (т. е. для вновь создаваемых БД), то создание новых индексов и индексного файла возможно как для создаваемых БД, так и для уже существующих и открытых.

Ограничения

Основное назначение объектов XBase — организация экспорта-импорта информации в/из внешних файлов формата DBF. Использование методов Xbase для доступа непосредственно к данным информационной базы системы 1С:Предприятие не рекомендуется.

Объекты XBase не поддерживают поля типа memo (см. ДобавитьПоле).

Поддерживаемые объектом XBase фукции, которые можно использовать в выражениях и фильтрах индексов перечислены в разделе «Выражение и фильтр индекса».

Объекты XBase поддерживают только монопольный доступ к файлам. XBase-объекты поддерживают индексные файлы в формате CDX. Однако, использование внешними программами (например, FoxBase) индексных файлов, созданных с помощью объектов XBase, так же, как и использование объектами индексных файлов, созданных внешними программами, не рекомендуется из-за возможной несовместимости версий.

Контекст работы с XBase

Во всех программных модулях для работы с базами данных формата DBF следует использовать объекты типа XBase. Можно создать произвольное число объектов типа XBase при помощи функции СоздатьОбъект. Чтобы обратиться к атрибуту объекта или вызвать его метод, имя атрибута или метода (с указанием необходимых параметров) пишется через точку после имени объекта.

Русскоязычное написание ключевого слова XBase отсутствует.

Пример:

ДБФ = СоздатьОбъект("XBase");

ИмяФайла = "";

ИмяПути = "";

ФС.ВыбратьФайл(0, ИмяФайла, ИмяПути, , "*.*", , );

ПутьДБ = ИмяПути + ИмяФайла;

ДБФ.ОткрытьФайл(ПутьДБ);

Если ДБФ.Открыта() = 1 Тогда

   Предупреждение("База открыта", 2);

   ДБФ.Первая();

   ФИО = ДБФ.FIO;      // Подразумевается, что поле FIO имеется в открытой БД

   Предупреждение("Первым в " + ПутьДБ + " упомянут т." + ФИО, 5);

Иначе

   Предупреждение("НЕ смогли открыть Базу!", 2);

КонецЕсли;

Атрибуты объекта XBase

<Поле>

Предоставляет доступ к полю записи с именем «Поле». Имя поля должно совпадать с именем поля базы данных, с которой связан объект.

Синтаксис:

<Поле>

Описание:

Атрибут <Поле> предоставляет доступ к полю записи с именем «Поле». В тексте программного модуля под термином <Поле> понимается имя конкретного столбца файла базы данных, с которым связан объект.

Атрибут имеет смысл только если файл базы данных находится в открытом состоянии.

Состав атрибутов объекта может динамически изменяться в процессе исполнения 1С:Предприятия и определяется набором полей файла базы данных, с которым объект связан в данных момент времени.

Пример:

ФИО = ДБФ.FIO;

Ключ

Предоставляет доступ к агрегатному типу данных типа «Ключ».

Синтаксис:

Ключ

Англоязычный синоним:

Key

Описание:

Агрегатный тип данных типа «Ключ» имеет только атрибуты. Состав атрибутов полностью повторяет атрибуты XBase-объекта за исключением того, что отсутствует атрибут «Ключ». Значения атрибутов используются XBase-объектом для вычисления выражения индекса при использовании метода НайтиПоКлючу.

Пример:

ДБФ.Ключ.FIO = ФИО;

ЗаписьНайдена = ДБФ.НайтиПоКлючу(0);

Методы объекта XBase

СоздатьФайл

Создать новый файл базы данных.

Синтаксис:

СоздатьФайл(<ПутьКБазе>, <ПутьКИндексу>)

Англоязычный синоним:

CreateFile

Параметры:

<ПутьКБазе> | Строковое выражение, содержащее путь к файлу базы данных формата DBF.
<ПутьКИндексу> | Необязательный параметр. Строковое выражение, содержащее путь к индексному файлу базы данных.

Описание:

Метод СоздатьФайл создает новый файл базы данных формата DBF. Если база с таким именем существует, то выдается ошибка.

Пример:

ДБФ = СоздатьОбъект("XBase");

// Определение полей и индексов новой БД

.....................

.....................

// Теперь физически создаем базу

ДБФ.СоздатьФайл("mydb.dbf", "mydb.cdx");

См. также: ДобавитьПоле, ДобавитьИндекс

ОткрытьФайл

Открыть существующую базу.

Синтаксис:

ОткрытьФайл(<ПутьКБазе>, <ПутьКИндексу>, <ТолькоЧтение>)

Англоязычный синоним:

OpenFile

Параметры:

<ПутьКБазе> | Строковое выражение, содержащее путь к файлу базы данных формата DBF.
<ПутьКИндексу> | Необязательный параметр. Строковое выражение, содержащее путь к индексному файлу базы данных.
<ТолькоЧтение> | Необязательный параметр. Число: 1 — файл открывается в режиме только чтение; 0 — файл открывается в режиме полного доступа (при этом файл открывается в эксклюзивном режиме). Значение по умолчанию — 0.

Описание:

Метод ОткрытьФайл открывает существующую базу данных формата DBF.

Пример:

// Подразумевается, что объект ДБФ уже создан и

// доступен в данном контексте

Процедура ОткрДБ()

   ИмяФайла = "";

   ИмяПути = "";

   ФС.ВыбратьФайл(0, ИмяФайла, ИмяПути, , "*.*", , );

   ПутьДБ = ИмяПути + ИмяФайла;

   ДБФ.ОткрытьФайл(ПутьДБ);

   Если ДБФ. Открыта() = 1 Тогда

      Предупреждение("База открыта", 2);

   Иначе

      Предупреждение("Не смогли открыть Базу!", 2);

   КонецЕсли;

КонецПроцедуры

Открыта

Прочитать значение флага открытия файла.

Синтаксис:

Открыта()

Англоязычный синоним:

IsOpen

Возвращаемое значение:

Число: 1 — база открыта; 0 — база не открыта.

Описание:

Метод Открыта возвращает значение флага открытия файла базы данных.

Пример:

См. предыдущий пример.

ЗакрытьФайл

Закрыть базу.

Синтаксис:

ЗакрытьФайл()

Англоязычный синоним:

CloseFile

Описание:

Метод ЗакрытьФайл закрывает ранее открытую или созданную базу данных формата DBF.

Пример:

Процедура ЗакрДБ()

   Если ДБФ.Открыта() = 1 Тогда

      ДБФ.ЗакрытьФайл();

   КонецЕсли;

КонецПроцедуры

ОчиститьФайл

Очистить все записи в базе.

Синтаксис:

ОчиститьФайл()

Англоязычный синоним:

Zap

Описание:

Метод ОчиститьФайл удаляет все записи в базе. При этом все существующие записи удаляются физически и не могут быть впоследствии восстановлены.

Пример:

Процедура ОчистДБ()

   Если Вопрос("Вы уверены, что надо очистить базу?", 1, 5) = 1 Тогда

      ДБФ.ОчиститьФайл();

   КонецЕсли;

КонецПроцедуры

См. также: Удалить, Восстановить

Сжать

Сжать базу, убрать удаленные записи.

Синтаксис:

Сжать()

Англоязычный синоним:

Pack

Описание:

Метод Сжать уменьшает размер файла базы данных, убирая записи, помеченные как удаленные.

Пример:

Процедура СжатьДБ()

   Если Вопрос("Уничтожить записи, помеченные как удаленные?", 1, 5) = 1 Тогда

      ДБФ.Сжать();

   КонецЕсли;

КонецПроцедуры

См. также: Удалить, Восстановить

Переиндексировать

Переиндексировать базу.

Синтаксис:

Переиндексировать()

Англоязычный синоним:

Reindex

Описание:

Метод Переиндексировать выполняет переиндексирование базы. Объекты XBase автоматически выполняют индексацию при изменениях базы данных, однако, при работе более чем с одним индексным файлом или после аварийных завершений может потребоваться принудительная переиндексация (для «своих» БД система 1С:Предприятие выполняет это автоматически).

Пример:

Процедура ПерИндДБ()

   Если ФлагАварийногоЗавершения = 1 Тогда

      ДБФ.Переиндексировать();

   КонецЕсли;

КонецПроцедуры

ПоказыватьУдаленные

Установить режим показа удаленных записей в базе.

Синтаксис:

ПоказыватьУдаленные(<Режим>)

Англоязычный синоним:

ShowDeleted

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — установить режим показа удаленных записей в базе. 0 — снять режим.

Возвращаемое значение:

Текущее числовое значение режима показа удаленных записей в базе (на момент до исполнения метода).

Описание:

Метод ПоказыватьУдаленные позволяет определить и изменить режим показа удаленных записей в базе. В случае, если параметр не указан, изменения режима не происходит.

Пример:

Процедура ПоказатьНомераУдалЗап()

   РежПокУд = ДБФ.ПоказыватьУдаленные(1);

   ДБФ.Первая();

   Пока ДБФ.ВКонце() = 0 Цикл

      Если ДБФ.ЗаписьУдалена() = 1 Тогда

         Предупреждение("Номер удаленной записи — " +

                         Строка(ДБФ.НомерЗаписи()), 3);

      КонецЕсли;

      Если ДБФ.Следующая() = 0 Тогда

         Прервать;

      КонецЕсли;

   КонецЦикла;

   ДБФ.ПоказыватьУдаленные(РежПокУд);

КонецПроцедуры

См. также: Удалить, Восстановить

Первая

Перейти на первую запись.

Синтаксис:

Первая()

Англоязычный синоним:

First

Возвращаемое значение:

Число: 1 — если действие выполнено; 0 — если действие не выполнено.

Описание:

Метод Первая предназначен для перехода на первую запись. Если не установлен текущий индекс, объект позиционируется на первую запись в базе данных, если установлен — на запись, имеющую самое младшее значение выражения текущего индекса (если индекс создавался с установленным флагом «Убывание», то наоборот).

Пример:

// Обнуляет значения всех полей первой записи

Процедура ОчистПервуюЗап()

   ДБФ.Первая();

   ДБФ.Очистить();

   ДБФ.Записать();

КонецПроцедуры

Последняя

Перейти на последнюю запись.

Синтаксис:

Последняя()

Англоязычный синоним:

Last

Возвращаемое значение:

Число: 1 — если действие выполнено; 0 — если действие не выполнено.

Описание:

Метод Последняя предназначен для перехода на последнюю запись. Если не установлен текущий индекс, объект позиционируется на последнюю запись в базе данных, если установлен — на запись, имеющую самое старшее значение выражения текущего индекса (если индекс создавался с установленным флагом «Убывание», то наоборот).

Пример:

// Вычисляет сумму полей AMOUNT всех существующих записей,

// начиная с последней записи и двигаясь к первой

Функция ВычислитьСумму()

   ДБФ.Последняя();

   Сумма = 0;

   Пока ДБФ.Вначале() = 0 Цикл

      Сумма = Сумма + ДБФ.AMOUNT;

      ДБФ.Предыдущая();

   КонецЦикла;

   Возврат Сумма;

КонецФункции

Следующая

Перейти на следующую запись.

Синтаксис:

Следующая()

Англоязычный синоним:

Next

Возвращаемое значение:

Число: 1 — получена следующая запись; 0 — следующая запись не найдена.

Описание:

Метод Следующая предназначен для позиционирования объекта на следующую запись. В зависимости от того, установлен ли текущий индекс, позиционирование происходит либо в порядке возрастания физического номера записи, либо в порядке возрастания значения выражения текущего индекса (если индекс создавался с установленным флагом "Убывание", то в порядке убавания).

Пример:

// Обнуляет значения всех полей всех существующих записей

Процедура ОчистЗап() ДБФ.Первая();

   Пока 1 = 1 Цикл

      ДБФ.Очистить();

      ДБФ.Записать();

      Если ДБФ.Следующая() = 0 Тогда

         Возврат;

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

Предыдущая

Перейти на предыдущую запись.

Синтаксис:

Предыдущая()

Англоязычный синоним:

Prev

Возвращаемое значение:

Число: 1 — получена предыдущая запись; 0 — предыдущая запись не найдена.

Описание:

Метод Предыдущая предназначен для перехода на предыдущую запись. В зависимости от того, установлен ли текущий индекс, позиционирование происходит либо в порядке убывания физического номера записи, либо в порядке убывания значения выражения текущего индекса (если индекс создавался с Установленным флагом «Убывание», то в порядке возрастания).

Пример:

См. пример метода Последняя

НомерЗаписи

Возвращает значение номера текущей записи.

Синтаксис:

НомерЗаписи()

Англоязычный синоним:

RecNo

Возвращаемое значение:

Числовое значение — номер текущей записи.

Описание:

Метод НомерЗаписи возвращает физический порядковый номер текущей записи в файле базы данных. Результат не зависит от установки текущего индекса.

Пример:

Процедура ПоказатьНомераУдалЗап()

   РежПокУд = ДБФ.ПоказыватьУдаленные(1);

   ДБФ.Первая();

   Пока ДБФ.Вконце() = 0 Цикл

      Если ДБФ.ЗаписьУдалена() = 1 Тогда

         Стр1 = "Номер удаленной записи — ";

         Стр2 = Строка(ДБФ.НомерЗаписи());

         Предупреждение(Стр1 + Стр2, 3);

      КонецЕсли;

      Если ДБФ.Следующая() = 0 Тогда

         Прервать;

      КонецЕсли;

   КонецЦикла;

   ДБФ.ПоказыватьУдаленные(РежПокУд);

КонецПроцедуры

См. также: Перейти

Перейти

Перейти на запись по ее номеру записи.

Синтаксис:

Перейти(<НомерЗаписи>)

Англоязычный синоним:

GoTo

Параметры:

<НомерЗаписи>

Числовое выражение — физический порядковый номер записи в базе данных.

Описание:

Метод Перейти позволяет перейти на запись по ее физическому порядковому номеру в базе данных. Позволяет перейти на запись, помеченную удаленной, даже если не установлен режим просмотра удаленных записей.

Пример:

Процедура ИнформацияОЗаписи(НЗап)

   ДБФ.Перейти(НЗап);

   Стр3ап = "н." + ДБФ.НомерЗаписи();

   Стр3ап = Стр3ап + " Уд. " + ДБФ.ЗаписьУдалена();

   Стр3ап = СтрЗап + " Содержит -";

   Для КП = 1 По ДБФ.КоличествоПолей() Цикл

      СтрЗап = СтрЗап + Строка(ДБФ.ПолучитьЗначениеПоля(КП)) + "; ";

   КонецЦикла;

   Предупреждение(СтрЗап, 10);

КонецПроцедуры

См. также: НомерЗаписи

ВКонце

Прочитать значение флага конца файла базы банных.

Синтаксис:

ВКонце()

Англоязычный синоним:

EOF

Возвращаемое значение:

Число: 1 — указатель в файле находится за последней записью; 0 — конец файла не достигнут.

Описание:

Метод ВКонце возвращает значение флага конца файла.

Пример:

Функция МаксимальнаяПокупка()

   ДБФ.Первая();

   Уплачено = 0;

   Пока ДБФ.Вконце() = 0 Цикл

      Если ДБФ.AMOUNT > Уплачено Тогда

         Уплачено = ДБФ.AMOUNT;

      КонецЕсли;

      ДБФ.Следующая();

   КонецЦикла;

   Возврат Уплачено;

КонецПроцедуры

ВНачале

Прочитать значение флага начала файла.

Синтаксис:

ВНачале()

Англоязычный синоним:

BOF

Возвращаемое значение:

Число: 1 — указатель в файле находится перед первой записью; 0 — начало файла не достигнуто.

Описание:

Метод ВНачале возвращает значение флага начала файла.

Пример:

Функция СреднСтоимПокупки()

   ДБФ.Последняя();

   Уплачено = 0;

   Записей = 0;

   Пока ДБФ.ВКонце() = 0 Цикл

      Уплачено = Уплачено + ДБФ.AMOUNT;

      Записей = Записей + 1;

      ДБФ.Следующая();

   КонецЦикла;

   Если Записей > 0 Тогда

      Уплачено = Уплачено / Записей;

   КонецЕсли;

   Возврат Уплачено;

КонецПроцедуры

ТекущийИндекс

Установить/определить текущий индекс.

Синтаксис:

ТекущийИндекс(<НазваниеИндекса>)

Англоязычный синоним:

CurrentIndex

Параметры:

<НазваниеИндекса>

Необязательный параметр. Строковое выражение с названием индекса. Если параметр опущен, изменения текущего индекса не происходит.

Возвращаемое значение:

Строковое значение с названием текущего индекса (на момент до выполнения метода).

Описание:

Метод ТекущийИндекс устанавливает/определяет текущий индекс работы с базой. Установка текущего индекса работы с базой оказывает влияние на работу методов Найти, НайтиПоКлючу, Первая, Последняя, Следующая, Предыдущая.

Пример:

Процедура НайтиМладшийПоИндексу(Инд)

   ИмяТекИнд = ДБФ.ТекущийИндекс(Инд);

   ДБФ.Первая();

   ДБФ.ТекущийИндекс(ИмяТекИнд);

КонецПроцедуры

Найти

Найти запись по индексу.

Синтаксис:

Найти(<Ключ>, <Режим>)

Англоязычный синоним:

Find

Параметры:

<Ключ> | Строковое выражение со значением выражения текущего индекса.
<Режим> | Числовое выражение. Режим поиска записей: 0 — ищет запись на точное соответствие ключу (=); 1 — ищет запись на точное соответствие с ключом или большую (>=); 2 — ищет запись с большим ключом (>); -1 (минус единица) — ищет запись на точное соответствие с ключом или меньшую(<=); -2 (минус два) — ищет запись с меньшим ключом (<).

Возвращаемое значение:

Число: 1 — если действие выполнено (запись найдена); 0 — если действие не выполнено.

Описание:

Метод Найти позволяет найти запись, соответствующую данному значению <Ключ> ключа по текущему индексу и режиму поиска, переданному в качестве параметра. Указатель устанавливается на найденную запись.

Следует отметить, что вычисление значения индекса при работе XBase-объекта с базой данных производится объектом самостоятельно на основании выражения, переданного ему при создании ключа (см. описание метода ДобавитьИндекс). При вызове данного метода значение <Ключ> должно быть вычислено средствами встроенного языка, что может представлять определенные трудности, если индекс составной, поля, включенные в выражение индекса, отличны от строковых, и т. д. Поэтому применимость данного метода ограничена случаем использования простых строковых выражений индекса. В более сложных случаях следует применять универсальный метод НайтиПоКлючу.

Пример:

ЗаписьНайдена = ДБФ.Найти("Иванов", 0);

НайтиПоКлючу

Найти запись по индексу.

Синтаксис:

НайтиПоКлючу(<Режим>)

Англоязычный синоним:

FindByKey

Параметры:

<Режим>

Числовое выражение. Режим поиска записей:

0 — ищет запись на точное соответствие ключу (=);

1 — ищет запись на точное соответствие с ключом или большую (>=);

2 — ищет запись с большим ключом (>);

-1 (минус единица) — ищет запись на точное соответствие с ключом или меньшую(<=);

-2 (минус два) — ищет запись с меньшим ключом (<).

Возвращаемое значение:

Число: 1 — если действие выполнено (запись найдена); 0 — если действие не выполнено.

Описание:

Метод НайтиПоКлючу позволяет найти запись, соответствующую значениям атрибутов агрегатного объекта типа «Ключ» XBase-объекта по текущему индексу и режиму поиска, переданному в качестве параметра. Указатель устанавливается на найденную запись. Перед вызовом метода следует установить значения всех атрибутов агрегатного объекта типа «Ключ», которые участвуют в вычислении выражения текущего индекса (см. описание метода ДобавитьИндекс).

Пример:

ДБФ.Ключ.Name = "Иванов";

ДБФ.Ключ.DIV_ID = 15; // отдел новых разработок

ЗаписьНайдена = ДБФ.НайтиПоКлючу(0);  // поиск по составному, неоднородному ключу

ПолучитьЗначениеПоля

Получить значение поля записи.

Синтаксис:

ПолучитьЗначениеПоля(<НазваниеПоля>)

Англоязычный синоним:

GetFieldValue

Параметры:

<НазваниеПоля>

Строковое выражение с названием поля или числовое выражение с номером поля.

Возвращаемое значение:

Значение поля записи, тип зависит от типа поля.

Описание:

Метод ПолучитьЗначениеПоля позволяет определить значение поля текущей записи. Метод позволяет работать с базами данных неизвестной заранее структуры.

Пример:

Процедура ПерНаЗап(НЗап)

   ДБФ.Перейти(НЗап);

   Стр3ап = "" + ДБФ.НомерЗаписи() + "; " + ДБФ.ЗаписьУдалена() + "; ";

   Для КП = 1 По ДБФ.КоличествоПолей() Цикл

      СтрЗап = СтрЗап + Строка(ДБФ.ПолучитьЗначениеПоля(КП)) + "; ";

   КонецЦикла;

КонецПроцедуры

УстановитьЗначениеПоля

Установить значение поля.

Синтаксис:

УстановитьЗначениеПоля(<НазваниеПоля>, <Значение>)

Англоязычный синоним:

SetFieldValue

Параметры:

<НазваниеПоля> | Строковое выражение с названием поля или числовое выражение с номером поля.
<Значение> | Значение поля.

Описание:

Метод УстановитьЗначениеПоля позволяет установить новое значение атрибута объекта, соответствующего полю текущей записи. Для записи изменений в базу данных необходимо инициировать запись (см. «Назначение агрегатного типа данных Xbase»). Метод позволяет работать с базами данных неизвестной заранее структуры.

Пример:

ДБФ.УстановитьЗначениеПоля(НаименованиеПоля, 1234);

Добавить

Добавить новую пустую запись.

Синтаксис:

Добавить()

Англоязычный синоним:

Add

Описание:

Метод Добавить добавляет новую пустую запись. Атрибуты объекта обнуляются (см. метод Очистить). Для записи изменений в базу данных необходимо инициировать запись (см. «Назначение агрегатного типа данных Xbase»).

Пример:

Процедура ДобЗап(Поле!, Поле2)

   ДБФ.Добавить();

   // Определяем поля новой записи

   ДБФ.FIELD1 = Поле1;

   ДБФ.FIELD2 = Поле2;

   ДБФ.Записать();

КонецПроцедуры

Скопировать

Скопировать текущую запись.

Синтаксис:

Скопировать()

Англоязычный синоним:

Copy

Описание:

Метод Скопировать добавляет новую запись, копирующую текущую запись. Для записи изменений в базу данных необходимо инициировать запись (см. «Назначение агрегатного типа данных Xbase»).

Пример:

Процедура КопирЗап()

   ДБФ.Скопировать();

   ДБФ.Записать();

КонецПроцедуры

Автосохранение

Установить режим автоматического сохранения изменений в базе.

Синтаксис:

Автосохранение(<Режим>)

Англоязычный синоним:

AutoSave

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 1 — установить режим автоматического сохранения изменений в базе. 0 — снять режим.

Возвращаемое значение:

Текущее числовое значение режима автоматического сохранения изменений в базе (на момент до исполнения метода).

Описание:

Метод Автосохранение позволяет изменить режим автоматического сохранения изменений в базе.

При установленном режиме автосохранения любые изменения позиционирования объекта приводит к автоматической записи изменений атрибутов (если они происходили с текущей записью) в базу данных. Таким образом, применение метода Записать не имеет смысла при установленном режиме автосохранения. Чтобы отказаться от записи изменений в базу данных следует вызвать метод Отменить — при этом восстанавливаются значения атрибутов объекта до изменений и запись не происходит при изменении позиционирования.

При сброшенном режиме автосохранения записи при изменении позиционирования не происходит — для этого нужно вызвать метод Записать, причем до выполнения позиционирования. В этом режиме не имеет смысла метод Отменить, т. к. достаточно просто не выполнять записи.

Пример:

ДБФ.Автосохранение(1);

ДБФ.Новая();

ДБФ.РЮ = "Иванов";

ДБФ.PHONE = 215;

ДБФ.Новая();   // Произошла запись

ДБФ.FIO = "Петров";

ДБФ.PHONE = 215;

ДБФ.Отменить();

ДБФ.Новая(); // Записи не произошло

ДБФ.Автосохранение(0);

ДБФ.FIO = "Петров";

ДБФ.PHONE = 314;

ДБФ.Записать(); // Произошла запись

ДБФ.Новая();

ДБФ.FIO = "Сидоров";

ДБФ.PHONE = 215;

ДБФ.Новая(); // Записи не произошло

Записать

Записать изменения в базу.

Синтаксис:

Записать()

Англоязычный синоним:

Save

Описание:

Метод Записать выполняет запись изменений в базу данных. До его вызова все изменения объекта производились только в памяти и будут потеряны при осуществлении перехода к другой записи или закрытии базы данных, если отключен режим автосохранения (см. Автосохранение).

Пример:

См. пример метода Автосохранение

Отменить

Отменить запись изменения в базу.

Синтаксис:

Отменить()

Англоязычный синоним:

Cancel

Описание:

Метод Отменить отменяет запись изменения в базу (см. Автосохранение).

Пример:

см. пример метода Автосохранение

Удалить

Удалить текущую запись.

Синтаксис:

Удалить()

Англоязычный синоним:

Del

Описание:

Метод Удалить ставит пометку «удалена» на текущую запись. Физически запись из базы данных не удаляется и может быть впоследствии восстановлена. Полное удаление записей из БД с освобождением дискового пространства, занятого ими, производится вызовом методов Сжать и ОчиститьФайл.

Пример:

Процедура УдалЗап()

   ДБФ.Первая();

   Пока 1 = 1 Цикл

      ДБФ.Удалить();

      ДБФ.Записать();

      Если ДБФ.Следующая() = 0 Тогда

         Возврат;

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

ЗаписьУдалена

Возвращает значение флага удаления текущей записи.

Синтаксис:

ЗаписьУдалена()

Англоязычный синоним:

RecDeleted

Возвращаемое значение:

Число: 1 — запись удалена; 0 — запись не удалена.

Описание:

Метод ЗаписьУдалена возвращает значение флага удаления текущей записи.

Пример:

Процедура Восст3ап()

   ТекРежим = ДБФ.ПоказыватьУдаленные(1);

   ДБФ.Первая(};

   Пока 1 = 1 Цикл

      Если ДБФ.ЗаписьУдалена() = 1 Тогда

         ДБФ.Восстановить();

         ДБФ.Записать();

      КонецЕсли;

      Если ДБФ.Следующая() = 0 Тогда

         ДБФ.ПоказыватьУдаленные(ТекРежим);

         Возврат;

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

Восстановить

Восстановить текущую запись.

Синтаксис:

Восстановить()

Англоязычный синоним:

Recall

Описание:

Метод Восстановить восстанавливает текущую запись.

Пример:

См. пример метода Удалить

Очистить

Очистить текущую запись. Обнуляет все атрибуты объекта.

Синтаксис:

Очистить()

Англоязычный синоним:

Clear

Описание:

Метод Очистить обнуляет все атрибуты объекта. Атрибуты, соответствующие полям типа строковый приобретают значение «пустая строка», числовой — 0, логический — 0, дата — «пустая дата».

Пример:

Процедура ОчистЗап()

   ДБФ.Первая();

   Пока 1=1 Цикл

      ДБФ.Очистить();

      ДБФ.Записать();

      Если ДБФ.Следующая() = 0 Тогда

         Возврат;

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

КоличествоЗаписей

Возвращает количество записей в базе.

Синтаксис:

КоличествоЗаписей()

Англоязычный синоним:

RecCount

Возвращаемое значение:

Числовое значение — количество записей в базе.

Описание:

Метод КоличествоЗаписей возвращает количество записей в базе вместе с записями, помеченными, как удаленные.

Пример:

Предупреждение("Записей — " + Строка(ДБФ.КоличествоЗаписей()));

КоличествоПолей

Возвращает количество полей базы.

Синтаксис:

КоличествоПолей()

Англоязычный синоним:

FieldCount

Возвращаемое значение:

Числовое значение — количество полей базы.

Описание:

Метод КоличествоПолей возвращает количество полей базы. Может быть использован при работе с базой данных неизвестной заранее структуры.

Пример:

Процедура ОписПол()

   Перем Назв;

   Перем Тип;

   Перем Длин;

   Перем Точн;

   СпЗнач = СоздатьОбъект("СписокЗначений");

   СпЗнач.УдалитьВсе();

   Для КП = 1 По ДБФ.КоличествоПолей() Цикл

      ДБФ.ОписаниеПоля(КП, Назв, Тип, Длин, Точн);

      СпЗнач.ДобавитьЗначение("" + КП + "; " + Назв + "; " + Тип + "; " + Длин +

                              "; "+Точн);

   КонецЦикла;

КонецПроцедуры

КоличествоИндексов

Возвращает количество индексов в открытом индексном файле.

Синтаксис:

КоличествоИндексов()

Англоязычный синоним:

IndexCount

Возвращаемое значение:

Числовое значение — количество индексов в открытом индексном файле.

Описание:

Метод КоличествоИндексов возвращает количество индексов в открытом индексном файле. Может быть использован при работе с базой данных неизвестной заранее структуры.

Пример:

Процедура ОписИнд()

   Перем Назв;

   Перем Выр;

   Перем Уник;

   Перем Убыв;

   Перем Филт;

   СпЗнач = СоздатьОбъект("СписокЗначений");

   СпЗнач.УдалитьВсе();

   Для КП = 1 По ДБФ.КоличествоИндексов() Цикл

      ДБФ.ОписаниеИндекса(КП.Назв, Выр, Уник, Убыв, Филт);

      СпЗнач.ДобавитьЗначение("" + КП + "; " + Назв + "; " + Выр + "; " + Уник +

                              "; " + Убыв + "; " + Филт);

   КонецЦикла;

КонецПроцедуры

ОписаниеПоля

Возвращает описание поля.

Синтаксис:

ОписаниеПоля(<НомерПоля>, <НазваниеПоля>, <Тип>, <Длина>, <Точность>)

Англоязычный синоним:

GetFieldInfo

Параметры:

<НомерПоля> | Числовое выражение — номер поля, для которого требуется получить описание.
<НазваниеПоля> | Идентификатор переменной, в которую данный метод вернет строковое значение названия поля.
<Тип> | Идентификатор переменной, в которую данный метод вернет числовое значение типа поля. Допустимые значения см. в описании метода ДобавитьПоле.
<Длина> | Идентификатор переменной, в которую данный метод вернет числовое значение — общую длину поля.
<Точность> | Идентификатор переменной, в которую данный метод вернет числовое значение — длину поля после десятичной точки (только для числовых полей).

Описание:

Метод ОписаниеПоля возвращает в параметрах <НазваниеПоля>, <Тип>, <Длина>, <Точность> описание поля с номером <НомерПоля>.

Пример:

См. пример метода КоличествоПолей

ОписаниеИндекса

Возвращает описание индекса.

Синтаксис:

ОписаниеИндекса(<НомерИндекса>, <НазваниеИндекса>, <Выражение>, <Уникальность>,

                <Убывание>, <Фильтр>)

Англоязычный синоним:

Getlndexinfo

Параметры:

<НомерИндекса> | Числовое выражение — номер индекса, для которого требуется получить описание.
<НазваниеИндекса> | Идентификатор переменной, в которую данный метод вернет строковое значение названия индекса.
<Выражение> | Идентификатор переменной, в которую данный метод вернет строковое значение — выражение индекса.
<Уникальность> | Идентификатор переменной, в которую данный метод вернет числовое значение — флаг уникальности индекса. 1 — уникальный. 0 — не уникальный.
<Убывание> | Идентификатор переменной, в которую данный метод вернет числовое значение — флаг направления убывания индекса. 1 — индекс по убыванию значения ключа. 0 — по возрастанию значения ключа.
<Фильтр> | Идентификатор переменной, в которую данный метод вернет строковое значение — фильтр индекса.

Описание:

Метод ОписаниеИндекса возвращает в параметрах <НазваниеИндекса>, <Выражение>, <Уникальность>, <Убывание>, <Фильтр> описание индекса с номером <НомерИндекса>. Выражение индекса и фильтр индекса описаны в разделе «Выражение и фильтр индекса».

Пример:

См. пример метода КоличествоИндексов

НомерПоля

Определить номер поля по названию.

Синтаксис:

НомерПоля(<НазваниеПоля>)

Англоязычный синоним:

FieldNo

Параметры:

<HaзвaниeПoля>

Строковое выражение с названием поля.

Возвращаемое значение:

Числовое значение номера поля.

Описание:

Метод НомерПоля предназначен для определения номера поля по его на-^анию.

Пример:

НомП = ДБФ.НомерПоля("CODE");

ДобавитьПоле

Добавить поле в структуру базы.

Синтаксис:

ДобавитьПоле(<Название>, <Тип>, <Длина>, <Точность>)

Англоязычный синоним:

AddField

Параметры:

<Название> | Строковое выражение — имя создаваемого поля.
<Тип> | Строковое или числовое выражение — тип создаваемого поля. Допустимые значения: 1 или"N" — число; 2 или "S" — строка; 3 или "D" — дата; 4 или "L" — логическое; 5 или "F" — то же, что и 1, т. е. число; 6 или "М" — memo (не поддерживается).
<Длина> | Числовое выражение — общая длина создаваемого поля.
<Точность> | Числовое выражение — длина создаваемого поля после десятичной точки (только для числовых полей).

Описание:

Метод ДобавитьПоле добавляет поле в описание структуры базы. Данный метод можно использовать только перед созданием новой базы.

Пример:

ДБФ = СоздатьОбъект("XBase");

ДБФ.ДобавитьПоле("CODE", 1, 19, 3);

ДБФ.ДобавитьПоле("NAME", 2, 25, 0);

ДБФ.СоздатьФайл("mydb.dbf");

См. также: СоздатьФайл, ДобавитьИндекс

ДобавитьИндекс

Добавить индекс в структуру базы.

Синтаксис:

ДобавитьИндекс(<Название>, <Выражение>, <Уникальность>, <Убывание>, <Фильтр>)

Англоязычный синоним:

AddIndex

Параметры:

<Название> | Строковое выражение — имя создаваемого индекса.
<Выражение> | Строковое выражение — выражение индекса.
<Уникальность> | Числовое выражение — флаг уникальности индекса. 1 — уникальный. 0 — не уникальный.
<Убывание> | Числовое выражение — флаг направления убывания индекса: 1 — индекс по убыванию значения ключа. 0 — по возрастанию значения ключа.
<Фильтр> | Строковое выражение — фильтр индекса.

Описание:

Метод ДобавитьИндекс добавляет индекс в описание структуры базы. Выражение индекса и фильтр индекса описаны в разделе «Выражение и фильтр индекса».

Пример:

ДБФ = СоздатьОбъект("XBase");

ДБФ.ДобавитьПоле("CODE", 1, 19, 3);

ДБФ.ДобавитьПоле("NAME", 2, 25, 0);

ДБФ.ДобавитьИндекс("IDXCODE", "CODE", 1, 0, "");

ДБФ.ДобавитьИндекс("IDXNAME", "NAME", 0, 0, "");

ДБФ.СоздатьФайл("mydb.dbf", "mydb.cdx");

См. также: СоздатьФайл, ДобавитьПоле

СоздатьИндексныйФайл

Создать индексный файл.

Синтаксис:

СоздатьИндексныйФайл(<ИмяФайла>)

Англоязычный синоним:

CreateIndex

Параметры:

<ИмяФайла>

Строковое выражение — имя индексного файла.

Описание:

Метод СоздатьИндексныйФайл создает индексный файл. Создаваемый индексный файл будет содержать все индексы, которые были созданы на текущий момент методом ДобавитьИндекс.

Пример:

ДБФ.ДобавитьИндексСЧОХСОПЕ" , "CODE" , 1, 0, "" );

ДБФ.ДобавитьИндекс("IDXROOM", "ROOM+FIO", 0, 0, "");

ДБФ.СоздатьИндексныйФайл("IDXCNEW.CDX");

См. также: СоздатьФайл, ДобавитьИндекс, ОткрытьФайл

КодоваяСтраница

Установить режим кодировки.

Синтаксис:

КодоваяСтраница(<Режим>)

Англоязычный синоним:

SetCodePage

Параметры:

<Режим>

Необязательный параметр. Числовое выражение: 0 — Windows-кодировка; 1 — DOS-кодировка. Если параметр не задан, то режим кодировки не меняется (используется для определения текущего режима кодировки без его смены).

Возвращаемое значение:

Текущее числовое значение режима кодировки (на момент до исполнения метода).

Описание:

Метод КодоваяСтраница позволяет установить режим кодировки для чтения и записи значений строковых полей в файл базы данных.

Замечание. После открытия, XBase-объект всегда находится в режиме DOS-кодировки.

Пример:

ДБФ.КодоваяСтраница(1);

КодОшибки

Возвращает код последней ошибки.

Синтаксис:

КодОшибки()

Англоязычный синоним:

ErrorCode

Возвращаемое значение:

Числовое значение — код последней ошибки.

Описание:

Метод КодОшибки возвращает код завершения последней выполненной операции.

Пример:

КО = ДБФ.КодОшибки();

Возвращаемые коды ошибок:

Код ошибки | Причина ошибки
-10 | Ошибка закрытия файла
-20 | Ошибка создания файла
-30 | Ошибка определения длины файла
-40 | Ошибка установки длины файла
-50 | Ошибка при попытке заблокировать файл
-60 | Ошибка при открытии файла
-70 | Ошибка чтения файла
-80 | Ошибка удаления файла
-90 | Ошибка переименования файла
-100 | Ошибка позиционирования в файле
-110 | Ошибка снятия блокировки с файла
-120 | Ошибка записи в файл
-200 | Файл не является базой данных DBF-формата
-210 | Неопознанное имя поля
-220 | Неопознанный тип поля
-230 | Запись слишком длинная
-300 | Индексный файл не содержит информации о записи
-310 | Нарушение структуры индексного файла
-330 | Указанное имя индекса недоступно
-340 | Ошибка уникальности индекса
-400 | Ожидается запятая или скобка
-410 | Выражение не завершено
-422 | IIF() требует параметров одинаковой длины
-425 | У STR() и SUBSTR.O 2-й и 3-й параметры — константы
-430 | Неверное число параметров
-440 | Слишком сложное выражение
-450 | Пропущена правая скобка
-460 | Неверный тип подвыражения
-470 | Неопознанная функция
-480 | Неопознанный оператор
-490 | Неопознанное значение
-500 | Выражение не завершено символом двойной кавычки
-920 | Недостаточно памяти

Выражение и фильтр индекса

При работе с индексами во время исполнения 1С:Предприятия XBase-объекты производят вычисление выражения индекса и фильтра. Выражение индекса и фильтра — это строковые выражения, составленные на специальном языке объектов XBase.

Выражение индекса используется для вычисления значения ключа для каждой записи базы данных. Результатом вычисления выражение должно быть значение одного из следующих типов: числовое, строковое, дата или булево. Выражение фильтра должно возвращать результат типа булево. Если значение выражения фильтра для конкретной записи базы данных равно истине, информация об этой записи будет включена в индексный файл, в противном случае индексный файл не будет содержать информацию об этой записи и позиционирование на эту запись XBase-объекта с данным текущим индексом производиться не будет.

Атрибуты (кроме "Ключ"), константы и функции могут быть использованы как части выражений. Части выражения могут объединяться с помощью других функций или операторов. Простейшим выражением может быть имя атрибута: "FULL_NAME". В таком случае тип выражения будет соответствовать типу атрибута.

Константы могут иметь числовой, строковый и булевый тип. Строковые константы заключаются в одиночные кавычки ('Строковая константа'). При необходимости включить в состав строковой константы символа двойной кавычки, его следует предварять обратной косой чертой, например, 'Фирма \"Вега\" '. Булевы константы записываются как .TRUE. или .Т. для обозначения истины и .FALSE. или .F. в противном случае.

Операторы используются для объединения частей выражения. Части выражения должны иметь тип, соответствующий оператору, например, оператор "/" (деление) работает с двумя числовыми значениями.

Порядок выполнения операторов в выражении соответствует общепринятому — с учетом скобок и приоритетов операторов. Например выражение "1+2*3" возвратит 7, а "(1+2)*3" возвратит 9.

Числовые операторы:

Имя оператора | Обозначение | Приоритет
Сложение | + | 5
Вычитание | - | 5
Умножение | * | 6
Деление | / | 6
В степень | ** или ^ | 7

Строковые операторы:

Имя оператора | Обозначение | Приоритет
Объединение 1 | + | 5
Объединение 2 | - | 5

Оператор "Объединение 2" немного отличается тем, что пробелы в конце первой строки будут перемещены в конец результата. Например, результатом вычисления выражения " 'Иванов ' + 'И. И.' " будет "Иванов И. И.', а " 'Иванов ' - 'И. И.' " — 'ИвановИ.И. '.

Операторы отношений:

Имя оператора | Обозначение | Приоритет
Равно | = | 4
Не равно | <> или # | 4
Меньше | < | 4
Больше | > | 4
Меньше или равно | <= | 4
Больше или равно | >= | 4
Содержит | $ | 4

Пример:

" 'CD' $ 'ABCD' " вернет ".Т."

" 8 < 7 " вернет ".F."

Логические операторы:

Имя оператора | Обозначение | Приоритет
Отрицание | .NOT. | 3
И | .AND. | 2
ИЛИ | .OR. | 1

Функции, применяемые в выражениях

Функция | Параметр(ы) | Возвращаемое значение
DATE() |  | Тип даты. Системная дата.
DAY(Date) | Тип даты. | Число. Номер дня в месяце.
DTOC(Date) | Тип даты. | Строка. Представление даты в формате ММ/ДД/ГГ
DTOS(Date) | Тип даты. | Строка. Представление даты в формате ГГГГММДД
IIF(Log, IfTrue, IfFalse) | Log — выражение булева типа. IfTrue, IfFalse — тип определяется во время исполнения. Должны иметь одинаковую длину и тип. | Тип совпадает с типом IfTrue и IfFalse. Возвращает IfTrue, если значение вычисленного выражения Log равно истине, и IfFalse в противном случае.
LTRIM(String) | String — строка. | Строка. Исходная строка без ведущих пробелов.
Month(Date) | Date — дата. | Число. Номер месяца в году.
STOD(String) | String — строка. Представление даты в формате ГГГГММДД | Тип даты. Преобразованное в дату значение исходной строки.
STR(Number, Length, Decim) | Number — число. Преобразуемое число. Length — число. Количество символов в возвращаемой строке, включая дес. точку. Decim — число. Желаемое кол-во знаков после точки. | Строка. Результат преобразования числа в строковое представление.
SUBSTR(String, StartPos, Num) | String — строка. Исходная строка. StartPos — число. Начальная позиция. Num — число. Кол-во символов. | Строка. Подстрока, состоящая из Num символов от начальной позиции исходной строки.
TIME() |  | Строка. Системное время в представлении ЧЧ:ММ:СС
TRIM(String) | String — строка. | Строка. Исходная строка без заключительных пробелов.
UPPER(String) | String — строка. | Строка. Преобразование к верхнему регистру
VAL(String) | String — строка. | Число. Преобразование строки в число
YEAR(Date) | Date — дата. | Число. Год.


Part39

Глава 39
Работа с Метаданными

Глобальный атрибут «Метаданные» является вспомогательным объектом системы, предназначенным для доступа к свойствам структуры метаданных конфигурации. Возможность доступа к метаданным средствами встроенного языка является дополнительной возможностью и применяется в специальных случаях, например, для создания универсальных отчетов или обработок, которые обращаются к объектам различных видов (документам, справочникам и т. п.). В основных алгоритмах конфигурации данная возможность, как правило, не используется.

Контекст работы с метаданными

Работа с метаданными выполняется через глобальный атрибут «Метаданные», имеющий тип «Метаданные». Объект типа «Метаданные» нельзя создать, используя метод СоздатьОбъект.

Объект типа «Метаданные» имеет атрибуты для доступа к свойствам объекта метаданных и методы для доступа к массивам подчиненных объектов метаданных. Глобальный атрибут «Метаданные» предоставляет доступ к общим свойствам конфигурации и к основным объектам метаданных (документам, справочникам и т. п.). Полученный из глобального атрибута подчиненный объект метаданных — документ предоставляет в свою очередь доступ к свойствам документа и к объектам метаданных являющихся реквизитами документа.

Значения, имеющие тип «Метаданные», можно напрямую использовать в качестве параметров в тех методах, где требуется строковый идентификатор метаданного, например, в методе справочника: Вид(НаименовСправочника).

Кроме того, объект типа «Метаданные» можно использовать в качестве параметров, в тех методах, где требуется указать тип данных строкой, например в третий параметр метода ВвестиЗначение(, , , ), но передавать можно только значения метаданных, описывающие типизированные объекты, например, Метаданные.Справочник(1).Реквизит(1), т. к. реквизит справочника — типизированный объект.

Англоязычный синоним ключевого слова Метаданные — Metadata.

Пример:

ВыбМетодУдаления = Метаданные.НепосредедственноеУдалениеОбъектов;

Атрибуты и методы объекта «Метаданные»

В документации не приводится полный перечень возможных значений атрибутов. Полный перечень атрибутов метаданных можно получить, сформировав в конфигураторе текстовый файл «Описание метаданных». Установленные значения атрибутов можно также узнать из текстового описания структуры метаданных.

Атрибуты, являющиеся по сути признаками с двумя возможными значениями имеют числовой тип и принимают значения 0 или 1. Атрибуты, которые могут иметь несколько возможных значений, выдают строку, отражающую установленный вариант. Атрибуты, отражающие свойство метаданных, выбираемое как ссылка на другой объект метаданных (например, журнал документа) имеют тип «Метаданные».

Пример:

ВыбМетодУдаления=Метаданные.НепосредственноеУдалениеОбъектов;

У объекта «Метаданные» могут существовать методы для доступа к массивам подчиненных метаданных. Например, для глобального атрибута «Метаданные» для обращения к документам используется метод «Документ».

В качестве параметра методов для доступа к массивам подчиненных метаданных передается:

· число — выдает объект метаданных по указанному номеру;

· строка — выдает объект метаданных по указанному идентификатору;

· параметр не указан — выдает количество подчиненных объектов этого типа.

Пример получения списка документов конфигурации:

Для Инд = 1 По Метаданные.Документ() Цикл

   Сообщить(Метаданные.Документ(Инд).Идентификатор);

КснецЦикла;

У объекта типа «Метаданные» могут существовать атрибуты, содержащие массив ссылок на объекты метаданных, к ним применяются методы Количество() и Получить(Ном) для перебора ссылок. Например, для граф отбора таким атрибутом является атрибут «Ссылки», позволяющий получить объекты метаданных включенные в данную графу отбора (реквизиты документов и др.).

Пример:

Для Инд = 1 До Метаданные.ГрафаОтбора(Идент).Ссылки.Количество() Цикл

   Сообщить(Метаданные.ГрафаОтбора(Идент).

              Ссылки.Получить(Инд).ПолныйИдентификатор());

КонецЦикла;

Методы работы с метаданными

Перечень методов метаданных предназначенных для доступа к подчиненным объектам метаданных можно получить, сформировав в конфигураторе текстовый файл «Описание структуры метаданных».

Дополнительные методы работы с метаданными приведены ниже.

Выбран

Проверяет спозиционирован ли объект типа «Метаданные» на конкретном объекте метаданных или нет.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Число: 1 — если объект соответствует объекту метаданных (спозиционирован); 0 — если не соответствует.

Описание:

Метод Выбран возвращает число со значением 1 — объект соответствует объекту метаданных (спозиционирован), 0 — если не соответствует. Например, при обращении к массиву подчиненных метаданных по идентификатору, если метаданного с таким идентификатором не существует, возвращается не спозиционированный объект типа «Метаданные».

Пример:

Если Метаданные.Справочник("Организации").Выбран() = 1 Тогда

   Сообщить("Есть справочник органиазаций");

КонецЕсли;

Родитель

Возвращает объект метаданных, которому подчинен данный объект.

Синтаксис:

Родитель()

Англоязычный синоним:

Parent

Возвращаемое значение:

Объект метаданных, которому подчинен данный объект.

Описание:

Метод Родитель возвращает объект метаданных, которому подчинен данный объект.

Пример:

Сообцить("Реквизит принадлежит документу" + РеквМД.Родитель().Идентификатор);

ПолныйИдентификатор

Возвращает полный идентификатор объекта.

Синтаксис:

ПолныйИдентификатор()

Англоязычный синоним:

FullIdentifier

Возвращаемое значение:

Идентификатор объекта с идентификаторами его родителей через точку.

Описание:

Метод ПолныйИдентификатор возвращает идентификатор объекта с идентификаторами его родителей через точку, например: "Документ.Счет.Цена".

Пример:

Сообщить("Реквизит " + РеквМД.ПолныйИдентификатор());

Представление

Возвращает представление объекта.

Синтаксис:

Представление()

Англоязычный синоним:

Present

Возвращаемое значение:

Строковое значение представления объекта.

Описание:

Метод Представление возвращает синоним объекта, а если он не задан, то идентификатор.

Пример:

Получение списка видов документов:

Спис = СоздатьОбъект("СписокЗначений");

Для Инд = 1 По Метаданные.Документ() Цикл

   Идент = Метаданные.Документ(Инд).Идентификатор;

   Предст = Метаданные.Документ(Инд).Представление();

   Спис.ДобавитьЗначение(Идент, Предст);

КонецЦикла;

ДлинаПредставленияЗначения

Возвращает длину представления значения.

Синтаксис:

ДлинаПредставленияЗначения(<Мин>, <Макс>, <ДлПоУмолч>)

Англоязычный синоним:

ValuePresentLen

Параметры:

<Мин> | Необязательный параметр. Метод не будет возвращать значение меньше указанной в данном параметре величины.
<Макс> | Необязательный параметр. Метод не будет возвращать значение больше указанной в данном параметре величины.
<ДлПоУмолч> | Необязательный параметр. Метод будет возвращать данную величину для метаданных, для которых длина представления не определена. Параметр задает длину для типов данных, таких как Справочник неопределенного типа и аналогичных, у которых не определена длина.

Возвращаемое значение: возвращает длину представления значения.

Описание:

Метод ДлинаПредставленияЗначения для типизированных объектов типа Реквизит и аналогичных, выдает длину представления значения. Данный метод может использоваться, например, для определения ширины столбца в универсальных отчетах, выводящих данные объектов различных видов.

Пример:

Ширина =

   Метаданные.Документ(1).РеквизитШапки(2).ДлинаПредставленияЗначения(5, 50, 30)


Part40

Глава 40
Связь с внешними приложениями посредством
механизмов DDE и OLE Automation

При формировании пользовательского интерфейса прикладной задачи довольно часто существуют ситуации, когда для удобства работы пользователя необходимо дать возможность обрабатывать имеющиеся данные с помощью других, имеющихся на компьютере программ.

Одним из примеров использования такой возможности может служить запуск программы Microsoft Excel (непосредственно из программы 1С:Предприятие ) с одновременным выводом в нее результатов расчета. Далее пользователь может обрабатывать полученные результаты (просматривать, редактировать, печатать и т. п.) непосредственно в среде Microsoft Excel.

Одну из возможностей запуска и управления внешними приложениями дает механизм OLE Automation. Встроенный язык системы 1С:Предприятие поддерживает технологию управления объектами OLE. Непосредственно при помощи операторов языка можно управлять, например, программами, входящими в Microsoft Office.

Контекст работы с внешними приложениями

Внешнее приложение, с которым предполагается устанавливать связь, должно отвечать следующим условиям: внешнее приложение должно поддерживать механизм OLE Automation и должно быть установлено на том компьютере, где его намечено использовать.

Во всех программных модулях вызов процедур или функций внешнего приложения может выполняться только при помощи переменной со ссылкой на объект, который создается функцией СоздатьОбъект. Чтобы вызвать метод внешнего приложения, имя метода (с указанием необходимых параметров) пишется через точку после идентификатора переменной.

При создании переменной со ссылкой на внешнее приложение, в качестве имени объекта в операторе СоздатьОбъект должен выступать зарегистрированный OLE идентификатор внешнего приложения.

Зарегистрированный OLE идентификатор внешнего приложения — это уникальный идентификатор программного продукта, который записывается в регистрационную базу Windows при инсталляции программы.

Примеры OLE идентификаторов:

Excel | "Excel.Application"
LotusApproach | "Approach.Application"
MSGraph | "MSGraph.Application"
PowerPoint | "PowerPoint.Application"

Пример:

// Создаем объект Excel (запускаем программу Excel)

Ехсеl = СоздатьОбъект("Excel.Application");

// делаем окно программы Excel видимым и активным

Excel.Visible = l;

Методы внешних приложений

Методы внешних приложений, а также синтаксис их использования у каждого приложения свои. Описание процедур и функций внешнего приложений можно получить только в документации данного приложения. Например, практически все программы, входящие в пакет Microsoft Office используют для своего управления версию языка Visual Basic.

Чтобы вызвать метод внешнего приложения в языке системы 1С:Предприятие, имя метода (с указанием необходимых параметров) пишется через точку после имени ссылки на объект внешнего приложения.

Пример:

// Создаем объект Excel и присвоим его переменной языка

ОкноЕхсеl = СоздатьОбъект("Excel.Application");

// устанавливаем имя окна Excel

ОкноЕхсеl.Caption = "Отчет";

// создадим новую рабочую книгу

НовыеРабочиеКниги = ОкноЕхсеl.Workbooks;

РабочаяКнига = НовыеРабочиеКниги.Add();

Ограничения:

Не поддерживаются значения, передаваемые по ссылке;

Не поддерживаются массивы, в точности SAFEARRAY;

Не поддерживаются значения типа IUnknown.

Эти ограничения не столь серьезны, т. к. например, все типы данных, с которыми работает Excel и большинство других наиболее распространенных программ, полностью поддерживаются.

Типы поддерживаемых данных:

Boolean

Currency

Date

Double-precision floating-point

Integer

Long integer

Object

Single-precision floating-point

String

Пример:

//В данном примере запускается программа Excel,

// затем в нее передаются некоторые данные, и затем

// на их основе строится диаграмма.

// Создаем объект Excel и присвоим его переменной языка

ОкноЕхсеl = СоздатьОбъект("Excel.Application");

// устанавливаем имя окна Excel

ОкноЕхсеl.Caption = "Отчет";

// создадим новую рабочую книгу

НовыеРабочиеКниги = ОкноЕхсеl.Workbooks;

РабочаяКнига = НовыеРабочиеКниги.Аdd();

ЧислоРядов = 10;

ЧислоСтолбцов = 5;

// проставим названия строк

Для Ряд = 1 По ЧислоРядов Цикл

   Ячейка = ОкноЕхсеl.Cells(Ряд + 1, 1);

   Ячейка.Value = "Строка " + Строка(Ряд);

КонецЦикла;

// проставим названия столбцов

Для Столбец = 1 По ЧислоСтолбцов Цикл

   Ячейка = ОкноЕхсеl.Cells(1, Столбец + 1);

   Ячейка.Value = "Столбец " + Строка(Столбец);

КонецЦикла;

// заполним ячейки таблицы значениями

Для Ряд = 1 По ЧислоРядов Цикл

   Для Столбец = 1 По ЧислоСтолбцов Цикл

      Ячейка = ОкноЕхсеl.Cells(Ряд + 1, Столбец + 1);

      Ячейка.Value = Ряд + Столбец;

   КонецЦикла;

КонецЦикла;

// выделим область в таблице и присвоим ее переменной языка

Область = ОкноЕхсеl.Range(ОкноЕхсеl.Cells(1, 1),

                          ОкноЕхсеl.Cells(ЧислоРядов + 1, ЧислоСтолбцов + 1));

// зададим имя выделенной области

Область.Name = "ОбластьДанных";

// определим рамку выделенной области и присвоим ее переменной языка

Рамка = Область.Borders;

// установим стили для рамки выделенной области

Рамка.LineStyle = 1;

Рамка.Colorlndex = 3;

// построим диаграмму Лист=РабочаяКнига.Worksheets(1);

Диаграмма = Лист.ChartObjects();

Диаграмма = Диаграмма.Add(5, 5 + Область.Тор + Область.Height,

                          Область.Width, Область.Height);

МояДиаграмма = Диаграмма.Chart;

МояДиаграмма.ChartWizard("ОбластьДанных ", -4102, 6, 1, 1, 1, 1, "Отчет");

// сделаем окно Excel видимым и активным

ОкноЕхсеl.Visible = 1;

Работа системы 1С:Предприятие в качестве OLE Automation сервера

Система 1С:Предприятие может быть запущена внешним приложением в качестве OLE Automation сервера и предоставляет доступ ко всем атрибутам и методам своего глобального контекста (см. «Контекст выполнения программного модуля»). Кроме того, OLE-сервер 1С:Предприятие имеет дополнительные методы, с помощью которых можно выполнить последовательность операторов или вычислить выражение, заданное на встроенном языке 1С:Предприятие.

Для запуска системы 1С:Предприятие в качестве OLE Automation сервера из внешнего приложения, выполняется следующая последовательность действий:

· создается объект с OLE идентификатором:

o        V1СEnterprise.Application — версия независимый ключ;

o        V77.Application — версия зависимый ключ;

o        V77S.Application — версия зависимый ключ, SQL версия;

o        V77L.Application — версия зависимый ключ, локальная версия;

o        V77M.Application — версия зависимый ключ, сетевая версия.

· выполняется инициализация системы 1С:Предприятие методом Initialize.

· вызываются атрибуты и методы системы 1С:Предприятие как OLE Automation сервера

Замечание 1: Поскольку программа 1С:Предприятие является одновременно OLE Automation сервером и OLE Automation клиентом, то возможно из 1С:Предприятие обращаться к другой копии 1С:Предприятие (например, к другой конфигурации) для обмена данными. В основном все современные программные продукты поддерживают механизм OLE Automation, это касается в частности MS Office, MS FoxPro и приложений на них написанных, DAO и т. п., поэтому программа 1С:Предприятие может полностью интегрироваться с ними.

Замечание 2: Не локализованные версии внешних программ, обращающихся к программе 1С:Предприятие посредством OLE Automation, могут неправильно интерпретировать русские идентификаторы объектов агрегатных типов данных, например, реквизитов справочников. Данное замечание не относится к продуктам MS Office и к программам, использующим в качестве языка обращения к OLE объектам Microsoft Visual Basic. Рекомендуется использовать локализованные версии программных продуктов, либо в конфигурации использовать идентификаторы без символов кириллицы. Для обращения к атрибутам и методам агрегатных типов данных системы 1С:Предприятие из внешних приложений рекомендуется использовать их англоязычные синонимы.

Замечание 3: Все созданные объекты OLE Automation существуют до тех пор, пока существует переменная, которая содержит значение данного объекта. Следовательно, сама программа 1С:Предприятие, выступающая в качестве объекта OLE Automation в другой программе, будет находиться в памяти компьютера до удаления или изменения значения переменной, содержащей ее в качестве объекта.

Атрибуты системы 1С:Предприятие как OLE Automation сервера

Система 1С:Предприятие в качестве OLE Automation сервера предоставляет полный доступ к своему глобальному контексту (см. «Контекст выполнения программного модуля»). Поэтому объект OLE-сервер 1С:Предприятие в качестве своих атрибутов может иметь: системные константы, значения заданных в конфигураторе констант, перечислений, регистров, видов расчета, групп видов расчета, а также переменные, объявленные в глобальном программном модуле с ключевым словом Экспорт.

Методы системы 1С:Предприятие как OLE Automation сервера

Система 1С:Предприятие в качестве OLE Automation сервера предоставляет полный доступ к своему глобальному контексту (см. «Контекст выполнения программного модуля»). Поэтому объект OLE-сервер 1С:Предприятие в качестве своих методов может иметь: системные процедуры и функции, а также процедуры и функции глобального программного модуля, объявленные с ключевым словом Экспорт. Кроме того, OLE-сервер 1С:Предприятие имеет три дополнительных метода: Initialize, EvalExpr, ExecuteBatch.

Initialize

Выполнить инициализацию системы 1С:Предприятие.

Синтаксис:

Initialize(<Имя_Объекта>.RMTrade, <КоманднаяСтрока>, <ПустаяСтрока>)

Англоязычный синоним:

Initialize

Параметры:

<Имя_Объекта> | Идентификатор созданного OLE объекта 1С:Предприятие.
RMTrade | Добавочное ключевое слово.
<КоманднаяСтрока> | Строковое выражение — командная строка запуска 1С:Предприятие.
<ПустаяСтрока> | Строковое выражение. Параметр может содержать пустую строку или строковое значение "NO_SPLASH_SHOW" — отключить заставку при запуске системы 1С:Предприятие в режиме OLE Automation сервера.

Возвращаемое значение:

Значение логического типа: TRUE, если инициализация прошла удачно, или FALSE, если нет.

Замечание: В OLE Automation TRUE и FALSE имеют соответственно значения: -1 (минус единица) и 0.

Описание:

Метод Initialize выполняет инициализацию системы 1С:Предприятие.

Пример:

* здесь пример приводится на языке MS Visual Basic:

Dim v7 As Object

Set v7 = CreateObject("V77.Application")

result = v7.Initialize(v7.RMTrade, "/DC:\V7\DB /M", "")

EvalExpr

Вычислить выражение системы 1С:Предприятие.

Синтаксис:

EvalExpr(<СтрокаВыражения>)

Англоязычный синоним:

EvalExpr

Параметры:

<СтрокаВыражения>

Строковое выражение — выражение, записанное на встроенном языке 1С:Предприятие.

Возвращаемое значение:

Результат вычисленного выражения.

Описание:

Метод EvalExpr вычисляет выражение, записанное в параметре <СтрокаВыражения> на встроенном языке 1С:Предприятие и возвращает результат вычисления. Результатом выражения может быть число, строка, дата или значение любого агрегатного типа данных. Результат с неопределенным типом данных преобразуются к строковому типу.

Пример:

* здесь пример приводится на языке MS Visual Basic:

Dim v7 As Object

Dim Товары As Object

Set v7 = CreateObject("V77.Application")

result = v7.Initialize(v7.RMTrade, "/DC:\V7\DB /M", "")

Set Товары = v7.EvalExpr("ОтдатьСправочникТоваров()");

CreateObject

Создает объект агрегатного типа данных системы 1С:Предприятие и возвращает ссылку на него.

Синтаксис:

CreateObject(<ИмяАгрегатногоТипа>)

Англоязычный синоним:

CreateObject

Параметры:

<ИмяАгрегатногоТипа>

Строковое выражение, значение которого содержит имя агрегатного типа данных, объявленного в конфигураторе.

Возвращаемое значение:

Ссылка на созданный объект агрегатного типа данных.

Описание:

Метод CreateObject создает объект агрегатного типа данных системы 1С:Предприятие и возвращает ссылку на него. Данная функция обычно используется одновременно с неявным определением переменной и присвоением ей ссылки на объект агрегатного типа данных.

Пример:

Процедура Загрузить()

   Если ФС.Существуетфайл(Путь + "\NUL") = 0 Тогда

      Предупреждение("Путь информационной базы не найден!");

   Иначе

      V7 = СоздатьОбъект("V77.Application");

      Открыта = V7.Initialize(V7.RMTrade, "/d" + Путь +

                              " /M /N" + Пользователь, "");

      Если Открыта = 0 Тогда

         Предупреждение("Ошибка открытия информационной базы");

         Возврат;

      КонецЕсли;

      Импорт = V7.CreateObject("Справочник.Контрагенты");

      Импорт.ВыбратьЭлементы();

      Пока Импорт.ПолучитьЭлемент() = 1 Цикл

         Если Импорт.ЭтоГруппа() = 0 Тогда

            Сообщить(Импорт.Наименование);

         КонецЕсли;

      КонецЦикла;

   КонецЕсли;

КонецПроцедуры

ExecuteBatch

Выполнить последовательность операторов системы 1С:Предприятие.

Синтаксис:

ExecuteBatch(<СтрокаОператоров>)

Англоязычный синоним:

ExecuteBatch

Параметры:

<СтрокаОператоров>

Строковое выражение — текст программы на встроенном языке 1С:Предприятие.

Возвращаемое значение:

Значение логического типа: TRUE, если последовательность операторов выполнены успешно, или FALSE, если нет.

Замечание: В OLE Automation TRUE и FALSE имеют соответственно значения: -1 (минус единица) и 0.

Описание:

Метод ExecuteBatch выполняет последовательность операторов, записанную в параметре <СтрокаОператоров> на встроенном языке 1С:Предприятие.

Пример:

* здесь пример приводится на языке MS Visual Basic:

Sub Command1_Click ()

   Dim v7 As Object

   Dim Price As Object

   Set v7 = CreateObject("V77.Application")

   result = v7.Initialize(v7.RMTrade, "/DC:\V7\DB /M", "")

   Set Price = v7.EvalExpr("ОтдатьСправочникТоваров()")

   Price.New

   Price.Code = "112233"

   Price.Description = "Test string"

   Price.Write;

   BoolResult = v7.ExecuteBatch("ПроцедураРегл1();ПроцедураРегл2()")

End Sub

* Обращение к программе 1С:Предприятие из модуля MS Excel. В данном примере запускается и инициализируется конфигурация 1С:Предприятие с базой данных в каталоге C:\V7\DB в монопольном режиме. Далее в программе 1С:Предприятие создается объект типа "Справочник.Товары", где создается новая группа элементов с названием "***** Экспорт из Excel ******". Во вновь созданную группу каталога записываются данные из таблицы MS Excel. Здесь пример приводится на языке MS Visual Basic.

Sub Excel_to_trade()

   Dim trade As Object

   Dim Товар As Object

   Set trade = CreateObject("V77 .Application")

   result = trade.Iinitialize(trade.RMTrade, "/DC:\V7\DB /M", "")

   Set Товар = trade.EvalExpr("CreateObject(""Справочник.Товары"")")

   Товар.НоваяГруппа

   Товар.Наименование = "***** Экспорт из Excel ******"

   Товар.Записать

   Товар.ИспользоватьРодителя Товар.ТекущийЭлемент

   N = 100 'Количество строк в документе

   For Count = 1 То N Товар.Новый

      Товар.Наименование = Application.Cells(Count, 2).Value

      Товар.Розн_Цена = Application.Cells(Count, 3).Value

      Товар.Мел_Опт_Цена = Application.Cells(Count, 4).Value

      Товар.Onт_Цена = Application.Cells(Count, 5).Value

      Товар.Записать

   Next Count

End Sub

Работа системы 1С:Предприятие в качестве DDE сервера

Другим способом обращения к данным 1С:Предприятие а из внешних программ является режим DDE. Основное преимущество данного режима является динамическое обновление получаемых из 1С:Предприятие данных.

Система 1С:Предприятие является DDE сервером и предоставляет свой сервис в получении данных и уведомлении DDE клиента об их изменении.

В качестве DDE сервера 1С:Предприятие может возвращать значение некоторого выражения, записанного на встроенном языке 1С:Предприятие. Возвращаемое значение является строкой. Для того, чтобы рассматривать результат выражения в качестве числа или даты, например в ячейке MS Excel, может потребоваться задание формата значения.

Для доступа к 1С:Предприятие посредством DDE следует использовать DDE-объект с именем 1CV7|DDE.

Пример:

* Ниже приведены примеры размещения в ячейках MS Excel DDE связей с программой 1С:Предприятие. Первое выражение в примере обращается к стандартной функции встроенного языка 1С:Предприятие. Второе выражение в примере обращается к функции, записанной в глобальном модуле конфигурации программы 1С:Предприятие.

='1CV7'|DDE!'РабочаяДата()'

='1CV7'|DDE!'СуммаПоНарядам()'

Замечание 1: Для правильной интерпретации значения выражения в качестве числа или даты в MS Excel, нужно в операционной системе установить соответствующий формат представления даты и числа, как он принят в 1С:Предприятие.

Замечание 2: Не рекомендуется обращаться посредством DDE к функциям 1С:Предприятие, которые могут выполняться продолжительное время. Это связано с тем, что обращение к данной функции будет выполняться достаточно часто при обновлениях DDE связей.


1С-Предприятие. Документация | Вопросы производительности конфигураций

Вопросы производительности конфигураций

Общие рекомендации

Проблемы производительности

Интерактивные и пакетные режимы

Использование "длинных путей"

Использование длинных строк в индексируемых данных

Использование преобразований типов во встроенном языке

Определение производительности конфигурации

Оптимизация работы Справочников

Оптимизация работы документов

Документы

Формы ввода документов

Журналы документов

Проведение документа (отмена проведения)

Графы отбора

Производительность выборки документов

Оптимизация работы с Константами

Оптимизация работы компоненты "Бухгалтерский учет"

Проектирование документов

Проектирование плана счетов

Работа с бухгалтерскими итогами

Обращение к бухгалтерским итогам в тех конфигурациях, в которых используется разделитель учета

Бухгалтерские отборы

Использование "длинных путей" при записи операции

Оптимизация работы Регистров оперативного учета

Регистры остатков

Оборотные регистры

Использование реквизитов регистров

Периодичность сохранения итогов

Обращение к данным регистров

Использование отборов регистра

Использование признака "Быстрая обработка движений"

Оптимизация работы запросов

Использование запросов в алгоритмах расчетов

Оптимизация формирования отчетов

Оптимизация конфигураций при работе с базами данных в формате SQL

Работа пользователей

Администрирование работы пользователей

Позиционирование в журналах на вводимые документы

Общие рекомендации

Проблемы производительности

В отличии от многих областей компьютерной индустрии в которых возможности существующих программ уже превосходят потребности даже взыскательного пользователя в решении задач автоматизации экономической деятельности врядли когда либо будет достигнут идеальный результат. Это объясняется тем, что потребности автоматизации стремятся к обработке бесконечного объема информации, в бесконечном количестве разрезов, в бесконечно малые сроки.

Очевидно, что при создании конфигурации 1С:Предприятия, как и при разработке любой системы автоматизации в сфере экономики все решения принимаются как компромисс между удобством работы пользователей, функциональной сложностью конфигурации и быстродействием системы. Причем, при увеличении объемов обрабатываемой информации и количества одновременно работающих пользователей следует внимательнее подходить к оценке необходимости предоставляемых пользователю сервисных функций и искать пути к оптимизации разрабатываемой конфигурации. Заметим, что оптимизация конфигурации далеко не всегда сопровождается снижением уровня сервиса. В этом разделе мы дадим несколько рекомендаций по разработке конфигураций 1С:Предприятия предназначенных для использования с большими объемами данных и в многопользовательском режиме.

Прежде всего, заметим, что работа системы в многопользовательском режиме выполняется медленнее, чем при монопольном запуске. Эта разница существенна для версии, работающей с базой данных в формате DBF. Замедление работы системы объясняется тем, что механизм работы с базой данных учитывает возможные изменения данных другими пользователями. В связи с этим в производительности многих режимов, например, формировании отчетов или заполнении документов, при многопользовательской работе более существенную роль начинает играть именно доступ к данным, а не отработка алгоритмов встроенного языка. То есть при проектировании конфигурации,

предназначенной для многопользовательской работы, следует особенно внимательно относиться к использованию средств, выполняющих обращение к данным информационной базы.

Также важно учитывать, что слишком большое количество обращений к информационной базе каждого пользователя замедляет работу всей системы, поэтому уменьшение количества обращений к данным ускоряет не только работу конкретного пользователя, но и вцелом производительность всей системы.

Интерактивные и пакетные режимы

При разработке конфигурации, предназначенной для работы в многопользовательском режиме с реальными объемами данных, следует четко разделять интерактивные и пакетные режимы работы пользователя. В интерактивных режимах вне зависимости от объемов данных система должна иметь приемлемые показатели по времени реакции на действия пользователя (например, управление курсором в списке). В пакетном режиме (например, при получении отчета) быстродействие системы не должно равняться долям секунды.

Предоставляемые средства системы 1C:Предприятие ориентированы на то, чтобы интерактивные режимы работали с приемлемой производительностью при любых объемах данных. Этим объясняется, например, отсутствие возможностей просмотра журналов документов и списков справочников с произвольным фильтром по некоторому условию, так как эти режимы просматривают данные непосредственно в информационной базе, без предварительной выборки. Предоставленные возможности отборов в журналах документов опираются на специальные механизмы, позволяющие просматривать документы интерактивно с определенной выборкой. Однако заметим, что чем больше обычно объем информационной базы в экономической системе, тем меньше предусматривается режимов динамического просмотра информации.

При создании конфигурации рекомендуется взвешенно подходить к организации сервиса динамического просмотра информации. Например, для получения выборок документов со сложным условием, которые необходимы пользователям, часто целесообразнее разработать отчет, формирующий список документов в пакетном режиме в табличном документе. Средства системы позволяют открывать документ из полученного отчета, а при необходимости можно организовать и такие режимы как удаление или проведение выбранных документов.

Использование "длинных путей"

При написании модулей следует избегать многократного обращения к данным агрегатных объектов с использованием "длинных путей", то есть через две точки и более. Примером такого обращения может являться получение цены товара документа:

ЦенаТовара=Накл.Товар.Цена;

Если такое обращение выполняется многократно (например, в цикле) или выполняется обращение к нескольким атрибутам и методам одного атрибута агрегатного объекта, то целесообразно вначале запомнить атрибут в переменную, а затем использовать запомненное значение. Например:

Тов=Накл.Товар.Цена;

ЦенаТовара=Тов.Цена;

Это объясняется тем, что при обращении к атрибуту объекта, если атрибут имеет тип "документ", "справочник" или "счет", то выполняется поиск объекта в информационной базе. Если такое обращение происходит многократно, то поиск выполняется каждый раз. Если выполняется обращение к одной и той же к запомненной переменной, то поиска в информационной базе не происходит.

Использование длинных строк в индексируемых данных

При включении различных признаков в метаданных система может создавать и затем поддерживать в информационной базе различные индексы. Прежде всего, индексы создаются для кода и наименования справочника, а также для номера документа. Индексы создаются при включении сортировки или отборов в справочниках, при включении отборов у общих реквизитов документов, а также измерений и реквизитов регистра. Кроме того, индексы автоматически создаются для реквизита проводки выбранного в качестве разделителя учета. Не рекомендуется в таких данных использовать строки большой длины. При большом объеме данных поддержание индексов по длинным строкам существенно сказывается на производительности системы.

При большом объеме справочника можно рекомендовать ограничить наименование справочника 30 символами, а полное наименование записывать в отдельный реквизит. Для реквизитов, по которым устанавливается отбор и для разделителя учета не рекомендуется использовать строки больше 20 символов.

Использование преобразований типов во встроенном языке

Встроенные язык 1С:Предприятия поддерживает автоматическое преобразование типов в выражениях оперирующих данными различных типов, а также в функциях языка. В некоторых случаях эту особенность следует учитывать при оптимизации конфигураций с точки зрения производительности.

Приведем пример. Необходимо выполнить некоторые действия в модуле для непустых значений атрибута или переменной типа справочник. Иногда для этого используется проверка типа:

Если ПустаяСтрока(Запрос.Товар)=1 Тогда

…

или

Если СокрЛП(Запрос.Товар)="" Тогда

…

При таком выполнении проверки на самом деле программа сначала выполняет преобразование значения типа "Справочник" к типу "Строка", а затем уже обрабатывает полученный результат. При преобразовании к строковому типа значения типа "Справочник" выполняется поиск значения в информационной базе для получения его представления (наименования или кода). Если этот алгоритм работает в цикле с большим объемом значений, то суммарные издержки такого способа проверки могут быть достаточно велики.

Для проверки такого значения следует использовать функцию "ПустоеЗначение", которое выполнит проверку без считывания данных элемента справочника.

Если ПустоеЗначение (Запрос.Товар)=1 Тогда

…

Если значение переменной или атрибута может принимать различные типы, и нужно выделить значение имеющее определенное строковое значение, то следует сначала проверить тип значения, а затем выполнить проверку самого значения.

Определение производительности конфигурации

При возникновении проблем с производительностью работы конфигурации для определения возможных путей оптимизации следует произвести замер времени выполнения тех или иных алгоритмов для выявления "узких мест".

Разумеется, идеальным способом измерения производительности является тестирование конфигурации непосредственно в процессе работы пользователей. Однако, конфигурирование (отладка) часто выполняется на тестовой информационной базе или в нерабочее время. В этом случае при выполнении замеров производительности необходимо правильно воссоздать реальные условия работы системы. В противном случае соотношения временных затрат на различные операции может абсолютно не соответствовать "боевым" условиям. Прежде всего, необходимо, чтобы информационная база располагалась на сервере локальной сети, а не на той же машине, на которой выполняется программа. Разумеется, формат хранения (DBF/CDX или SQL) тестовой базы

должен совпадать с форматом хранения "боевой" информационной базы. Желательно, чтобы по характеристикам сервер и локальная сеть были теми же, что и при работе пользователей или аналогичными. Запуск программы должен производиться не в монопольном режиме, так как монопольный режим существенно отличается по производительности от разделенного. Кроме того, при работе с базами данных в формате (DBF/CDX), следует выполнять дополнительный запуск программы с той же информационной базой с другого компьютера, так как отсутствие второго соединения позволяет системе оптимизировать доступ к данным. Наконец для более полной имитации можно рекомендовать на втором компьютере запустить длительный отчет, который будет имитировать нагрузку пользователей или обработку, выполняющую в цикле запись некоторых данных в информационную базу. При таком наборе условий производимые замеры будет приближены к реальным условиям, и позволят получить адекватную оценку соотношения длительности различных операций.

Собственно для определения узких мест с точки зрения производительности рекомендуется, прежде всего, использовать механизм "Замер производительности" (в режиме запуска "Отладчик"). Данный механизм позволяет получить соотношение временных затрат на выполнение отдельных строк алгоритма модуля.

Заметим, что основные проблемы, связанные с производительностью, возникают при многопользовательской работе с большими объемами данных. Причем основные затраты времени приходятся именно на доступ к данным информационной базы. Поэтому, очевидно, что при анализе результатов замера производительности, прежде всего, будут выделяться обращения к данным. Для того, чтобы лучше выделить эти операции можно рекомендовать отключать флажок "Для вызовов процедур и функций включать время выполнения". Это позволит получить чистое время выполнения различных методов объектов встроенного языка 1С:Предприятия. По результатам проведенного замера следует предпринимать меры к оптимизации алгоритмов. Механизм "Замер производительности" предоставляет возможность сохранения результата замера, что позволяет после внесения изменений в конфигурацию выполнить повторный замер и сравнить с предыдущим для оценки эффективности сделанных изменений.

Оптимизация работы Справочников

Справочники

При создании справочников, в которых будет содержаться большое количество элементов, не рекомендуется делать очень длинными код и наименование. Например, можно сделать наименование небольшой длины и реквизит для хранения полного наименования. Это объясняется тем, что для кода и наименования всегда поддерживается индекс для поиска и упорядочивания.

В некоторых случаях в справочниках код и (или) наименование вообще не используются. Тогда следует в свойствах справочника установить нулевую длину для кода и (или) наименования. В этом случае не будут создаваться дополнительные индексы. Однако нулевая длина и для кода и для наименования одновременно может быть установлена только, если не предполагается использовать этот справочник как тип данных для реквизитов других объектов или форм, так как у такого справочника не будет представления для отображения в формах.

Не рекомендуется устанавливать для справочников количество уровней больше 1, если реально не предполагается создавать группы. Это также позволит системе не поддерживать дополнительные индексы. Однако само количество уровней (от 2 и более) никак не влияет на структуру хранения данных справочника.

При создании реквизитов справочников не следует злоупотреблять созданием периодически зависимых реквизитов. Их наличие не только замедляет обращение к данным реквизитам, но и усложняет работу пользователя с ними. Например, реквизиты используемые для печати документов не обязательно делать периодическими. Обычно, периодическими имеет смысл делать реквизиты значения которых используются в алгоритмах проведения документов. Это позволяет избежать неверного перепроведения документа ранее введенных документов при изменении значений реквизитов.

Также следует внимательно относиться к указанию для реквизитов справочников признаков "Сортировка" и "Отбор". Наличие этих признаков замедляет запись элемента справочника. Рекомендуется указывать признак "Сортировка" только при реальной необходимости упорядоченного просмотра по данному реквизиту или поиска элементов по данному реквизиту из встроенного языка. Например, признак "сортировка" будет необходим для поиска товара по штрих-коду.

При конфигурировании справочников следует помнить, что существует возможность создания нескольких форм списков и использовать разные формы при вызове справочника из главного меню, при выборе в процессе заполнения документов и в процессе подбора. Скорость работы списка справочника зависит от количества информации выводимой в форме, требующей дополнительного обращения к данным:

- Периодическим реквизитам. Размещение в колонках списка большого количества периодических реквизитов замедляет просмотр списка.

- Строкам неограниченной длины. Наличие в колонках таких реквизитов так же замедляет просмотр.

- Реквизитам типа "Справочник", "Документ", "Счет". Отображение таких реквизитов требует выборки представлений их значений из информационной базы.

- Формулам, осуществляющим выборку данных из информационной базы.

Например, обращение к текущим остаткам по товарам, особенно если используется метод регистра СводныйОстаток или выбираются данные из бухгалтерских итогов по неполному набору значений субконто.

Помещение таких данных не в табличную часть формы, а как отдельных реквизитов диалога заметно ускоряет работу, так как данные выводятся только по текущей строке, но часто целесообразно эту информацию выдавать по запросу (по нажатию кнопки).

Создание нескольких форм списков позволяет не выводить лишнюю информацию в тех режимах, в которых это не имеет большого смысла, например, можно минимизировать состав информации выводимой в форме списка справочника, используемой для выбора.

Заметим также, что для выбора значений маленьких справочников, состоящих всего из нескольких элементов целесообразно использовать в документах и других формах режим быстрого выбора, который указывается для элемента диалога. Например, так можно выбирать валюту, склад и т.д.

Оптимизация работы документов

Документы

Общие реквизиты.

Возможность создания общих реквизитов предназначена для определения данных, которые используются в большинстве видов документов. Заметим, что если такой реквизит создан, то под него будет отводиться дисковое пространство в документе каждого вида. Поэтому не следует вводить общие реквизиты, если они будут реально использоваться только в документах отдельных видов.

Общие реквизиты с признаком "Отбор".

Общие реквизиты документов с признаком "Отбор" рекомендуется создавать только при явной необходимости просмотра журнала с отбором по данному реквизиту или быстрого получения выборок документов по значению данного реквизита средствами встроенного языка. Желательно не создавать в конфигурации большое количество общих реквизитов с признаком "Отбор", так как это может замедлить запись документов. Заметим, что при работе конфигурации с большим количеством документов следует ограничивать сервисные режимы просмотра журнала документов. Использование общих реквизитов с признаком "Отбор" в таких конфигурациях должно быть весьма обосновано.

Строковые реквизиты неограниченной длины.

При создании строковых реквизитов шапки документа следует внимательно отнестись к решению: делать их неограниченной или конкретной длины. Реквизиты неограниченной длины несколько замедляют обращение к данным реквизитам (а не к документу вообще), но существенно экономят объем базы данных при частичном заполнении строк, так как записываются блоками по 80 символов. Причем пустая строка (не заполненный реквизит) не будет занимать места вообще.

Номера документов.

Использование нумераторов в документах никак не влияет на производительность. Однако, не рекомендуется задавать в метаданных слишком длинные номера документов даже у редко встречаемых документов. Ресурсы системы, используемые для поддержки номеров документов, зависят от максимальной длины номера среди документов всех видов.

Реквизиты типа "Документ".

Если в структуре документа имеются реквизиты типа "Документ", то система автоматически поддерживает механизм подчиненных документов. Для этого в информационной базе хранится список ссылок на подчиненные документы. Затраты системы на поддержание этого списка по конкретному документу зависят от количества различных значений типа "Документ" в реквизитах документа. Если, например, в документе будет присутствовать два реквизита типа "Документ" в шапке, то в список будет заноситься две записи. А если в документе будет присутствовать один реквизит типа "Документ" в табличной части, то в список будет занесено столько записей, сколько строк в табличной части конкретного документа, при условии, что во всех строках эти значения разные. Данный механизм в конфигурации не может быть отключен. Описанное влияние реквизитов типа "Документ" имеет смысл учитывать при проектировании структуры документа.

Формы ввода документов

Обычно при одновременной работе с программой нескольких пользователей основным режимом работы большинства пользователей является ввод и проведение документов. Приведем рекомендации по оптимизации работы пользователя в форме документа.

Если вас не удовлетворяет скорость работы системы при заполнении пользователем формы документа, следует проанализировать все действия пользователя в процессе заполнения формы с точки зрения доступа к информационной базе.

В шапке документа, обычно, выбираются значения общих для документа полей (склад, валюта, организация-покупатель и т.д.). Выбор значения из списка справочника, разумеется, требует значительного количества обращений к информационной базе. Если при последовательном вводе документов часто происходит выбор одних и тех же значений из справочника, то можно предусмотреть средства, которые будут при вводе нового документа автоматически заполнять большинство реквизитов, например, значениями, выбранными при вводе предыдущего документа этим пользователем. Для этого можно использовать методы СохранитьЗначение/ВосстановитьЗначение или заносить стандартные значения в качестве реквизитов в справочник пользователей.

Еще более существенным с точки зрения доступа к данным является заполнение табличной части документа. При стандартном способе заполнения ввод каждой строки может начинаться, например, с выбора из справочника товара. Открытие списка справочника и его автоматическое позиционирование на выбранном в предыдущей строке товаре является достаточно ресурсоемкой операцией. Значительно меньше ресурсов будет тратиться при использовании режима подбора. В этом случае справочник не будет каждый раз открываться, да и заполнение документа может оказаться значительно удобнее. Заметим, что при наличии обоих режимов, если Вы хотите, чтобы менеджеры реально использовали именно подбор рекомендуется добиваться этого, не организационными методами, а средствами конфигурации, например, запретив ввод новой строки вручную для новых документов вводимых продавцами.

Разумеется, ввод товаров существенно ускоряет использование сканеров штрих-кодов. При использовании сканера вместо разворачивания спискасправочника происходит всего один поиск товара по считанному коду.

Если заполнение накладной может быть выполнено на основании счета, то это также существенно уменьшит количество обращений к информационной базе, да и упростит работу оператора.

Наиболее типичной причиной недостаточно высокой скорости работы системы при заполнении документа обычно является использование в форме большого количества вычисляемых полей диалога типа "текст" (элементов диалога "текст", содержащих формулу), а особенно требующих обращения к данным.

Например, это могут быть поля, предназначенные для вывода текущего количества товаров на складе, текущего состояния взаиморасчетов и т.д. Важно учитывать, что их значения часто пересчитываются при вводе информации в форме документа. Для снижения влияния таких полей на скорость работы системы можно привести следующие рекомендации: Если вычисляемые элементы диалога типа "Текст", предназначенные для вывода справочной информации при заполнении документа обращаются к данным информационной базы, например, получают текущие остатки товара, то рекомендуется помещать их не в табличной части, а непосредственно в диалоге. В этом случае, например, текущий остаток будет выдаваться не по каждой строке, а только по той, на которой находится курсор и обращений к данным будет значительно меньше.

Если используется вычисляемая колонка, то для нее не следует задавать идентификатор, в этом случае ее вычисления не будут производиться при любом изменении по всей табличной части, а только по видимой строке. Многие вычисляемые значения можно показывать в качестве переменной, и вычислять ее при нажатии пользователем специальной кнопки, например, "Показать остаток", что значительно снизит количество лишних обращений к данным.

Следует учитывать, что вызов метода регистра "СводныйОстаток" реально может выполняться достаточно долго из-за того, что значение получается обходом всех существующих остатков по указанным значениям измерений. Например, по всем складам. Аналогично медленно будет выполняться обращение к бухгалтерским итогам по аналитике (СКД,СКК…) в случае указания неполного набора значений субконто, заданного для данного счета.

Не рекомендуется использовать в формулах вычисляемых полей процедуры и функции, циклически обходящие строки табличной части документа. Крайне не желательно использовать в вычисляемых элементах диалога типа "Текст" итоги регистров полученных вычислением временного расчета на дату документа или бухгалтерских итогов полученных запросом или временным расчетом, а также любую другую информацию, получаемую обращением к данным в большом объеме или большими вычислениями. Такую информацию лучше получать по запросу (например, по нажатию кнопки).

В формулах редактируемых реквизитов формы также не рекомендуется использовать алгоритмы с большим количеством обращений к данным или вычислениями. Например, использовать временный расчет регистров или бухгалтерских итогов.

Для получения приемлемого компромисса можно рекомендовать сначала отключить весь дополнительный сервис при вводе документа, а затем постепенно его задействовать, следя за тем, чтобы сохранялись приемлемые показатели производительности системы при многопользовательской работе.

Журналы документов

Обычные журналы.

К обычному журналу прикрепляются документы различных видов в окне настройки документов. Документ может принадлежать только к одному из таких журналов. То есть все документы разделены между созданными обычными журналами. Количество таких журналов не влияет на производительность системы и размер информационной базы.

Общие журналы.

К журналу, для которого проставлен признак "Общий", будут относиться все виды документов. Фактически это аналог "полного" журнала, но имеющий настраиваемую форму. Количество таких журналов не влияет на производительность системы и размер информационной базы.

Дополнительные журналы.

К дополнительному журналу будут относиться те виды документов, которые устанавливаются для него в конфигурации. Один документ может включаться в несколько дополнительных журналов. Фактически дополнительные журналы позволяют собирать документы различных видов в разных комбинациях. Наличие дополнительного журнала несколько замедляет запись документов, которые к нему относятся. То есть, вхождение одного документа в большое количество дополнительных журналов скажется на производительности системы. Просмотр такого журнала может быть несколько медленнее, чем просмотр других журналов, но не значительно. Создание дополнительных журналов рекомендуется выполняться только в случае необходимости иметь дополнительную выборку документов нескольких видов при визуальном просмотре журналов.

При конфигурировании форм журналов вполне актуальны рекомендации данные для списков справочников. Заметим, что скорость просмотра журнала Вы можете оценить сравнив ее со скоростью просмотра журнала "Полный", вызываемого из меню "Операции-Журналы документов-(Полный)". Данный журнал не содержит никаких дополнительных данных, и скорость его работы является максимальной при просмотре списка документов.

Включение в форму граф журнала несколько замедляет работу, если в графах выводятся значения типа "Справочник", "Счет", "Документ" или значение типа "Строка неограниченной длины".

Само существование графы журнала, не использованной в конкретной форме, не влияет производительность, то есть замедляют просмотр только графы, включенные в форму списка.

Существенно может замедлить включение в виде колонок формул со сложными вычислениями. Целесообразно формулы со сложными вычислениями включать не в качестве вычисляемых колонок табличной части, а в качестве отдельных элементов диалога, чтобы вычисления выполнялись не по всем строкам, а только по текущей строке.

Проведение документа (отмена проведения)

При многопользовательской работе проведение документов является обычно наиболее узким участком с точки зрения производительности системы. Это объясняется тем, что непосредственно в момент проведения блокируется возможность записи изменений в информационную базу для всех пользователей. Такая блокировка необходима для обеспечения логической целостности проведения при обращении в алгоритме проведения к любым данным информационной базы. Поэтому оптимизация процесса проведения является наиболее важной задачей при общей оптимизации конфигурации.

Не рекомендуется при проведении и отмене проведения документа (в процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения) вызывать действия, ожидающие ответа пользователя ("Вопрос", "Предупреждение", "ВвестиЗначение" и т.д.). Это приводит к длительному ожиданию всеми пользователями окончания проведения документа. В крайнем случае, следует использовать функции языка, имеющие параметр Таймаут, задавая ему небольшое значение.

При конфигурировании компоненты "Оперативный учет" очень важно организовать работу пользователей таким образом, чтобы проведение документов в основном производилось в реальном времени, а не задним числом. Механизм регистров оптимизирован для получения текущих итогов. Алгоритмы обработки проведения документа, используя текущие итоги регистров, могут достаточно быстро определять наличие товаров на складах, средние цены товаров, остатки по партиям и т.д. При проведении документов задним числом эти данные можно получить, выполнив временный расчет на

момент документа или выполнив запрос с конечной границей указанной вкачестве текущего документа. При большом объеме операций временный расчет может выполняться достаточно долго. В связи с этим крайне не желательно частое проведение документов задним числом. Типичной ошибкой пользователей является ввод и проведение документа завтрашней датой. После этого все сегодняшние документы проводятся задним числом.

Заметим, что обращение к итогам на момент документа при его проведении может выполняться с двумя целями. Первая - это контроль правомерности совершаемой операции, например наличия товаров на складе. При проведении задним числом обычно можно проводить документ без контроля наличия товаров, опираясь на то, что отражается уже совершенная реально операция. Вторая цель - определение некоторых значений используемых при записи движений регистров, например остатков по партиям товаров для списания по методам LIFO и FIFO. В некоторых случаях, эту часть проведения также можно опускать, если используется механизм последовательностей документов и проводимый документ уже находится после границы последовательности, то есть он уже точно будет перепроводиться при восстановлении последовательности. Однако, эту часть проведения нельзя опускать для документа, который сам "нарушает" последовательность (отодвигает границу последовательности назад), так как при восстановлении последовательностей перепроведение будет начинаться с первого документа после границы последовательности и последний, отодвинувший ее назад документ перепроводиться не будет.

В любом случае рекомендуется ограничить права большинства пользователей на проведение задним числом, разрешив такое проведение только ответственным сотрудникам.

При использовании компоненты "Бухгалтерский учет" следует по возможности минимизировать применение в процедуре проведения документа обработки большого количества итогов, и, обращения к итогам на момент проведения документа.

Следует учитывать, что при выполнении запроса или временного расчета объекта "БухгалтерскиеИтоги" с конечной границей заданной в качестве текущего документа программа будет обрабатывать все проводки от конца месяца до данного документа. Следовательно, для документов, обращающихся к данным бухгалтерских итогов, последовательный ввод и проведение, будет выполняться эффективнее, чем проведение документов задним числом. Метод "ЗаписатьПроводки" следует использовать только в том случае, если в последующем алгоритме необходимо обращение к итогам с учетом уже внесенных в операцию проводок, если такие обращения не выполняются, то метод

"ЗаписатьПроводки" использовать не нужно, так как проводки будут автоматически записаны при записи операции.

Разумеется, из-за особых требований к производительности алгоритма проведения с для его оптимизации следует максимально использовать приведенные в данной рубрике рекомендации по увеличению производительности всех используемых в процессе проведения механизмов. Прежде всего, имеет смысл обратить внимание на оптимизацию работы объектов "Запрос" и "БухгалтерскиеИтоги", возможности настройки отборов регистров и бухгалтерских данных, а также на общие рекомендации по использованию встроенного языка.

Графы отбора

Определение граф отбора является одним из наиболее ответственных моментов с точки зрения производительности системы.

С одной стороны графы отбора являются мощным средством оптимизации выборки информации по некоторым значениям. С другой стороны само поддержание графы отбора требует иногда весьма значительных ресурсов системы.

Приведем описание устройства и использования граф отбора, которое позволит оценить при разработке конфигурации целесообразность определения той или иной графы.

Графа отбора настраивается в метаданных как набор ссылок на реквизиты документов, данные регистров и бухгалтерских проводок. При записи документов, движений регистров, операций и проводок, порождаемых документов в специальном списке отмечаются факты вхождения данного документа в графы отбора по каждому значению реквизита документа или данных движений, которые включены в графу отбора.

В отличии от общих реквизитов документов, которые также позволяют организовать отбор по некоторому значению, графы отбора допускают вхождение одного документа к нескольким значениям графы отбора. Например, создана построена графа отбора "Склад". Для накладной на внутреннее перемещение к графе отбора прикреплены реквизиты "СкладОткуда" и склад "СкладКуда". Данный документ попадает в два отбора по данной графе – по обоим выбранным значениям склада. Если к графе отбора прикреплены реквизиты табличной части документа или, например, данные регистров, то

один документ может быть отнесен к достаточно большому количеству значений

отборов. Например, если к графе отбора "Товары" прикрепить реквизит "Товар" табличной части и измерение "Товар" регистра "УчетТоваров", то документ будет отнесен к стольким значениям графы отбора, сколько различных товаров будет в табличной части документа и(или) в его движениях регистра. Каждое вхождение документа в графу отбора заносится в список отдельной строкой. Таким образом, количество вхождений документа в различные графы отбора определяет затрачиваемые на поддержание граф отбора ресурсы.

Очевидно, что большое количество вхождений документов в графы отбора повлечет существенное увеличение объема информационной базы и увеличения времени затрачиваемого на запись и проведение документа. Еще раз заметим, что объем ресурсов определяется суммарным количеством вхождений документов в графы отбора, которое зависит от количества значений реквизитов, данных регистров и бухгалтерских операций, которые в документах определены для включения документа в графы отбора. Так, в приведенном примере, графа отбора "Склад" вызовет по одному вхождению на приходные и расходные накладные и два вхождения на накладную на внутреннее перемещение. Тогда, как графа отбора "Товар" вызовет столько вхождений, например, расходной накладной, сколько различных товаров она будет содержать, то есть это может быть несколько десятков и несколько сотен записей в списке отбора. Это означает, что при проектировании графы отбора следует также учитывать и предполагаемое среднее количество строк в основных документах. Само количество граф отбора практически не влияет на производительность системы. Так, например, можно сделать одну графу отбора: "Организации" или две графы отбора: "Покупатели" и "Поставщики". При условии, что каждый реквизит документа, который был бы отнесен к графе "Организации" будет отнесен к одной из двух граф отбора, затраты ресурсов системы будут практически одинаковыми.

Теперь рассмотрим использование граф отбора. Можно выделить два основных назначения граф отбора:

1) Отбор документов при просмотре журнала документов.

2) Оптимизация выборки информации в отчетах, обработках и других алгоритмах.

Отбор документов при просмотре журналов весьма удобное средство, которое предоставляет пользователям возможность быстро получить, например, выборку всех документ по конкретной организации. Отбор может устанавливаться принудительно из языка, выбираться из специального диалога или выбираться с помощью закладок окна журнала. Однако заметим, что организация отборов для просмотра журналов должно производиться весьма взвешенно, так как поддержание большого числа граф отбора, особенно с большим количеством вхождений может серьезно сказаться на производительности системы. Оптимизация выборки информации с использованием графы отборы происходит в следующих случаях:

1) Графа отбора может быть автоматически использована системой для оптимизации выполнения запроса (объект "Запрос"). Это происходит в случае, если указано условие запроса, определенное равенством переменной запроса конкретному значению (переменной, элементу диалога) и все данные определенные для данной переменной запроса определены также в графе отбора. Например, если запрос строится по регистру взаиморасчетов и условие ограничивает выборку данных одним значением измерения регистра (организацией) и данное измерение регистра включено в некоторую графу отбора, то при выполнении запроса будет использована графа отбора и будут обрабатываться только документы относящиеся к данной организации. Если существует более одной графы отбора которая может быть использована для оптимизации выполнения запроса, то система пытается самостоятельно выбрать графу отбора, разброс значений которой будет максимальным. Существует возможность принудительно указать запросу использование конкретной графы отбора. Она будет использована только в случае соответствия условия запроса структуре графы.

2) Графа отбора может быть автоматически использована системой для оптимизации выполнения временного расчета регистров оперативного учета в случае, если одно из измерений или один из реквизитов, для которого установлено конкретное значение фильтра, входит в графу отбора. Также как и при оптимизации выполнения запроса, система выбирает из возможных по условию фильтра наиболее подходящую графу отбора с точки зрения разброса значений. Существует возможность указать принудительно определенную графу отбора, если она соответствует фильтру.

3) Графа отбора может быть автоматически использована системой для оптимизации выборки движений регистра оперативного учета в случае, если измерение (или реквизит) для которого установлено конкретное значение фильтра входит в графу отбора. Система выбирает из возможных по условию наиболее подходящую графу отбора. Существует возможность указать принудительно определенную графу отбора, если она соответствует фильтру.

4) Графа отбора может быть использована для перебора документов по конкретному значению отбора из встроенного языка методом объекта типа "Документ".

Заметим, что во всех перечисленных режимах оптимизируемых с помощью граф отбора ускоряется собственно перебор документов, относящихся к определенному значению графы отбора. При этом эффективность оптимизации будет зависеть от объема данных документа, которые затем будут уже последовательно отбираться. Например, если запрос или выборка движений регистров выполняются по контрагенту, по которому, как правило, на один документ приходится одно движение регистра использование графы отбора может увеличить производительность системы на данной операции в десятки и сотни раз.

Так, например, при построении отчета о продажах конкретному клиенту за год при наличии графы отбора будут перебираться только документы по данному контрагенту, а не просматриваться последовательно все документы. Так как в расходной накладной, как правило, присутствует только один клиент, то при работе организации, например с 1000 клиентами количество обрабатываемых движений регистров уменьшится в среднем в 1000 раз.

Если рассмотреть случай, когда графа отбора строится по товарам и среднее количество строк в документе достаточно большое, например 100 и разброс использования товаров достаточно маленький (в большом количестве документов продаются одни и те же товары), реально ускорение будет не очень большое. Так как при помощи графы отбора выбираться будут документы, в которых встречался такой товар, а уже внутри документа будут перебираться строки или движения регистра. При этом если товар встречается в половине документов, то использование графы отбора сократит количество анализируемых системой движений регистров только в два раза. Если разброс использования товаров достаточно большой и среднее количество строк в документах невысокое (например, 5-10) то результат оптимизации выборки информации при использовании графы отбора будет более значительным.

Таким образом, эффективность создания граф отбора для оптимизации расчетов и выборок по движениям регистров оперативного учета и данным многострочных документов должна определяться исходя из среднего количества документов, которые будут относиться к одному значению отбора.

Например, можно отметить существенное влияние наличия граф отбора на формирование таких отчетов как "Карточка клиента". Такого рода отчеты формируются перебором движений регистра и параллельным временным расчетом регистров для определения текущего остатка. И то, и другое действие вызывается с установленным фильтром. Наличие графы отбора позволяет существенно ускорить построение такого отчета, особенно, если количество движений регистра в документе в среднем невелико.

Следует заметить, что в версии 7.7 существует возможность устанавливать отборы движений в свойствах измерений и реквизитов регистров. Установка этих отборов не предоставляет возможности выборки документов при визуальном просмотре, однако их использование существенно ускоряет выборки движений регистров, временные расчеты и выполнение запросов по регистру в случае, если устанавливается условие запроса или фильтр объекта "Регистр" по конкретному значению измерения или реквизита. Эти отборы система использует автоматически, если они установлены в метаданных. Использование для оптимизации выборки движений отборов движений обычно эффективнее использования граф отбора, так как отбираются непосредственно движения, а не документы. Кроме того, поддержание отборов в движениях регистров не столь существенно увеличивает объем базы данных, так как ведется не с помощью отдельной таблицы, а с помощью построения дополнительных индексов.

Важным аспектом применения граф отбора является использование в алгоритмах конфигурации самого факта наличия графы отбора. В одних случаях конфигурация создается таким образом, что ее алгоритмы не рассчитаны, на наличие графы отбора, а создание графы отбора ускоряет выполнение некоторых отчетов и обработок. Например, отчет о продажах по конкретному клиенту значительно ускорится, при создании в конфигурации графы отбора по контрагентам. В другом случае конфигурация может в определенных алгоритмах непосредственно быть ориентирована на существование определенной графы отбора. Например, при проведении документа задним числом временный расчет остатков товаров на момент документа может выполняться по каждой позиции документа отдельно исходя из того, что при наличии графы отбора по товарам расчет итогов регистра по каждому товару данного документа отдельно (с использованием фильтра) будет выполняться быстрее, чем по всем товарам вообще. Разумеется, если такой графы отбора существовать не будет, то такой алгоритм будет обходить все движения регистра столько раз, сколько товаров в данном документе. Кроме того, при большом количестве строк в документах использование графы отбора также не даст большого эффекта. Таким образом, создание в конфигурациях алгоритмов явно ориентированных на существование графы отбора требует четкого осмысления предполагаемого эффекта и возможно экспериментов на реальных данных.

Для конфигураций, разрабатываемых для предприятий с небольшим объемом операций, графы отбора часто используются для организации сервиса просмотра журналов документов. При больших объемах данных, графы отборов проектируются в основном с учетом необходимости оптимизации получения информации с некоторой выборкой на особо критичных по скорости задачах. Для организаций с большим объемам информационных баз можно рекомендовать не создавать большого количества граф отбора для организации визуального просмотра списка документов.

Причем создание граф отбора должно быть обосновано с точки зрения соотношения используемых ресурсов (объемных и временных) и получаемого эффекта. Например, создание графы отбора по клиентам и отказ от создания графы отбора по товарам можно обосновать с одной стороны, существенно меньшим средним количеством значений типа "Клиент" в документах (то есть такая графа отбора будет требовать не столь много ресурсов как графа отборf по товарам), а с другой стороны, целесообразностью быстрого построения отчета по конкретному клиенту. Часто, обслуживание клиентов происходит в реальном времени и требует получение истории взаиморасчетов за длительный период, тогда как получение отчетов по движению товара за длительный период как правило требуется для внутренних целей организации и может производиться с меньшей скоростью.

Следует заметить, что при работе с базами данных в формате SQL существенно меняется производительность выборок по условиям запросов и фильтрам регистров. Поэтому для этих информационных баз, как правило, отпадает необходимость в использовании граф отбора для оптимизации построения отчетов и выполнения расчетов. Кроме того, и визуальный отбор в журналах при работе с базами данных в формате SQL может быть заменен построением соответствующих отчетов. Таким, образом, в большинстве случаем при переходе на версии для SQL имеет смысл отключать графы отбора, так как их поддержание также будет требовать определенных ресурсов при записи документов, а выигрыш от их использования будет практически не существенным.

Производительность выборки документов

При необходимости оптимизации выборки (перебора) документов можно учитывать следующие особенности реализации механизмов 1С:Предприятия.

Перебор документов с помощью объекта "Документ" выполняет последовательный обход документов за указанный интервал.

Если используется объект определенного вида, то при выборке используется индекс, отбирающий документы только этого вида. То есть такой отбор будет быстрее, чем выборка всех документов и проверка вида каждого документа в алгоритме модуля.

Если применять метод "ИспользоватьЖурнал", то при выборке будет использоваться индекс, отбирающий документы определенных видов, входящих в указанный журнал.

Применение методов "ВыбратьПодчиненныеДокументы", "ВыбратьПоЗначению" и "ВыбратьПоПоследовательности" оптимизирует выборку за счет использования индексов и специальной системной таблицы.

Применение метода "ВыбратьПоНомеру" также выполняется достаточно быстро, так как использует соответствующий индекс.

Применение метода "УстановитьФильтр" ограничивает выборку документов, но практически не ускоряет выполнение выборки, по сравнению с проверкой в алгоритме модуля.

Получение списка документов с помощью объекта "Запрос" с соответствующей группировкой, может выполняться несколько медленнее, при небольшом количестве документов, входящих в интервал. Кроме того, некоторое замедление будет наблюдаться, если затем обращаться к данным документа, так как при этом будет выполняться повторное считывание документа, тогда как объект типа "Документ" считывает часть информации документа непосредственно в процессе перебора.

При работе с базой данных в формате SQL применение запроса будет существенно эффективнее, чем перебор с помощью объекта "Документ" в том случае, если выполняется отбор документов по некоторому условию. Выборка документов объектом "Запрос" будет производиться средствами SQL-сервера. Разумеется, для этого должны быть учтены рекомендации по составлению условий запросов оптимизируемых при работе с базами данных в формате SQL.

Оптимизация работы с Константами

При обращении в алгоритме модуля к константе 1С:Предприятие извлекает значение константы из информационной базы. Причем это касается и периодических и непериодических констант. Если обращение к константе выполняется в алгоритме многократно, то использование конструкции "Константа.ХХХХХ" может существенно сказываться на производительности выполнения модуля. Поэтому целесообразно запомнить полученное значение в переменной и использовать в алгоритме запомненное значение.

Оптимизация работы компоненты “Бухгалтерский учет”

Проектирование документов

При проектировании конфигурации использующей компоненту "Бухгалтерский учет", если предполагается наличие большого количества проводок в информационной базе рекомендуется организовать ввод операций таким образом, чтобы в одной операции располагалось, как правило, несколько проводок. Определенные ресурсы системы расходуются как на запись самой операции, так и на запись каждой проводки. Организация хранения программой операций и проводок в информационной базе ориентирована на хранение в одной операции нескольких проводок. Разумеется, основным критерием для расположения проводок в операциях является целостность отражения хозяйственной операции, поэтому стремление уменьшить количество операций не должно приводить к нарушению логики отражения хозяйственной деятельности в учете.

При проектировании документов конфигураций ориентированных на большой объем данных следует рассмотреть вопрос о целесообразности записи операций по тем документам, которые не формируют бухгалтерских проводок. В типовой конфигурации 1С:Бухгалтерии 7.7 (редакции 3.1) предусмотрена возможность записи операции для всех документов, в том числе и для тех, которые никогда не формируют проводок (платежных поручений, доверенностей и т.д.). Такое решение принято для удобства просмотра бухгалтером всех документов в едином журнале операций, то есть для упрощения освоения программы и работы с небольшой информационной базой.

Сама по себе запись операций по документам, по которым не предполагается запись проводок в типовой конфигурации выполняется исключительно для включения этих документов в журнал операций. Однако запись операции влечет дополнительные затраты ресурсов системы, так как программа ведет отдельный список операций и каждый документ, записывающий операцию отмечается в этом списке. Таким образом, запись операций по большому количеству документов, не влияющих на бухгалтерские итоги, влияет и на объем информационной базы и на производительность системы. То есть возможным путем дополнительной оптимизации конфигурации может быть отключение записи операций по тем документам, по которым не формируются проводки.

Для документов, которые относятся к оперативному учету, но формируют также проводки можно рекомендовать использовать вариант параметра "Создавать операцию": "Только при проведении". Это позволит исключить хранение избыточной информации по конкретным документам, которые не должны отражаться в бухгалтерском учете. При их проведении алгоритм модуля документа может не создавать операцию и не записывать проводки.

Проектирование плана счетов

При проектировании плана счетов не следует устанавливать максимальное количество субконто больше, чем реально необходимо для организации аналитического учета по счетам. Установленное максимальное количество субконто влияет на общую производительность системы. Собственно количество видов субконто для конкретного счета не оказывает сильного влияния на время отражения проводки в учете, однако объем хранимых итогов зависит от количества используемых комбинаций значений субконто счетов. Кроме того, увеличение количества видов субконто указанных для конкретного счета влияет на скорость формирования отчета по отдельным значениям субконто. Так, например, если по счету товаров велся учет в разрезе номенклатуры и вводится второе субконто "склады", то количество хранимых итогов несколько увеличится и скорость формирования отчета по остаткам товаров в целом (на всех складах) будет немного ниже, за счет того, что будут суммироваться хранящиеся остатки товара на разных складах. Разумеется, замедление будет зависеть от среднего количества складов, на которых хранятся различные товары.

При проектировании аналитического учета рекомендуется придерживаться правильного использования механизма субконто. Субконто должны использоваться для учета остатков и оборотов по счетам в разрезе объектов аналитики. Не следует использовать субконто в качестве комментариев к проводкам не отражающих структуру остатков или оборотов. Для комментирования проводок рекомендуется использоваться реквизиты проводок или операций.

Заметим, что если вид субконто для конкретного счета используется для хранения остатков, то есть, не включается признак "Только обороты", то суммы по счету должны и дебетоваться и кредитоваться по всем используемым объектам аналитики. Если использовать субконто по счету, например, только для отражения кредитовых проводок, а для дебетовых использовать другие значения субконто или не указывать их вовсе, то объем хранимых итогов будет расти от периода к периоду, и доступ к итогам по аналитике будет замедляться.

Разделитель учета следует включать в конфигурации только в случае его реального использования, так как поддержание разделенного учета требует дополнительных ресурсов системы.

Введение дополнительного плана счетов практически не сказывается на производительности конфигурации.

Длина кода и длина наименования счета также практически не влияют на производительность, так как реально в проводках и итогах не хранится код счета. Однако при большом уровне вложенности счетов (субсчетов) будет несколько замедляться формирование отчетов, так как реально данные итогов хранятся по счетам используемым в проводках, а по счетам-группам данные формируются в процессе обращения к итогам.

Работа с бухгалтерскими итогами

При работе с компонентой "Бухгалтерский учет" не рекомендуется устанавливать границу расчета бухгалтерских итогов позже, чем они реально используются при формировании отчетов и вводе операций. При записи проводок бухгалтерские итоги автоматически обновляются вплоть до последнего рассчитанного периода, поэтому время записи проводок будет зависеть от того, сколько периодов (кварталов) располагается от даты операции до последнего рассчитанного периода.

Для оптимизации получения бухгалтерских итогов в наиболее типовых ситуациях система хранит и динамически обновляет при записи проводок следующие виды итогов:

- остатки по счетам и объектам аналитики;

- обороты по счетам и объектам аналитики;

- обороты между счетами.

Причем все итоги хранятся с детализацией до месяца. То есть, отчеты, обращающиеся к указанным итогам за период, состоящий из целых месяцев, не будут обращаться к проводкам, а будут выбирать всю информацию из хранимых итоговых данных. При обращении к итогам за "рваные" периоды, не состоящие из целых месяцев, будет выполняться обработка проводок по неполным месяцам. Кроме того, обработка проводок будет выполняться при получении отчетов за любой период, если выполняется обращение к оборотам между счетами и субконто или между субконто.

При использовании объекта "БухгалтерскиеИтоги" в режиме временного расчета или запроса следует обращать внимание на возможность ограничения с помощью различных параметров объема обрабатываемых данных. Это касается и расчета только по синтетическим счетам и расчета данных по остаткам и оборотам и оборотам между счетами. В критичных по времени алгоритмах рекомендуется максимально сузить объем данных обрабатываемых этими режимами. Кроме ограничения обрабатываемых данных по отдельным видам итогов существует возможность указать системе список значений для обрабатываемых счетов и субконто. Это позволяет уменьшить объем обрабатываемой информации и соответственно увеличить производительность.

Чтобы получить при выполнении запроса или временного расчета объекта "БухгалтерскиеИтоги" только остатки на некоторый момент (например, на момент проводимого документа) следует указать только одну границу интервала (например, конечную). В этом случае не будут выполняться лишние действия по обработке проводок.

Заметим, что выполнение запроса и временного расчета объекта "БухгалтерскиеИтоги" оптимизировано для получения данных на момент последних введенных операций месяца. То есть при последовательном вводе и

проведении документов, если в процессе их проведения выполняется расчет итогов на момент документа, то получение итогов будет выполняться быстрее, чем, например, на момент документа, после которого в данном месяце следует большое количество операций.

Выполнение временного расчета система автоматически оптимизирует, если его граница указана как документ, который в данный момент является первым или последним в данном месяце.

При обращении к функциям остатков и оборотов объекта "БухгалтерскиеИтоги" по объектам аналитики без выполнения запроса следует учитывать следующее обстоятельство: получение итогов по счету с указанием значений всех субконто по которым ведется аналитический учет по данному счету происходит быстрее, чем в случае указания только некоторых субконто. Итоги по аналитическому учету хранятся системой с полной детализацией (хранится итог со всеми значениями субконто). Получение итогов свернутых хотя бы по одному субконто требует суммирования детальных итогов. Замедление будет зависеть от реального количества итогов по сворачиваемым субконто. Например, при обращении к функции СКД по счету, по которому ведется учет по номенклатуре и по складам, итог по определенному товару по конкретному складу будет вычисляться практически мгновенно. Получение итога по конкретному товару по всем складам будет выполняться несколько медленнее, так как будут суммироваться остатки товара на разных складах, а получение итога по складу без учета товара, очевидно, может выполняться существенно медленнее, так как будут суммироваться остатки всех товаров на данном складе. Однако описанный принцип не распространяется на получение итогов по счетам в целом (без учета аналитики вообще), так как итоги по синтетическим счетам система хранит отдельно.

Получение развернутых сальдо может потребовать достаточно продолжительного времени, при большом количестве итогов по объектам аналитики или по субсчетам.

Система бухгалтерских итогов хранит рассчитанные итоги только по счетам, не имеющим субсчетов. При получении итогов по счетам-группам выполняется суммирование данных по входящим в них субсчетам. Разумеется, данное свойство может существенно сказаться на времени обращения к итогам только при большом количестве субсчетов.

Аналогично итоги по субконто типа "Справочник" хранятся только по элементам. Поэтому получение итогов по группам справочника может выполняться значительное время при большом количестве элементов в группе. При получении итогов объектом "БухгалтерскиеИтоги" в режиме "Запрос" формирование итогов по счетам-группам и группам справочников не сильно замедляет выполнение операции, так как обычно извлекаются не только итоговые, но и детальные данные.

При использовании в конфигурации разделителя учета получение итогов с помощью объекта "БухгалтерскиеИтоги" может выполняться заметно дольше, если не указать конкретное значение разделителя учета, то есть получать итоги по всем значениям. Система хранения бухгалтерских итогов оптимизирована для получения данных по отдельным значениям разделителя учета, так как такие обращения выполняются значительно чаще. Рекомендуется указывать объекту "БухгалтерскиеИтоги" конкретное значение разделителя учета во всех случаях, кроме тех, когда действительно необходимо получить данные по всем значениям разделителя учета.

При использовании объекта "БухгалтерскиеИтоги", часто существует возможность получения одной и той же информации как с помощью непосредственного обращения к итогам, так и с путем выполнения запроса. Разумеется, чаще всего решение принимается, прежде всего, с точки зрения оптимизации производительности. Обычно, если необходимо получить большое количество итогов, например остатки по всем материалам, то выполнение запроса и обход его результатов будет эффективнее, чем обход справочника и обращение к методам получения итогов по каждому элементу справочника. Разумеется, сравнение этих двух вариантов в конкретном алгоритме следует проводить в "боевых условиях", то есть в разделенном режиме (при использовании сетевой версии), на реальной нагрузке системы и на реальных объемах информации. Заметим, что если необходимо получение итогов по отдельным значениям, а не по всему списку, то при использовании запроса существует возможность с одной стороны ограничить выборку списком значений (счетов или объектов аналитики), а с другой стороны в уже сформированном запросе не перебирать все значения подряд, а выбирать итоги по отдельным значениям. При работе с версией 1С:Предприятия для SQL использование запросов может быть еще более эффективно по сравнению с обращением к отдельным итогам в связи с тем, что большинство запросов оптимизируется средствами MS SQL Server.

В отдельных случаях использование объекта "БухгалтерскиеИтоги" может быть оптимизировано с помощью применения метода "Акутальность". Прежде всего, он применяется в монопольном режиме для оптимизации группового перепроведения документов средствами встроенного языка. В типовой конфигурации 1С:Бухгалтерии 7.7 такая оптимизация реализована в обработке "ОбработкаДокументов".

Для получения бухгалтерских данных (операций, проводок, итогов) может быть использован как специализированный объект "БухгалтерскиеИтоги" компоненты "Бухгалтерский учет", так и универсальный объект 1С:Предприятия "Запрос", который также может оперировать бухгалтерскими объектами. С точки зрения производительности в боль инстве случаев объект "БухгалтерскиеИтоги" использовать целесообразнее, так как он оптимизирован для работы именно с бухгалтерскими данными. Кроме того, использование специализированного объекта проще с точки зрения определения состава информации, которую необходимо получить. Объект "Запрос" обладает более широкими возможностями настройки при обращении к различным данным 1С:Предприятия. Его целесообразно использовать в тех случаях, когда средства объекта БухгалтерскиеИтоги" не позволяют получить информацию с необходимой выборкой или в необходимых разрезах. Обычно это необходимо тогда, когда в олучаемой информации должны быть задействованы не только чисто

бухгалтерские данные, но и другая информация. Например, с помощью объекта "Запрос" можно получить остатки по счету в разрезе значений реквизита справочника, выступающего в качестве субконто счета. Такая информация может потребоваться для получения остатков по видам основных средств, хранящихся в справочнике основных средств, в качестве реквизита.

Обращение к бухгалтерским итогам в тех конфигурациях, в которых используется разделитель учета

Если в настройке планов счетов в конфигурации установлен разделитель учета, то при использовании объекта "БухгалтерскиеИтоги" существует возможность указывать конкретный разделитель учета (с помощью метода "ИспользоватьРазделительУчета") или получать итоги по всем значениям разделителя учета. Механизм компоненты "БухгалтерскийУчет" оптимизирован для получения итогов по конкретным значениям разделителя учета. Обращение к итогам по всем значениям производится существенно медленнее. На практике в большинстве случаев обращение к бухгалтерским итогам выполняется именно по конкретным значениям разделителя учета. Рекомендуется во всех случаях использования объекта "БухгалтерскиеИтоги" устанавливать конкретное значение разделителя учета, кроме тех случаев, когда получение итогов по

всем значениям действительно необходимо.

Заметим, что часто из-за особенностей решаемой задачи в алгоритме, в котором не указан конкретный разделитель учета, данные формируются вполне правильно. Например, в информационной базе реально введено только одно значение разделителя учета. В этих случаях тот факт, что конкретный разделитель учета не задан, будет сказываться только на производительности, и может быть не обнаружен при тестировании. Таким образом, при работе с конфигурациями, в которых используется разделитель учета, следует внимательно следить за использованием объекта "БухгалтерскиеИтоги" в разрабатываемых алгоритмах.

Бухгалтерские отборы

При разработке конфигурации с использованием компоненты "Бухгалтерский учет" весьма важным моментом с точки зрения производительности является установка режимов отбора для бухгалтерский объектов. Существует несколько режимов отборов, которые можно установить в конфигурации для объектов метаданных, специфичных для компоненты "Бухгалтерский учет":

· Отборы по данным операции (сумме операции, содержанию, реквизитам операции)

· Отборы по данным проводки (сумме, количеству, валютной сумме, валюте, реквизитам проводки)

· Отбор по счетам (в целом, с ограничением по уровням, по дебету/кредиту)

· Отбор по видам субконто.

Как и графы отбора документов, отборы бухгалтерский объектов могут использоваться как для ограничения визуального просмотра журнала операций и журнала проводок, так и для оптимизации получения различных итогов, а также выборки операций и проводок в различных алгоритмах. Для конфигураций, которые предполагается использовать на предприятиях с небольшим объемом проводок, можно задействовать те виды отборов, которые удобны пользователю для просмотра журналов. Однако для предприятий с большим объемом проводок рекомендуется внимательно рассмотреть целесообразность включения отборов, так как их использование может оказать существенное влияние на производительность системы.

Прежде всего, рекомендуется проанализировать те отборы, которые используются исключительно для удобного просмотра журналов. Обычно это отборы по данным операций и проводок (суммам, содержанию, дополнительным реквизитам). Можно рекомендовать отключить такие отборы, так как они несколько замедляют запись операций, а при большом объеме информации реально могут и не применяться пользователями. Разумеется, отборы по данным проводок используют больше ресурсов системы, так как самих проводок обычно существенно больше чем операций.

Так, например, отбор по сумме проводки, может использоваться только для удобства визуального просмотра, но при большом объеме проводок вероятность его реального использования невысока. Вместо отключенных отборов можно рекомендовать пользователям применять различные режимы поиска в журналах, а также различные отчеты.

Отдельно следует рассмотреть отбор по реквизиту проводки, используемым в качестве разделителя учета, так как его наличие используется системой для получения различных итогов, ограниченных разделителем учета.

Отбор по счетам играет особую роль среди бухгалтерских отборов. В отличие от отборов по данным операции и проводки, отбор по счетам требует больше ресурсов, так как одна проводка может относиться к нескольким счетам. Для поддержания отбора по счетам ведется специальная таблица вхождения проводок в отборы по конкретным счетам. В зависимости от установок отбора по счетам туда могут включаться, в том числе, и вхождения проводок в счета-группы в случае, если в проводке используется субсчет. В этом случае ресурсы системы расходуются тем больше, чем больше средний уровень вложенности счетов, используемых в проводках. Отдельный режим включает возможность использования отбора отдельно по дебету и кредиту проводки. Он также увеличивает время записи проводки. С другой стороны отбор по счетам не только обеспечивает удобный режим выборочного просмотра проводок, но и активно используется системой при получении различных данных объектом "БухгалтерскиеИтоги". Например, при получении карточки счета или анализа счета по датам.

При проектировании конфигурации следует соотнести частоту формирования таких отчетов и затраты ресурсов системы (как по объему данных, так и по времени записи операции). Например, можно предложить следующее компромиссное решение. Отбор по счетам включается, но не включается отбор по дебету/кредиту. При этом отключается режим "для всех" и устанавливается параметр "количество уровня" равным 1. В этом случае доступным будет отбор проводок только по счету в целом, то есть не будет возможность просмотра проводок в дебет или кредит конкретного счета, а только всех проводок с данным счетом. Кроме того, отбор в журнале проводок можно будет установить только по счету верхнего уровня, и нельзя будет отобрать проводки по отдельному субсчету. Однако возможность отбора проводок по некоторому счету 1го уровня в большом количестве случаев будет вполне удобна. С другой стороны для большинства обращений к объекту "БухгалтерскиеИтоги" по конкретному счету данный отбор позволит существенно оптимизировать получение необходимых данных, даже в случае если происходит обращение к

итогам по субсчету.

Аналогично следует рассмотреть установку отборов по видам субконто. Как и отбор по счетам отбор по субконто используется не только для удобного просмотра проводок по конкретному объекту аналитики, но и используется объектом "БухгалтерскиеИтоги" при обращении к бухгалтерским итогам и операциям по конкретному субконто, например, для получения карточки субконто. Так как каждая проводка может включать разные объекты аналитики, то для поддержания такого отбора ведется специальный список, в котором отмечаются все вхождения проводки в отборы по тем видам субконто, в которых включен отбор в конфигурации. То есть количество записей в этом списке будет зависеть от частоты использования в проводках значений субконто тех видов, для которых в конфигурации установлен режим отбора. При проектировании конфигурации следует соотнести необходимость быстрого получения отчетов по отдельным объектам аналитики конкретных видов с затратами ресурсов системы на поддержание отбора по субконто. При

отсутствии необходимости быстрого формирования отчетов по отдельным объектам аналитики можно рекомендовать не включать отборы по субконто. Очевидно, что не имеет смысла включать отбор по тем видам субконто, количество значений которых невелико, например, по перечислениям. Значительный эффект при построении отчета может быть получен по тем видам субконто, которые имеют большой разброс значений в проводках, например, по организациям-контрагентам или товарам. Рекомендуется включить отбор только для тех видов субконто, для которых это действительно необходимо и дает ощутимый результат. Если отбор по субконто не дает существенного выигрыша при работе с бухгалтерскими итогами, то при большом объеме проводок можно рекомендовать не использовать данный отбор для визуального просмотра проводок и отключить его в конфигурации. Это уменьшит время записи проводок.

Следует заметить, что при работе с базами данных в формате SQL существенно меняется производительность выборки данных объектом "БухгалтерскиеИтоги" и выборки проводок объектом "Операция". Поэтому для этих информационных баз, часто, отпадает необходимость в использовании бухгалтерских отборов для

оптимизации построения отчетов и выполнения расчетов. Кроме того, и визуальный отбор в журналах при работе с базами данных в формате SQL может быть заменен построением соответствующих отчетов. Таким, образом, в большинстве случаев при переходе на версии для SQL имеет смысл рассмотреть возможность отключения бухгалтерских отборов, так как их поддержание также будет требовать определенных ресурсов при записи операций, а выигрыш от их использования, возможно, будет не существенным.

Использование "длинных путей" при записи операции

При формировании проводок в процессе проведения документа в алгоритмах определяющих различные данные проводки рекомендуется не обращаться к данным субконто или счетов через атрибуты объекта, "Операция", а обращаться через те переменные или реквизиты документа на основании которых эти данные заполняются. Обращение к характеристикам субконто и счетов через уже заполненные атрибуты проводки может существенно снизить производительность, так как при каждом обращении будет выполняться поиск значений типа "справочник", "документ" или "счет" в информационной базе.

Оптимизация работы Регистров оперативного учета

Регистры остатков

С точки зрения работы конфигурации состав регистров остатков должен проектироваться таким образом, чтобы обеспечивать хранение текущих остатков материальных и денежных средств в том количестве разрезов, которое необходимо для обеспечения логики работы системы и так, чтобы структура регистров максимально отражала принятую на предприятии систему учета.

При проектировании регистров следует учитывать следующие их особенности с точки зрения хранения информации. Каждый регистр в информационной базе представлен движениями и остатками. Движения непосредственно записываются документами и используемые при этом ресурсы системы пропорциональны количеству движений и объему хранимой в них информации. Остатки регистров поддерживаются системой автоматически. Количество хранимых остатков легко определить как количество реально встречающихся в движениях сочетаний значений измерений регистров в данном периоде. Например, если регистр учитывает товары только в разрезе номенклатуры, то количество записей остатков в месяц будет равно количеству товаров с ненулевыми остатками на начало месяца и тех, по которым проходили движения в этом месяце. Если добавить измерение "Склад", то при двух складах, на которых хранятся одни и те же товары количество записей в остатках регистров возрастет примерно вдвое. Однако, если ввести измерение "Партия" в котором будет записываться приходный документ, то количество записей хранимых остатков заметно возрастет при большом количестве приходных документов.

При проектировании регистров остатков важно следить за их использованием по прямому назначению. Следует иметь в виду, что при открытии периода выполняется перенос из предыдущего периода только ненулевых итогов регистров остатков. Типичной ошибкой является использование регистров остатков не для хранения остатков, а для произвольной записи некоторых данных по документу. В этом случае обычно не происходит списания остатков, и остатки все время переносятся на следующий период, отчего размер информационной базы существенно растет. Регистры остатков должны использоваться только в том случае, если в них учитываются именно остатки. То есть если существуют виды документов, которые выполняют запись движений типа "Приход" по данному регистру, то должны существовать и виды документов, которые записывают по этому регистру движения типа "Расход". Причем эти записи должны быть сбалансированы таким образом, что текущий остаток должен отражать реально существующий остаток материальных или денежных средств, например, наличие денег на расчетном счету, задолженность покупателей и т.д. При этом информация о проданных партиях, товарах, старых клиентах обнуляется соответствующими движениями документов и не хранится в последующих периодах.

При проектировании регистров следует соотносить необходимость получения некоторой отчетной информации с затратами ресурсов системы на поддержание регистров. В основном регистры остатков должны использоваться для поддержания той информации, которую собственно нельзя получить из документов, например, остатков товаров или состояния взаиморасчетов.

Решения, принимаемые при проектировании конкретной структуры регистров, обычно влияют в дальнейшем на большую часть алгоритмов конфигурации. Следует заметить, что для решения одной и той же задачи структура регистров может быть спроектирована по-разному. Причем нельзя утверждать, что в каждой ситуации существует один единственно правильный способ организации структуры регистров. Поэтому выбор структуры регистров определяется на основе опыта специалиста и тех требований, которые предъявляются к функционированию конфигурации.

Одним из важных вопросов, которые приходится решать при проектировании структуры регистров является вопрос об измерениях, которые используются не во всех движениях. Например, при создании структуры регистров для учета различных материальных ценностей можно создать один регистр с измерениями "ТМЦ" и "Партия". В этом случае для тех видов ТМЦ, по которым не ведется партионный учет, данное измерение будет оставаться пустым. С другой стороны можно создать два отдельных регистра, в одном из которых измерение "Партия" будет отсутствовать. В этом случае движения по тем видам ТМЦ, по которым ведется партионный учет, будут записываться в один регистр, а по тем, по которым не ведется - в другой. Создание двух регистров в данном примере позволяет несколько снизить размер информационной базы, так как записи по видам ТМЦ без партионного учета будут короче. Однако, существенного выигрыша в быстродействии при этом не будет. Разумеется, при большом количестве неиспользуемых измерений разница в быстродействии при обращении к регистру будет более заметна. Использование одного регистра вместо двух в данном примере имеет ряд преимуществ с точки зрения технологичности написания самой конфигурации, особенно в том случае, если в зависимости от различных настроек по некоторым видам ТМЦ может включаться и отключаться ведение партионного учета.

На практике, выбор осуществляется более чем из двух вариантов. Отрицательными можно считать, как стремление поместить все возможные виды учета в один регистр, так и сделать очень большое количество регистров для различных комбинаций измерений. Разумеется, не следует объединять в один регистр данные, по которым состав используемых измерений в разных движениях вообще никогда не пересекается, например, объединять в один регистр учет взаиморасчетов и учет товаров.

Другим вопросом проектирования регистров с точки зрения производительности является введение в структуру регистров определенной избыточности для повышения эффективности обращения. Типичным примером такой избыточности является создание "дублирующих" регистров с уменьшенным составом измерений, которые используются для оптимизации обращения к итоговым значениям. Например, при ведении партионного учета товаров (измерения регистра "Товар" и "Партия") может быть создан дополнительный регистр с одним измерением "Товар". При этом каждая операция по приходу или расходу товара должна отражаться в учете движениями по двум регистрам. Так как реально в остатках регистров хранятся только детальные записи, то при наличии только одного регистра обращение к остатку по товару в целом потребует от системы обхода всех остатков по данному товару по разным партиям. Наличие второго регистра позволит при обращении к итогам по товару получать его практически мгновенно. Разница в скорости будет зависеть от количества остатков по различным партиям одного и того же товара. Следует заметить, что при введении второго регистра будет оптимизироваться получение итогов по одному товару, но будет замедляться запись движений регистров, так как будет реально выполняться запись в два регистра. Таким образом, решение о создании дублирующего регистра принимается на основании анализа требований к производительности записи движений с одной стороны и конкретных запросов к итогам регистра с другой. Разумеется, приведенные выше аргументы не относятся к случаям, когда второй регистр создается не для оптимизации, а для отражения особенностей учета. Например, в одном регистре товары учитываются в количественном выражении в разрезе складов, а в другом - в суммовом выражении в разрезе партий. Данная структура обусловлена требованиями методологии учета и не связана с оптимизацией производительности. Заметим, что обычно не следует создавать дублирующие регистры для оптимизации выборки итогов с фильтрацией значений измерений в другом порядке, нежели в основном регистре. В версии 7.7 для оптимизации доступа к итогам при установленном фильтре (или условии запроса) по отдельным измерениям регистра (не слева - направо) используется признак "Отбор итогов", устанавливаемый в свойствах измерения. Использование отборов рассматривается в отдельном разделе.

Следует учитывать, что приведенная аргументация справедлива в основном для конфигураций работающих с базами данных в формате DBF/CDX. При работе с базами данных в формате SQL доступ к итогам регистров существенно ускоряется и не так сильно зависит от структуры регистров.

Оборотные регистры

Особо следует отметить конфигурирование оборотных регистров. В отличии, от регистров остатков оборотные регистры часто содержат информацию, которая примерно в таком же составе присутствует в документах. При этом создание оборотного регистра может быть обусловлено двумя соображениями. Во-первых, наличие оборотного регистра позволяет получить мгновенно некоторую накопленную сумму в определенном разрезе, являющуюся не состоянием наличия средств, а суммой некоторых движений за определенный период. Такая, необходимость может возникнуть, например, если при проведении документа процент скидки клиенту определяется исходя из объемов закупки данным клиентом с начала месяца, или, например, если существует необходимость в очень быстром получении отчета за некоторые периоды об объемах продажи клиентам.

Во-вторых, наличие оборотного регистра позволяет жестко регламентировать отражение, некоторых фактов хозяйственной деятельности при проведении документа. Например, факт продажи конкретному клиенту конкретного товара в оборотном регистре можно фиксировать из документов разных видов. При построении отчета о продажах можно будет получать информацию не из нескольких документов разной структуры, а из единого регистра, что избавит также от возможных расхождений в отчетах из-за изменений документов без перепроведения. При появлении нового вида документа, отражающего продажу товаров, запись данных о продажах в регистр позволит не модифицировать все существующие отчеты, а только реализовать в алгоритме проведения нового документа запись движений по данному оборотному регистру.

С другой стороны введение оборотного регистра, разумеется, требует дополнительных ресурсов. С точки зрения движений оборотный регистр полностью аналогичен регистру остатков. А в части итогов объем хранимой информации зависит от выбранного периода оборотного регистра. В периодах с "дня" до "месяца" объем информации будет пропорционален количеству данных периодов в месяце при постоянном наборе значений. Разумеется, если каждый день продавать товары разным клиентам, то объем информации при периоде день и месяц будет практически одинаковым. То есть объем хранимых записей в итогах оборотного регистра за период будет равен количеству реально встретившихся в данном периоде сочетаний значений измерений регистра. Заметим, что периоды "квартал" и "год" по используемым ресурсам несколько превосходят период "месяц", так как для обеспечения возможности переноса ТА реально хранятся итоги и за каждый месяц тоже.

Таким образом, следует внимательно относиться к оценке целесообразности создания оборотных регистров, особенно с маленьким периодом хранения итогов. Часто, реально не существует необходимости в мгновенном получении итогов по оборотам, а аналогичную информацию можно получить с помощью запроса к существующим регистрам остатков или документам. Очевидно, наиболее веским аргументом для создания оборотного регистра может служить необходимость получения некоторого оборота на текущий момент при проведении документа или необходимость четко регламентировать отражение, некоторых фактов хозяйственной деятельности при проведении документов различных видов. Заметим, что при работе с базами данных в формате SQL роль оборотных регистров с точки зрения оптимизации построения отчетов существенно

снижается.

Использование реквизитов регистров

Весьма полезным свойством регистров является возможность создания реквизитов. В отличие от измерений и ресурсов реквизиты регистра присутствуют только в движениях регистра и весьма незначительно снижают его производительность. Фактически, реквизит регистра позволяет записывать некоторое значение, характеризующее конкретное движение регистра. И хотя реквизиты никак не влияют на механизм получения остатков по регистру, они могут позволить решить достаточно много задач, возникающих при построении отчетов или алгоритмов обработки.

Реквизиты регистров могут использоваться для получения запросов с некоторой выборкой движений. Классический пример, это разделение движений товаров с помощью реквизита регистра на внутренние и внешние, что позволяет получить отчет о приходе/расходе товаров без учета внутренних перемещений. Другим примером, может являться получение дополнительных итогов по движениям регистров, то есть тех сумм, которые не учитываются в ресурсах, так как по ним не имеют смысла остатки.

При выполнении запроса обращение к реквизиту и несколько эффективнее, чем к данным документа и более однозначно, особенно если движения делаются документами разных видов и по строкам многострочной части. Таким образом, если в запросах при получении данных по движениям регистров возникает необходимость обращения к некоторым данным документа, записавшего движение регистра, то рекомендуется модифицировать конфигурацию таким образом, чтобы необходимые данные записывались в качестве реквизитов регистра. Например, если возникает необходимость выбирать движения регистра по определенным видам документов, то запись в реквизит регистра вида документа или некоторого кода хозяйственной операции и обращение в запросе к реквизиту регистра будет существенно эффективнее, чем обращение в запросе к методу "Вид" текущего документа регистра. Особенно сильно разница в производительности будет проявляться при работе с базами данных в формате SQL.

Периодичность сохранения итогов

Существенным инструментом регулирования производительности регистров при проведении документов задним числом является управление периодичностью хранения итогов. Заметим, что установка периодичности выполняется не в конфигурации, а собственно в информационной базе. Это позволяет на конкретном предприятии подобрать ту периодичность, которая обеспечивает наилучший компромисс между объемом хранимой итоговой информации с одной стороны, и скоростью расчета итогов не некоторый момент времени с другой. Уменьшение периода сохранения итогов пропорционально увеличивает объем хранимой информации, но позволяет в среднем быстрее рассчитывать итоги на некоторый момент времени.

Получение итогов на некоторый момент времени обычно требуется в двух случаях.

Во-первых, при проведении документа задним числом для получения остатков на момент проведения документа. Однако, как отмечалось в разделе посвященном проведению документа, само проведение задним числом не должно проводиться часто. Работа с системой должна быть организована таким образом, чтобы проведение задним числом происходило в порядке исключения.

Во-вторых, расчет итогов на некоторый момент требуется при получении отчетов за некоторый период времени, начинающийся не с начала периода (запрос, выполняемый не с начала периода и обращающийся к ресурсам регистра, выполняет расчет итогов на момент начала запроса). Заметим, что часто отчеты, содержащие информацию об остатках, формируются за целые периоды и при этом не происходит расчет остатков на начало периода, да и построение отчета обычно не требует такой скорости, как расчет итогов при проведении документа.

Таким образом, ориентация компоненты "Оперативный учет" на работу с текущими итогами требует построения конфигурации с минимальным обращением к расчету итогов на произвольный момент. То есть, не всегда следует начинать "борьбу" за производительность с уменьшения периодичности хранения итогов. В начале целесообразнее рассмотреть случаи выполнения временных расчетов на некоторый момент времени и постараться уменьшить частоту их возникновения.

Заметим, что настройка периодичности хранения итогов используется в основном для конфигураций работающих с базами данных в формате DBF/CDX. При работе с базами данных в формате SQL процедура временного расчета существенно ускоряется и не так сильно зависит от периодичности хранения итогов.

Обращение к данным регистров

Запись движений регистров по времени выполнения достаточно предсказуема.

Время, затрачиваемое системой, при записи движений пропорционально количеству записываемых движений. Оно также в определенной степени зависит от количества измерений регистра. При проведении документов задним числом, в периодах предшествующих точке актуальности дополнительное время тратится системой на поддержание итогов регистра от периода документа до периода точки актуальности.

Приведем некоторые сведения касающиеся производительности системы при получении данных регистров.

Движения регистра и итоги регистра можно получать с помощью запросов (объект "Запрос") или методов объекта "Регистр". Разница заключается в том, что при выполнении запроса формируется промежуточный массив информации, который затем может многократно использоваться системой. При использовании методов объекта "Регистр" происходит непосредственное обращение к данным движений и итогов регистра. Однако, метод "ВыгрузитьИтоги" объекта "Регистр" также позволяет многократно обращаться к итогам полученным в виде таблицы значений.

Обращение к движениям регистра, как из запроса, так и методами объекта "Регистр" выполняется последовательным обходом всех движений данного регистра всех документов, которые имеют движения по данному регистру. Использование условий запроса или фильтра с точки зрения объема выбираемых данных из информационной базы может ускорить выполнение операции только при наличии соответствующих граф отбора или отборов измерений или реквизитов регистра. Оптимизация с помощью граф отбора подробно описана в разделе "Графы отбора". Оптимизация с помощью отборов измерений и описана в разделе "Использование отборов регистра". Если подходящей для оптимизации графы отбора или отбора самого регистра нет, движения регистра выбираются системой последовательно. При этом использование условия запроса или фильтра уменьшает только количество выполняемых строк встроенного языка, но не количество данных выбираемых из информационной базы.

Обращение к итогам регистров (остаткам регистров остатков и итогам оборотных регистров) также может выполняться и из запроса и методами объекта "Регистр". Заметим, что получение данных типа "Приход", "Расход" регистров остатков в запросе, реально требуют обработки движений регистра, то есть время их выполнения будет зависеть от количества движений за указанный интервал. Непосредственно из хранимых итогов регистров выбираются только остатки (итоги для оборотных регистров) на текущий момент (ТА) и на границу периода выбранного в качестве периода сохранения итогов оперативного учета (например, месяц). Итоги на другие моменты времени получаются на основании обработки остатков на начало периода, и обработки движений от начала периода до выбранного момента. При выполнении запроса это происходит автоматически, а при использовании методов объекта "Регистр" при вызове процедур "РассчитатьРегистрыНа" или "РассчитатьРегистрыПо". При выборке итогов (например, текущих остатков регистра остатков) использование фильтра значительно ускоряет процесс выборки при указании нескольких значений измерений начиная с самого первого, так как реально в этом случае обходятся только остатки ограниченные указанными значениями измерений. Аналогично и при выполнении запроса, выбирающего остатки по регистру, если в условиях указаны в качестве явного равенства значения нескольких первых измерений регистра, то выборка будет производиться существенно быстрее. То есть, при проектировании структуры регистра весьма важен порядок следования измерений. Он должен выбираться таким образом, чтобы обеспечить оптимальную выборку остатков в критичных по производительности алгоритмах.

Например, если в качестве одного из измерений будет выступать приходный документ для разделения остатков товаров по партиям, то он должен быть последним измерением, так как в момент списания товаров будут выбираться текущие остатки конкретного товара по разным партиям. Для оптимизации получения остатков (итогов) регистров с фильтрацией по отдельным измерениям используется механизм отборов, который описывается в разделе "Использование отборов регистров".

Методы получения конкретного остатка (итога оборотного регистра) с указанием всех измерений выполняются практически мгновенно. Методы получения сводных остатков (итогов для оборотного регистра) реально выполняют обход всех итогов ограниченных значениями указанных измерений. Если измерения регистра "Товар" и "Склад" и выполняется метод "СводныйОстаток" с указанием товара, то реально будут обрабатываться все остатки данного товара на разных складах. То есть, скорость выполнения данного метода зависит от среднего количества существующих комбинаций значений неуказанных измерений в пределах значений указанных измерений. Таким образом, использование методов получения сводных остатков (итогов) в интерактивных режимах (например, вычисляемых полях форм) нежелательно, особенно при большом разбросе значений измерений, по которым производится подсчет остатков.

Если при обращении к сводным остаткам (итогам) пропускаются значения некоторых первых измерений, а указываются значения последующих, то получение результата может выполняться достаточно медленно. В приведенном примере получение сводного остатка по складу, без указания товара реально потребует обработки всех остатков регистра данного периода.

При выполнении временного расчета ("РассчитатьРегистрыНа" или "РассчитатьРегистрыПо") следует учитывать то, что временный расчет, при неизменном составе объектов типа "Регистр" для которых он включен, может выполняться "поступательно". То есть, если временный расчет выполнен на некоторую дату или документ, то следующий вызов временного расчета с датой (документом) более поздним, чем предыдущее выполнение реально будет обрабатывать только движения документов, расположенных между предыдущей

границей временного расчета и указанной в данном вызове. Разумеется, между этими вызовами не должны уничтожаться объекты типа "Регистр", для которых был установлен временный расчет, не должен включаться или выключаться признак временного расчета у объектов типа "Регистр". Также не должны меняться настройки фильтров участвующих во временном расчете регистров.

Аналогично при выполнении запроса, который определяет остатки регистров с разбивкой по периодам обработка движений, будет выполняться поступательно, то есть запрос будет рассчитывать итоги на границу указанного интервала, формировать нужные итоги, затем рассчитывать итоги до следующей границы интервала и т.д.

Использование отборов регистра

В версии 7.7 в свойствах регистров появилась возможность устанавливать признаки отбора для измерений и реквизитов.

В отличие от отборов других объектов метаданных отборы регистров используются только для повышения производительности обработки регистра и никак не влияют на работу пользователя с конфигурацией в интерактивных режимах.

Для измерений регистра может быть установлено два вида отборов "Отбор итогов" и "Отбор движений". Отбор итогов позволяет оптимизировать обращение к итогам по отдельному значению измерения, у которого установлен отбор. Отбор движений позволяет оптимизировать обработку движений, выбираемых по конкретному значению измерения, для которого установлен отбор.

Для реквизитов может быть установлен только признак "Отбор движений", который позволяет оптимизировать обработку движений, выбираемых по конкретному значению реквизита, для которого установлен отбор.

Установка отборов по измерениями и реквизитам влияет на производительность объектов типа "Запрос" и "Регистр". Причем оптимизация происходит только в том случае, если при обращении указывается конкретное значение соответствующего измерения или реквизита. Система не использует отборы при выборке по группе справочника и при выборке по списку значений.

При использовании объекта "Запрос" оптимизация выполняется системой при обработке данных регистра, если существует условие равенства переменной запроса, относящейся к измерению или реквизиту регистра, для которого установлен признак "Отбор".

Признак "Отбор итогов" будет оптимизировать получение функций "НачОст" и "КонОст". Признак "Отбор движений", соответственно, будет оптимизировать получение функций "Приход" и "Расход". Если запрос выполняет получение остатков не на начало периода и не на ТА, то признаки "Отбор движений" будут также использоваться для оптимизации получения остатков на нужный момент.

При использовании объекта "Регистр" оптимизация выполняется системой при установке в фильтре регистра значения измерения или реквизита, для которого установлен признак отбора. Причем оптимизация будет выполняться только в том случае, если в качества значения фильтра указывается конкретное значение (не группа справочника и не список значений).

Признак "Отбор итогов" будет оптимизировать выполнение методов "ВыбратьИтоги" / "ПолучитьИтог", а также "ВыгрузитьИтоги". Признак "Отбор движений", соответственно, будет оптимизировать выполнение методов "ВыбратьДвижение" / "ПолучитьДвижение", "ВыбратьДвижениеСОстатками", а также выполнение временного расчета (выполнение функций "РассчитатьРегистрыНа" и "РассчитатьРегистрыПо").

При работе с объектами "Запрос" и "Регистр" система автоматически использует существующие отборы регистров, если это возможно. Никаких специальных указаний для использования отборов при этом не требуется. При наличии нескольких подходящих отборов система выбирает наиболее эффективный, основываясь на количестве возможных значений тех данных, для которых установлен отбор. Например, если в запросе заданы условия по двум измерениям регистра "Товар" и "Склад", и для обоих в настройке регистра установлен признак отбора, то будет использован отбор по тому измерению, в справочнике которого больше элементов. Вероятнее всего это будет измерение "Товар".

Для оптимизации обращений к движениям регистра использование отборов регистров обычно предпочтительнее, чем применение граф отбора документов.

Во-первых, графа отбора требует больше ресурсов при записи и проведении документа, так как для нее поддерживается специальная таблица вхождения документов в отборы по конкретным значениям. При использовании отбора регистра фактически создается только дополнительный индекс и несколько расширяется структура существующей таблицы движений регистра.

Во-вторых, при использовании для оптимизации выборки движений регистров граф отбора, оптимизируется только выборка документов, в которых выполнялись движения по интересующему значению. При использовании отборов регистров выбираются непосредственно необходимые движения. Особенно ощутимо эта разница будет проявляться в том случае, если по одному документу формируется большое количество движений. Например, если нужно оптимизировать выборку движений по конкретному товару и основной объем движений записывается многострочными документами, то при использовании графы отбора будет оптимизировано получение всех документов, в которых задействован данный товар, и по каждому полученному документу будут перебираться все движения. При использовании отбора движений система сразу выберет необходимые движения по искомому товару из всех документов.

При проектировании регистров следует взвешенно относиться к включению отборов по измерениям и реквизитам. Необходимость включения тех или иных отборов рекомендуется определять исходя из потребностей в оптимизации конкретных алгоритмов конфигурации, например, алгоритмов проведения документов или часто формируемых отчетов.

Не рекомендуется включать большое количество отборов, так как это может ощутимо замедлить запись движений регистров. Следует иметь в виду, что реально в каждом обращении к регистру система использует только один отбор. Поэтому имеет смысл включать отбор по тем измерениям и реквизитам регистров, по значениям которым реально выполняется выборка в критичных по производительности алгоритмах. Причем для установки отбора целесообразно выбирать измерения и реквизиты того типа данных, который имеет большое количество значений. Очевидно, что установка отбора по складу не даст существенный эффект, так как будут отбираться, например, движения по конкретному складу из нескольких существующих складов, что увеличит производительность всего в несколько раз. Тогда, как установка отбора по товару, при наличии в справочнике нескольких сотен или тысяч товаров, соответственно даст выигрыш при выборке по конкретному товару в сотни или тысячи раз.

При установке признаков "Отбор итогов" для измерений регистров следует учитывать, что система оптимизирована для получения итогов по установленным значениям измерений слева - направо. То есть выборка итогов, при установленных условиях или значениях фильтра нескольких первых измерений будет выполняться оптимально без использования отборов. Поэтому установка отборов по итогам имеет смысл, если существуют критичные по производительности обращения к итогам регистра в которых выполняется выборка по конкретному значению некоторого измерения, но при этом хотя бы по одному из предыдущих измерений условие или значение фильтра не установлено. Например, если регистр имеет измерения "Товар" и "Партия" и необходимо получить все итоги по конкретной партии (по всем товарам), то установка отбора итогов по измерению "Партия" может дать весьма ощутимый эффект.

Заметим, что установка отборов не требует изменения алгоритмов конфигурации или перепроведения документов. Это значит, что Вы можете включить отбор, проанализировать полученный эффект в ходе реальной работы пользователей, а затем отключить отбор, если он не оказал существенного влияния на производительность. Однако в некоторых случаях для получения эффекта от включения отбора необходимо переписать алгоритмы конфигурации.

Например, если при проведении документа выполняется обращение к итогам регистра по списку значений, использование отбора не изменит производительности данного алгоритма. Если заменить обращение к итогам по списку значений на обращение по отдельным значениям, по которым установлен отбор, то такой алгоритм может оказаться эффективнее.

Заметим, что использование отборов регистров целесообразно в основном для конфигураций работающих с базами данных в формате DBF/CDX. При работе с базами данных в формате SQL доступ к движениям и итогам регистров существенно ускоряется, и применение отборов может не оказать влияния на производительность.

Использование признака "Быстрая обработка движений"

Для регистра в целом может быть установлен признак "Быстрая обработка движений". Этот признак оптимизирует обработку движений регистров при выполнении запросов обращающихся к движениям регистра, методов объекта "Регистр" выбирающих движения, а также выполнение временного расчета.

При обращении запроса или объекта "Регистр" к движениям регистра система анализирует все документы, выбирая движения по тем документам, по которым они записывались. Установка признака "Быстрая обработка движений" создает дополнительный индекс и расширяет структуру регистра дополнительными полями. Это позволяет системе выбирать сами движения регистра без анализа документов.

Установка данного признака дает увеличение производительности, если только незначительная часть документов записывает движения по данному регистру.

Таким образом, этот признак следует устанавливать только для тех регистров, по которым записываются движения редко используемыми документами.

При работе с базами данных в формате SQL применение данного признака не будет оказывать существенного влияния на производительность.

Оптимизация работы запросов

Основой оптимизации работы запросов является максимальное использование результатов запросов и минимальное обращение к другим данным информационной базы. Пример последовательной оптимизации запросов включен в методическую конфигурацию и описан в данной рубрике в разделе посвященном запросам.

Заметим, что правильное построение запроса особенно сильно сказывается на производительности при работе с базами данных в формате SQL. При этом идеальным решением является, например, заполнение отчета при котором вообще не выполняется обращений в к информационной базе, а используются только результаты сформированного запроса.

В этом разделе мы кратко перечислим основные моменты на которые следует обращать внимание при разработке и использовании запросов.

При построении отчетов по результатам запросов для вывода значений группировок являющихся справочниками имеет смысл применять метод запроса "ЗначениеУпорядочивания". Он будет использовать, например, уже полученные запросом наименования элементов, тогда как преобразование значения группировки к строке будет извлекать отдельные наименования из информационной базы.

При построении отчетов по результатам запросов для формирования отдельных секций по группам справочников следует применять не метод справочника "ЭтоГруппа", а метод запроса "ЭтоГруппа". Метод запроса будет использовать уже полученную запросом информацию о том является ли текущее значение группировки группой или нет, тогда как вызов метода справочника будет обращаться к информационной базе.

Например:

Неправильно:

Если Запрос.Товар.ЭтоГруппа()=1 Тогда

...

Правильно:

Если Запрос.ЭтоГруппа("Товар")=1 Тогда

...

Если необходимо обращаться к различной информации содержащейся в объектах, значения которых извлекаются запросом, например реквизитам элементов справочника, который является группировкой запроса, то целесообразно включать в запрос дополнительные переменные, для получения этих данных, а не обращаться через точку к значениям группировок сформированного запроса.

Данная рекомендация особенно актуальна при работе с базами данных в формате SQL.

Кроме того, если все-таки выполняется обращение к нескольким методам или атрибутам значения группировки (или другой переменной) сформированного запроса, то целесообразно не обращаться к этим данным через точку, а присвоить значение переменной запроса обычной переменной и обращаться через точку уже к ее атрибутам и методам. В этом случае обращение к данным информационной базы будет выполняться на одно значение справочника однократно. При обращении к нескольким атрибутам и методам для одного значения переменной запроса использование промежуточной переменной может дать существенное увеличение производительности.

Например:

Неправильно:

Пока Запрос.Группировка(1) = 1 Цикл

Сообщить("Товар"+Запрос.Товар.Код + " ВидТовара =

"+Запрос.Товар.ВидТовара );

КонецЦикла;

Правильно:

Пока Запрос.Группировка(1) = 1 Цикл

Тов=Запрос.Товар;

Сообщить("Товар "+Тов.Код + " ВидТовара = "+Тов.ВидТовара);

КонецЦикла;

В условиях запроса следует преимущественно использовать простейшие выражения сравнивающие непосредственно переменную запроса с переменной модуля или атрибутом контекста модуля. То есть желательно не использовать в условиях вызовы методов, функций, обращения через точку. Простейшие условия обрабатываются запросом наиболее эффективно. Данная рекомендация особенно актуальна при работе с базами данных в формате SQL. В некоторых случаях выполнение данной рекомендации может потребовать расширения структуры метаданных. Например, если при построении запросов анализирующих движения регистра требуется выбирать движения относящиеся только к расходным накладным, то рекомендуется не использовать в условии обращение типа "ТекДокумент.Вид()=ВыбранныйВид", а внести в структуру регистра дополнительный реквизит в котором отмечать при проведении документа движения сделанные именно расходной накладной. Это позволит в условии запроса указать простейшее выражение сравнивающее переменную запроса (соответствующую реквизиту регистра) с переменной модуля.

В условиях запроса целесообразно использовать оператор "В" применяемый для определение вхождения значений переменной запроса в группу справочника или счета, а также вхождения в список значений, который может содержать отдельные значение и группы справочников или счетов. Использование этого оператора существенно увеличивает производительность по сравнению с вызовом в условии метода "ПринадлежитГруппе". Оператор "В" в ряде случаев целесообразно также использовать для сравнения переменной запроса с несколькими значениями вместо отдельных выражений объединенных оператором "ИЛИ".

Повышение производительности в ряде случаев может достигаться многократным использованием результатов выполненного запроса с отбором из него необходимой информации вместо выполнения нескольких отдельных запросов. Обычным примером такого использования запросов является построение сложных

отчетов в которых при использовании данных одного запроса включаются также данные другого запроса, выбираемые по конкретным значениям группировок методом "Получить".

Такой подход может также использоваться при получении итогов по всем товарам входящим в табличную часть документа. При этом вместо выполнения отдельных запросов по каждому товару может быть выполнен запрос с условием, проверяющим вхождение товара в список значений содержащий товары, используемые в документе. Использование такого решения в приведенном примере с высокой вероятностью будет целесообразно при работе с базами данных в формате SQL. При работе с базой данных в формате DBF целесообразность данного решения во многом будет зависеть от количества товаров по которым существуют итоги и количества товаров в документе.

Кроме использования метода "Получить" многократное использование результатов запроса может достигаться при помощи выгрузки запроса в таблицу значений (метод "Выгрузить").

Использование запросов в алгоритмах расчетов

Обычно, объект "Запрос" применяется для формирования отчетов. В то же время, достаточно часто он используется также для выборки различных итогов при выполнении расчетов в процессе проведения документов или регламентных обработок. Например, с его помощью могут выбираться текущие итоги для списания ТМЦ по средней себестоимости или по методам LIFO, FIFO. Особенно роль использования запросов в таких алгоритмах в версии 7.7 возрастает при работе с базами данных в формате SQL. Однако, действия выполняемые запросом по умолчанию ориентированы именно на формирование отчетов.

Поэтому при использовании его для различных расчетов следует отключать дополнительные действия выполняемые запросом, не используемые для расчетов. Отключение дополнительных действий может весьма существенно увеличить производительность выполнения запроса.

Обычно в расчетах имеет смысл отключить формирование итогов по группам справочников и счетов. Для этого в описании группировки используется конструкция "Без Групп".

Кроме специальных случаев, когда это действительно необходимо, рекомендуется отключить упорядочивание значений группировки. Для этого в описании группировки используется конструкция "Без Упорядочивания".

Достаточно часто при использовании запросов в расчетах не имеет смысла получение итогов по вышестоящим группировкам, так как обрабатываются, только итоги по наиболее полному набору значений группировок. В этом случае следует отключить формирование итогов по группировкам с помощью конструкции "Без Итогов". Это имеет смысл даже если используется всего одна группировка, так как в этом случае отключается формирование итогов по запросу в целом.

Оптимизация формирования отчетов

Отчеты в 1С:Предприятии формируются обычно либо путем обхода объектов определенного типа (элементов справочника, документов, операций, проводок, движений и остатков регистра, записей журнала расчетов), либо путем предварительной обработки информации при помощи специальных средств (объекта "Запрос", объекта "БухгалтерскиеИтоги" или объекта "Операция") и последующем обходе полученных промежуточных информационных массивов.

При выборе конкретного пути следует учитывать особенности работы соответствующих средств, описанные в других разделах. В этом разделе приводится ряд общих рекомендаций по проектированию алгоритмов формирования отчетов.

Прежде всего, заметим, что при проектировании конфигураций, предназначенных для эксплуатации в разделенном режиме на предприятиях с большим объемом информации, в разработке отчетов следует особое внимание уделять минимизации обращения к информационной базе, так как именно эти действия становятся наиболее критичны по времени при больших объемах данных и одновременной работе нескольких пользователей.

Заметим, что в отличие от алгоритмов выполняемых при проведении документов, отчеты, как правило, формируются вне транзакции. Это означает, что выполнение большинства операций в отчете будет происходить существенно медленнее, чем при проведении документа. Это касается версий 1С:Предприятия работающих в базой данных в формате DBF. При работе с базами данных в формате SQL выполнение операций вне транзакции и внутри транзакции не отличаются по производительности. Однако, очевидно, что при работе в архитектуре клиент-сервер количество обрабатываемой информации полученной из информационной базы также весьма существенно влияет на производительность, поэтому и при работе с базами данных в формате SQL следует оптимизировать, прежде всего, обращения к информационной базе.

Таким образом, при написании алгоритма отчета следует учитывать не столько количество выполняемых строк встроенного языка, сколько объем обращения к информационной базе. Для такой оценки следует использовать описанные в разделе, посвященном вопросам производительности, принципы работы конкретных средств языка с точки зрения обращения к данным. Приведем несколько практических примеров.

При получении отчета об остатках товаров можно организовать обход справочника методами объекта "Справочник" и по каждому элементу обращаться к текущему остатку в регистре оперативного учета, выводя при этом в отчет ненулевые строки. Другим способом является выполнение запроса по регистру и обход результатов запроса. Очевидно, что соотношение производительности первого и второго варианта зависит от того, по скольким товарам из справочника в данном периоде были итоги (движения или остатки). Если в справочнике много товаров, по которым остаток стал нулевым в прошлых периодах и не выполняется движений, то получение данных с помощью запроса будет существенно быстрее. Однако при работе с базами данных в формате SQL использование запроса будет намного эффективнее обращений к итогам по отдельным товарам, так как при правильном использовании объекта "Запрос" будут максимально задействованы возможности SQL-сервера для получения необходимой информации.

Аналогично обстоит дело и с обращением к данным бухгалтерских итогов.

Например, крайне нежелательно организовывать получение итогов по двум субконто счета при помощи вложенных циклов, то есть обходить, например, справочник материалов, и на каждый материал обходить справочник складов, выбирая остаток по каждой комбинации "товар-склад". Значительно эффективнее будет выполнение запроса объекта "БухгалтерскиеИтоги" и вывод его результатов в отчет.

Наиболее важным становится правильное проектирование алгоритма при формировании сложных отчетов включающих, как итоговые данные, так и детальные операции (движения регистров, проводки, строки документов).

В случае, если отчет формируется обходом большого объема информации очень важно проектировать алгоритм отчета так, чтобы не происходило циклических обходов значительных объемов данных. Например, типичной ошибкой может быть формирование запроса по суммам движений товаров за период, и по каждому товару выполнение обхода движений регистра, с фильтрацией по текущему товару для вывода детальных движений. В этом случае происходит многократный обход всех движений регистра за интервал отчета. В некоторых случаях такой алгоритм может быть использован, например, если выборка движений использует установленный в конфигурации отбор по измерению регистра, однако, этот случай будет являться скорее исключением.

Рекомендуется строить алгоритмы отчетов таким образом, чтобы обход больших объемов данных выполнялся один раз, или, например, два раза, но в любом случае, так чтобы скорость формирования отчета зависела от объемов данных линейно, а не экспоненциально. Так в приведенном примере целесообразно сформировать один запрос, включающий детальную группировку по документам.

В некоторых случаях бывает необходимо выполнить два запроса. Отчет при этом может строиться обходом группировок одного запроса и прямым обращением к данным в другом запросе для получения дополнительной информации. Техника формирования запроса и многократного обращения к его результатам дает существенный выигрыш в производительности при работе в разделенном режиме, по сравнению с многократным формированием запроса.

При работе с бухгалтерскими итогами также целесообразно не допускать циклической обработки объектом "БухгалтерскиеИтоги" данных в режимах временного расчета и запроса. Более целесообразно выполнять запрос, на основании которого в дальнейшем получать различную информацию. Разумеется, данный принцип следует использовать с учетом приведенной в разделе "Работа с бухгалтерскими итогами" информации описывающей оптимизацию выборки бухгалтерских данных по отборам счетов и субконто.

В некоторых случаях при формировании отчетов в качестве промежуточных массивов данных можно рекомендовать использовать объекты типа "СписокЗначений" и "ТаблицаЗначений". Например, если в ходе выполнения отчета приходится многократно перебирать значения справочника, то его можно вначале внести в список значений, а затем обходить уже не сам справочник, а список значений. В этом случае будет уменьшено количество обращений к информационной базе.

При формировании больших отчетов не следует выводить большого количества строк в окно сообщений. Его динамическое обновление может существенно затормозить формирование отчета. Если нужно получить большого размера текстовый протокол можно рекомендовать заносить строки в объект типа "Текст" а в конце формирования отчета вывести его на экран методом "Показать".

В принципе существует возможность значительного ускорения формирования отчета с помощью включения транзакции (это касается работы с базой данных в формате DBF). Однако следует рекомендовать пользоваться этим только в особых случаях, так как включение транзакции в отчете приостановит работу других пользователей, записывающих информацию.

Оптимизация конфигураций при работе с базами данных в формате SQL

Одним из основных принципов архитектуры 1С:Предприятия является одинаковое функционирование конфигурации при работе с базами данных в формате DBF/CDX и базами данных в формате SQL. Это необходимо для широкого распространения единых прикладных решений и обеспечения плавной масштабируемости. Идентичность работы конфигураций в полной мере относится к их функциональной части, но, разумеется, не относится к производительности конкретных режимов и алгоритмов.

Типовые конфигурации могут использоваться с любыми версиями 1С:Предприятия от однопользовательских до клиент-серверных. В них выбираются, обычно, алгоритмы и решения обеспечивающие приемлемые показатели при работе с обоими форматами хранения. В то же время, при внедрении или создании конфигурации, которая будет заведомо использоваться с базой данных в формате SQL имеет смысл в отдельных алгоритмах учесть особенности работы различных механизмов 1С:Предприятия в клиент-серверном варианте.

Основной выигрыш с точки зрения производительности при работе с базами данных в формате SQL достигается за счет применения тех механизмов 1С:Предприятия, которые осуществляют значительный объем операций по выборке данных непосредственно на SQL сервере.

Так как сам алгоритм встроенного языка всегда отрабатывает на клиентском компьютере, то максимальный выигрыш достигается при использовании объектов языка, выполняющих групповую выборку данных в одном вызове метода объекта.

Список таких объектов и режимов в которых они дают серьезные преимущества приведен в документации поставляемой с версиями 1С:Предприятия для SQL в разделе "Производительность системы".

Перед началом оптимизации конфигурации для работы с базой данных в формате SQL следует внимательно ознакомиться с разделом документации "Производительность системы". Далее рекомендуется выделить наиболее узкие с точки зрения производительности участки конфигурации и рассмотреть возможность замены существующих алгоритмов на алгоритмы, которые максимально используют для выборки данных вызовы методов объектов, осуществляющих групповую выборку.

Приведем пример. Обычно, одним из узких мест является проведение документов, выполняющих автоматическое списание товаров или материалов. Для автоматического списания используется обращение к текущим остаткам регистра оперативного учета с помощью объекта "Регистр" или объекта "Запрос". При проведении задним числом будут также рассчитываться итоги на проводимый документ (объектом "Запрос" при указании в качестве границы текущего документа, а объектом "Регистр" при выполнении временного расчета на текущий документ). Получение итогов по большому количеству товаров, а особенно с расчетом итогов на документ, может выполняться достаточно долго.

В алгоритме проведения существует возможность обрабатывать каждый товар документа отдельно или выполнить один запрос (или обращение к регистру) для получения итогов по всем товарам документа, выгруженным предварительно в список значений. В запросе будет использован оператор "В", а при работе с объектом "Регистр" установка фильтра.

Временный расчет в любом случае имеет смысл, очевидно, выполняться по всем товарам документа, так как многократная обработка движений регистра существенно замедлит выполнение алгоритма (исключение может составлять вариант, когда для измерения регистра "Товар" установлен в метаданных признак отбора).

Обработка текущих итогов по списку товаров при использовании обычных версий 1С:Предприятия будет не вполне эффективной, так как время обработки будет зависеть от общего количества итогов по товарам в информационной базе. В то же время, при использовании версий 1С:Предприятия для SQL более производительным будет вариант единовременной выборки всех итогов по товарам документа с помощью запроса с условием или метода "ВыгрузитьИтоги" объекта "Регистр" с установкой фильтра. Это объясняется тем, что оба эти механизма будут использовать для отбора необходимой информации возможности SQL-сервера и на клиентском компьютере будет выполняться обработка только необходимой информации.

Другим примером может являться алгоритм, выполняющий выборку списка документов по некоторому признаку, например, получение реестра приходных накладных, по выбранному складу. При работе с базой данных в формате DBF/CDX выборка может осуществляться как перебором документов объектом "Документ" (с поверкой реквизита в алгоритме модуля) так и с помощью объекта "Запрос" с соответствующим условием. Причем скорость выполнения обоих алгоритмов будет различаться не существенно (разумеется, если не существует подходящей графы отбора). При использовании версий для SQL использование запроса будет существенно эффективнее, разумеется, если количество выбираемых документов значительно меньше их общего количества в выбранном интервале.

При работе с базой данных в формате DBF/CDX объект "Запрос" редко используется для выборки элементов справочника. Однако, при использовании версий для SQL применение запроса для отбора элементов справочника по некоторому критерию будет весьма эффективным.

Следует заметить, что при использовании объекта "Запрос" для получения существенного выигрыша в версиях для SQL следует придерживаться общих рекомендаций по оптимизации запросов, приведенных в других разделах, так как значительный выигрыш будет достигаться только в том случае, если сам запрос максимально отрабатывает непосредственно на SQL-сервере.

При обращении к бухгалтерским итогам при использовании версий для SQL часто использование метода "ВыполнитьЗапрос" и обращение затем к результатам запроса эффективнее, чем использование отдельных вы


1С-Предприятие. Документация | Вопросы архитектуры системы 1С:Предприятие

Вопросы архитектуры системы 1С:Предприятие

Принципы организации регистров оперативного учета

Компоненты "Бухгалтерский учет" и "Оперативный учет" Отличия и особенности использования.

Проведение документов

Особенности проведения документов оперативного учета

Принципы организации бухгалтерских операций и проводок

Запросы

Терминология и обозначения

Введение

С чего начать

Начнем с начала

Постановка задачи

Формирование текста запроса

Что происходит внутри

Как текст запроса превращается в выборку?

Проверка синтаксиса

Правильность написания текста

Объявление внутренних переменных запроса

Оператор Период С

Оператор Условие

Оператор Группировка

Оператор Функция

Создание таблицы выборки

Формат хранения временных файлов

Структура записи таблицы выборки

Накопление данных

Использование граф отбора

Особенности использования запросов

Методы оптимизации запросов

Общие положения написания запросов

Особенности использования запросов для получения информации из справочников

Принципы организации регистров оперативного учета

Определенная сложность освоения механизма регистров объясняется тем, что в отличии от проводок бухгалтерского учета, регистры оперативного учета не имеют аналогов в ручном учете и являются специфической моделью учета 1С:Предприятия.

В этом разделе приводятся разъяснения об организации механизма Регистров , являющихся основой компоненты 1С:Предприятия "Оперативный учет". Правильное понимание модели учета, поддерживаемой Регистрами необходимо для разработки конфигураций с использованием этой компоненты.

Прежде всего, следует различать использование регистров остатков и оборотных регистров. Не смотря на единство основных принципов, по своему назначению они существенно различаются.

Регистры остатков

Регистр остатков - это объект, предназначенный для учета наличия исчисляемых ресурсов в разрезе некоторого набора измерений. Ресурсами могут являться любые исчисляемые величины, такие как: "количество товара", "долг клиента", "сумма наличных" и т.п. Измерения Регистра остатков – это оси координат, на пересечении которых Регистр остатков хранит конкретные значения ресурсов. В качестве измерений могут выступать любые значения, характеризующие конкретные значения ресурсов, например, "материал", "место хранения", "организация".

Приведем пример регистра остатков. Допустим, у нас есть Регистр "ОстаткиТоваров", измерениями этого регистра являются: "Товар", "Склад", "МОЛ". Регистр имеет один ресурс - "Количество". Содержание данного Регистра можно представить в виде следующей таблицы, где по каждому конкретному товару на конкретном складе за конкретным МОЛ числится определенное Количество товара.

На рисунке приведена логическая схема хранения текущих остатков регистра "ОстаткиТоваров".

Под термином "остаток" ресурса следует понимать числовое значение, которое содержит величину ресурса на какой-то момент времени.

Для каждого регистра в информационной базе система хранит остатки на некоторые моменты времени и все движения по данному регистру.

Управление регистрами остатков осуществляется записью движений прихода и расхода в процессе проведения документа. Каждое движение содержит значения всех измерений и тех ресурсов, которые изменяются в данном движении.Алгебраическая сумма значений ресурсов имеющихся движений приходов и расходов и определяет состояние остатков, причем эти итоги формируются отдельно по каждой используемой комбинации значений измерений. Приведем пример движений регистра и остатков, которые получаются на основании этих движений:

Движения

Остатки

С помощью выполнения запроса или последовательного обхода движений можно получить различную информацию о суммах движений за некоторый период или детальных движениях. Итоги, хранимые регистром, предназначены для выдачи информации об остатках на определенный момент времени. Например, итоги

регистра "ОстаткиТоваов" позволяют ответить на вопрос: "сколько данного товара на этом конкретном складе числится за определенным материально-ответственным лицом".

Состав измерений регистров определяет максимальную детализацию хранения остатков. Разумеется, с помощью запросов можно "свернуть" остатки, получив их с меньшей детализацией. Свертка может производиться по любой комбинации измерений. Приведем некоторые варианты свертки регистра "ОстаткиТоваров".

Свертка по МОЛ.

Свертка по складу и МОЛ.

Свертка по товару и складу.

При проектировании регистра остатков следует придерживаться следующих правил:

Состав измерений регистра должен быть таковым, что для каждой единицы ресурса в конкретный момент времени можно однозначно определить значения всех измерений. В приведенном примере это означает, что каждая единица количества товара в конкретный момент располагается на некотором складе и при этом записана за определенным материально-ответственным лицом.

Движения регистров, выполняемые документами по регистру остатков должны выполнять как приход, так и расход по каждому используемому сочетанию значений измерений. Это означает, что нельзя допускать ситуации, когда в конфигурации предусматривается, например, запись движений прихода по некоторому сочетанию измерений регистра остатков и не предусматривается движений расхода по данному сочетанию значений измерений. Разумеется, приходы и расходы могут выполняться совершенно разными документами и в разные моменты времени, но сам принцип регистра остатков подразумевает то, что регистр отражает некоторый баланс наличия средств которые приходуются и расходуются. Причем данное правило должно выполняться для всех ресурсов регистра. В противном случае остатки регистра будут постоянно переноситься из периода в период и его использование будет неэффективным.

Кроме измерений и ресурсов в движениях регистров могут располагаться реквизиты. Они никак не влияют на расчет остатков. Реквизиты предназначены для указания в движениях некоторой дополнительной информации о выполненном движении. Например, при расходовании товара может указываться вид продажи (наличный или безналичный). Этот признак никак не влияет на остатки товаров, но может использоваться, например, для анализа структуры продаж.

Заметим, что если некоторое числовое значение является характеристикой движения регистра, и вы хотите получать по нему отчеты с суммами данного значения по движениям, но оно не имеет физического смысла в качестве остатка, то его следует вводить в структуру регистра в качестве реквизита, а не в качестве ресурса. Например, если при расходовании товара, мы хотим отразить сумму НДС, выделенную при продаже, но эта сумма не должна храниться в регистре в качестве остатка (так как мы не планируем вести учет остатков по НДС), то ее нужно ввести в структуру регистра в качестве реквизита.

Из описанных выше правил вытекает то, что регистр остатков фактически используется для организации некоторой замкнутой системы учета. Причем в определенной ситуации может существовать потребность в двух и более системах учета одних и тех же объектов предметной области. В этом случае создается более чем один регистр. Типичным примером использования нескольких регистров для учета одних и тех же объектов может служить учет складских запасов и резервирования товаров для тех случаев, когда резервирование выполняется не с конкретного склада, а от лица всей фирмы. При этом фактически ведется два учета - учет наличия товаров на складах и учет зарезервированных товаров по клиентам или конкретным счетам. На рисунке приведен пример такой структуры регистров.

Пример структуры регистров для учета товаров:

Регистр "НаличиеТоваров"

Регистр "РезервыТоваров"

Разумеется, в этом случае идентичность количественных остатков по товарам в обоих регистрах должна обеспечиваться синхронной записью движений по этим регистрам при проведении документов.

Для регистров остатков система обеспечивает хранение рассчитанных итогов и их динамическое обновление при любых действиях с движениями (записи движений, отмены проведения документов, удалении документов). Итоги хранятся системой на текущий момент (точку актуальности) и на границы предыдущих периодов. В качестве периода может выступать месяц, пятнадцать дней, декада и пять дней. Хранение текущих итогов позволяет системе выполнять быстрый доступ к итогам при проведении документов в реальном времени и для получения оперативных отчетов. Однако с помощью запросов или временных расчетов регистров существует возможность обращения к итогам на любой момент (любую дату или позицию документа). Для того, чтобы в этом случае не обрабатывать все существующие движения система использует хранимые итоги ближайшей границы периода и обрабатывает только движения от начала периода до указанного момента. Соответственно периодичность хранения определяет среднее время получения итогов на некоторый момент.

Чем меньше периодичность, тем меньше будет среднее время, но больше объем хранимой информации, и, соответственно, наоборот. Периодичность хранения итогов устанавливается в режиме управления оперативными итогами в режиме запуска "1С:Предприятие" и никак не влияет на функциональность системы, за исключением времени обращения к итогам на различные моменты и необходимости выполнения открытия периодов.

Оборотные регистры

В отличие от регистров остатков оборотные регистры призваны накапливать некоторые специфические итоги в разрезе периодов. То есть, ресурс оборотного регистра накапливает некоторую сумму за период. При этом значения измерений оборотного регистра детализируют накапливаемую сумму.

Примером оборотного регистра может служить регистр "ПродажаТоваров". Данный регистр учитывает объем продаж в разрезе товаров и клиентов.

На рисунке приведена логическая схема хранения итогов регистра "ПродажаТоваров".

Фактически итоги этого регистра позволяют ответить на вопрос "Сколько за определенный период продано данного товара конкретной организации". Разумеется, как и в случае регистра остатков, итоги оборотного регистра могут быть свернуты для получения данных с меньшей детализацией.

Таким образом, оборотный регистр может использоваться для накопления некоторых итогов в нескольких разрезах. В отличии от регистров остатков управление оборотным регистром осуществляется только одним видом движения, так как для оборотного регистра не имеет смысла понятия "приход" и "расход". Если, например, требуется получить данные и по продажам и по закупкам товаров, то можно либо создать два регистра, либо сделать два ресурса в одном регистре "Продано" и "Закуплено".

При создании конфигураций использование оборотных регистров обычно менее необходимо, чем регистров остатков. Часто, ту же информацию, которую можно получать из оборотного регистра, можно получить с помощью запроса из документов или из движений регистра остатков аналогичной структуры. Однако оборотный регистр позволяет получить накопленные данные с установленной периодичностью практически мгновенно, тогда, как получение их из движений или документов может потребовать значительных затрат времени. Вопрос о целесообразности использования оборотного регистра с точки зрения оптимизации должен решаться исходя из частоты выполняемых запросов и требований к их производительности.

Однако, одним из решающих аргументов для создания оборотного регистра может являться необходимость записывать в его движениях некоторый факт, который однозначно не содержится ни в документах, ни в движениях других регистров. В этом случае фиксация данного факта при проведении документа в оборотном регистре носит не оптимизационный характер, а является частью логики учетной схемы. Например, если в документе указываются комплекты товаров, а нам нужно получать отчеты по детальным продажам различным клиентам товаров входящих в комплекты, то использование оборотного регистра позволит при проведении документа сформировать движения с указанием организации - покупателя и конкретных товаров, входящих в купленные комплекты. Далее с помощью запросов мы сможем получить необходимую нам информацию о том, какой клиент, каких товаров сколько покупал за выбранный период.

Сами итоги оборотного регистра всегда хранятся и выдаются (объектом типа "Регистр") с детализацией до того периода, который задается в метаданных. Однако при выполнении запроса можно получить итоги и с любой другой периодичностью. Для оборотных регистров хранение итогов позволяет системе достаточно быстро формировать запросы по данному регистру за длительный интервал в разрезе той же периодичности, что и период оборотного регистра. Например, если периодичность регистра в метаданных выбрана - месяц, то запрос будет достаточно эффективно формировать итоги за два, три месяца и т.д. Обращение к итогам, например, за неделю потребует обработки движений регистра. Однако хранение итогов с маленькой периодичностью потребует достаточно больших ресурсов с точки зрения используемого дискового пространства.

Хронологический порядок документов и Точка Актуальности.

Для оперативного учета очень важной особенностью системы хранения документов 1С:Предприятия является то, что все документы (документы всех видов) располагаются в едином хронологическом порядке. Фактически он отражает последовательность событий хозяйственной жизни предприятия. Позиция документа в общей последовательности определяется его датой, временем, а также некоторой дополнительной величиной, которая устанавливает порядок документов с одинаковым временем в одной дате. Эта величина не регулируется пользователем, но система гарантирует ее неизменность. То есть, гарантируется, что при любых загрузках, выгрузках, перезаписях документы будут всегда находиться в одной и той же последовательности относительно друг друга, кроме случаев, когда у них редактируется дата или время. Заметим, что время документа служит в основном для упорядочивания их внутри даты и его связь с астрономическим временем весьма условна. То есть при изменении времени документа, для логики работы системы важна на сама смена значения времени, а изменение порядка документов.

Для компоненты "Оперативный учет" принципиальным понятием является "Точка Актуальности" (далее ТА). Вкратце ТА можно определить как точку на оси последовательности документов. Она может указывать на конкретный документ, или нет (например, если документ, на который она была установлена - удален), но она всегда выступает в качестве позиции на оси документов и любой документ в системе однозначно располагается либо до ТА, либо на ТА, либо после ТА. Точка актуальности является моментом, на который регистры содержат текущие значения всех ресурсов. Другими словами, если просто запросить у регистра значение какого либо ресурса, то он выдаст его именно на момент ТА. Если нам необходимо значение ресурса на прошедший момент времени, то надо либо сдвинуть в прошлое ТА (для этого используется операция "Управления итогами"), либо при помощи средств встроенного языка запустить "временный расчет" регистра.

Для регистров остатков итоги на ТА фактически отражают взаимоотношение приходов и расходов ресурса по каждому сочетанию измерений с момента начала ведения учета до момента ТА.

Для оборотных регистров итоги на ТА отражают накопленную сумму движений с ближайшего начала периода оборотного регистра до ТА. Для приведенного примера оборотного регистра итог на ТА будет означать количество проданного товара конкретному клиенту с начала месяца.

При нормальной работе Точка актуальности передвигается вперед в процессе последовательного проведения документов. Так как для регистров остатков итоги хранятся не только на текущий момент (то есть на ТА), но и на границы периодов (месяца, пятнадцати, десяти или пяти дней), то для проведения документа относящегося к следующему периоду необходимо выполнить открытие периода или перенос ТА на следующий период (эти действия однозначны). При этом система фиксирует хранимые остатки прошлого периода и инициализирует текущие остатки в новом периоде.

Компоненты "Бухгалтерский учет" и "Оперативный учет"

Отличия и особенности использования.

В системе программ 1С:Предприятие существует две функциональные компоненты используемые для автоматизации учета наличия и движения средств. Это компоненты "Оперативный учет" и "Бухгалтерский учет". Достаточно часто у специалистов занимающихся созданием и внедрением прикладных решений на базе 1С:Предприятия возникают вопросы связанные с сопоставлением функциональных возможностей этих компонент, а также их позиционированием. В этом разделе мы постараемся объяснить принципиальные различия этих двух компонент и дать рекомендации по их применению.

Основные принципы компонент

В начале приведем основные принципы, заложенные в эти компоненты.

Компонента "Оперативный учет" основана на механизме регистров. Регистр представляет собой многомерную систему учета наличия и движения средств. В конфигурации определяется набор независимых регистров. Каждый из них имеет собственную структуру, включающую набор измерений, образующих многомерную систему координат и набор ресурсов, определяющих состав собственно исчисляемых значений. При помощи регистров в конфигурации организуется достаточно сложный учет по конкретным разделам экономической деятельности предприятия. Причем структура регистров описывается в точном соответствии с необходимостью детализации по конкретным разделам учета . Например, для учета товаров минимально достаточно одного измерения - собственно "номенклатуры товаров". Дополнительно можно разделить учет по нескольким складам - тогда добавляется измерение "склад", можно ввести разделение по материально-ответственным лицам - ввести измерение "МОЛ". Если ввести партионный учет, то будет добавлено измерение "Партия". Состав измерений будет полностью определяться потребностями данного раздела учета. В некоторых случаях для учета товаров может быть введено два регистра, то есть учет товаров будет вестись в двух системах координат. Например, в этом может возникнуть необходимость, если нужно вести независимый учет резервирования товаров. Поясним это подробнее. Для любой единицы учитываемой в регистре должны быть однозначно определены значения всех измерений. Если резервирование производится не с конкретного склада, а для фирмы в целом , то для учета резервирования следует ввести отдельный регистр, который будет учитывать количество зарезервированного товара в разрезе покупателей и счетов на оплату. Таким образом, товары будут учитываться на одном регистре с точки зрения физического местоположения на складах, а на другом с точки зрения логического распределения по клиентам зарезервированных товаров. Состав ресурсов регистра также полностью определяется требованиями учета. Например, товары могу учитываться как в количественном выражении, так и в учетных ценах, для стоимостной оценки товарного запаса.

Важной особенностью компоненты "Оперативный учет" является ориентация на поддержку итогов в актуальном состоянии на текущий момент времени. Компонента "Оперативный учет" поддерживает остатки регистров на "Точку актуальности", которая при повседневной работе соответствует последнему проведенному документу. При проведении документы располагаются в именно порядке проведения, а не в порядке ввода, что обеспечивает четкую последовательность отражения в учете деятельности предприятия.

Доступ к текущим остаткам регистров осуществляется практически мгновенно. Это позволяет при проведении документов контролировать наличие товаров на складах, состояние взаиморасчетов и другие данные именно на момент проведения документов. Мгновенный доступ к текущим итогам при проведении документов позволяет исключить одновременное списание со склада одних и тех же товаров разными менеджерами.

Компонента "Бухгалтерский учет" обеспечивает ведение планов счетов, операций, проводок и бухгалтерских итогов. Она ориентирована на отражение хозяйственной жизни предприятия именно в бухгалтерском учете. То есть, она реализует основные принципы бухгалтерского учета.

Прежде всего, весь учет обязательно ведется в разрезе синтетических счетов . Все остальные разрезы учета (субсчета, валютный учет, аналитический учет) выступают, как дополнительные, и могут не использоваться. Учет может вестись в денежном и натуральном выражении. При ведении валютного учета отдельно также учитываются валютные суммы.

Вся информации о движении средств отражается в проводках. Все проводки имеют одинаковую структуру, а состав данных в них определяется настройками учета корреспондирующих счетов. Так для счета может быть определено до 5 разрезов аналитического учета. Соответственно значения объектов аналитики в проводках будут заполнены в том объеме, который определен для конкретного счета. Многомерность аналитики позволяет, например, для счета 10 (материалы) организовать учет в разрезе номенклатуры, мест хранения и материально-ответственных лиц.

Так как одним из основных принципов бухгалтерского учета является принцип двойной записи, проводка имеет дебетовую и кредитовую часть. В некоторых случаях одна из частей может быть не заполнена, например, при использовании забалансовых счетов.

Система хранения бухгалтерских итогов ориентирована на быстрое получение итогов с детализацией до месяца, то есть данных об остатках на начало месяца, оборотах за месяц, остатках на конец месяца, а также по любым периодам, состоящим из целых месяцев. Получение итогов может производиться за любой интервал и на любой момент времени, но это выполняется системой за счет дополнительной обработки проводок.

Сопоставление средств и возможностей компонент

Теперь сопоставим средства, используемые этими компонентами, и возможности, которые они предоставляют.

На первый взгляд компоненты "Бухгалтерский учет" и "Оперативный учет" решают практически одну и ту же задачу, но разными способами. На самом деле различия между ними весьма существенные.

Первое отличие компонент заключается в механизме отражения информации о движении средств. В компоненте "Бухгалтерский учет" основным разрезом учета являются синтетические счета, которые и определяют бухгалтерскую модель отражения хозяйственной деятельности предприятия. В компоненте "Оперативный учет" механизм регистров является более универсальным средством и не имеет предопределенных разрезов учета.

Многомерный аналитический учет в 1С:Бухгалтерии действительно позволяет так же как и регистры оперативного учета хранить данные о движении средств и получать итоги в различных разрезах. Однако он предназначен для детализации итогов по синтетическим счетам. Тогда, как регистры оперативного учета представляют собой самостоятельную универсальную модель многомерного учета.

Использование аналитики в бухгалтерском учете в сравнении с регистрами менее гибко и менее эффективно при сложном учете и большом объеме информации. Это определяется единообразным хранением всех проводок. Устройство регистров позволяет максимально точно отразить в них требуемую схему учета по конкретным разделам, что обеспечивает наиболее эффективное хранение и использование информации. Кроме того, при использовании версий 1С:Предприятия для SQL механизм регистров более эффективно оптимизируется системой за счет того, что структура хранения информации регистров более точно соответствует типовым структурам баз данных, чем универсальные структуры используемые для хранения данных о

бухгалтерских проводках и итогах.

Механизм регистров не использует понятие "двойной записи", так как оно предназначено именно для бухгалтерского учета, то есть для отражения финансового состояния предприятия в денежном выражении как с точки зрения наличия средств, так и с точки зрения источников финансирования и финансовых обязательств.

Другим различием механизмов бухгалтерского и оперативного учета в 1С:Предприятии является распределение во времени совершения хозяйственных операций на предприятии и отражения их в учете. Работа бухгалтерии, как правило, ведется "по факту". То есть в бухгалтерию поступает информация о совершенных операциях, которая отражается в бухгалтерском учете. Причем это может производиться со значительным запозданием. То есть бухгалтер заносит данные о совершении хозяйственных операций, как летописец освещает произошедшие события. Соответственно компонента "Бухгалтерский учет" ориентирована на ввод операций за любые даты и быстрое получение итогов с детализацией по месяцам и кварталам, что весьма необходимо для составления отчетности.

Компонента "Оперативный учет" напротив предназначена для отражения хозяйственных операций в основном непосредственно в момент их совершения, то есть в реальном времени. Понятие "точки актуальности" (текущего момента) позволяет не просто отражать в учете операции в момент их совершения, но и выполнять различного рода контрольные действия по определению правомерности совершения операций (контроль наличия товаров, состояния взаиморасчетов). Для этого в механизме регистров оптимизировано получение итогов именно на текущий момент, то есть на момент совершения хозяйственной операции. Разумеется, существует возможность изменения уже введенной информации и ввода информации "задним числом", но она используется в основном как исключение, для исправления ошибочно введенных ранее данных.

Важным аспектом для понимания разницы между бухгалтерским и оперативным учетом в 1С:Предприятии является тот факт, что устройство операций и проводок в бухгалтерском учете ориентировано на непосредственную работу с ними конечного пользователя. Бухгалтер понимает, как устроен учет на уровне синтетических счетов, аналитики, проводок и итогов. Он может вводить проводки вручную, может настраивать ведение учета, может самостоятельно интерпретировать проводки, записанные документами и

стандартные отчеты. Таким образом бухгалтерский учет в 1С:Предпрятии реализован понятными бухгалтеру категориями ("счет", "субсчет", "аналитика", "валюта", "проводка").

Регистры оперативного учета выступают в качестве внутреннего механизма, который используется при конфигурировании системы. Пользователь (продавец, менеджер) не посвящается в подробности реализации учета. Он работает с документами и отчетами, а механизм регистров, который при этом фактически используется, обеспечивает получение необходимой информации, но скрыт в конфигурации. При использовании механизмов оперативного учета конечному пользователю не предоставляется универсальных

средств отражения операций в регистрах и получения отчетов. Все предусмотренные варианты движения регистров и получения итогов описаны в конфигурации в виде документов и отчетов и предназначены для вполне конкретного использования. Например, для отражения движений товаров вводится несколько видов документов (накладных, требований), а для получения итогов один или несколько отчетов (материальная ведомость, карточка товара и т.д.). Работа пользователя с бухгалтерским учетом предусматривает как специализированные режимы (документы, отчеты) ориентированные на конкретные разделы учета, так и универсальные средства отражения любых хозяйственных операций (операции вводимые вручную, типовые операции) и универсальные средства получения итогов по любым разделам учета (стандартные отчеты).

Заметим также, что конфигурирование механизма регистров обычно выполняется специалистами по автоматизации, тогда как конфигурирование компоненты "Бухгалтерский учет" в категориях понятных бухгалтеру позволяет выполнять настройку учета и специалисту имеющему экономическое образование и небольшие навыки работы с компьютером. Такое различие объясняется тем, что сам механизм бухгалтерского учета существовал фактически как некоторая универсальная математическая модель со времен Луки Почиоли, еще задолго до появления компьютеров и знаком бухгалтеру, тогда как регистры оперативного учета являются специфическим механизмом 1С:Предпряития.

Рекомендации по использованию компонент.

Теперь постараемся подытожить приведенные отличия компонент и дать рекомендации по их применению.

Очевидно, что компонента "Бухгалтерский учет" идеально подходит для ведения синтетического учета и аналитического бухгалтерского учета. Мощные возможности аналитического учета позволяют также использовать ее для ведения управленческого складского учета, взаиморасчетов, учета в производстве и т.д. Все разделы поддерживаются единым механизмом проводок, который обеспечивает высокую наглядность отражения в учете операций для бухгалтера. Механизм аналитического учета целесообразно использовать в тех случаях, когда он необходим для получения развернутых итогов по синтетическим счетам и для составления бухгалтерской и налоговой отчетности.

Компонента "Оперативный учет" позволяет построить весьма специфичную схему учета в соответствии с конкретным разделом учета. Ее целесообразно использовать при сложном управленческом учете и большом объеме хозяйственных операций. Как правило, она применяется для автоматизации основной деятельности предприятия. Например, в торговле это учет наличия и движения товаров, учет взаиморасчетов с клиентами, а в производстве – учет материалов, выпуска готовой продукции, калькуляции затрат. Гибкая

настройка механизма регистров позволяет эффективно поддерживать сложные виды учета, например, учет заказов, учет товарных кредитов, учет товаров на реализации, списание по методам LIFO/FIFO и т.д. Компоненту "Оперативный учет" целесообразно также применять в тех случаях, когда автоматизированную систему предполагается использовать в реальном времени. То есть не только для фиксации в учете произошедших хозяйственных операций, но и для получения оперативной информации о текущем состоянии материальных и денежных средств, и принятия с помощью программы управленческих решений, например, обеспечения контроля одновременного доступа к товарным запасам нескольких пользователей.

То есть механизмы компоненты "Бухгалтерский учет" наиболее эффективны именно как средство отражения хозяйственной деятельности в соответствии с требованиями методологии бухгалтерского учета. Средства "Оперативного учета" предназначены не только для отражения, но и для управления собственно совершением хозяйственных операций.

Наибольший интерес представляет совместное использование компонент. На практике на предприятии с одной информационной базой могут работать и сотрудники бухгалтерии, и менеджеры (например, отдел продаж, коммерческий отдел). Использование в одной конфигурации компонент "Оперативный учет" и "Бухгалтерский учет" позволяет органично совместить работу различных подразделений. Механизмами оперативного учета решаются задачи собственно управленческого учета, составляющие основной объем хозяйственных операций на предприятии и ведущихся в реальном времени. Средствами оперативного учета отслеживаются движения товаров, складские запасы, выполняется резервирование, поддерживаются взаиморасчеты с клиентами с учетом кредитов, консигнации и других особенностей управленческого учета. Все операции, реализуемые компонентой "Оперативный учет" полностью описываются в конфигурации, так как персонал, который их оформляет не должен иметь возможность отклонения от принятой схемы ведения бизнеса и, как правило, не осведомлен об особенностях реализации учетных регистров.

По данным управленческого учета могут автоматически формироваться проводки для отражения определенного круга операций в бухгалтерском учете. Причем отражение в бухгалтерском учете целесообразно выполнять с той степенью подробности, которая необходима для получения бухгалтерской и налоговой отчетности. То есть информация о хозяйственных операциях будет "сворачиваться", освобождаясь от деталей несущественных для бухгалтерского учета. Например, очевидно, что для бухгалтерии несущественно распределение товаров по складам. Кроме того, и сама детализация по конкретным товарам также может не отражаться в бухгалтерском учете. Кроме отражения данных полученных на основании оперативного учета, компонента "Бухгалтерский учет" используется для автоматизации самых разных разделов учета предприятия не имеющих большой нагрузки по количеству операций и не требующих участия программы в управлении операциями. Например, это взаиморасчеты с подотчетными лицами, учет основных средств и т.д. Разумеется, компонента "Бухгалтерский учет" используется также для определения финансовых результатов, составления бухгалтерской и налоговой отчетности. В отличии от оперативного учета компонента "Бухгалтерский учет" допускает ручной ввод операций. Это возможно благодаря тому, что бухгалтер владеет понятиями, которыми оперирует программа (счет, аналитика, проводка и т.д.). Возможность ручного ввода операций позволяет отражать разовые операции, не предусмотренные конфигурацией, что зачастую проще и эффективнее, чем внесение изменений в конфигурацию.

Таким образом определяющими факторами для выбора используемых компонент 1С:Предприятия для автоматизации учета в конкретной организации является состав задач, круг пользователей, и режим отражения в учете хозяйственных операций. Если систему предполагается использовать только в бухгалтерии для занесения данных о хозяйственных операциях и получения внутренней и внешней отчетности, то достаточно применения компоненты "Бухгалтерский учет". Если предполагается автоматизировать исключительно управленческий учет (работу менеджеров по управлению закупками, продажами, складскими запасами, взаиморасчетами), то целесообразно использовать только компоненту "Оперативный учет". Если предполагается автоматизировать оба этих направления во взаимосвязи, то следует задействовать и ту и другую компоненту в единой конфигурации.

Проведение документов

При проектировании конфигурации 1С:Предприятия весьма важным моментом для понимания является процесс проведения документа.

Фактически документ в системе 1С:Предприятие являются объектом отражающим в информационной базе некоторое событие произошедшее в хозяйственной жизни предприятия (оприходование товара, получение денег от покупателя, оформление отпуска сотруднику, переоценка валютных остатков и т.д.). Структура данных документа должна отражать различные характеристики конкретного события. Документы, как объекты прикладной задачи, тесно связаны с различными учетными механизмами 1С:Предприятия. Причем эта связь проявляется именно в процессе проведения документа. Некоторые документы вообще могут не использовать механизм проведения. В этом случае они используются просто как средство регистрации события и печати формы первичного документа. Для таких документов, рекомендуется отключить признак проведения в свойствах документа в метаданных. Однако для большинства видов документов выполняется проведение для того, чтобы отразить событие в различных учетных механизмах 1С:Предприятия.

При проведении документа сама система только помечает его как проведенный. Собственно все действия документа при проведении описываются в конфигурации в модуле документа в процедуре "ОбработкаПроведения" на встроенном языке. В принципе в этой процедуре можно описать практически любые изменения в информационной базе. Однако механизм проведения документов предназначен для выполнения вполне определенных действий:

- Запись значений периодических реквизитов справочников, для которых установлена возможность изменения документами;

- Запись движений регистров оперативного учета;

- Запись данных в журнал расчетов;

- Запись бухгалтерских операций и проводок.

Заметим, что все перечисленные действия должны выполняться специальными средствами, ориентированными именно на использование в процессе проведения документа. Например, запись значения периодического реквизита справочника должна выполняться методом "УстановитьРеквизитСправочника", а не методами объекта "Периодический".

Важно понимать, что одной из главных особенностей механизма проведения документа является фиксация всех перечисленных действий и возможность их автоматического аннулирования при отмене проведения документа, при его перепроведении и при удалении документа.

То есть все перечисленные действия записываются в информационную базу с привязкой к документу. Это позволяет не только посмотреть, какой документ выполнил конкретные действия, но и произвести их аннулирование и повторное воспроизведение. Например, если документ при проведении записал бухгалтерскую операцию с проводками то при его перепроведении ранее сформированные проводки автоматически удаляются и вычитаются из бухгалтерских итогов а новые записываются и вновь отражаются в итогах. То есть это позволяет автоматически изменять влияние события отражаемого документом на различные механизмы 1С:Предприятия.

Для механизмов бухгалтерского и оперативного учета действия, выполняемые при проведении документа, не только привязываются к документу, но и используют документ в качестве момента выполнения действий. То есть и для регистров и для бухгалтерских итогов порядок следования документов определяет порядок отражения движений и проводок в учете. Соответственно итоги и оперативного и бухгалтерского учета могут быть получены на момент конкретного документа.

Рекомендуется в алгоритме проведения документа не выполнять иных изменений в информационной базе кроме тех, которые приведены выше. Это объясняется тем, что все остальные действия, выполненные в процессе проведения, не будут привязаны к документу, то есть не будут автоматически аннулироваться при отмене проведения документа или его перепроведении.

Модуль документа может содержать две предопределенные процедуры "ОбработкаПроведения" и "ОбработкаУдаленияПроведения". В отличии от всех других предопределенных процедур 1С:Предприятия, которые в основном предназначены для специфической обработки интерактивных действий пользователя, эти две процедуры вызываются всегда при выполнении проведения и отмене проведения документа, вне зависимости от того, происходит это интерактивно или из встроенного языка.

Эти процедуры вызываются в автоматически открываемой системой транзакции вместе с собственно проведением и отменой проведения, что позволяет однозначно логически увязать действия, выполняемые в данных процедурах, с самим фактом пометки документа как проведенного и снятия этой пометки.

Следует учитывать, что если в ходе выполнения этих процедур выполняется изменение значений реквизитов документа, то по окончанию выполнения процедуры эти изменения будут записаны. Причем запись будет выполняться в той же транзакции.

Процедура "ОбработкаУдаленияПроведения" выполняется и в случаях удаления и пометки на удаление документа, то есть при любых случаях, когда отменяются выполненные документом при проведении действия, кроме случая перепроведения документа, так как при проведении выполняется процедура "ОбработкаПроведения".

Наличие предопределенной процедуры "ОбработкаУдаленияПроведения", позволяет в отдельных случаях организовать автоматическое аннулирование некоторых дополнительных изменений в информационной базе, которые выполняются в процессе проведения. Однако организация такого алгоритма требует особой аккуратности и хорошего понимания выполняемых действий. В общем случае, рекомендуется выполнять при проведении документа только перечисленные выше изменения в информационной базе, которые система сможет автоматически контролировать при любых действиях с документом. При использовании в процедуре проведения только специализированных средств изменения информационной базы написания предопределенной процедуры "ОбработкаУдаленияПроведения" не потребуется. В то же время, она может быть создана для контроля правомерности отмены проведения документа.

Таким образом, действия, которые должны быть логически жестко увязаны с проведением документа или отменой проведения нужно размещать именно в процедурах "ОбработкаПроведения" и "ОбработкаУдаленияПроведения" модуля документа, а не в предопределенных процедурах, обрабатывающих, например, интерактивные действия пользователя в журналах документов.

В версии 7.7 введена дополнительная возможность управления процессом проведения. В метаданных свойствах документа может быть отключен автоматический режим удаления движений в процессе проведения и отмены проведения. Отключение режима автоматического удаления движений рекомендуется выполнять в специальных случаях, так как очевидно, что это потребует более сложного написания модулей. Следует заметить, что отключение автоматического режима удаления не нарушает основной концепции проведения документов. Главным отличием этого варианта является то, что появляется возможность в процессе проведения уже проведенного документа записывать движения не "с чистого листа", а дописывать к созданным при прошлом проведении. А само удаление движений может быть выполнено в процессе перепроведения вызовом специального метода. При отмене проведения, разумеется, движения документа удаляются в любом случае. Разница заключается лишь в том, что при, выключенном режиме автоматического удаления движений, движения реально удаляются системой не до выполнения предопределенной процедуры "ОбработкаУдаленияПроведения", а после.

Особенности проведения документов оперативного учета

Проведение документов, относящихся к оперативному учету, имеет ряд особенностей, которые необходимо учитывать, как при создании конфигурации, так и при администрировании работы пользователей. Идеология механизмов компоненты "Оперативный учет" предполагает преимущественно последовательный ввод и проведение документов. Проведение документов "задним числом" должно осуществляться как исключение и обрабатывается системой отдельно.

Рекомендуется изменение и проведение документов задним числом рассматривать в качестве исправления ошибочно введенных или не введенных данных в информационной базе. То есть изменение и проведение документа задним числом должно производиться с целью приведения информационной базы в соответствие с реально произошедшими событиями, а не внесения произошедших позднее событий в качестве изменений в более ранние документы. Например, если выяснилось, что вчера на складе был оприходован товар, но не была введена соответствующая приходная накладная, то такой документ следует ввести задним числом, так как реально событие уже произошло. Аналогично можно исправить неверно заполненную приходную накладную, если оказалось, что на самом деле товаров было оприходовано больше, чем введено в документе . Если же сегодня осуществляется возврат товара от покупателя, проданного вчера по расходной накладной, то неверным будет исправление введенной расходной накладной (уменьшение количества отпущенного товара с учетом возврата). Заметим, что при этом остаток товаров на складе на утро текущего дня будет неверным. Правильно будет ввести текущей датой документ, отражающий возврат товара покупателем. В этом случае порядок следования и содержание документов в информационной базе будет соответствовать последовательности и содержанию событий хозяйственной жизни предприятия и это позволит реально восстановить картину учета на любой момент времени.

Так как запись и проведение документов может выполняться раздельно, в системе предусмотрен механизм обеспечивающий расположение документов не в порядке их записи, а в порядке проведения. Это позволяет обеспечить проведение всех документов в реальном времени, то есть с обращением в процессе проведения к текущим остаткам регистров. Ключевым моментом в этом механизме является точка актуальности (ТА), отражающая обычно позицию последнего проведенного документа, то есть последнее событие в хозяйственной жизни предприятие, зафиксированное в информационной базе.

Соответственно регистры оперативного учета отражают наличие различных средств на этот момент, или точнее "по этот момент", так как движения документа стоящего на ТА включается в текущие остатки регистров.

В процессе проведения документа пользователем из формы документа система распознавая возможность появления конфликтных ситуаций, выдает пользователю сообщения-запросы, чтобы корректно разрешить возможный конфликт. Таких ситуаций может быть три:

  • дата проводимого документа меньше даты ТА (документ проводится задним числом);
  • после нового документа существуют проведенные документы (документ проводится той же датой, что и дата ТА, но время нового документа меньше времени ТА);
  • существуют более ранние проведенные документы (новый документ проводится за ТА, но между новым документом и ТА уже есть ранее проведенные документы).

Рассмотрим подробнее эти ситуации. На приведенных ниже схемах обозначена ось времени с отметками моментов перехода на новую дату, времени Точки

Актуализации (ТА), времени ввода нового документа ( Новый документ ).

Значком [image] на схемах обозначены существующие проведенные документы.

Значком [image] на схемах обозначены новые документы, которые проводятся.

Значком [image] на схемах обозначены существующие проведенные документы, которые

находятся за моментом ТА (они не учтены в остатках регистров).

Дата документа меньше ТА

На рисунке приведена схема ситуации, когда документ проводится задним числом, дата документа меньше даты ТА и между документом и ТА существуют ранее проведенные документы.

Время документа в 1С:Предприятии служит в основном для расстановки документов в определенном порядке, а не для отражения астрономического времени ввода документа. Поэтому при проведении документа время может быть исправлено. Однако дата документа является его важным реквизитов и не исправляется системой автоматически.

Так как в данном случае дата документа меньше ТА, то система не может обеспечить проведение данного документа в реальном времени. В этом случае система выдает следующее сообщение:

"Дата документа меньше ТА! Провести документ задним числом ?"

Данным сообщением программа предупреждает пользователя, что проведение документа нарушает естественную последовательность ввода документов. Если алгоритм Модуля движения регистров данного документа предусматривает данную ситуацию, например, запускает временный расчет регистров, или для данного документа эта ситуация не является конфликтной (например для выписки приходной накладной не анализирующей текущие остатки регистров), то можно нажимать кнопку "Да". В противном случае, когда правильность проведения нового документа зависит от временной последовательности проведения документов, следует нажимать кнопку "Нет". Тогда документ будет записан, но не проведен. В дальнейшем можно будет провести данный документ в режиме группового проведения, используя операцию "Управление итогами", откатив ТА назад, а затем снова вперед с одновременным перепроведением документов. При групповом проведении документы проводятся последовательно, в естественном временном порядке с получением текущих итогов регистров.

Решение, которое должен принимать пользователь, зависит от конкретной конфигурации и алгоритма проведения конкретного документа. Поэтому мы рекомендуем, по возможности, предусматривать в алгоритмах проведения документов обработку ситуаций проведения документов задним числом или ограничить возможность пользователей проведения документов задним числом.

После данного документа существуют проведенные документы

На рисунке приведена схема ситуации, когда документ проводится той же датой, что и дата ТА, но время документа меньше времени ТА и между документом и ТА существуют ранее проведенные документы.

В этом случае система выдает следующее сообщение:

"Время документа меньше точки актуальности. Существуют более поздние проведенные документы."

Пользователю предлагается выбрать один из двух вариантов:

  • Провести документ задним числом.
  • Изменить время документа.

Данным сообщением программа предупреждает пользователя, что проведение документа нарушает естественную последовательность ввода документов в пределах одной даты. Пользователю предлагается сделать выбор: или принять решение, чтобы система изменила время документа так, чтобы он стал последним среди проведенных документов, или провести документ без изменения времени, то есть задним числом. По умолчанию предлагается изменить время документа .

Как уже отмечалось, компонента оперативного учета предполагает последовательный ввод и проведение документов, поэтому данный вопрос системы позволяет автоматически перенести документа за точку актуальности в процессе проведения, то есть провести его в актуальном состоянии.

Выбор пользователя в данном случае должен определяться тем, отражает ли данный документ событие, происходящее в данный момент времени, или он отражает событие произошедшее в начале дня (в более раннем времени) и по ошибке не нашедшее отражение в системе.

Наиболее типовым случаем, когда выдается данный вопрос, является ситуация, при которой пользователь записал новый документ, но перед тем как он начал его проводить, другим пользователем был проведен более поздний документ.

Так как событие документа фактически отражается им в регистрах в момент проведения, разумеется, для соблюдения последовательность проведения документов следует выбирать вариант "Изменить время документа".

Вариант "Провести документ задним числом" следует выбирать в том случае, когда документ умышленно помещен до точки актуальности, и он отражает событие, которое произошло ранее событий отраженных более поздними проведенными документами.

Следует заметить, что параметры системы, настраиваемые пользователем в закладке "Оперативный учет" режима "Параметры", позволяют установить режим, при котором данный вопрос выдаваться не будет. Проведение документа с переносом его за ТА будет выполняться автоматически при проведении новых документов в текущей дате. Кроме того, существует возможность установить параметр, который будет автоматически выбирать время записи нового документа более поздним , чем ТА . Это позволит уменьшить вероятность возникновения описанной ситуации, даже при сильных расхождениях таймеров компьютеров пользователей, так как новые документы будут записываться не с текущим временем компьютера, а после ТА.

Кроме того, существует возможность регулировать проведение документов (проводить в реальном времени или задним числом) в модуле формы документа средствами встроенного языка (при использовании метода "Провести"). В этом случае, существует специальная возможность проводить в реальном времени уже проведенный документ. При этом, фактически, обеспечивается перепроведение документа в реальном времени (с переносом его за ТА). Очень важно, что в этом случае и удаление существующих движений и формирование новых выполняется в единой транзакции. Например, в типовой конфигурации "Торговля и склад" (редакция 8) этот механизм используется для предварительного проведения расходной накладной. Фактически, пользователь может несколько раз выполнять проведение документа в текущей дате в реальном времени. Если бы он распроводил документ и проводил заново, то существовала бы вероятность того, что другой пользователь отгрузит "дефицитный" товар и повторное проведение уже не будет выполнено. При перепроведении в реальном времени, другие пользователи не могут "вклиниться" между удалением движений и формированием новых.

Существуют более ранние проведенные документы

Приведенная на рисунке схема отражает ситуацию, когда документ проводится после ТА, но между проводимым документом и ТА уже есть ранее проведенные документы.

В этом случае система выдает следующее сообщение:

"Существуют более ранние проведенные документы!"

Этим сообщением программа предупреждает пользователя о том, что проведение документа сейчас невозможно, т.к. в данном случае проведение документа должно подразумевать сдвиг ТА вперед с зачислением в регистры движений ранее проведенных документов. Но такой процесс, должен производиться только в режиме "Управления оперативными итогами" или операцией "Установить ТА на документ". Поэтому в данном случае документ не проводится.

Данная ситуация может произойти только в случае, если ранее был выполнен процесс переноса ТА назад и некоторые проведенные документы оказались после ТА. Так как на практике перенос ТА назад выполняется только в специальных целях и обычно администратором системы, то, очевидно, не следует допускать ситуации, чтобы при начале работы пользователей система находилась в таком состоянии. То есть после переноса ТА назад и выполнения необходимых действий администратору следует либо последовательно провести документы после ТА, либо передвинуть ТА вперед на последний проведенный документ.

Особенности написания алгоритма проведения оперативного документа

При написании модуля оперативного документа следует учитывать, что использование текущих итогов регистра в процессе проведения может выполняться только если метод "ИтогиАктуальны" возвращает значение "1". При этом обращение к текущим итогам может выполняться методами объекта "Регистр" или объектом "Запрос" с периодом без указания конечной границы.

Если метод "ИтогиАктуальны" возвращает "0", то при использовании объекта "Регистр" следует выполнять временный расчет на текущий документ, а при использовании объекта "Запрос", следует указывать в качестве конечной границы текущий документ.

Кроме того, при написании алгоритма проведения в некоторых случаях следует учитывать, что проведение может выполняться в процессе группового проведения (метод "ГрупповаяОбработка"). Например, в этом случае, очевидно, не следует выполнять проверку наличия товара на складе и прерывать проведение, если текущее количество товаров не соответствует затребованному, так как документ уже был оформлен и должен быть перепроведен в соответствии с указанными данными. Проверки текущего наличия товаров, обычно, имеют смысл при текущей работе пользователей, чтобы исключить продажу закончившегося товара.

Принципы организации бухгалтерских операций и проводок

При освоении средств конфигурирования 1С:Предприятия одним из частых вопросов, которые требуют дополнительного разъяснения является вопрос об общих принципах организации в системе бухгалтерских операций и проводок. Часто этот вопрос возникает у тех специалистов, которые знакомы с принципами организации регистров оперативного учета. Действительно, проводки бухгалтерского учета имеют много общего с движениями регистров. Однако, движения регистров подчиняются непосредственно документу, а для проводок существует понятие "Операция", объединяющая проводки сформированные одним документом. Наличие понятия операции объясняется несколькими причинами, связанными с назначением и практикой использования компоненты "Бухгалтерский учет".

Очень важным отличием механизма бухгалтерского учета от механизма оперативного учета является то, что механизм операций и проводок наряду с автоматическим формированием проводок документами рассчитан на ведение учета вручную. Это возможно благодаря тому, что сама модель бухгалтерского учета (проводки, двойная запись, счета синтетического учета, аналитика) доступна пользователю (бухгалтеру) и программа может общаться с ним именно в тех категориях, в которых и ведется учет. Для оперативного учета это не так. Пользователь не работает напрямую с регистрами, так как механизм оперативного учета не является "общечеловеческим" понятием, а разработан как специализированное средство 1С:Предприятия. Наличие в метаданных понятия "Операция" позволяет обеспечить, для ведения ручного учета возможность удобного ввода проводок в специализированной форме, которая также как и большинство форм в 1С:Предприятии может быть изменена разработчиком конфигурации.

Заметим, что назначение регистров оперативного учета, может быть самое различное. Каждый регистр представляет собой фактически независимую учетную систему. Иногда один или два регистра могут быть логически связаны, но в то же время могут использоваться регистры, которые предназначены для отражения некоторого факта хозяйственной жизни в совершенно разных учетных задачах поддерживаемых конфигурацией. Проводки бухгалтерского учета, как правило, относятся к одному плану счетов и являются отражением хозяйственной операции в одной учетной системе описываемой планом счетов. Таким образом, проводки сформированные документом или введенные вручную в одной операции представляют собой обычно нечто большее, чем просто набор отдельных движений. Понятие "Операция" позволяет объединить все проводки формируемые документом или вводимые вручную. В отличии от движений регистров, которые с помощью соответствующего объекта встроенного языка могут только записываться и считываться по одному движению, все проводки операции считываются при обращении к операции. Затем с ними могут выполняться различные действия, например, можно изменять, добавлять и удалять проводки. Измененная операция записывается целиком.

Пожалуй, одной из самых важных задач операции является возможность вводить для операции реквизиты. Для оперативного учета практически не имели бы смысла, какие либо данные, которые относились бы ко всем документам, записывающим движения регистров. Однако для бухгалтерского учета эта задача вполне актуальна. С точки зрения бухгалтера, все операции (и введенные вручную и сформированные документами) являются равноценными записями, отражающими хозяйственную операцию в бухгалтерском учете. И у этой записи должны быть некоторые данные, характеризующие ее в целом. Наиболее яркими примерами таких данных являются "штатные" реквизиты операции ("Содержание" и "Сумма операции"). Когда бухгалтер работает с отчетами или журналами ему необходима информация, которая не связана с тем, как записана операция (сформирована одним из документов или введена вручную). Введение таких общих данных свойственных бухгалтерским операциям во все документы было бы весьма расточительным, так как во многих конфигурациях далеко не все документы записывают проводки.

Другой задачей решаемой операциями является отражение всех документов, относящихся к бухгалтерскому учету в журнале операций. Эта задача тесно связана с предыдущей. Она так же помогает представить бухгалтеру все документы с точки зрения их отношения к бухгалтерскому учету. В журнал операций могут не включаться документы, не имеющие отношения к бухгалтерскому учету. При этом в журнале операций обычно не отражается специфическая информация документов, а отражается только та информация, которая единообразно представляет все документы в механизме бухгалтерского учета. Наличие в метаданных объекта "Операция" позволяет определить в конфигурации не только состав данных свойственных всем операциями, но и способ представления операций в журнале.

Запросы

Терминология и обозначения

- "Запрос" - объект метаданных типа "Запрос";

- Текст запроса - текстовое описание запроса к ИБ на специализированном языке запросов;

- Выборка - набор данных, полученных в результате выполнения запроса;

- Группировка данных - накопление различных значений одного и того же типа данных.

- Отчёт - совокупность текста запроса, процедуры его выполнения и интерпретации выбранных данных.

Введение

С чего начать

Начнем с начала

Для начала, прежде чем проектировать запрос, необходимо задаться вопросом: "Что же я хочу в результате получить?". Да, да, именно так все и начинается, с тривиальной "постановки задачи".

Постановка задачи

Предположим, я хочу получить "Данные об оборотах и остатках товаров на складах за какой-то период времени" в виде вот такой таблицы:

Формирование текста запроса

Уже изначально, в постановке задачи прозвучали все необходимые данные для построения запроса, такие как: обороты, остатки, товары, склады и период времени . Начнем по порядку:

1. "... за какой-то период времени". Значит, мы можем описать период времени, за который запрос будет извлекать информацию. Отразим это:

Период с '98' по '98'

Правды ради, следует отметить, что задание конкретных дат интервала запроса не слишком удобно в большинстве случаев, поэтому создадим в модуле отчета две внешние переменные, определяющие дату начала и конца запроса - ДатаС и ДатаПо :

Период с ДатаС по ДатаПо;

2. "Данные об оборотах и остатках товаров ...". Значит, мы хотим видеть перечень товаров. Ну что ж, давайте так и сделаем - объявим переменную запроса - Товар

Товар =

3. "Данные об оборотах и остатках товаров на складах ...". Для каждого товара хотим отобразить склад, на котором он хранится. Для этого объявляем переменную Склад :

Склад =

4. "Данные об оборотах ". Во-первых, необходимо определиться, какие конкретные обороты мы хотим отразить: денежные, количественные. Давайте определим

Количество =

Поскольку нам нужны данные об оборотах, то следует объявить и сами функции накопления:

Приход = Функция Приход(Количество);

Расход = Функция Расход(Количество);

Данные об оборотах можно получить различными способами – из документов, обходя все или определенные виды документов за конкретный период времени, и из регистров.

5. "Данные об остатках ". Объявим функции остатков:

НачОст = Функция НачОст(Количество);

КонОст = Функция КонОст(Количество);

Данные об остатках из документов уже не получишь, для этой цели предназначены регистры остатков. Следовательно, в работе запроса мы будем использовать регистры. Этот вывод существенно помогает в проектировании запроса, так как мы теперь в состоянии корректно описать переменные, зная, что учет оборотов и остатков ведется по регистру "Товарные запасы":

Товар = Регистр.ТовЗап.Товар;

Склад = Регистр.ТовЗап.Склад;

Количество = Регистр.ОстаткиТоваров.ОстатокТовара;

6. Если мы хотим получить перечень товаров, то нам необходимо эти товары группировать, то есть отображать различные виды товаров. Для чего мы заводим группировку по переменной Товар :

Группировка Товар;

7. Те же самые резоны приводят нас к созданию группировки по переменной Склад :

Группировка Склад;

8. Теперь соберем полный текст запроса, который можно присвоить какой-нибудь переменной модуля отчёта, скажем, ТекстЗапроса:

ТекстЗапроса =

"Период с ДатаС по ДатаПо

|Товар = Регистр.ТовЗап.Товар;

|Количество = Регистр.ТовЗап.ОстатокТовара;

|Приход = Функция Приход(Количество);

|Расход = Функция Расход(Количество);

|НачОст = Функция НачОст(Количество);

|КонОст = Функция КонОст(Количество);

|Группировка Товар;

|Группировка Склад;

|"//}}ЗАПРОС

;

Получившийся текст запроса - это только часть необходимой работы для получения отчёта, но это как раз та часть, которой мы посвятили эту главу методических рекомендаций.

Что происходит внутри

Как текст запроса превращается в выборку?

После того, как создан агрегатный объект типа "Запрос":

Запрос = СоздатьОбъект("Запрос");

сформулирован текст запроса и присвоен переменной ТекстЗапроса , запрос запускается на выполнение:

Запрос.Выполнить(ТекстЗапроса);

Что же происходит внутри этого метода? Как же там всё устроено?

Попадая в метод Выполнить , текст запроса превращается в выборку путём следующих метаморфоз:

- проверка синтаксиса;

- создание таблицы выборки;

- накопление данных.

Проверка синтаксиса

Правильность написания текста

Сначала проверяется правильность написания самого текста запросов - синтаксическая проверка запроса. Может быть пропущен символ ";", может быть неверно указан путь переменной запроса, в любом случае ошибки должны быть обнаружены и исправлены.

Для выявления синтаксических ошибок на стадии разработки (ещё при работе в конфигураторе) воспользуйтесь пунктом меню " Действия – Синтаксический контроль запросов... " , выберите запросы для проверки и нажмите кнопку OK.

Поскольку речь зашла о синтаксисе, обсудим его мало освещенные аспекты.

Объявление внутренних переменных запроса

достаточно подробно описано в книге "Описание встроенного языка. Часть 2". Но хотелось бы ещё раз обратить внимание на то, что описание переменной обуславливает характер обхода ИБ для формирования выборки. Мы можем описать переменную Товар различными способами:

Товар = Справочник.Товар.ТекущийЭлемент;

или

Товар = Документ.РасходнаяНал.Товар;

или

Товар = Регистр.ОстаткиТоваров.Товар;

и во всех трех случаях запрос будет вести себя по-разному. В первом случае запрос пройдет по всем элементам справочника Товар и выдаст полный его перечень. Во втором случае запрос пройдет по документам типа РасходнаяНал и выберет только те товары, которые были проданы по этим документам. А в третьем случае запрос пройдет по движениям или по остаткам регистра (в зависимости от того, какие функции были применены в запросе) и соберет те товары, которые участвовали в этих движениях или присутствовали в остатках.

Если переменную описывают путем с более чем одной ссылкой на объект типа справочник, документ, план счетов и т.д., то говорят, что переменная описана ДЛИННЫМ ПУТЕМ, например

Валюта = Регистр.ОстаткиТоваров.Товар.ВалютаРаботы;

Адрес = Документ.РасходнаяНал.Клиент.Адрес;

Так же хотелось обратить внимание на следующие особенности синтаксиса. При работе с регистрами имеется возможность обращения не только к документу, вызвавшему движение регистра:

Док = Регистр.ИмяРегистра.ТекущийДокумент;

но и к общим реквизитам документов:

Реквизит = Регистр.ИмяРегистра.ТекущийДокумент. ИмяРеквизита;

и к самим полям документов. Но для этого необходимо указать, из каких типов документов необходимо выбирать значения:

Поле = Регистр.ИмяРегистра.ТекущийДокумент. ИмяДокумента.ИмяПоля;

При описании поля документа нельзя не указывать имени самого документа, даже если такое поле встречается в каждом документе конфигурации. Для решения этой проблемы нужно либо объявить поле общим реквизитом документов, либо перечислить в описании переменной все необходимые типы документов:

Поле = Регистр.ИмяРегистра.ТекущийДокумент.

ИмяДокумента1.ИмяПоля,

Регистр.ИмяРегистра.ТекущийДокумент. ИмяДокументаN.ИмяПоля;

Для ИБ в формате .DBF не следует злоупотреблять длинными путями, так как это увеличивает время формирования выборки, ведь запросу приходится считывать не только реквизит указанного документа или регистра, но и по ссылке на объект считывать сам этот объект для извлечения данных. Что нельзя сказать о ИБ в формате SQL. Объект Запрос формирует запрос к SQL серверу, и чем больше работы будет переложено на плечи SQL сервера, тем быстрее будет формироваться выборка.

Оператор Период С

задает временной интервал выборки данных. Параметрами этого предложения могут быть:

- Дата - в формате встроенного языка '64', '1995'.

Внешняя переменная - глобальная переменная модуля отчёта или идентификатор элемента управления формы отчёта типа Дата или Документ . Если переменная - типа Документ , то интервал запроса устанавливается на дату и время указанного документа.

- Выражение встроенного языка. Задается в круглых или фигурных скобках и может иметь тип, как Дата, так и Документ, например:

Период с (ДатаС + 1) по (ПолучитьДокументТА());.

Оператор Условие

Задаёт условие включения данных в выборку. Для оптимизации времени выполнения запроса следует знать, что в 1С:Предприятии версии 7.7 запрос сам выполняет, а не вызывает для этого исполнительную среду встроенного языка, условия вида:

ЛеваяЧастьУсловия знакСравнения ПраваяЧастьУсловия

где,

ЛеваяЧастьУсловия и ПраваяЧастьУсловия могут быть константой, переменной запроса или внешней переменной;

знакСравнения - логический оператор (">", "<", "=", "<>", ">=", "<=", "в", "in").

Ниже приведен пример запроса с элементарными условиями:

"//{{Запрос(ЭлементарноеУсловие)

|Период с ДатаС по ДатаПо;

|Товар = Документ.ПриходнаяНал.Товар;

|Дата = Документ.ПриходнаяНал.ДатаДок;

|КолВо = Документ.ПриходнаяНал.Количество;

|Группировка Товар упорядочить по Товар.Наименование;

|Условие(Дата <> ИсключитьДату);

|Условие(Товар = ВыбранныйТовар);

|Условие(КолВо >= 43);

|Условие((Дата <> ИсключитьДату) ИЛИ (КолВо >= 43))

"//}}

;

Следует обратить внимание на то, что отдельные условия в

запросе объединяются по "И", то есть запросы

Условие(ВыходнойДень(Дата) = 0);

Условие(Товар в ВыбранныйТовар);

и

Условие((ВыходнойДень(Дата) = 0) И (Товар в ВыбранныйТовар)

= 1));

будут выполняться одинаково.

Если условие не подходит под определение элементарного, то оно выполняется механизмом внутреннего языка системы 1С:Предприятие.

Если существует возможность разбить сложное условие на элементарные, то так и следует поступить. Допустим, что нам необходимо применить условие вида:

"//{{Запрос(ПреобразованиеУсловия_Было)

|//...

|Условие(Флаг = Перечисление.Булево.Да);

|//...

"//}}

;

, то для оптимизации времени исполнения запроса следует, объявить глобальную переменную:

Перем True;

а в конце модуля определить её как

True = Перечисление.Булево.Да;

и применить эту переменную для формирования элементарного условия:

"//{{Запрос(ПреобразованиеУсловия_Стало)

|//...

|Условие(Флаг = True);

|//...

"//}}

;

Следует обратить особое внимание на то, что оператор принадлежности (в/in), не поддерживается внутренним языком 1С:Предприятия, поэтому оператор принадлежности должен использоваться только в элементарных условиях вычисляемых самим Запросом. И поэтому следующий пример будет выдавать ошибки при выполнении запроса:

"//{{ЗАПРОС(ОшибкаОператораПринадлежности)

|//...

|Условие(Товар.Код в ВыбТовар.Код);

|//...

"//}}

;

Оператор Группировка

в 1С:Предприятии версии 7.5 обогатился следующими реквизитами Все и Все ВошедшиеВЗапрос . Эти реквизиты созданы для того, чтобы давать возможность создавать табличные отчёты, разворачиваемые по горизонтали и вертикали. Для иллюстрации вышесказанного, обратимся к классике - отчёту "Остатки товаров на складах".

Далее приведен текст процедуры программного модуля, реализующего формирование отчёта:

//*******************************************

// Процедура формирования отчета//

Процедура ПоСкладам()

Перем Запрос, ТекстЗапроса, Таблица;

//Создание объекта типа Запрос

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(ПоСкладам)

|Скл = Регистр.ОстаткиТоваров.Склад;

|Товар = Регистр.ОстаткиТоваров.Товар;

|КолВо = Регистр.ОстаткиТоваров.ОстатокТовара;

|Группировка Товар Упорядочить По Товар.Код;

|Группировка Скл Упорядочить По Скл.Код Все;

|Функция КО = КонОст(КолВо);

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

// Подготовка к заполнению отчета данными запроса

Таблица=СоздатьОбъект("Таблица");

Таблица.ИсходнаяТаблица("ПоСкладам");

Таблица.ВывестиСекцию("Заголовок");

// Формирование шапки отчета

Таблица.ВывестиСекцию("Шапка|Боковик");

Счётчик = 0;

Пока Запрос.Группировка("Товар") = 1 Цикл

Пока Запрос.Группировка("Скл") = 1 Цикл

Таблица.ПрисоединитьСекцию("Шапка|Склад");

Счётчик = Счётчик + 1;

КонецЦикла;

Если Счётчик>0 Тогда

прервать;

КонецЕсли;

КонецЦикла;

Запрос.ВНачалоВыборки();

// Процесс формирования строки отчета

Пока Запрос.Группировка("Товар") = 1 Цикл

Если Запрос.ЭтоГруппа(1) = 1 Тогда

Таблица.ВывестиСекцию("Группа|Боковик");

Для i = 1 по Счётчик Цикл

КоличествоДляТаблицы = 0;

Таблица.ПрисоединитьСекцию("Группа|Склад");

КонецЦикла;

Иначе

Таблица.ВывестиСекцию("Товар|Боковик");

Пока Запрос.Группировка("Скл") = 1 Цикл

КоличествоДляТаблицы = Запрос.КО;

Таблица.ПрисоединитьСекцию("Товар|Склад");

КонецЦикла;

КонецЕсли;

КонецЦикла;

// Вывод заполненной формы отчета

Таблица.ТолькоПросмотр(1);

Таблица.Опции(0,0,5,0);

Таблица.Показать("Остатки товаров на складах","");

КонецПроцедуры

Выходная таблица отчёта имеет следующий вид:

Остатки товаров на складах

Следует упомянуть тот факт, что "Запрос" дает возможность доступа к переменным, группировкам и функциям по их именам. Значения упорядочивания хоть и находятся в выборке, но у их нет имени и следовательно, доступ к их значениям по имени невозможен. Для доступа к их значениям применяется метод ЗначениеУпорядочивания. Использование этого метода, может существенно ускорить время обхода выборки, по сравнению с использованием конструкций типа:

Запрос.ИмяГруппировки.ИмяПоля

из-за того, что значение ИмяПоля, система будет повторно выбирать из ИБ.

В 1С:Предприятии версии 7.7 появились новоые возможности по упорядочиванию группировок. Первая, это возможность упорядочивать значение группировки по функции. вторая, возможность новый реквизит предложения Группировка – без упорядочивания . Реквизит без упорядочивания удобен для пакетного режима выполнения запроса, когда не важно расположение элементов группировки, а необходимы только результаты. В этом случае сбор данных упорядочивания отключается полностью, в том числе и по умолчанию, что положительно сказывается на производительности.

Оператор Функция

В этом разделе хочется обратить внимание на то, что значения функций, объявленных в запросе, определены, накапливаются и сворачиваются по всем уровням группировок, начиная с самой старшей группировки - "Итого" и кончая самой младшей. Как иллюстрацию, приведем следующий пример:

Процедура ОстаткиТоваров()

Перем Запрос, ТекстЗапроса, Таб;

//Создание объекта типа Запрос

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(ОстаткиТоваров)

|Период с ДатаС по ДатаПо;

|Товар = Регистр.ОстаткиТоваров.Товар;

|Склад = Регистр.ОстаткиТоваров.Склад;

|КолВо = Регистр.ОстаткиТоваров.ОстатокТовара;

|Группировка Товар упорядочить по

| Товар.Наименование;

|Группировка Склад упорядочить по

| Склад.Наименование;

|Функция Количество = КонОст(КолВо);

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

// Подготовка к заполнению выходных форм данными

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("ОстаткиТоваров");

// Заполнение полей "Заголовок"

Таб.ВывестиСекцию("Заголовок");

Состояние("Заполнение выходной таблицы...");

Пока Запрос.Группировка("Товар") = 1 Цикл

// Заполнение полей Товар

Таб.ВывестиСекцию("Товар");

Пока Запрос.Группировка("Склад") = 1 Цикл

// Заполнение полей Склад

Таб.ВывестиСекцию("Склад");

КонецЦикла;

КонецЦикла;

// Заполнение полей "Итого"

Таб.ВывестиСекцию("Итого");

// Вывод заполненной формы

Таб.Опции(1, 0, 1, 0);

Таб.Показать("ОстаткиТоваров", "");

КонецПроцедуры

В результирующей таблице мы видим, что значение функции определено для Результирующей записи - "Итого", для группы справочника Товары, для элемента справочника Товары, для элемента справочника Склад. То есть, значение функции определено на всех уровнях вложенности.

Создание таблицы выборки

Формат хранения временных файлов

Запрос создает временные файлы для накопления и хранения выборки на компьютере, с которого этот запрос запустили. Формат хранения временных файлов .DBF - .CDX.

Структура записи таблицы выборки

Структура записи таблицы выборки следующая:

- Поля группировок . Поля группировок идут последовательно в порядке их объявления в тексте запроса, и этот порядок крайне важен. Поле группировки состоит из полей упорядочивания и поля значения. По полям упорядочивания и полям значения строятся индексы, и следует иметь в виду, что максимальная длина ключа .CDX .файла равна 240 байтам. Если вы заводите большое количество группировок или большое число полей упорядочивания – достичь этой величины не составляет труда. При превышении максимально допустимого значения механизм запросов пропорционально уменьшает длину строковых полей упорядочивания, входящих в ключ. Если же длина ключа превышает 240 байт, а возможность сократить её за счёт строковых полей отсутствует, то обработка запроса прекратится с ошибкой "Длина индекса превышает максимальную длину и не может быть уменьшена".

- Поля функций накопления . Это самые обыкновенные числовые поля с максимальной длиной. Эти поля не входят в индексы.

- Поля внутренних переменных запроса , по которым не велись ни группировки, ни накопление. Такие переменные нужны для выборки данных из объектов группировки, по которым не нужно вести ни группировку, ни упорядочивание, а значение необходимо.

Накопление данных

После того, как мы узнали, что представляет собой запись таблицы выборки, мы наконец-то можем поговорить о том, как накапливаются данные, подчёркиваю, именно,накапливаются . Как говорилось выше, обход ИБ запросом зависит от определения путей переменных. Если переменная Товар в тексте запроса определена следующим образом:

Период с ДатаС по ДатаПо;

Товар = Документ.РасходнаяНал.Товар,

Документ.РасходнаяКредит.Товар;

Склад = Документ.РасходнаяНал.Склад,

Документ.РасходнаяКредит. Склад;

КолВо = Документ.РасходнаяНал.Количество,

Документ.РасходнаяКредит. Количество

Группировка Товар;

Группировка Склад;

Сумма = Функция Сумма(КолВо);

то запрос сначала обойдет все документы вида РасходнаяНал за указанный период, а затем - все документы вида РасходнаяКредит . И каждый раз запрос будет формировать запись, заполняя поля группировок, функций и внутренних переменных. После формирования записи, запрос будет добавлять её в таблицу выборки. Если полученного сочетания значений группировок нет, запрос добавляет запись в таблицу выборки:

а если такое сочетание значений группировок существует, то запись накапливается :

Если в записи не заполнено какое-либо поле группировок, то запись не считается сформированной, не записывается и не участвует в накоплении значений.

Использование граф отбора

Использование граф отбора может существенно убыстрить время формирования запроса, но для того, чтобы воспользоваться графами отбора, запрос должен удовлетворять следующим требованиям:

- в запросе должна быть объявлена переменная, пути которой включены в графу отбора;

- должно быть задано элементарное условие;

- условие должно быть со знаком сравнение "=".

Товар = Регистр.ИмяРегистра.Поле;

Условие(Товар = ВыбТовар); // (+)

Условие(Товар <> ВыбТовар); // (-) не знак =

Условие((Товар) = ВыбТовар); // (-) не элементарное

// условие

где ВыбТовар - внешняя переменная запроса.

У объекта метаданных типа "Запрос" существует метод ИспользоватьГрафуОтбора , который может управлять механизмом выборки данных с использованием графы отбора.

Параметр метода ИспользоватьГрафуОтбора может принимать следующие значения:

"*" - автоматический выбор графы отбора. Если в тексте запроса описаны элементарные условия со знаком "равно", то запрос просматривает переменную, фигурирующую в условии, и пытается найти для неё соответствующую графу отбора, и, если такая переменная найдена, то включается механизм выборки данных с использованием графы отбора. Когда в тексте запроса объявлены несколько условий, удовлетворяющих критериям включения механизма выборки данных с использованием графы отбора, перед запросом встает задача выбора одной единственной графы отбора из списка возможных. Запрос в своих оценках выбора графы отбора ориентируется на количество элементов справочников и перечислений. Для других типов оценка не производится, и, при желании, можно задать графу отбора вручную.

имя графы отбора . Графа отбора задаётся вручную. Если она задана неверно, то тогда при выполнении запроса выведется сообщение: "Нет переменной, удовлетворяющей заданной графе отбора".

" " - отказ от использования графы отбора.

Особенности использования запросов

Метод Выполнить может быть применен к объекту "Запрос" неограниченное количество раз. Приведем тому пример:

Процедура Сформировать()

Перем Запрос, ТекстЗапроса, Таб;

Запрос = СозадтьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(ТекстЗапроса1)

|...

"//}}ЗАПРОС

;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

// Цикл обработки запроса

...

"//{{ЗАПРОС(ТекстЗапроса2)

|...

"//}}ЗАПРОС

;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

// Цикл обработки запроса

КонецПроцедуры

При повторном вызове метода Выполнить , объект Запрос инициализирует внутренние структуры, и доступ к переменным, объявленным в предыдущем запросе и выбранным данным становится, не возможен.

Особенности позиционирования >. После формирования выборки, запрос позиционируется на первую запись ("Итого") – в начало выборки, с которой начинается обход выбранных значений. Вернуться в начало выборки, можно двумя способами. В цикле обхода пройти всю выборку до конца;

// Формирование шапки отчета

Таблица.ВывестиСекцию("Шапка|Боковик");

Счётчик = 0;

Пока Запрос.Группировка("Товар") = 1 Цикл

Если Счётчик = 0 Тогда

Пока Запрос.Группировка("Скл") = 1 Цикл

Таблица.ПрисоединитьСекцию("Шапка|Склад");

Счётчик = Счётчик + 1;

КонецЦикла;

КонецЕсли;

КонецЦикла;

// Процесс формирования строки отчета

Пока Запрос.Группировка("Товар") = 1 Цикл

Если Запрос.ЭтоГруппа(1) = 1 Тогда

Таблица.ВывестиСекцию("Группа|Боковик");

Для i = 1 по Счётчик Цикл

КоличествоДляТаблицы = 0;

Таблица.ПрисоединитьСекцию("Группа|Склад");

КонецЦикла;

Иначе

Таблица.ВывестиСекцию("Товар|Боковик");

Пока Запрос.Группировка("Скл") = 1 Цикл

КоличествоДляТаблицы = Запрос.КО;

Таблица.ПрисоединитьСекцию("Товар|Склад");

КонецЦикла;

КонецЕсли;

КонецЦикла;

или воспользоваться методом "Запроса" - ВначалоВыборки:

Таблица.ВывестиСекцию("Шапка|Боковик");

Счётчик = 0;

Пока Запрос.Группировка("Товар") = 1 Цикл

Пока Запрос.Группировка("Скл") = 1 Цикл

Таблица.ПрисоединитьСекцию("Шапка|Склад");

Счётчик = Счётчик + 1;

КонецЦикла;

Если Счётчик > 0 Тогда

прервать;

КонецЕсли;

КонецЦикла;

Запрос.ВНачалоВыборки();

// Процесс формирования строки отчета

Пока Запрос.Группировка("Товар") = 1 Цикл

Если Запрос.ЭтоГруппа(1) = 1 Тогда

Таблица.ВывестиСекцию("Группа|Боковик");

Для i = 1 по Счётчик Цикл

КоличествоДляТаблицы = 0;

Таблица.ПрисоединитьСекцию("Группа|Склад");

КонецЦикла;

Иначе

Таблица.ВывестиСекцию("Товар|Боковик");

Пока Запрос.Группировка("Скл") = 1 Цикл

КоличествоДляТаблицы = Запрос.КО;

Таблица.ПрисоединитьСекцию("Товар|Склад");

КонецЦикла;

КонецЕсли;

КонецЦикла;

Метод ВначалоВыборки можно вызывать на любом уровне вложенности циклов обработки выборки, для перехода в ее начало. Количество обходов выборки ничем не ограничено.

Методы оптимизации запросов

Общие положения написания запросов

Примером неправильной работы с данными в 1С:Предприятиии, есть и остается избыточное обращение к базе данных, вне зависимости от того, в каком формате она хранится.

Как избежать лишних обращений к ИБ, и тем самым существенно уменьшить время формирования отчета проиллюстрируем на примере "Оптимизация Отчета".

Закладка 100%

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать100)

|Период с ВыбНачПериода по ВыбКонПериода;

|Товар = Документ.РасхНакл.Товар;

|Количество = Документ.РасхНакл.Количество;

|Функция КоличествоСумма = Сумма(Количество);

|Группировка Товар;

|Условие(Товар в ВыбТовар);

|Условие(Товар.ВидТовара = ВыбВидТовара);

|"//}}ЗАПРОС

;

При написании текста запроса необходимо учитывать, что Запрос при формировании выборки сам отрабатывает только элементарные условия , не запуская при этом исполнительную среду встроенного языка, что значительно экономит время. Если есть возможность привести условие к элементарному - это необходимо сделать.

"//{{ЗАПРОС(Сформировать15)

|Период с ВыбНачПериода по ВыбКонПериода;

|Товар = Документ.РасхНакл.Товар;

|ВидТовара = Документ.РасхНакл.Товар.ВидТовара;

|Количество = Документ.РасхНакл.Количество;

|Функция КоличествоСумма = Сумма(Количество);

|Группировка Товар;

|Условие(Товар в ВыбТовар);

|Условие(ВидТовара=ВыбВидТовара);

|"//}}ЗАПРОС

;

Так как выборка формируется на компьютере пользователя, то все данные, которые необходимы пользователю для построения отчета, должны быть, по возможности, получены посредством запроса. В таблице выводится значение кода товара – для этого в запросе необходимо ввести переменную КодТовара . Тогда для формирования отчета, отпадет необходимость, каждый раз обращаться к ИБ. Следует не забывать про методы Запроса - ЗначениеУпорядочивания и ЭтоГруппа , которые опять же извлекают данные из выборки, минуя ИБ, что заметно уменьшает время формирования запроса.

"//{{ЗАПРОС(Сформировать3)

|Период с ВыбНачПериода по ВыбКонПериода;

|Товар = Документ.РасхНакл.Товар;

|ВидТовара = Документ.РасхНакл.Товар.ВидТовара;

|КодТовара = Документ.РасхНакл.Товар.Код;

|Количество = Документ.РасхНакл.Количество;

|Функция КоличествоСумма = Сумма(Количество);

|Группировка Товар;

|Условие(Товар в ВыбТовар);

|Условие(ВидТовара=ВыбВидТовара);

|"//}}ЗАПРОС

;

В отчете "Оптимизация Отчета" время выполнение самой медленной версии взято за 100%, остальные версии берутся как процент от нее. Следование правилам, дало возможность уменьшить время выполнения запроса почти на 2 порядка!

Особенности использования запросов для получения информации из справочников

В случае применения объекта "Запрос" для выборки информации из справочников 1С:Предприятия необходимо учитывать следующую особенность. При обработке справочника объект "Запрос" не обрабатывает группы справочника. То есть он не использует их в качестве исходных данных для получения первичной выборки. При обработке уже полученных записей запрос добавляет группы для выбранных записей - элементов, если существует группировка по переменной запроса типа "Справочник". Такой способ обработки является стандартным, и Запрос выполняет ее так же, как он это делает, например, для реквизитов документа имеющих тип "Справочник". То есть, если в запросе по документам использовать группировку по реквизиту "Товар" документа "Счет", то в полученном отчете можно получить записи и по группам товаров, вошедших в запрос. Аналогично, если в запросе по справочнику получать в качестве группировки текущий элемент, то в полученный отчет будут включены записи, соответствующие группам отобранных запросом элементов. Однако так как сами группы не обрабатываются запросом при заполнении таблицы выборки, то в отчет не попадут те группы, которые не имеют элементов, или группы, элементы которых не попали в выборку. Соответственно объект "Запрос" не может применяться в тех случаях, когда нужно обрабатывать собственно группы, или получать все элементы, включая группы. С другой стороны, так как в большинстве случаев должны выбираться непосредственно элементы, запрос может быть успешно применен для обработки справочника. В том числе, Запрос позволяет существенно ускорить выборку элементов по условию, при работе с базой данных в формате SQL.

При обработке с помощью запроса справочников, имеющих периодические реквизиты, следует учитывать, что значения периодических реквизитов выбираются только на конечную границу периода запроса. То есть, с помощью запроса нет возможности получить историю периодических реквизитов, а можно получить только срез значений на определенный момент.


1С-Предприятие. Документация | Технологические вопросы

Технологические вопросы

  • Обработка ошибочных ситуаций во встроенном языке системы 1С:Предприятие 7.7
  • Блокировка объектов базы данных
  • Вычисление логических выражений в операторах встроенного языка
  • Особенности применения предопределенных процедур встроенного языка
  • Сохранение (восстановление) значений в строку
  • Работа со значениями агрегатных типов во встроенном языке
  • Значения типов, соответствующих объектам и информационной базы во встроенном языке
  • Выбор разрядности для данных числовых типов
  • Перебор объектов и групповое изменение данных
  • Ошибки базы данных и их обработка
  • Использование строковых реквизитов неограниченной длины
  • Особенности работы с типизированными и не типизированными колонками таблицы значений.
  • Применение процедуры ПриНачалеРаботыСистемы() глобального модуля
  • Точность вычисления и представления числовых величин
  • Доступ во встроенном языке к метаданным
  • Особенности работы с реквизитами неопределенного типа
  • Особенности написания тела модуля

Обработка ошибочных ситуаций во встроенном языке системы 1С:Предприятие 7.7

Во встроенный язык системы 1С:Предприятие 7.7 внесена возможность обработки ошибочных ситуаций. В предыдущих версиях системы 1С:Предприятие любая ошибка, происшедшая при выполнении модулей встроенного языка приводила к завершению выполнения модуля и выдаче в окно сообщений информации о характере ошибки и модуле, в котором она произошла. При этом разработчик конфигурации не имел возможности вмешаться в процесс обработки ошибочной ситуации и предусмотреть некоторые действия, которые могут нейтрализовать последствия ошибки и позволить продолжить выполнение модуля. Особенно неприятны ситуации, когда из-за несущественных поводов прекращается выполнение длительных процедур, после чего их приходилось начинать сначала. Примером такой ситуации может послужить обработка, выполняющая обход и обновление некоторого реквизита большого числа элементов справочника в случае, если в процессе работы будет произведена попытка обновить реквизит заблокированный другим пользователем. Неприятны также ситуации, когда конфигурации, использующие внешние по отношению к системе 1С:Предприятие программные средства через механизмы OLE Automation не могли произвести проверку наличия установленных на компьютере пользователя необходимых программных средств. Примером для такого случая может послужить поведение отчета, выводящего результаты через OLE Automation в таблицу MS Excel, в условиях, когда MS Excel на компьютере пользователя отсутствует.

С появлением системы 1С:Предприятие 7.7 положение дел изменилось. Теперь разработчики конфигураций могут предусматривать в алгоритмах модулей реакцию на все ошибочные ситуации, которые могут возникать при выполнении модулей встроенного языка. В целом средства обработки ошибочных (исключительных) ситуаций подобны аналогичным средствам предусмотренным в современных языках программирования.

Попытка

// Некоторые действия

Исключение

// Обработка исключительной (ошибочной) ситуации)

КонецПопытки

Суть в следующем: если при выполнении последовательности операторов <// Некоторые действия> происходит ошибка, то выполнение оператора прекращается и управление передается на первый оператор последовательности <// Обработка исключительной (ошибочной) ситуации)>. После завершения выполнения данной последовательности управление получает первый оператор, следующий за КонецПопытки. В случае, если при выполнении <// Некоторые действия> ошибок не произошло, то управление, минуя <// Обработка исключительной (ошибочной) ситуации)> также попадает на первый оператор, следующий за КонецПопытки. Конструкции Попытка…Иключение…КонецПопытки могут быть вложенными, при этом для передачи управления из более внутреннего обработчика исключительной ситуации в более внешний служит оператор ВызватьИсключение. В случае, если оператор ВызватьИсключение будет выполнен в самом внешнем обработчике ошибки, то выполнение модуля будет прекращено и сообщение об ошибке будет выдано в окно сообщений, как и в случае полного отсутствия обработчиков ошибок. Для получения текста описания ошибки внутри последовательности операторов <// Обработка исключительной (ошибочной) ситуации)> служит встроенная функция ОписаниеОшибки(). Более подробно о механизме обработки исключительных ситуаций можно прочитать в книге "1С:Предприятие 7.7. Описание встроенного языка. Часть 1.".

В методической конфигурации приводится обработка ПересчетЦен, модуль которой содержит пример обработки ошибочной ситуации. Данная обработка изменяет значение реквизита Цена для всех элементов справочника Товары путем умножения на вводимый пользователем коэффициент. Предполагается, что справочник Товары может содержать несколько тысяч элементов. При этом значения реквизита для всех элементов должны быть изменены согласованно, не прерывая работы других пользователей. Для обеспечения согласованности изменения реквизитов всех элементов справочника все изменения выполняются в рамках одной транзакции.

Если в процессе записи какого-либо элемента справочника Товары произойдет ошибка, то управление будет передано в блок обработки исключительных ситуаций. Пользователю будет выдано сообщение об ошибке и запрос на повторение попытки записи элемента справочника. Если пользователь, выберет вариант "Да", то попытка записи будет повторена, а если нет, то все сделанные изменения в справочнике будут отменены и выполнение процедуры будет прекращено.

Блокировка объектов базы данных

В данном разделе рассматриваются различные стратегии и логика механизмов блокировок базы данных системы 1С:Предприятие 7.7, используемых для обеспечения многопользовательского режима работы. Как известно, все варианты системы 1С:Предприятие 7.7 способны работать с базами данных в формате .DBF/.CDX. Кроме того, имеются варианты поставки - 1С:Предприятие 7.7 для SQL, способные работать с базами данных, размещаемыми в среде серверов баз данных Microsoft SQL Server 6.5/7.0. Естественно, что для этих двух форматов баз данных используются совершенно разные механизмы доступа к данным. Но при этом логика работы с базой данных в общем остается неизменной. Соответственно, все, о чем будет рассказано в данном разделе является справедливым для обоих возможных форматов построения баз данных системы 1С:Предприятие 7.7.

Блокировки, осуществляемые в базе данных системы 1С:Предприятие 7.7 можно разделить на две группы:

  • Табличные (транзакционные) блокировки
  • Блокировки отдельных объектов базы данных

Табличные (транзакционные) блокировки , как следует из названия выполняются на уровне таблиц и служат для обеспечения взаимодействия транзакций, выполняемых несколькими экземплярами системы 1С:Предприятие в одной информационной базе. Блокировки данного вида автоматически устанавливаются и снимаются программами системы 1С:Предприятие в процессе отработки транзакций и предназначены для обеспечения неизменности считанных данных в процессе выполнения транзакции. Имеются два уровня табличных блокировок "на чтение" и "на запись". Различаются эти два уровня тем, что "на чтение" одна и та же таблица может быть заблокирована более чем одним экземпляром системы 1С:Предприятие, в то время как блокировка "на запись" является исключительной, то есть "на запись" таблица может быть заблокирована только одним экземпляром системы.

Работают табличные блокировки следующим образом. Если в процессе выполнения транзакции производится чтение из какой-либо таблицы базы данных, то предпринимается попытка заблокировать данную таблицу "на чтение" (если она не была заблокирована ранее "на чтение" или "на запись"). Если попытка завершается успешно, то чтение завершается успешно и выполнение транзакции продолжается. При этом блокировка с таблицы не снимается до завершения выполнения транзакции. Другие же экземплярами системы 1С:Предприятие лишаются возможности выполнять операции записи в эту таблицу, так как это нарушит принцип неизменности данных, считанных в процессе выполнения транзакции.

Аналогично, если в процессе выполнения транзакции выполняется операция записи, то предпринимается попытка заблокировать таблицу, в которую выполняется запись (если, конечно, блокировка не была установлена ранее) . Если установка блокировки завершается успешно, то операция записи также успешно завершается и таблица остается заблокированной до завершения выполнения транзакции. При этом транзакции, выполняемые другими экземплярами системы 1С:Предприятие лишаются возможности производить чтение из заблокированной "на запись" таблицы, так как для них не может быть гарантирована неизменность считанных ими данных.

Установка табличных блокировок выполняются с таймаутом. Это означает, что в случае неудачной попытки установить блокировку таблицы сразу, попытки будут повторяться в течение некоторого интервала времени. Этот интервал может устанавливаться пользователем с помощью параметра "Время ожидания захвата таблиц Базы Данных", который доступен через диалог установки параметров системы 1С:Предприятие (пункт меню <Сервис/Параметры>, страница диалога <Общие>).

Блокировки отдельных объектов базы данных предназначены для обеспечения корректного взаимодействия между несколькими экземплярами системы 1С:Предприятие при изменении таких объектов как константа, элемент справочника, документ, счет бухгалтерского учета и т. п. Блокировки отдельных объектов бывают двух видов:

  • "Пессимистические"
  • "Оптимистические"

"Пессимистические" блокировки предназначены для обеспечения исключительного доступа для изменения к объектам базы данных системы 1С:Предприятие. Данный вид блокировок хорошо знаком пользователям системы 1С:Предприятие. В частности "пессимистическая" блокировка автоматически устанавливается системой 1С:Предприятие при начале редактирования в форме или списке констант, элементов справочников, документов и т. п. Установка "пессимистической" блокировки не позволяет никому (кроме того, кто заблокировал объект) модифицировать заблокированный объект. Только одна "пессимистическая" блокировка может быть установлена для одного объекта базы данных. Это означает, что если тот или иной объект открыт для редактирования одним экземпляром системы 1С:Предприятие, то не только другой экземпляр системы 1С:Предприятия не сможет открыть для редактирования или изменить этот объект, но и никакой модуль встроенного языка в рамках того же экземпляра не сможет его модифицировать.

В более ранних чем 7.7 версиях системы 1С:Предприятие механизм "пессимистических" блокировок использовался только при редактировании тех или иных объектов базы данных и никак не мог быть задействован из встроенного языка. В версии 7.7 введена возможность явной блокировки объектов из встроенного языка. Данная возможность доступна только для объектов, создаваемых посредством обращения к функции СоздатьОбъект . Соответственно, таким способом могут быть заблокированы такие объекты базы данных как элементы справочника, счета бухгалтерского учета и документы. Блокировка отдельных объектов осуществляется с помощью обращения к методу Блокировка(<ВклВыкл>). Необязательный параметр <ВклВыкл> обозначает действие, которое надо выполнить: 1 - заблокировать объект базы данных, 0 - разблокировать. Метод возвращает значение, показывающее результат выполнения операции: 1 - операция выполнена

успешно, 0 - операция не выполнена. Если параметр при обращении к методу не задан, то возвращается текущий статус блокировки объекта базы данных: 1 - заблокирован, 0 - "свободен". Следует понимать, что имеется в виду статус блокировки, установленной этим же объектом типа справочник, документ или счет, а не каким-либо другим объектом или другим экземпляром системы 1С:Предприятие. Примером использования метода Блокировка может послужить следующий фрагмент модуля:

Спр = СоздатьОбъект("Справочник.Товары");

Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент() = 1 Цикл

Пока Спр. Спр.Блокировка(1) = 0 Цикл

Если Вопрос("Элемент справочника заблокирован! Повторить попытку?",

"Да+Нет") = "Нет" Тогда

Возврат;

КонецЕсли;

КонецЦикла;

// Модифицируем реквизиты элемента справочника

Спр.Записать(); // Записываем измененный элемент справочника

КонецЦикла;

Следует обратить внимание, что после записи модифицированного элемента справочника не производится снятия блокировки в явном виде. В этом нет необходимости, так как блокировка автоматически снимается при переходе к следующему элементу с помощью метода ПолучитьЭлемент().

Механизм "оптимистических" блокировок предназначен для обеспечения непротиворечивости модификации объектов базы данных. Работают "оптимистические" блокировки полностью автоматически. Отличие "оптимистических" блокировок от "пессимистических" можно пояснить на примере. Предположим имеется задача модификации справочника Товары (например, пересчет цен). Для выполнения этой задачи может использоваться одна из двух имеющихся специальных обработок. Каждая из них последовательно обходит элементы справочника и модифицирует их. Однако первая, подобно тому, как это было показано в приведенном выше примере перед модификацией блокирует элемент справочника, а вторая такой блокировки не производит.

Теперь представим себе, что модификация справочника Товары производится одновременно двумя экземплярами системы 1С:Предприятие. При этом Экземпляр 1 пользуется первым вариантом обработки, а Экземпляр 2 - вторым. При их взаимодействии может наблюдаться следующий результат, если оба экземпляра "встретятся" на модификации одного и того же элемента справочника:

Действия Экземпляра 1 | Действия Экземпляра 2 | Результат
ПолучитьЭлемент() |  | ОК
 | ПолучитьЭлемент() | ОК
Блокировка(1) |  |
 | Записать() | Ошибка!
Записать() |  | ОК

Из приведенной таблицы видно, что Экземпляр 2 не смог произвести запись элемента справочника, заблокированного Экземпляром 1. Сработал механизм "пессимистической" блокировки. Аналогично, если бы оба экземпляра системы 1С:Предприятие пользовались первым вариантом обработки, то Экземпляр 2 не смог бы заблокировать элемент справочника.

А теперь представим, что оба экземпляра системы 1С:Предприятие пользуются вторым вариантом обработки. Тогда "встреча" на одном и том же элементе справочника может пройти следующим образом:

Действия Экземпляра 1 | Действия Экземпляра 2 | Результат
 | ПолучитьЭлемент() | ОК
ПолучитьЭлемент() |  | ОК
Записать() |  | Ошибка!
 | Записать() | ОК

Ошибка, которая происходит при записи элемента справочника Экземпляром 2 и является следствием работы механизма "оптимистических" блокировок. Как было упомянуто выше, задачей механизма "оптимистических" блокировок является обеспечение непротиворечивости модификации объектов базы данных. В данном же случае имеет место следующее. Экземпляр 2 считал элемент справочника и приступил к его модификации. В это время Экземпляр 1 успел считать, модифицировать и записать этот же элемент справочника. Когда Экземпляр 2 приступил к выполнению операции записи, значения реквизитов элемента справочника уже отличались от тех, которые были считаны перед модификацией. И в данной ситуации запись элемента справочника может привести к некорректным результатам, так как в общем случае, модификация реквизитов может производиться исходя из их предшествующего состояния, которое оказалось изменившимся.

Таким образом, можно сформулировать различия в логике функционирования двух рассматриваемых механизмов блокировок. Логика механизма "оптимистических" блокировок исходит из предположения (оптимистического), что в промежутке между считыванием и записью измененного состояния объекта вероятность того, что этот же объект будет изменен кем-то другим невелика. Логика же механизма "пессимистических" блокировок в соответствии с их названием исходит из того, что случиться может всякое и лучше, если объект будет гарантированно защищен от посторонних изменений.

Вычисление логических выражений в операторах встроенного языка

В условных операторах и операторах цикла встроенного языка системы 1С:Предприятие для определения последовательности выполняемых действий используются логические выражения. Логическим выражением может быть элементарное логическое выражение (сравнение двух значений) или более сложные конструкции полученные из элементарных логических выражений при помощи логических операций И/ИЛИ/НЕ.

Логические выражения могут быть весьма сложными и изощренными. И здесь у разработчика конфигурации может возникнуть сложности, связанные с неправильным пониманием правил вычисления логических выражений. Рассмотрим пример.

Предположим, имеется процедура, предназначенная для обработки некоторого реквизита справочника или документа. Тип данного реквизита не определен, а процедура может вызываться для любого значения реквизита вне зависимости от его типа. Процедура может иметь вид:

Процедура Обработать(Об)

Если (ТипЗначенияСтр(Об) = "Справочник") И (Об.Вид() = "Товары") Тогда

// Некоторые действия

КонецЕсли;

...

КонецПроцедуры

Если в качестве значения параметра, передаваемого в данную процедуру, будет фигурировать элемент справочника любого вида, то процедура будет работать нормально, но если в качестве параметра будет передано значение типа "Число" или "Дата", то выполнение процедуры будет аварийно завершено. В логическом выражении, используемом в операторе 'Если' только составляющая ТипЗначенияСтр(Об) = "Справочник" будет корректно функционировать независимо от типа передаваемого параметра, а составляющая Об.Вид() = "Товары" сможет нормально работать только в том случае, если в качестве параметра в процедуру передано значение агрегатного типа и для данного агрегатного типа определен метод Вид(). Дело в том, что при вычислении логических выражений встроенный язык системы 1С:Предприятие 7.х сначала вычисляет элементарные логические выражения (операции сравнения), а затем производит вычисление логического выражения в целом (операции И/ИЛИ/НЕ).

Таким образом, данная процедура не сможет корректно работать с параметром заранее не определенного типа и может при выполнении вызвать ошибку, что неприемлемо. Очевидно, что для правильного функционирования процедуры при ее разработке следовало учесть порядок вычисления логических выражений, принятый во встроенном языке системы 1С:Предприятие 7.х. То есть, чтобы работоспособность процедуры сохранялась при любом значении параметра, процедура должна выглядеть как:

Процедура Обработать(Об)

Если ТипЗначенияСтр(Об) = "Справочник" Тогда

Если Об.Вид() = "Товары" Тогда

// Некоторые действия

КонецЕсли

КонецЕсли

...

КонецПроцедуры

В данном случае порядок вычисления логических выражений в операторах Если выражен в явном виде и выражение Об.Вид() = "Товары" будет вычисляться только в том случае если условие ТипЗначенияСтр(Об) = "Справочник" окажется истинным и ошибки при выполнении процедуры не произойдет при любом значении параметра.

Заметим, что приведенный выше порядок вычислений не распространяется на вычисление выражений определяющих результат оператора "?". Само условие оператора "?" вычисляется по общим правилам логических выражений описанным выше, но из двух выражений определяющих результат оператора "?" выполняется только одно (в зависимости от результата логического выражения). То есть, в одном из выражений определяющих результат оператора "?" (не вычисляемом) ошибок времени выполнения не будет возникать вне зависимости от используемых в нем конструкций.

Особенности применения предопределенных процедур встроенного языка

Во встроенном языке системы 1С:Предприятие 7.x предусмотрен ряд системных предопределенных процедур При..., таких как "ПриЗаписи", "ПриУдаленииДокумента", "ПриУдаленииЭлемента", "ПриЗаписиКонстанты", "ПриОтменеПроведенияДокумента" и т. п., определяемых в различных модулях конфигурации и вызываемых системой при выполнении соответствующих действий. Назначение указанных процедур состоит в том, чтобы специалист по конфигурированию мог предусмотреть необходимые проверки при интерактивном выполнении соответствующих операций, и, в случае необходимости, имел возможность запретить их выполнение.

При этом следует учитывать следующие особенности данных процедур:

1. Указанные предопределенные процедуры не связаны непосредственно с действиями, при выполнении которых они вызываются, а сам вызов производится только при интерактивном выполнении указанных действий. Например, процедура "ПриУдаленииДокумента" будет вызвана в том случае, когда удаление документа будет инициировано "нажатием кнопки" в форме журнала. В то же время вызов этой предопределенной процедуры не будет производиться, если удаление документа производится из какого-либо модуля встроенного языка (например, из некоторой обработки).

2. Вызовы указанных предопределенных процедур не объединены с выполняемым действием единой транзакцией. Это означает, что в случае интерактивного удаления документа, само удаление документа выполняется в транзакции, отдельной от действий, которые могут выполняться в процедуре "ПриУдаленииДокумента". И если в процедуре "ПриУдаленииДокумента" действия будут выполняться в раках одной, явно определенной в процедуре транзакции, то все равно приходится говорить о двух транзакциях:

- удаление документа;

- действия, выполняемые в процедуре "ПриУдаленииДокумента"

Примером неправильного применения таких предопределенных процедур является использование предопределенных процедур группы "При..." для выполнения действий критичных с точки зрения поддержки целостности данных. Например, при записи документа создается, записывается и проводится ряд связанных с ним документов (процедура "ПриЗаписи" модуля формы документа). И эти же связанные документы удаляются при удалении "ведущего" документа (процедура "ПриУдаленииДокумента" глобального модуля).

Такую технику вряд ли следует признать правильной, в силу приведенных выше особенностей предопределенных процедур. Так как предопределенные процедуры не связаны жестко с выполняемыми действиями, то вполне вероятно, что при очередном изменении конфигурации удаление документа станет выполняться не из формы журнала, а из специально созданной обработки, что приведет к тому, что процедура "ПриУдаленииДокумента" в данном случае вызываться не будет и, соответственно, не будут произведены необходимые для этого случая действия. Но если возникновение ситуаций такого рода еще можно как-топредотвратить путем более тщательной проработки конфигурации, то объединить действия, выполняемые в рамках процедуры "ПриУдаленииДокумента" и собственно удаление документа в одну транзакцию не возможно. При этом разнесение единого по логике действия в разные транзакции может быть весьма опасно с точки зрения поддержания логической целостности данных, так как ситуация, когда одно действие выполняется, а другое по каким-либо причинам - нет, вполне вероятна, особенно в многопользовательских системах.

Заметим, что описанные выше особенности предопределенных процедур не распространяются на предопределенные процедуры "ОбработкаПроведения" и "ОбработкаУдаленияПроведения". Эти предопределенные процедуры вызываются непосредственно в транзакции проведения (отмены проведения) и выполняемые в них алгоритмы логически связанны с самим выполняемым действием. Кроме того, в отличие от других предопределенных процедур эти предопределенные процедуры выполняются и в случае проведения (отмены проведения) средствами встроенного языка.

Сохранение (восстановление) значений в строку

В 1С:Предприятии существует несколько способов, позволяющих преобразовать значение к строковому виду и восстановить его обратно из строки.

Заметим, что в данном случае речь идет не о преобразовании к строке значения вызовом функции "Строка" или аналогичном автоматическом преобразовании в выражении строкового типа. Такое преобразование используется лишь для получения визуального представления значения и кроме типов "число", "строка", "дата", не имеет возможности обратного преобразования.

В данном разделе описываются способы, которые ориентированы на преобразование значения в строку с целью его обратного преобразования к исходному типу. Эти возможности используются обычно для решения специальных задач, связанных с хранением значений вне информационной базы или передачи данных в другую информационную базу или программу.

Следует учитывать, что применение таких преобразований требует хорошего понимания данного механизма и системы 1С:Предприятия в целом.

Какие значения преобразуются в строку.

К строковому виду могут быть преобразованы значения любых типов, которые могут храниться в информационной базе, то есть тех типов, которые доступны, например, при создании реквизита документа. Это, прежде всего, базовые типы ("число", "строка", "дата"), а также типы определяемые метаданными ("перечисление", "счет", "справочник", "документ" и т.д.).

Кроме того, к строке могут быть преобразованы значения типа "СписокЗначений" и "ТаблицаЗначений", которые фактически представляют собой набор отдельных значений.

Значения других типов используемых во встроенном языке 1С:Предприятия, но не хранящиеся в информационной базе (например, "Таблица" или "Запрос") не могут быть преобразованы к строке.

При сохранении в строку значений типа "СписокЗначений" и "ТаблицаЗначений" допускается вложенное преобразование значений. То есть при преобразовании списка значений будет преобразовываться в строку все значения входящие в список, включая списки значений и таблицы значений. Разумеется, не будут преобразовываться в строку входящие в список значения, которые сами не могут быть преобразованы к строке.

Также следует иметь в виду, что преобразуются к строке отдельные значения, а не объекты данных. То есть, можно преобразовать к строке значение реквизита элемента справочника, но нельзя преобразовать к строке весь элемент справочника целиком. Для сохранения в строке элемента справочника, необходимо сохранять отдельно все его реквизиты.

Способы преобразования к строке.

Значения могут преобразовываться к строке в двух разных форматах - внутреннем и внешнем. Использование этих форматов существенно отличается по своему назначению и возможностям. При преобразовании к строке формат (внутренний или внешний) всегда задается явно. Он определяется именем функции или ее параметром. При обратном преобразовании (из строки) необходимо вызывать соответствующую функцию преобразования именно из того формата, в котором выполнялось сохранение значения в сроковом виде.

Внутренний формат.

Для преобразования к строковому виду (и обратно) во внутреннем формате используются следующие функции:

- ЗначениеВСтрокуВнутр / ЗначениеИзСтрокиВнутр;

- ЗначениеВФайл / ЗначениеИзФайла - параметр "Формат" =1;

- СохранитьЗначение / ВосстановитьЗначение.

Кроме того, во внутреннем строковом формате хранятся значения расшифровок табличного документа.

Значение, полученное в сроковом виде во внутреннем формате, может быть преобразовано из строки к исходному типу только в той же информационной базе. Это объясняется тем, что для сохранения значения во внутреннем формате используются системные идентификаторы (не отображаемые на экране), как объектов метаданных, так и объектов данных. При попытке преобразовать значение, сохраненное во внутреннем формате, в другой конфигурации может произойти неправильное преобразование значения.

Если объект данных в информационной базе, на который ссылалось значение, удален (например, элемент справочника), то при преобразовании значения из строки обращение к этому значению не вызовет системной ошибки, но, разумеется и не позволит получить данные удаленного объекта.

Строки, полученные преобразованием значений к строке во внутреннем формате нельзя хранить в информационной базе. Прежде всего, это приведет к нарушению работы механизма контроля ссылочной целостности. Также, это может повлиять на работу компоненты "Управление распределенными данными ИБ". Разумеется, такое хранение значений, также не позволит системе оптимизировать обращение к данным при использовании версий 1С:Предприятия для SQL. Заметим, что хранение в информационной базе значений преобразованных в строку нарушает идеологию 1С:Предприятия и затрудняет отладку и модификацию конфигураций.

Отдельно следует отметить возможность использования преобразования значений к строке во внутреннем формате для однозначной идентификации объектов, при переносе информации из одной информационной базы в другую. То есть, при загрузке некоторых данных из другой информационной базы строковые представления значений другой ИБ в данной ИБ не могут использоваться собственно для обратного преобразования, но могут использоваться для сопоставления двух значений той ИБ, из которой идет загрузка. Например, если загружается справочник, то ссылку на родителя загружаемого элемента можно сопоставить со ссылкой ранее загруженной группы справочника, для точной идентификации родителя. Разумеется, сопоставлять можно только строки, полученные в одной информационной базе. То есть в описанном примере строковое представление во внутреннем формате должно выгружаться и для самих групп и для родителей элементов, чтобы при загрузке их можно было сопоставить. Для сопоставления можно рекомендовать запоминать при загрузке групп строковые представления этих групп в исходной ИБ, а при загрузке элементов искать группу соответствующую загружаемому элементу по строковому представлению родителя элемента в исходной ИБ.

Внешний формат

Для преобразования к строковому виду во внешнем формате используются

следующие функции:

- ЗначениеВСтроку / ЗначениеИзСтроки;

- ЗначениеВФайл / ЗначениеИзФайла - параметр "Формат" =0.

В отличие от внутреннего формата, при преобразовании значения в строку во внешнем формате система использует не системные идентификаторы объектов метаданных и данных, а обычные строковые идентификаторы объектов метаданных и те значения данных, на основании которых можно однозначно идентифицировать объект. Например, для преобразования к строке во внешнем формате значения типа "Справочник.Товары" будет использован идентификатор справочника "Товары", а также код элемента справочника. Если для кода справочника уникальность установлена в пределах группы, то будет использован полный код с учетом всех вышестоящих групп. Если справочник является подчиненным, то для идентификации значения будут использован код элемента справочника - владельца. Разумеется, если для справочника отключен контроль уникальности кодов, то преобразование значения этого типа практически не имеет смысла. Для сохранения значения типа "документ", если уникальность номеров поддерживается в пределах некоторого интервала (года, месяца), то для сохранения и восстановления значения используется также дата документа.

Внешний формат преобразования к строке может использоваться для переноса значений между различными информационными базами. Разумеется, успех обратного преобразования зависит от того, имеются ли в той информационной базе, в которой значение преобразуется из строки объекты метаданных с соответствующими идентификаторами и объекты данных соответствующими кодами/номерами. Например, полученное нами в строковом виде значение типа "Справочник.Товары", будет правильно обратно преобразовано, если имеется справочник, товары и элемент справочника с тем кодом, который был у элемента, на который ссылалось значение преобразованное к строке.

При восстановлении значения из строки во внешнем формате преобразование может быть не выполнено по нескольким причинам. Например, в той конфигурации, в которой происходит преобразование из сроки, не существует объекта метаданных с идентификатором, соответствующим типу значения, сохраненного в строке. Другой причиной может быть отсутствие в информационной базе объекта данных с тем кодом (номером), который был у элемента справочника, документа или счета, на который ссылалось сохраненное в строке значение. Кроме того, преобразование может быть не выполнено из-за отличий в свойствах объектов метаданных. Например, если при сохранении в строку значения типа "Справочник.Товры" у справочника "Товары" была установлена уникальность кода в пределах подчинения, а при восстановления значения из строки уникальность кода была установлена в пределах всего справочника, то значение из строки не будет восстановлено. Однако, неудачное преобразование из строки не вызывает системной ошибки, а приводит лишь к получению пустого значения.

Заметим, что возможность преобразования к строке во внешнем формате может использоваться при передаче данных из одной информационной базы 1С:Предприятия в другую с помощью Ole Automation, так как непосредственно передать значение типа "справочник", "документ" и т.п. через Ole

Automation нельзя.

Следует учитывать, что восстановление значений типа "справочник", "документ" или "счет" из строки во внешнем формате в отличие от использования внутреннего формата занимает определенное время, так как при этом выполняется обращение к информационной базе для поиска значений по сохраненному номеру (коду).

Заметим, что преобразование к строке и обратно значений типа "число", "строка" и "дата" происходит однозначно (гарантированно) в обоих форматах, так как эти значения не зависят от конфигурации. В качестве примера такого сохранения в методической конфигурации в обработке "НастройкаПрописи" выполняется сохранение в файле строк, используемых для вывода чисел, дат и периодов прописью.

Работа со значениями агрегатных типов во встроенном языке

При работе со значениями агрегатных типов во встроенном языке системы 1С:Предприятие следует учитывать некоторые особенности, которые не всегда являются очевидными.

Каждое значение агрегатного типа в системе 1С:Предприятие включает две составляющие:

  • внутренний идентификатор объекта данных;
  • ссылка на объект доступа.

Внутренний идентификатор объекта предназначен для максимально полной идентификации объекта, соответствующего значению агрегатного типа. А объект доступа служит для обращения к объекту данных посредством реквизитов и методов. При выполнении присваивания переменной встроенного языка значения агрегатного типа, в переменную копируется внутренний идентификатор объекта и ссылка на объект доступа, если таковой имеется. Сам объект доступа при этом не копируется! Таким образом, в результате

выполнения оператора

A = B;

при условии, что переменная B имела значение агрегатного типа и уже имела ссылку на объект доступа, переменные A и B будут ссылаться на один и тот же объект доступа. В отличие от базовых типов (число, строка, дата), для которых при присваивании копируется само значение, при присваивании агрегатных типов копируется не объект доступа, а только ссылка на него.

Здесь, однако, следует учитывать, что не всегда значение агрегатного типа содержит ссылку на тот или иной объект доступа. В некоторых случаях объекта доступа, соответствующего значению агрегатного типа может еще не существовать.

Значение агрегатного типа всегда содержит ссылку на объект доступа в тех случаях, когда значение было создано с помощью функции СоздатьОбъект(). А вот у атрибутов запросов, реквизитов справочников, документов и т. п., имеющих агрегатный тип, значения изначально не содержат ссылок на объекты доступа, пока они не будут созданы при обращении к атрибутам и методам. Соответственно и при присваивании таких значений переменным встроенного языка, переменные также не приобретают ссылок на объекты доступа, если они еще не были созданы.

Как же тогда в таких случаях происходит обращение к атрибутам и методам? Дело в том, что значение агрегатного типа, у которого нет ссылки на объект доступа может существовать только для конкретных типов системы 1С:Предприятие - элементов справочников, документов, счетов бухгалтерского учета и т. п.. И здесь выручает внутренний идентификатор объекта, который всегда содержится в значении агрегатного типа и для указанных типов может предоставить исчерпывающую информацию, необходимую для создания объекта. А само создание объекта доступа производится при первом обращении его методу или атрибуту. Поясним вышесказанное на примере:

Тов = Док.Товар; // Объект доступа еще не создан, при условии, что ранее не было обращений к атрибутам и методам;

Тов2 = Док.Товар; // Аналогично

Цена = Тов.Цена; // Для переменной Тов создается объект доступа

Цена2 = Тов2.Цена; // Для переменной Тов2 создается объект доступа. Тов и Тов2 ссылаются на разные объекты доступа

Тов3 = Тов; // Тов и Тов3 ссылаются на один объект доступа

При создании объекта доступа происходит считывание данных объекта информационной базы. В дальнейшем значения прочитанных реквизитов остаются неизменными, вне зависимости от изменений, производимых в информационной базе. Поэтому не следует, сохранять в переменных на продолжительный период значения, соответствующие элементам справочников, документам и т. п., в надежде, что в их реквизитах будут отображаться актуальные на текущий момент значения.

Надо отметить, что объекты доступа продолжают существовать до тех пор, пока на них есть ссылки. Для приведенного выше примера уничтожение объектов, созданных для доступа к реквизитам элемента справочника может быть вызвано выполнением последовательности операторов:

Тов = 0; // Удалена ссылка на объект доступа

Тов2 = 0; // Уничтожен первый объект доступа

Тов3 = 0; // Уничтожен второй объект доступа

В результате выполнения этих операторов ссылки на объекты доступа удаляются путем присваивания переменным других значений. Ссылки на объекты доступа были бы также уничтожены при выходе из процедуры или функции, для которой переменные Тов, Тов2 и Тов3 были локальными. Если же переменная, содержащая ссылку на объект доступа, является глобальной переменной глобального модуля, то единственный способ уничтожить ссылку на объект доступа - это присвоить переменной другое значение.

Теперь рассмотрим случай, когда обращение к реквизиту происходит не через одну, как в рассмотренных выше примерах, а через две и более точек? Например, в случае выполнения оператора:

Цена = Док.Товар.Цена;

В этом случае, исполняющая система встроенного языка получает значение реквизита Товар документа, представленного значением переменной Док. При этом полученное значение не будет содержать ссылки на объект доступа. Затем, исполняющая система создает объект доступа, соответствующий реквизиту Товар, и, затем, с помощью созданного объекта, получает значение реквизита Цена. Затем объект доступа удаляется, так как ни одна из переменных после выполнения указанного оператора на объект не ссылается. Таким образом, при выполнении последовательности операторов

Наимен = Док.Товар.Наименование;

Цена = Док.Товар.Цена;

объект доступа, соответствующий Док.Товар будет дважды создан и дважды уничтожен. С точки зрения производительности для достижения той же цели было бы эффективнее воспользоваться последовательностью операторов:

Тов = Док.Товар; // Присваивается реквизит документа. Объект доступа еще не создан

Наимен = Тов.Наименование; // Для переменной Тов создается объект доступа

Цена = Тов.Цена; // Используется созданный ранее объект доступа

При выполнении данной последовательности объект для доступа к элементу справочника создается однократно и, после выполнения указанных операторов, переменная Тов сохранит ссылку на объект доступа и он сможет быть использован в дальнейшем, до тех пор, пока переменной не будет присвоено другое значение или произойдет возврат из процедуры или функции, в которой переменная определена.

Значения типов, соответствующих объектам информационной базы во встроенном языке

Для таких объектов информационной базы системы 1С:Предприятие как справочники, документы и счета бухгалтерского учета значения, представляющие эти объекты во встроенном языке могут выступать в двух разных видах:

- значения, полученные путем вызова системной функции СоздатьОбъект

- значения полученные из реквизитов форм и атрибутов объектов информационной базы

Значения, полученные при помощи вызова СоздатьОбъект() не представляют какой-то конкретный объект (элемент справочника, документ, счет бухгалтерского учета), а предназначены главным образом для обработки групп объектов. С помощью таких значений можно получать выборки множества объектов, последовательно обходить объекты, попавшие в выборку, производить их обновление, создавать новые и удалять существующие объекты и т. п.. Такие значения могут использоваться "многократно", то есть с помощью одного значения можно получить доступ сначала к одной выборке, потом к другой и так много раз.

Значения, содержащихся в реквизитах форм и атрибутах объектов информационной базы, являются точными значениями и представляют ровно один конкретный объект информационной базы (элемент справочника, документ, счет бухгалтерского учета). Такие значения также могут быть пустыми – не представляющими никакого объекта. С помощью таких значений можно получать доступ к атрибутам соответствующего объекта, но нельзя производить действий по созданию, удалению и изменению объекта.

Но несмотря на такие существенные различия оба описанных варианта значений одинаковы во многих проявлениях. Рассмотрим пример:

Спр1 = СоздатьОбъект("Справочник.Товары");

Спр2 = Док.Товар;

Переменные Спр1 и Спр2 содержат значения двух описанных выше видов. Для этих переменных способ доступа к атрибутам справочника производится одним и тем же способом. Многие методы объекта типа Справочник могут применяться как к Спр1, так и Спр2. Функции ТипЗначения() и ТипЗначенияСтр(), будучи примененными к Спр1 и Спр2 дадут одинаковые результаты. Многие методы встроенного языка также не различают какого вида значение передано им в качестве параметра: точное значение объекта или спозиционированная выборка.

И такое положение дел приводит к тому, что иногда у специалистов по конфигурированию возникают трудности с пониманием различия между приведенными видами значений. В результате при написании конфигураций возникают ситуации, когда одной и той же процедуре в качестве параметра могут передаваться значения разных видов:

1.

Спр1 = СоздатьОбъект("Справочник.Товары");

Спр1.ВыбратьЭлементы();

Пока Спр1.ПолучитьЭлемент() = 1 Цикл

Обработать(Спр1);

КонецЦикла;

2.

Спр2 = Док.Товар;

Обработать(Спр2);

В первом случае в качестве параметра процедуре Обработать() передается выборка, спозиционированная на конкретный элемент справочника, а во втором - точное значение элемента справочника. И, если, например, в процедуре Обработать() производится только считывание реквизитов справочника, то результаты, полученные в обоих случаях будут неразличимы. Но если в процедуре Обработать() производится присвоение переданного в качестве параметра значения реквизиту формы или атрибуту объекта (например, документа), то первый вариант просто не будет работать, так как вместо точного значения элемента справочника процедура получит выборку. Для того, чтобы все работало нормально первый вариант должен выглядеть так:

Спр1 = СоздатьОбъект("Справочник.Товары");

Спр1.ВыбратьЭлементы();

Пока Спр1.ПолучитьЭлемент() = 1 Цикл

Обработать(Спр1.ТекущийЭлемент());

КонецЦикла;

Функция ТекущийЭлемент() в качестве значения возвращает точное значение элемента справочника, на который спозиционирована выборка. А если функция ТекущийЭлемент() применяется к переменной, значением которой является уже точное значение элемента справочника, эта функция вернет само это значение. Так что равноценным вариантом решения показанной в примере проблемы было бы, если для выполнения действий процедура Обработать() использовала бы не сам переданный параметр, а значение некоторой переменной (например, Спр), значение которое получила бы из переданного параметра (Парам) следующим способом:

Спр = Парам.ТекущийЭлемент();

Однако следует иметь в виду, что при вызове метода ТекущийЭлемент() у переменной, значение которой получено из реквизитов форм и атрибутов объектов информационной базы, а не путем вызова функции СоздатьОбъект() будет выполняться поиск элемента справочника в информационной базе, что повлечет к дополнительным затратам времени. Соответственно, если полученное конкретное значение предполагается просто присвоить (например, измерению регистра), а не обращаться к его атрибутам и методам, и известно, что это именно конкретное значение, а не выборка, использовать метод ТекущийЭлемент() не следует. Поэтому можно рекомендовать создавать процедуры ориентированные на получение в качестве параметра только конкретного значения, а при вызове процедуры с передачей в качестве фактического параметра выборки вызывать метод ТекущийЭлемент().

Обработать(Спр1.ТекущийЭлемент());

Аналогичные соображения справедливы для объектов типа документ и счет бухгалтерского учета. Для документов аналогом функции ТекущийЭлемент() является функция ТекущийДокумент(), а для счетов бухгалтерского учета - ТекущийСчет().

Выбор разрядности для данных числовых типов

Выбор разрядности для данных числовых типов При описании формата числового типа данных первая цифра означает полное число знакомест в представлении числа (с учетом позиции, занимаемой десятичной точкой, но без учета позиции под знак числа), вторая цифра означает число знакомест в дробной части числа. Поэтому, если мы задали формат числа (8.2), то это означает, что число будет представляться с пятью знаками до десятичной точки и двумя знаками после (плюс один символ на десятичную точку).

При установке формата числового типа данных, разрядность должна обеспечивать возможность хранения чисел необходимой величины. Например, если у нас реквизит "Цена" имеет формат (8.2), то при записи в него значения 10000 * 26.85 мы получим переполнение числа (99999.99).

Аналогичные соображения следует учитывать при выборе формата таких данных как ресурсы регистров оперативного учета, реквизиты многострочных частей документов, для которых установлен флаг "Итог по колонке", суммы проводок и операций, и т. п.. Для указанных величин необходимо помнить, что поля, в которых хранятся значения перечисленных величин и поля, в которых размещаются итоговые значения (суммы) имеют одинаковый формат. Поэтому, для такого рода числовых величин в формате должно быть учтено не только максимальное значение отдельной величины, но и максимально возможные значения сумм. Так, например, при выборе разрядности ресурсов регистров оперативного учета следует устанавливать разрядность, которая сможет вместить максимально возможный оборот и остаток по данному ресурсу.

Перебор объектов и групповое изменение данных

Весьма часто при разработке и внедрении конфигураций возникает необходимость в разработке алгоритма, который выполняет обход объектов информационной базы и вносит в них некоторые изменения. При реализации такого алгоритма в определенных случаях возникают ситуации, когда после изменения объекта не выполняется продолжение выборки следующих объектов. Это объясняется тем, что последовательная выборка и изменение объектов выполняются непосредственно в информационной базе. В основном проблемы возникают в тех случаях, когда при записи изменяются именно те данные, по которым собственно и происходит отбор объектов. В результате текущий объект не должен больше относиться к выборке и само продолжение выборки не выполняется системой. Например, в процессе перебора подчиненных документов, у найденного документа изменяется реквизит, в котором собственно записано значение того документа, для которого выбираются подчиненные. Ситуация осложняется тем, что при использовании методов языка разработчик конфигурации не всегда может точно определить каким способом система будет выполнять перебор объектов.

Прежде всего, можно рекомендовать не выполнять изменение данных тем же объектом (переменной) которой выполняется выбора, а создать для этой цели отдельную переменную и позиционировать ее на выбранный объект информационной базы.

Чтобы однозначно избежать трудностей при разработке подобных алгоритмов имеет смысл сначала выполнить обход объектов по некоторому критерию и занести их в список значений, а затем позиционироваться на каждый объект, содержащийся в списке и выполнять необходимые изменения.

Следует заметить, что при выполнении выборки объектов информационной базы с помощью объекта "Запрос" подобных проблем не возникает, так как при обходе результатов запроса используется временный массив построенный в ходе выполнения запроса.

Ошибки базы данных и их обработка

Ошибки базы данных и их обработка. При работе системы 1С:Предприятие могут возникать ошибки базы данных. Эти ошибки могут иметь место как при работе с базой данных, представленной в формате DBF/CDX , так и с базой данных, хранимой в среде MS SQL Server . И, хотя характер ошибок в обоих приведенных случаях может различаться, процедура их обработки стандартизована в системе 1С:Предприятие. По последствиям ошибки базы данных разделяются на две группы

  • невосстановимые ошибки
  • восстановимые ошибки

Невосстановимые ошибки базы данных

Невосстановимые ошибки базы данных являются следствием значительных нарушений в работе системы 1С:Предприятие: физического разрушения базы данных, нарушения ее структуры, серьезных рассогласований во взаимодействии программы с базой данных и т. п.. В таких случаях восстановить нормальное функционирование системы 1С:Предприятие невозможно и единственно правильной реакцией является завершение работы системы. Видимым проявлением таких ошибок в случае работы с базой данных в формате DBF/CDX является появление диалогового окна, содержащего текст, начинающийся со слов "Н евосстановимая ошибка Базы Данных”, в след за которыми приводится описание ошибки. В случае работы с базой данных, размещенной в среде MS SQL Server сначала появляется окно, в котором содержится описание ошибки SQL , а затем окно, содержащее текст "Н евосстановимая ошибка базы данных!". П осле этого в обоих случаях происходит завершение работы системы. Невосстановимые ошибки базы данных не могут быть перехвачены и обработаны из встроенного языка с помощью конструкций Попытка … Исключение … КонецПопытки .

Восстановимые ошибки базы данных

Восстановимые ошибки базы данных в известном смысле ошибками не являются, а представляют собой штатные ситуации, которые так или иначе могут возникать в процессе нормальной работы системы 1С:Предприятие. К восстановимым ошибкам относятся ошибки блокировки отдельных объектов (записей) базы данных, ошибки захвата таблиц при выполнении транзакций и т. п.. Ошибками они являются в том смысле, что при этом не могут быть успешно завершены выполняемые над базой данных операции (транзакции). Но при этом не происходит каких-то фатальных нарушений в работе системы 1С:Предприятие и имеется возможность восстановления нормального функционирования. Реакция системы на восстановимые ошибки базы данных зависит от того, в какой ситуации происходит ошибка: при выполнении интерактивного действия или при выполнении модуля встроенного языка.

При выполнении интерактивной процедуры (например, при записи документа из формы при нажатии кнопки), в случае возникновения восстановимой ошибки базы данных происходит откат транзакции базы данных, а сама система 1С:Предприятие возвращается к состоянию, в котором она находилась до начала выполнения интерактивной процедуры. После этого на экран выводится диалоговое окно, содержащее вопрос: "П ри выполнении транзакции произошла ошибка! <О писание ошибки> П овторить попытку выполнить транзакцию?". В случае положительного ответа на вопрос производится повторная попытка выполнить операцию. Если повторная попытка выполнить операцию снова завершится восстановимой ошибкой, то снова будет выдан запрос на повторение операции и так далее. В случае отрицательного ответа повторная попытка выполняться не будет. В модулях встроенного языка восстановимые ошибки базы данных могут быть перехвачены и обработаны с помощью конструкции встроенного языкаПопытка … Исключение … КонецПопытки так же, как и другие ошибки встроенного языка. В случае, если обработки ошибки в модуле не предусмотрено, то будет произведен откат выполняемой в данный момент транзакции, в окно сообщений 1С:Предприятия будет выведено сообщение о произошедшей ошибке, а выполнение модуля будет прервано, как и в случае возникновения в процессе выполнения модуля любой другой ошибки. В случае работы с базой данных, размещенной в среде MS SQL Server , в окно сообщений будет выдана ошибка SQL. После возникновения восстановимой ошибки алгоритм, вызвавший ошибку, может быть вызван пользователем повторно. Если используется конструкция встроенного языка Попытка … Исключение … КонецПопытки, то повторная операции записи может быть вызвана модулем автоматически.

Использование строковых реквизитов неограниченной длины

При определении структуры справочников и документов для строковых реквизитов необходимо выбрать определенную длину или указать режим "Неограниченная длина" (кроме реквизитов табличной части). Вариант "Неограниченная длина" существенно отличается по внутреннему способу хранения.

При работе с базами данных в формате DBF/CDX реквизиты неограниченные длины хранятся в отдельной таблице блоками по 80 символов. Для пустой строки в этой таблице записи не хранятся. Разумеется, хотя само значение блока имеет длину 80 символов, дополнительные ресурсы расходуются на поддержание связи с этой таблицей. В базах данных в формате SQL для хранения реквизитов неограниченной длины используется соответствующий тип поля таблицы, который также хранит только заполненные строки. Соответственно, если в создаваемом реквизите значения будут задаваться далеко не для всех объектов, то использование реквизита неограниченной длины может существенно уменьшить количество используемого дискового пространства.

Обращение к реквизитам неограниченной длины несколько замедляет считывание объекта, если происходит обращение к этим реквизитам. Запись объекта замедляется несколько более существенно, но только если конкретное значение изменялось. Скорость записи, разумеется, зависит от количества записываемых блоков (в базах данных DBF/CDX), то есть от длины строки.

Следует учитывать, что строковые значения реквизитов неограниченной длины записываются и возвращаются без хвостовых пробелов, тогда как обычные строковые реквизиты всегда дополняются пробелами до длины соответствующей длине реквизита в метаданных.

Особенности работы с типизированными и не типизированными колонками таблицы значений.

При создании колонки таблицы значений можно указать или не указать тип значений, которые будут храниться в данной колонке. Информация в типизированных и не типизированных колонках таблицы значений хранится по-разному. В колонке с неуказанным типом значения хранится значение и его контекст, тогда как в колонке с указанным типом хранится только его значение. У каждого способа есть свои плюсы и минусы. Хранение значения и контекста позволяет увеличить производительность при частых обращениях к значениям реквизитов объектов, которые хранятся в таблице значений. Но при этом расходуется много памяти на хранение каждого объекта. Хранение только значения позволяет более компактно хранить информацию. Минусом является то, что при каждом обращении к атрибуту или методу объекта, который хранится в такой колонке, объект будет создаваться, позиционироваться на соответствующую запись и уничтожаться после использования. Чтобы избежать таких накладных расходов, перед обращением к нескольким атрибутам или методам объекта, рекомендуется поместить его значение во временную переменную и использовать ее для доступа к атрибутам и методам объекта. Данный способ позволяет компактно хранить информацию и получить хорошую производительность при работе с большим объемом информации.

Применение процедуры ПриНачалеРаботыСистемы() глобального модуля

В глобальном модуле может быть определена процедура ПриНачалеРаботыСистемы(), которая вызывается на выполнение при запуске системы 1С:Предприятие. Данная процедура предназначена для того, чтобы в конфигурации можно было определить действия, которые должны быть выполнены при начале работы системы 1С:Предприятие. Однако операторы тела глобального модуля (операторы, размещаемые в конце модуля и не входящие в какую-нибудь процедуру) также выполняются при запуске системы 1С:Предприятие. При выполнении тела глобального модуля сам глобальный модуль еще не полностью инициализирован, а если точнее, то его экспортируемые переменные, процедуры и функции на данный момент еще не доступны извне самого глобального модуля. И если в теле глобального модуля, например, с помощью функции ОткрытьФорму() запустить какую-либо обработку, то данная обработка не сможет быть выполнена, если в ней содержатся обращения к переменным, процедурам или функциям глобального модуля.

Процедура ПриНачалеРаботыСистемы() вызывается после выполнения тела глобального модуля. При вызове данной процедуры глобальный модуль уже полностью инициализирован и доступен для обращения из других модулей. Поэтому в данной процедуре можно выполнять действия запускающие другие модули, из которых осуществляется обращение к объектам глобального модуля.

Точность вычисления и представления числовых величин

Доступ во встроенном языке к метаданным

В 1С:Предприятии 7.7 существует возможность обращаться к объектам метаданных средствами встроенного языка. Эта возможность используется, прежде всего, для создания универсальных алгоритмов, не зависящих от конфигурации и конкретных объектов метаданных.

Весь доступ к метаданным осуществляется через объект "Метаданные" и иерархию подчиненных ему объектов. Фактически объект "Метаданные" является корнем иерархической системы объектов, которые во многом похожи на дерево метаданных в конфигураторе.

В отличие от других средств встроенного языка доступ к метаданным не имеет подробного описания в документации. Это объясняется тем, что названия атрибутов и методов совпадают с терминами, выводимыми в текстовом представлении структуры метаданных (меню "Конфигурация – Описание структуры метаданных"). Соответственно для ознакомления с составом атрибутов и методов следует получить текстовое представление и определить в нем необходимые термины. Специфические атрибуты и методы (не

отображаемые в текстовом представлении) отражены в документации и Синтакс-Помощнике.

Обращение к объектам метаданных выполняется с помощью методов вышестоящего объекта. Название метода совпадает с названием типа объекта метаданных. В качестве параметра может быть передан идентификатор искомого объекта или его номер. Если объект найден, то возвращается собственно объект метаданных. Если объект не найден то возвращается пустой объект метаданных. Для проверки того, возвращен пустой объект или нет, следует использовать метод "Выбран".

Например:

Если Метаданные.Документ("Счет").Выбран()=0 Тогда

Сообщить("В конфигурации нет документа Счет");

КонецЕсли

Если параметр не задан, то возвращается количество объектов метаданных данного типа.

Например:

Сообщить("В конфигурации "+Метаданные.Документ()+" документов");

Эта возможность используется для обхода всех объектов метаданных

определенного типа.

Например:

Для Инд=1 По Метаданные.Документ() Цикл

Сообщить("Документ "+Метаданные.Документ(Инд));

КонецЦикла;

Для доступа к объектам метаданных, которые подчинены полученным объектам, также соответственно используются методы, совпадающие с именами метаданных. Заметим, что реквизит документа также является объектом метаданных (имеет идентификатор, синоним и т.д.).

Например:

Если

Метаданные.Документ("Счет").РеквизитШапки("Заказчик").Выбран()=0 Тогда

Сообщить("В конфигурации нет реквизита Заказчик документа

Счет");

КонецЕсли;

Для доступа к свойствам объектов метаданных используются атрибуты с соответствующими именами.

Например:

Сообщить("Тип номера расходного ордера:

"+Метаданные.Документ("РасходныйОрдер").ТипНомера);

Таким образом, если ознакомиться с содержимым текстового представления метаданных, то можно определить названия методов и атрибутов для доступа ко всем объектам метаданных и их свойствам.

Некоторые свойства объектов метаданных являются ссылками на другие объекты. В этом случае возвращается объект метаданных, к которому можно обращаться также как и объектам, полученным с помощью методов объекта "Метаданные".

Например:

Сообщить("Длина кода справочника владельца справочника Договора:

"+Метаданные.Справочник("Договора").Владелец.ДлинаКода);

Для некоторых объектов их свойства могут содержать несколько ссылок на различные объекты метаданных. В этом случае к ним применяются методы "Количество" и "Получить".

Например:

Сообщить("Количество ссылок в графе Сумма журнала Общий :"

+Метаданные.Журнал("Общий").Графа("Сумма").Ссылки.Количество());

Заметим, что возвращаемые значения свойств объектов метаданных, соответствующие одному из нескольких возможных вариантов, возвращаются в строковом виде в соответствии с установленном для конфигурации языком (русским или английским). Возможные значения в английском варианте можно посмотреть, сформировав текстовое описание метаданных при установленном в конфигурации английском языке.

Следует учитывать, что механизм обращения к метаданным не связан непосредственно с данными и не позволяет получать значения, хранящиеся в информационной базе или значения агрегатных типов которые могут храниться в информационной базе. Он предназначен только для получения информации о структуре метаданных. То есть все объекты, получаемые через объект "Метаданные", имеют специальный тип "Метаданные". Например, используя доступ к метаданным нельзя получить значение типа "Перечисление". То есть объект метаданных может сообщить свойства перечисления, но не может выдать собственно значение типа "Перечисления" чтобы присвоить его, например, реквизиту документа или сравнить с существующим значением. Для получения собственно значения типа "Перечисление" необходимо воспользоваться самим объектом "Перечисление". Однако существует возможность искать значение перечисления по идентификатору, полученному из метаданных.

Например:

Для Инд=1 По Метаданные.Перечисление("ВидыПлатежа").Значение() Цикл

Сообщить(Перечисление.ВидыПлатежа.ЗначениеПоИдентификатору(

Метаданные.Перечисление("ВидыПлатежа").Значение(Инд).Идентификатор));

КонецЦикла;

Объекты, используемые для доступа к метаданным, могут запоминаться в переменных для сокращения в дальнейшем доступа к их свойствам и подчиненным объектам.

Например:

МДСчет= Метаданные.Документ("Счет");

Сообщить("Тип реквизита Заказчик документа Счет:

"+МДСчет.РеквизитШапки("Заказчик").Тип);

Заметим, что объекты, используемые для доступа к метаданным, не могут сравниваться между собой. Для того чтобы сравнить, например, два объекта метаданных одного и того же типа на идентичность можно сравнить их идентификаторы.

Особенности работы с реквизитами неопределенного типа

В 1С:Предприятии 7.7 существует возможность создавать в объектах метаданных реквизиты неопределенного типа. Например, эта возможность активно используется для хранения в документе значений субконто связанных с некоторым счетом, по которому должны формироваться проводки документом.

Особенность использования реквизитов неопределенного типа заключается в том, что их значения нельзя присваивать, не назначив предварительно тип. Тип назначается с помощью метода "НазначитьТип" того объекта, которому принадлежит реквизит. Таким образом, реквизиты неопределенного типа отличаются от обычных переменных модулей, тип которых может свободно изменяться при присвоении значения.

Замечание!

В модуле формы документа (аналогично и справочника) для назначения типа реквизиту документа следует вызывать метод "НазначитьТип" у самого документа (то есть не через точку, а непосредственно). Вызов метода "НазначитьТип" для элемента управления (через объект Форма) следует применять только к реквизитам диалога формы (не являющимися реквизитами документа).

Следует учитывать, что реквизиты, имеющие неопределенный тип, не могут использоваться для хранения строк длиннее 22 символов.

Особенности написания тела модуля

При разработке модулей следует учитывать, что тело модуля (часть модуля, которая располагается ниже всех процедур и функций) выполняется системой при инициализации модуля. Эта особенность определяет некоторые ограничения на использование тела модуля.

Фактически тело модуля служит только для инициализации переменных модуля объявленных в его верхней части.

Для модуля формы в теле модуля не могут выполняться некоторые методы, которые управляют элементами управления и свойствами формы. Все эти действия рекомендуется выполнять в процедуре "ПриОткрытии".

Для глобального модуля в теле модуля также могут не выполняться некоторые функции встроенного языка. Например, в теле модуля не допускается открытие форм.

Для модуля документа если документ проводится из формы документа, то тело модуля будет выполнено только один раз, хотя проведение может быть выполнено несколько раз без закрытия формы. При групповом проведении тело модуля не будет выполняться перед началом проведения каждого документа (групповое проведение документов выполняется системой при переносе точки актуальности вперед и в режиме "Проведение документов"). Таким образом, переменные, которые должны инициализироваться при каждом проведении следует инициализировать в процедуре "ОбработкаПроведения", а не в теле модуля.


1С-Предприятие. Документация | Дополнительные приемы конфигурирования

Дополнительные приемы конфигурирования

  • Создание сервисных режимов групповой обработки данных
  • Печать на матричных принтерах в текстовом режиме
  • Публикация данных 1С:Предприятия в Интернет
  • Вызов Конфигуратора из режима работы "1С:Предприятие" для сохранения резервной копии
  • Выполнение регламентных операций в режиме запуска "1С:Предприятие"
  • Корректировка существующих движений при изменении структуры регистров
  • Сортировка строк документа при печати
  • Переход к журналу документов из формы документа
  • Завершение работы пользователей с программой по требованию администратора
  • Установка стандартного интервала журнала для отдельных категорий пользователей
  • Организация быстрой смены пользователем системных установок
  • Вызов процедур и функций модуля открытой формы
  • Организация обращения к ранее открывавшимся объектам
  • Организация работы с историей перехода по группам в форме списка справочника
  • Открытие нескольких окон одной и той же формы
  • Организация фонового выполнения длительных процессов
  • Средства встроенного языка используемые для создания универсальных алгоритмов
  • Показ справочника в виде дерева
  • Перестановка документов в журнале в пределах даты
  • Групповые операции над выбранными документами
  • Автоматическое открытие периода оперативных итогов

Создание сервисных режимов групповой обработки данных

В некоторых случаях для эффективной работы пользователей с конкретной конфигурацией целесообразно разработать некоторые сервисные режимы обработки информации. Достаточно часто возникает потребность в специальных режимах выполняющих групповые действия с объектами (элементами справочника, документами). Такие операции оформляются в конфигурации 1С:Предприятия в качестве объектов метаданных "Обработка", по принципам конфигурирования идентичных объектам "Отчет".

Сами действия, выполняемые над множеством объектов вполне очевидны. Это могут быть:

* пометка и снятие пометки на удаление;

* проведение и отмена проведения документов;

* перенос элементов справочника в другую группу;

* изменение реквизитов определенным образом;

* печать документов

* другие варианты обработки.

С точки зрения способа отбора множества объектов, можно выделить два основных типа обработок, выполняющей групповые действия.

Первый тип - это обработки, ограничивающие состав обрабатываемых объектов некоторыми условиями, которые задаются как выбираемые пользователем значения в диалоге формы обработки. Например, может быть создана обработка, помечающая на удаление все документы определенного вида с конкретным клиентом в определенном интервале. Этот принцип аналогичен параметрам настройки отчетов.

Второй тип предполагает задание множества обрабатываемых объектов пользователем посредством выбором самих объектов. Для создания таких обработок рекомендуется использовать объект "СписокЗначений". Для того, чтобы пользователь мог заполнить список обрабатываемых объектов в диалоге формы обработки следует создать элемент диалога "Список". Для его заполнения следует предусмотреть кнопки добавления и удаления значений. Само добавление может выполняться выбором или с использованием механизма "Подбора", что обеспечит достаточно быстрое заполнение списка. Отдельная кнопка должна быть предусмотрена для выполнения тех действий ради которых и создавалась обработка.

Пример обработки, выполняющей групповой перенос товаров в выбранную группу, приведен в методической конфигурации (обработка "ПереносТоваров").

Печать на матричных принтерах в текстовом режиме

При печати на матричном принтере Windows выводит всю информацию в графическом режиме, что сильно замедляет скорость работы принтера. Для ускорения этого процесса можно выводить информацию на принтер в текстовом режиме.

В методической конфигурации печать на матричном принтере в текстовом режиме демонстрируется на примере печати расходной накладно (кнопка "Печать текст").

С помощью объекта "Текст" в каталоге временных файлов формируется текстовый файл, например "Tmp.txt" (в DOS - кодировке) . После формирования файл, с помощью команды системы "copy", пересылается в порт, к которому подключен принтер (в данном примере порт указывается в переменной ПортПринтера). После того как файл переслан на принтер он удаляется из каталога временных файлов.

Для печати на сетевом принтере, он должен быть назначен на соответствующий порт с помощью настроек свойств принтера (для Windows 95, Windows 98) или с помощью команды системы:

"net use <порт>: \\<название компьютера>\<название принтера>" (для

WindowsNT) .

Где:

<порт> - название порта на который будет назначен принтер,

<название компьютера> - название сетевого компьютера к которому

подсоединен принтер,

<название принтера> - сетевое название принтера.

Например, команда может выглядеть следующим образом: "net use lpt1:

\\printserver\printer".

Публикация данных 1С:Предприятия в Интернет

Для организаций имеющих свой Web-сайт весьма актуальной является задача публикации в Интернет некоторой информации, получаемой из информационной базы 1С:Предприятия. Обычно это рекламно-коммерческая информация, которую организация хочет оперативно доводить до своих партнеров и потенциальных клиентов.

Средства 1С:Предприятия позволяют достаточно просто и эффективно получать необходимые данные для публикации в Web.

В методической конфигурации выгрузка данных для публикации в Интернет демонстрируется на примере формирования прайс-листа в виде фрагмента Web-сайта. Для этого используется обработка "ПрайсВИнтернет".

В данной обработке используется возможность записи табличного документа в формате HTML.

То есть прайс формируется как обычный отчет, но табличный документ не показывается на экране, а записывается в виде файла в формате HTML. Так как прайс-лист может быть достаточно большой, то он выгружается не как один HTML-файл, а как набор файлов, каждый из которых содержит товары одной группы. Для формирования отдельных файлов по группам справочника используется рекурсивный вызов процедуры. Совокупность этих файлов образует фрагмент сайта обеспечивающий просмотр прайс-листа любого размера. Необходимое оформление страниц автоматически генерируется при записи табличного документа в формате HTML. Для осуществления перехода к определенным группам в ячейках табличного документа размещаются специальные теги языка HTML. В них указываются ссылки на соответствующие файлы, сформированные данной обработкой.

Вызов Конфигуратора из режима работы "1С:Предприятие" для сохранения резервной копии

Для начинающих пользователей 1С:Предприятия определенную сложность представляет создание резервной копии. Одной из причин возникающих сложностей является то, что резервное копирование информационной базы выполняется в режиме "Конфигуратор", в котором начинающие пользователи практически не работают.

Одним из путей решения этой проблемы может являться включение в меню 1С:Предприятия вызова режима "Конфигуратор" для создания резервной копии. В методическую конфигурацию включена обработка "РезервноеКопирование", которая фактически и выполняет вызов режима "Конфигуратор". Вызов данной обработки включен в меню "Сервис" пользовательского интерфейса.

Обработка выполняет собственно запуск 1С:Предприятия в режиме "Конфигуратор", а все необходимые действия по созданию резервной копии пользователь будет выполнять самостоятельно. Напоминание об этом включено в форму обработки.

Обработка позволяет выбрать исполняемый файл 1С:Предприятия (так как имена файлов в зависимости от установленной версии могут отличаться). В форме обработки предусмотрено поле для ввода пароля пользователя.

Так как создание резервной копии не может выполняться параллельно с работой пользователей с информационной базой, то в данной обработке предусмотрена возможность завершения работы 1С:Предприятия текущим пользователем. Разумеется, при работе в разделенном режиме необходимо будет также обеспечить завершение работы другими пользователями.

В обработке предусмотрена возможность установки режима автоматического вызова данной обработки при выходе из 1С:Предприятия.

В модуль обработки включен текст, выполняющий запуск Конфигуратора в пакетном режиме для выполнения собственно сохранения данных, однако этот фрагмент модуля закомментирован. Это объясняется тем, что в общем случае невозможно гарантировать освобождение информационной базы к моменту запуска Конфигуратора даже при монопольном режиме работы данного пользователя. Поэтому использовать возможность запуска в пакетном режиме лучше всего внешними средствами, которые могут проанализировать результат выполнения необходимого действия и при необходимости запустить его снова.

Выполнение регламентных операций в режиме запуска "1С:Предприятие"

В некоторых случаях необходимо организовать выполнение определенных действий в режиме запуска "1С:Предприятие" без участия пользователя. Одним из путей решения этой задачи является использование технологии Ole-Automation. Однако эту же задачу можно решить и другим способом. В методической конфигурации данная задача реализована на примере организации регламентной выгрузки прайс-листа в Интернет. Для этого у обработки "ПрайсВИнтернет" в процедуре "ПриОткрытии" предусмотрена возможность выполнения выгрузки в пакетном режиме в каталог, переданный в качестве параметра при открытии формы обработки средствами встроенного языка. В глобальном модуле предусмотрен запуск обработки "ПрайсВИнтернет" в предопределенной процедуре "ПриНачалеРаботыСистемы". В качестве признака того, что 1С:Предприятие запущено для выполнения регламентных действий выступает файл с именем "AutoCmd.txt", располагающийся в каталоге пользователя. Если при запуске системы данный файл обнаружен, то выполняется анализ его содержимого, выполнение указанных там действий, удаление файла и завершение работы системы. Соответственно чтобы запустить 1С:Предприятие для выполнения регламентных операций достаточно указать в строке запуска того пользователя, у которого в пользовательском каталоге будет размещаться файл "AutoCmd.txt". Это может быть специально введенный служебный пользователь или любой реальный пользователь.

Заметим, что сам пользовательский каталог также может быть указан в строке запуска, что позволяет именно для такого специализированного запуска указывать специальный пользовательский каталог, отличающийся от указанного в списке пользователей.

Заметим, что для того, чтобы запуск выполнялся без выдачи диалога выбора информационной базы и диалога авторизации, в строке запуска должен быть указан каталог ИБ, слово "ENTERPRISE", имя пользователя, а также пароль пользователя, если он установлен.

Организованный таким образом регламентный запуск 1С:Предприятия может выполняться различными программами, например, в определенный момент времени. При этом отсутствие файла "AutoCmd.txt" в каталоге пользователя после запуска 1С:Предприятия может являться признаком того, что операция выполнена успешно.

Корректировка существующих движений при изменении структуры регистров

В процессе развития конфигураций разработанных на основе компоненты "Оперативный учет" достаточно часто возникает потребность в изменении структуры регистров. При этом в некоторых случаях встает необходимость внесения определенных значений в движения регистров уже проведенных документов.

В процессе изменения метаданных и реструктуризации информационной базы новые данные регистра (измерения, ресурсы и реквизиты) в существующих движениях будут заполнены пустыми значениями. Для того чтобы в них были проставлены определенные значения, необходимо выполнить перепроведение всех существующих документов, так как движения регистров записываются только в процессе проведения. В случае если конфигурация работает уже достаточно давно полное перепроведение документов является достаточно ответственной и небезопасной операцией. Заметим, что перепроведение документов является существенно более сложной и операцией чем пересчет итогов по существующим движениям, так как в процессе перепроведения заново отрабатывает алгоритм формирования движения, а при пересчете итогов используются записанные движения. Необходимо чтобы полное перепроведение документов точно воспроизвело все существующие движения и соответственно остатки на текущий момент. Зачастую это может не произойти. Например, аппаратная или программная ошибка в одном из предыдущих периодов привела к неправильному формированию движения документа. В последствии эта ошибка была скомпенсирована введенными данными инвентаризации или другими документами. Таким образом существующие остатки соответствуют реальным данным и удовлетворяют пользователей. При перепроведении "сбойный" документ будет проведен правильно, и текущие остатки изменятся. Другой причиной того, что документы при перепроведении запишут движения отличные от существующих, может быть некорректное изменение конфигурации сделанное в некоторый момент и не учитывающее необходимость правильного перепроведения существующих документов. Кроме того, если документ при проведении использует данные справочников, то в некоторых случаях изменения справочников пользователями также может привести к тому что, при перепроведении изменятся движения и соответственно текущие остатки. Поиск причин таких коллизий может отнять очень много времени. Таким образом, существует необходимость внести изменения в существующие движения, не отрабатывая заново алгоритм проведения.

В методической конфигурации предлагается методика, реализующая заполнение необходимых данных движений регистров таким образом, что сами движения воспроизводятся полностью. Для этого в конфигурацию включена обработка "ПерепроведениеДокументов". Обработка обходит все проведенные документы и выполняет их перепроведение. Перед проведением документа обработка запоминает все его движения регистров в таблицах значений. В процессе проведения документов вместо обычного алгоритма формирования движений выполняется процедура глобального модуля ("глТехнологическоеПерепроведение"), которая записывает движения, запомненные в таблицах значений. Для реализации данной методики в модуле каждого документа в начале процедуры "ОбработкаПроведения" включен однотипный фрагмент, выполняющий анализ переданного при вызове метода "Провести" параметра и вызов при необходимости процедуры глобального модуля. Для того, чтобы вносить в записываемые движения необходимые изменения, при запоминании каждого движения вызывается процедура "КорректировкаДвижения", в которой выполняется заполнение новых данных регистра (измерений, ресурсов, реквизитов). В приведенном примере в регистр "ТовЗап" введен новый реквизит "Внутреннее", в котором предполагается отмечать движения, отражающие внутренние перемещения товаров. В процедуре "КорректировкаДвижения" значение этого реквизита заполняется числом "1" для документов "Перемещение".

Данная методика может использоваться совместно с методикой временного отключения автоматического удаления движения. Это может быть целесообразно если необходимо минимизировать выполняемые действия при больших объемах движений. Временное отключение автоматического удаления движений позволит в процессе перепроведения удалять и записывать движения только по тем регистрам, структура которых изменилась. Однако реализация этой технологии более сложна, чем описанная полная перезапись движений.

Приведенная методика реализует перепроведение для конфигураций, у которых используется только оперативный учет и не используются другие виды движений (бухгалтерские проводки операции, записи журналов расчетов, изменения периодических реквизитов справочников). Для тех конфигураций, которые используют данные механизмы, методика должна быть дополнена соответствующими алгоритмами или использована совместно с методикой временного отключения автоматического удаления движений. В последнем случае при перепроведении документов могут удаляться и записываться только движения регистров, а все остальные движения оставаться неизменными.

Сортировка строк документа при печати

Достаточно часто у пользователей возникает потребность сортировки строк документа по некоторому значению отличному от номера строки. В форме документа для этого предусмотрены специальные команды меню и кнопки панели инструментов.

Однако в некоторых случаях необходимо организовать сортировку строк непосредственно в процессе печати, а не при вводе документа. Для решения данной задачи можно предложить использовать выгрузку табличной части документа в таблицу значений и вывод на печать данных из таблицы значений, отсортированной предварительно по одной или нескольким колонкам. Такой пример печати содержится в методической конфигурации (документ "Перемещение").

Заметим, что применение таблицы значений позволяет добавить дополнительные колонки, заполнить их необходимыми данными и отсортировать таблицу по значению, которое не содержится в явном виде в самой табличной части документа, например, по виду товара.

Другим способом печати документа в отсортированном виде является применение списка значений, в котором в качестве значений выступают номера строк документа, а в качестве представления - то значение, по которому необходимо выполнить сортировку. В этом случае при печати выполняется обход отсортированного по представлению списка значений и на каждом элементе списка выполняется позиционирование на соответствующую строку документа по номеру. Этот способ более трудоемок в реализации, но в некоторых случаях будет более эффективен с точки зрения производительности.

Переход к журналу документов из формы документа

В 1С:Предприятии не существует штатной возможности перехода из открытой формы документа к журналу документов. В некоторых случаях такая возможность может быть весьма полезна для пользователей. Например, если ввод документа инициализирован с помощью меню или документ открыт как расшифровка отчета и пользователь хочет посмотреть список "соседних" документов.

Для предоставления пользователю такой возможности предлагается методика реализации перехода средствами встроенного языка. В методической конфигурации эта методика реализована в виде процедуры глобального модуля "глПереходКЖурналу". Вызов данной процедуры помещается во все формы документов, в которых существует необходимость перехода к журналу документов. Данная процедура может быть использована в любой конфигурации без изменения.

Так как документ может входить в разные журналы, то данная процедура формирует с помощью объекта "Метаданные" список возможных журналов, и выдает пользователю запрос в виде меню. Далее выполняется открытие выбранного журнала с помощью функции "ОткрытьФорму". Так как дата документа может располагаться вне интервала журнала, то выполняется анализ интервала и при необходимости корректировка его. Далее выполняется активизация документа в открытом журнале. Если документ в форме еще не записан, то выполняется позиционирование на последний документ в дате вводимого документа или ближайшей предыдущей дате, в который существуют документы.

Завершение работы пользователей с программой по требованию администратора

При реальной эксплуатации 1С:Предприятия в многопользовательском режиме в некоторых случаях возникает необходимость прекратить работу пользователей с информационной базой, например, для выполнения регламентных операций, таких как: изменение конфигурации, сохранение архивной копии и т.д. Если все пользователи находятся в одном помещении, то это делается достаточно легко. Трудности возникают обычно, если пользователи находятся в различных помещениях.

Обычно эта задача решается либо средствами администрирования локальной сети, либо средствами конфигурирования 1С:Предприятия. В методической конфигурации приведен типичный пример организации механизма завершения работы пользователей средствами конфигурирования.

Для реализации проверки необходимости завершения используется периодически вызываемая процедура "ПроверкаНеобходимостиЗавершения", вызываемая процедурой "ПроцессОбработкиОжидания", назначенной функцией "ОбработкаОжидания".

В методической конфигурации эта процедура вызывается с частотой раз в 2 секунды для автоматического ввода документов. Так как опрос необходимости завершения работы не должен выполняться часто, выполняется проверка на смену текущей минуты. В результате анализ необходимости завершения

выполняется раз в минуту.

Сам признак необходимости завершения хранится в константе "СообщениеНеобходимостиЗавершения" в виде текстового сообщения, которое должно выдаваться пользователям. В некоторых реализациях данного механизма в качестве признака завершения используется файл с определенным именем, располагающийся в каталоге информационной базы.

Включение и выключение признака необходимости завершения выполняется с помощью обработки "ЗавершениеРаботыПользователей", выполняющей модификацию константы "СообщениеНеобходимостиЗавершения".

Проверка выполняется не только в процессе работы, но и при запуске конфигурации, чтобы исключить вход новых пользователей.

Проверка необходимости завершения выполняется для всех пользователей, кроме тех для которых установлен набор прав "Администратор". Таким образом, администратор будет иметь возможность войти в систему и снять признак необходимости завершения работы пользователей.

Данный механизм в некоторых случаях позволяет выполнить завершение работы даже, если пользователи не работают в текущий момент с программой. Для этого предупреждение с указанным текстом выдается с параметром "Таймаут". Однако процедура, назначенная функцией "ОбработкаОжидания", не будет вызываться, если в текущий момент открыт какой-либо системный модальный диалог, или какая-либо форма открыта модально.

Следует заметить, что завершение работы, выполняется функцией "ЗавершитьРаботуСистемы" в "мягком" режиме. То есть, если у пользователя открыты не записанные объекты (документы, элементы справочников), то пользователю будет предложено записать не сохраненные данные.

Таким образом, предложенный механизм является сервисной возможностью и не может гарантировать обязательного освобождения информационной базы всеми пользователями. Разумеется, более однозначного эффекта можно достичь с помощью средств администрирования локальной сети, но это решение будет сопряжено с опасностью потери данных вводимых пользователем и, в некоторых случаях (при работе с базой данных в формате DBF/CDX), с нарушением целостности информационной базы.

Использование предложенного механизма за счет применения исключительно штатных средств 1С:Предприятия не допускает потери вводимых данных и разрушения информационной базы.

Установка стандартного интервала журнала для отдельных категорий пользователей

1С:Предприятие для нового пользователя (впервые запустившему систему с конкретной информационной базой) автоматически устанавливает стандартный интервал просмотра журналов документов, операций и проводок. Эту установку пользователь может затем изменить в режиме настройки параметров (меню "Сервис - Параметры" - закладка "Журналы").

Система устанавливает начальные значения исходя из состава используемых в конфигурации компонент. Так, например, если используется компонента "Оперативный учет", то изначально для пользователей устанавливается интервал: "Текущая дата" - "Текущая дата", так как предполагается, что большинство пользователей будут заняты работой с документами в реальном времени и им нужно просматривать, прежде всего, сегодняшние документы.

Однако при большом количестве пользователей часть из них могут иметь достаточно специфические функции и для них не будут удобны значения установленные системой по умолчанию. Например, при работе в комплексной конфигурации бухгалтеру наиболее целесообразно видеть документы за квартал или за год.

В этом случае предлагается организовать установку начальных параметров интервала журналов для отдельных категорий пользователей средствами встроенного языка.

В методической конфигурации пример такой установки реализован в глобальном модуле в процедуре "ПриНачалеРаботыСистемы". С помощью функций "СохранитьЗначение" и "ВосстановитьЗначение" определяется первый вход пользователя в систему, так как затем параметры интервала журнала он будет устанавливать самостоятельно.

Собственно установка начальных значений выполняется функциями "НачалоСтандартногоИнтервала" и "КонецСтандартногоИнтервала". Установка параметров выполняется только для администратора. Предполагается, что для лиц осуществляющих администрирование информационной базы имеет смыслпросматривать все документы. Поэтому в качестве начальной границы интервала выбирается дата начала года первого документа, а в качестве конечной границы - конец текущего года.

Организация быстрой смены пользователем системных установок

В качестве одной из сервисных возможностей, которую можно предоставить пользователю в ходе доработки конфигурации, может быть создание режима быстрого изменения системных параметров, которые чаще всего

устанавливаются в конкретной организации.

В качестве примера такой сервисной функции в методической конфигурации реализовано быстрое изменение рабочей даты. Для этого в панель инструментов внесена кнопка "Рабочая дата", которая выполняет редактирование и установку нового значения рабочей даты. Для быстрого вызова данной функции кнопке назначен "Акселератор".

Кроме того, эта техника может использоваться и для быстрой настройки значений задаваемых в самой конфигурации и характерных для конкретного пользователя.

Вызов процедур и функций модуля открытой формы

Встроенный язык 1С:Предприятия не допускает вызова процедур и функций модуля формы из другого модуля. Допускается только обращение к атрибутам и методам контекста модуля формы.

В некоторых случаях возникает необходимость вызова некоторого алгоритма модуля формы (процедуры или функции) из другого модуля.

Для решения этой задачи можно использовать следующий прием. В 1С:Предприятии 7.7 в модуле формы может использоваться предопределенная процедура "ПриПовторномОткрытии". Эта процедура вызывается в том случае, если каким-либо способом выполняется открытие уже открытой формы. При чем при повторном открытии функцией "ОткрытьФорму" в модуль формы также как и при первом открытии передается параметр. Эта особенность может быть использована для активизации "снаружи" некоторого алгоритма в модуле открытой формы.

В методической конфигурации данный прием демонстрируется на примере открытия формы расходной накладной с автоматическим открытием подбора (меню "Документ - Расходная накладная с подбором"). Обычными средствами подбор в форме не может быть автоматически вызван непосредственно после открытия документа. Поэтому обычно пользователю необходимо после открытия документа вызывать подбор нажатием соответствующей кнопки. В приведенном примере при открытии нового документа сразу открывается режим подбора. Для реализации автоматического открытия подбора пункт меню вызывает процедуру "ОткрытьНакладнуюСПодбором" в глобальном модуле. В этой процедуре выполняется открытие формы документа "РасхНакл", а затем выполняется повторное открытие с передачей в качестве параметра строки

"Подбор". В модуле формы документа в предопределенной процедуре "ПриПовторномОткрытии" выполняется проверка параметра формы и в случае наличия в параметре строки "Подбор" выполняется активизация подбора.

В приведенной методике важным моментом является то, что при повторном вызове функции "ОткрытьФорму" должна открываться именно та форма, которая уже открыта, так как только в этом случае будет вызвана процедура "ПриПовторномОткрытии". Например, если после первого вызова функции "ОткрытьФорму" документ будет записан, то при втором вызове будет открыта новая форма.

Организация обращения к ранее открывавшимся объектам

Одним из примеров разработки с помощью средств конфигурирования дополнительных сервисных возможностей может являться создание механизма, позволяющего открывать элементы справочников и документы, к которым пользователь обращался в недавнем времени. Этот режим будет полезен, например, если пользователь записал документ, а через некоторое время решил его провести. Применяя данный режим можно существенно быстрее открыть документ, чем выполнять поиск в журнале документов.

Механизм обращения к ранее открывавшимся объектам реализован в методической конфигурации. В глобальном модуле ведется список значений "СписокИсторииОбъектов", в котором накапливаются те документы и справочники, которые пользователь открывает в ходе работы. В форме каждого элемента справочника (кроме тех, которые редактируются в списке) и в форме каждого документа в процедурах "ПриОткрытии" и "ПриЗакрытии" выполняется обращение к процедуре "ИсторияОбъектов", расположенной в глобальном модуле. В данной процедуре происходит пополнение списка истории объектов.

Объекты добавляются в начало списка, чтобы при просмотре истории первыми выдавались объекты, к которым обращение выполнялось позже. При добавлении больше 20 объектов, последний с конца объект удаляется, чтобы история не "распухала". Если объект уже содержится в списке, то перед добавлением в

начало предыдущее значение удаляется, чтобы не хранить в списке несколько одинаковых объектов.

Вызов в процедуре "ПриЗакрытии" целесообразен с точки зрения определения в качестве момента последнего обращения к объекту - момента закрытия формы. Кроме того, этот вызов необходим в тех случаях, когда создается новый объект (документ или элемент справочника). В процедуре "ПриОткрытии" новый объект не может быть, разумеется, добавлен в список истории.

Для обращения к истории объектов используется глобальная процедура "ПоказатьИсториюОбъектов". Она вызывается из меню "Сервис", из панели инструментов, а также с помощью клавиши Alt+F

В этой процедуре выполняется выбор объекта из истории с помощью обработки "ПоказИсторииОбъектов", вызываемой в модальном режиме, а также выполняется собственно открытие объекта с помощью функции "ОткрытьФорму". Использование в данном примере обработки, а не стандартного метода "ВыбратьЗначение" обусловлено исключительно оформительскими возможностями, предоставляемыми обработкой. Например, документы и справочники различаются в таблице значений с помощью пиктограмм.

При окончании сеанса работы пользователя список истории объектов сохраняется. Это позволяет обращаться к истории и в последующих сеансах работы.

Организация работы с историей перехода по группам в форме списка справочника

Для некоторых многоуровневых справочников весьма актуальной является задача предоставления пользователю дополнительных сервисных средств для навигации по группам. Особенно полезно это может быть в тех случаях, когда некоторая часть работы пользователей происходит непосредственно в форме списка справочника. Например, сотрудник, ответственный за поддержание и реорганизацию большого многоуровневого справочника может работать с формой списка справочника достаточно продолжительное время.

Одной из таких сервисных возможностей является организация работы с историей переходов по группам. Пример реализации этой возможности приводится в методической конфигурации в справочнике "Организации". В форме списка справочника реализовано два различных механизма.

Первый механизм реализует поддержание истории открываемых пользователем групп справочника и возможность перехода к любой группе из истории. Для просмотра истории групп применяется кнопка "История". История групп накапливается в таблице значений и пополняется при смене текущего родителя. В таблице значений запоминается не только текущий родитель, но и текущий элемент в открытой группе, чтобы при обращении к ней установиться на тот же элемент. В истории поддерживаются только уникальные группы. Группы накапливаются в порядке обратном порядку обращению к ним. То есть при вызове истории пользователь будет видеть последние группы, к которым он обращался сверху.

История открываемых групп сохраняется между обращениями к справочнику и между запусками 1С:Предприятия. То есть этот режим может быть использован и для ускорения выбора элементов при вводе документов, особенно для тех пользователей, которые работают обычно с одними и теми же группами элементов.

Второй механизм предоставляет возможность возврата к ранее открытым группам, а также продвижения вперед, после выполнения возврата. Для обращения к этим функциям используются кнопки "Назад" и "Вперед" а также расположенные рядом кнопки, предоставляющие возможность перейти на несколько "шагов" назад и вперед соответственно. Для реализации этого механизма также использована таблица значений, но ее пополнение не вытесняет повторяющиеся группы, полностью сохраняя последовательность переходов выполняемых пользователем. Этот механизм является более сложным, так как обеспечивает поддержание переходов в двух направлениях. Этот режим поддерживается только в пределах работы с текущим окном справочника. Он может быть использован при интенсивной работе со справочником, например, при его реорганизации.

Оба механизма реализованы универсально, по отношению к виду справочника и могут быть легко перенесены в форму списка любого справочника.

Открытие нескольких окон одной и той же формы

1С:Предприятие имеет некоторый предопределенный механизм отслеживания уникальности открытых форм. Для окон редактируемых объектов (документов, элементов справочников, счетов) эта уникальность определяется самим объектом. Например, для документов открывается отдельное окно формы для каждого документа и одно окно для ввода нового документа определенного вида. Для окон других форм уникальность определяется самой формой. То есть, если открывается, например, форма журнала документов то открывается одно окно на одну форму созданную в конфигурации. Если окно данной формы уже открыто, то новое окно не создается, а активизируется уже открытое. Заметим, что это не относится к окнам, открываемым для выбора и подбора. Их уникальность определяется той формой и полем ввода, для которых открыта форма.

В большинстве случаев такой способ определения уникальности окон вполне удобен и позволяет поддерживать приемлемое количество одновременно открытых окон без специальных усилий со стороны разработчика конфигурации. Однако в некоторых случаях у пользователей возникает потребность в одновременной работе с несколькими окнами одной и той же формы. В 1С:Предприятии такая возможность предоставляется при открытии форм средствами встроенного языка. Для этого используется добавление символа "#" к первому параметру функции "ОткрытьФорму".

В методической конфигурации использование данной возможности демонстрируется на примере открытия дополнительных окон формы списка справочника "Организации". Это может потребоваться для тех пользователей, которые интенсивно работают со справочником и хотят видеть в нем, например, одновременно списки организаций из двух групп. В форме списка справочника помещена кнопка, вызывающая процедуру "НовоеОкно". В данной процедуре открывается новая форма данного справочника (с использованием символа "#") и затем выполняется позиционирование в открытой форме на тот же элемент, на котором в данный момент открыта текущая форма.

Данная процедура реализована универсальным образом и может быть без изменений перенесена в формы других справочников.

Организация фонового выполнения длительных процессов

При большом объеме данных выполнение регламентных операций связанных с групповой обработкой информации может занимать продолжительное время. Одной из таких задач является обычно перепроведение документов. Необходимость в перепроведении возникает при изменениях документов задним числом, если они могут повлиять на проведение более поздних документов.

В методической конфигурации предлагается пример организации фонового выполнения перепроведения документов. Для этого предлагается выделить отдельный запуск 1С:Предприятия на отдельном компьютере или на компьютере, который мало используется. Для активизации режима фонового перепроведения предлагается использовать определенное имя пользователя (в данном примере "Диспетчер"). При запуске с этим именем пользователя выполняется инициализация обработки ожидания специальной процедурой в глобальном модуле. В приведенном примере это процедура - "ПроцессОбработкиОжиданияДиспетчера". В ней выполняется анализ текущего положения границы последовательности. Если между границей последовательности и точкой актуальности существуют документы, относящиеся к границе последовательности, то выполняется проведение первого из этих документов. Соответственно граница последовательности сдвигается вперед.

При следующей обработке ожидания таким же способом выбирается следующий документ и тоже проводится. Так продолжается до тех пор, пока последовательность не будет восстановлена. Соответственно, как только кто-либо из пользователей проведет документ задним числом, то при очередной обработке ожидания будет снова выполняться проведение документов между границей последовательности и точкой актуальности. Таким образом, запуск 1С:Предприятия выполняющий роль диспетчера будет всегда стремиться восстановить последовательность.

Периодичность обработки ожидания выбирается таким образом, чтобы фоновое перепроведение документов не замедляло существенно работу пользователей. В приведенном примере периодичность обработки автоматически уменьшается после конца рабочего дня и увеличивается в начале работы пользователей.

Средства встроенного языка используемые для создания универсальных алгоритмов

1С:Предприятие 7.7 позволяет разрабатывать алгоритмы работающие независимо от конкретной конфигурации. Например, эта возможность активно используется в дополнительных отчетах и обработках, поставляемых в составе диска ИТС.

Для создания универсальных алгоритмов используются в основном два средства:

1) Обращение к метаданным.

2) Обращение к атрибутам объектов встроенного языка по их строковым идентификаторам.

Обращение к метаданным (через объект "Метаданные") позволяет варьировать действия алгоритма в зависимости от структуры метаданных текущей конфигурации. Однако для обращения непосредственно к данным этого недостаточно. Методы практически всех объектов встроенного языка 1С:Предприятия не зависят от структуры метаданных, а атрибуты, наоборот в большей степени определяются структурой метаданных. При написании обычных алгоритмов (ориентированных на конкретную конфигурацию) атрибуты объектов используются в модуле непосредственно. При написании универсальных алгоритмов для обращения к атрибутам следует использовать функции "ПолучитьАтрибут" и "УстановитьАтрибут". Эти функции включены в состав методов практически всех объектов встроенного языка, состав атрибутов которых определяется структурой метаданных.

Например, если нужно обратиться к реквизиту документа по идентификатору реквизита, то нужно написать не "Документ.ПолучитьАтрибут(ИмяАтрибута)", где "ИмяАтрибута" это имя переменной, в которой в виде строки содержится идентификатор реквизита документа.

Методы "ПолучитьАтрибут" и "УстановитьАтрибут" следует применять именно к тем объектам, у которых необходимо получить значение атрибута. Например, если необходимо написать универсальный алгоритм формирования движений регистров в документе, то для доступа к регистру по его идентификатору нужно написать "Регистр.ПолучитьАтрибут(ИмяРегистра).ДвижениеПриходВыполнить()" (так как движения могут записываться только атрибутом "Регистр" контекста модуля документа).

Для некоторых объектов метод "УстановитьАтрибут" не поддерживается, так как атрибуты не могут использоваться для присваивания значений. Для некоторых объектов метод "ПолучитьАтрибут" не поддерживается, так как они имеют другие методы для получения необходимого значения по идентификатору. Например, у вида перечисления имеется метод "ЗначениеПоИдентификатору". Однако, для самого глобального атрибута "Перечисление" поддерживается метод "ПолучитьАтрибут", что позволяет перебрать значения перечислений всех видов.

Заметим, что не существует возможности обращаться к значению реквизитов диалога формы по идентификатору, так как реквизиты созданные в форме, не являются частью структуры метаданных. Разумеется, в форме документа существует возможность доступа по идентификатору к реквизитам самого документа (независимо от того, включены они в диалог или нет). Объект "Форма" также имеет функции "ПолучитьАтрибут" и "УстановитьАтрибут". Это позволят обращаться по идентификаторам к его атрибутам, используемым для управления элементами диалога с точки зрения их отображения в форме.

Показ справочника в виде дерева

Стандартные средства 1С:Предаприятия (форма списка справочника) предоставляют возможность просматривать список элементов по отдельным группам, а также группы справочника в виде дерева. Предлагаемая методика позволяет просматривать справочник в виде единого иерархического дерева, включающего элементы и группы.

Данная техника реализована в методической конфигурации в обработке "ТоварыВВидеДерева". Вызов данной обработки выполняется из колонки "Обработки" главного меню конфигурации.

Для показа справочника используется табличный документ, включенный в форму обработки. При открытии формы в табличный документ выводятся только группы справочника. Двойным щелчком мыши или нажатием клавиши Enter пользователь может раскрыть любую группу или свернуть открытую группу. Для этого используется значение расшифровки табличного документа. После выполнения расшифровки текущая группа запоминается как открытая и выполняется обновление табличного документа. При выводе справочника, для групп запомненных как раскрытые выполняется вывод подчиненных групп и элементов с помощью рекурсивного вызова процедуры "ВывестиГруппу".

Приведенная техника может быть применена к любому справочнику. Она может служить для наглядного представления справочников, имеющих сложную иерархическую структуру и небольшое количество элементов в отдельных группах.

Заметим, что для интенсивной работы алгоритм этой обработки может быть оптимизирован. Например, однажды считанные элементы и группы могут запоминаться в таблице значений вместе со своими строковыми представлениями, а затем использоваться для повторного вывода.

Перестановка документов в журнале в пределах даты

Последовательность расположения документов в пределах даты может существенно влиять на логику их проведения в оперативном и бухгалтерском учете. Обычно это характерно для тех документов, которые записывают свои движения в зависимости от итогов на момент (позицию) документа. Соответственно у пользователей возникает необходимость в изменении последовательности расположения документов. Обычно для этого используется возможность редактирования времени документов.

В методической конфигурации в форме журнала "Общий" реализован дополнительный сервис перестановки документов. Данная возможность вызывается с помощью кнопки "Изменить время документа". При этом в модуле журнала вызывается процедура "ИзменитьВремяДокумента", в которой пользователю предоставляется выбор варианта перемещения документа. В данной процедуре реализованы наиболее типовые варианты перемещения: перестановка документа за следующий документ и перед предыдущим документом, а также перенос документа в начало и в конец дня. В качестве стандартного смещения документа выбрана одна минута. Если документы лежат более плотно, то при перемещении документу устанавливается среднее время между двумя соседними документами. В этой процедуре подбор времени осуществляется с дискретностью до секунды и не выполняется перестановка документов, если они расположены с интервалом меньше двух секунд. Хотя в 1С:Предприятии допускается, расположение двух и более документов в одной секунде, но в этом случае порядок следования документов в пределах секунды не может быть установлен принудительно, что не позволяет управлять порядком следования документов.

Если документ проведен, то перед переносом выполняется отмена проведения, а после изменения времени документ вновь проводится.

Групповые операции над выбранными документами

Одной из возможных сервисных функций, которую можно реализовать с помощью средств конфигурирования 1С:Предприятия является отметка объектов в формах списков и их групповая обработка.

Эта возможность реализована в методической конфигурации на примере журнала документов (журнал "Общий", форма "ДляГрупповыхОпераций"). Для хранения информации о выбранных документах используется список значений. Для отображения выбранных документов в журнале используется колонка типа "Текст" с включенным признаком "Показывать пиктограммы" и выражением, вычисляющим номер пиктограммы для текущей строки журнала. Для табличной части журнала выбрана соответствующая картинка, содержащая изображения отметки.

Элементы управления (колонка табличной части и кнопки) отвечающие за групповые операции делаются видимыми при установленном флажке "Групповые операции". Соответственно включается и выключается режим обработки выбора строки в модуле формы.

Процедуры модуля формы реализуют установку и снятие отметки для всех документов в журнале, инвертирование отметок, а также собственно выполнение групповой обработки отмеченных документов.

При выполнении отметки всех элементов и инвертирования отметок выбираются документы соответствующие текущему интервалу и отбору журнала.

Реализованный алгоритм является универсальным и может использоваться в других журналах. Однако при переносе алгоритма в другой журнал необходимо изменить идентификатор журнала, присваиваемый переменной "ВидЖурнала".

Разумеется, приведенный пример имеет потенциальное ограничение по количеству документов отмечаемых командами "Отметить все" или "Инвертировать", так как список отмеченных документов хранится в оперативной памяти. В приведенном примере не используется возможность отметки всех документов и инвертирования списка за счет запоминания списка "неотмеченных" документов. Это объясняется тем, что документы могут вводиться другими пользователями и поэтому нельзя однозначно считать признаком "отмеченности" отсутствие в списке "неотмеченных". При использовании данной возможности в монопольном режиме может быть использован алгоритм запоминания списка "неотмеченных", хотя на практике очевидно отметка большого количества документов не будет использоваться широко.

Автоматическое открытие периода оперативных итогов

При самостоятельном освоении конфигурации 1С:Предприятия использующей компоненту "Оперативный учет" для работников организации определенную трудность может представлять необходимость открытия в начале месяца периода оперативных итогов.

В методической конфигурации приводится пример алгоритма упрощающего выполнение этой регламентной операции. В глобальном модуле в процедуре "ПриНачалеРаботыСистемы" выполняется сравнение текущей даты и даты точки актуальности (ТА). Если текущая дата располагается в следующем месяце, по отношению к дате ТА, то пользователю предлагается выполнить перенос ТА.

Если программа запущена не в монопольном режиме, то предлагается завершить запуск программы и запустить ее в монопольном режиме.

Разумеется, данный прием имеет смысл использовать только при регулярной (непрерывной) работе пользователей. При выполнении отладки конфигурации или принудительном переносе ТА назад данная возможность практически не имеет смысла.

Кроме того, следует учитывать, что описанный алгоритм обеспечивает работу только при периодичности хранения оперативных итогов "Месяц". При другой периодичности в алгоритме следует учесть более частую смену периода хранения оперативных итогов. Соответственно алгоритм необходимо изменять при смене периодичности хранения итогов.


1С-Предприятие. Документация | Особенности работы с конфигурацией

Особенности работы с конфигурацией

  • Особенности использования "Загрузки измененной конфигурации"
  • Использования режима объединения конфигураций
  • Сравнение внешних отчетов
  • Контроль целостности файла конфигурации в процессе разработки и внесения изменений в конфигурацию.
  • Размер файла внешнего отчета
  • Размер файла конфигурации
  • Использование синонимов объектов метаданных
  • Использование шаблонов фрагментов модулей
  • Рекомендации по использованию шаблонов фрагментов модулей
  • Расположение файла внешнего отчета
  • Поиск нужного объекта в пользовательском интерфейсе
  • Определение количества строк модулей в конфигурации
  • Особенности работы с базовыми версиями 1С:Предприятия

Особенности использования "Загрузки измененной конфигурации"

При выполнении загрузки измененной конфигурации система контролирует правильность использования данной функции. Типичной ошибкой является попытка загрузки конфигурации, не являющейся потомком текущей конфигурации. Не смотря на то, что система допускает такое действие, ограничиваясь выдачей предупреждения, настоятельно не рекомендуется выполнять загрузку, если выдано сообщение о том, что "Выбранный файл конфигурации не является потомком…". Это может привести к достаточно серьезным последствиям ,например, потере данных или нарушении работоспособности информационной базы.

Основным применением данной функции является модернизация конфигурации параллельно с работой пользователей с информационной базой. Чтобы корректно применять функцию загрузки измененной конфигурации следует придерживаться следующей последовательности действий:

  • Скопировать конфигурацию функционирующей в организации информационной базы (только файл 1CV7.MD, или всю информационную базу целиком).
  • Произвести необходимую модификацию конфигурации на скопированной информационной базе или созданной тестовой базе на основе скопированного файла 1CV7.MD.Данная модификация, разумеется, может выполняться многократно. Важно, чтобы в это время не выполнялось никаких изменений в конфигурации работающей в организации информационной базы, включая изменения состава наборов прав, интерфейсов и т.д. Заметим, что список пользователей не является частью конфигурации и, следовательно, может изменяться.
  • После окончания отладки сделанных в скопированной конфигурации изменений следует открыть конфигурацию работающей информационной базы и выполнить загрузку измененной конфигурации из модифицированной конфигурации. При этом не должно выдаваться сообщение "Выбранный файл конфигурации не является потомком…", так как конфигурация, в которую выполняется загрузка, ни разу не менялась с момента создания копии. После выполнения загрузки измененной конфигурации выполняется сохранение конфигурации с соответствующей реструктуризацией информационной базы.
  • Если, предполагается продолжать модификацию конфигурации на отдельной информационной базе, то необходимо выполнить повторное копирование полученной после загрузки измененной конфигурации информационной базы или файла 1CV7.MD. Последующую модификацию следует выполнять уже с вновь сделанной копией, а не с той конфигурацией, которая модифицировалась в прошлый раз. Это объясняется тем, что сам факт сохранения после загрузки измененной конфигурации также является изменением конфигурации и отмечается системой, и, следовательно, сделанная ранее копия уже не будет являться прямым потомком работающей конфигурации.

Именно невыполнение последнего пункта описанной последовательности действий приводит обычно к появлению при выполнении загрузки измененной конфигурации предупреждения. Заметим, что в версии 7.7 для решения аналогичной задачи можно использовать механизм объединения конфигураций. Он позволяет выполнять загрузку изменений, даже если конфигурация работающей информационной базы менялась. Однако, использование механизма объединения требует большей аккуратности, так как процесс объединения не столь однозначен, как загрузка измененной конфигурации, вследствие того, что внесенные в работающую конфигурацию и в ее копию изменения могут быть между собой логически не согласованы, что необходимо анализировать в процессе объединения.

Использования режима объединения конфигураций

Рекомендации по использованию режима объединения конфигураций

Основное назначение и дополнительные возможности, предоставляемые режимом объединения конфигураций

Одним из главных назначений режима объединения конфигураций является возможность обновления используемых типовых конфигураций при выпуске очередных релизов.

Кроме того, режим объединения конфигураций позволяет разработчикам прикладных решений, созданных на основе типовых конфигураций, достаточно просто вносить в собственную конфигурацию изменения, которым подверглась типовая конфигурация с момента начала разработки собственной. Ранее использовавшееся в таких случаях средство обновления конфигурации (режим загрузки измененной конфигурации) являлось практически неприменимым, так как после загрузки исчезали все изменения, внесенные разработчиком. Более подробно отличия этих режимов будут рассмотрены в разделе "Отличия режима объединения конфигураций от загрузки измененной конфигурации ".

Однако возможности режима объединения позволяют использовать его и для решения других задач, например, групповой разработки или наследования вновь создаваемой конфигурацией готовых решений, реализованных в других проектах. Интересные применения, например, при сопровождении конфигурации, может иметь также визуализированный список различий в конфигурациях.

Подготовка к объединению конфигураций

Безусловно, процесс объединения конфигураций (особенно существенно различающихся) может быть весьма не простым и потребовать подготовительных действий. В частности, он может быть разбит на несколько этапов, причем для каждого этапа разработчиком может быть выбрана своя стратегия объединения.

Подготовка к объединению конфигураций, прежде всего, заключается в согласовании "терминологии", принятой при разработке конкретных конфигураций, в том, какой идентификатор дан тому или иному объекту метаданных, отражающих одну и ту же физическую сущность. Например, справочник "Сотрудники" в одной конфигурации может быть полным или частичным аналогом справочника "Работники" в другой. Поиск пар объектов, которые сравниваются и, при необходимости, замещаются или объединяются, происходит именно по совпадению идентификаторов. В связи с этим, перед выполнением объединения имеет смысл просмотреть объединяемые конфигурации для проверки того, что применяемые идентификаторы идентичны, при необходимости заменить идентификаторы в одной из конфигураций и внести изменения в тексты модулей и формулы там, где использовались измененные идентификаторы.

Существенную помощь на всех этапах слияния конфигураций могут оказать появившиеся в версии 7.7 возможность получения описания конфигурации в текстовом виде, а также специальные средства, вызов которых осуществляется непосредственно из окна "Объединение конфигураций", а именно кнопка "Сравнить", позволяющая получить развернутую информацию об измененном объекте, и кнопка "Отчет...", при помощи которой можно получить на экране или вывести в файл краткий или детальный отчет о различиях в объединяемых конфигурациях.

В процессе разработки плана объединения может выясниться, что одни объекты метаданных нужно перенести "как есть в загружаемой конфигурации", а для других нужно осуществить "слияние" свойств или выполнять обработку объектов в порядке, отличном, от используемого конфигуратором. В этих случаях процесс объединения разбивается на этапы, причем для каждого, как правило, выбирается своя стратегия. Под стратегией в данном случае понимается совокупность метода объединения (замещение или объединение объектов) и выбор приоритетности конфигураций (текущая или загружаемая).

При выборе стратегии объединения для каждого этапа следует четко понимать, каков будет результат того или иного выбора, т.к. от этого весьма существенно зависит алгоритм обработки каждого объекта.

Основные принципы работы режима объединения конфигураций

Наиболее простой для понимания является использование метода замещения объектов. При выборе этого метода просто происходит замена объекта, определенного в текущей конфигурации на соответствующий из загружаемой, если в текущей выбранный объект имеется, или в текущую конфигурацию выбранный объект добавляется, если объект имеется только в загружаемой. Заметим, что несмотря на то, что при замене объекта происходит, с точки зрения пользователя, удаление имеющегося и добавление нового объекта, это не совсем так, такая замена происходит с минимизацией потери данных, т.е. результат получается тот же, как если бы пользователь открыл объект метаданных для редактирования и вручную привел бы все в соответствие с аналогичным объектом из загружаемой конфигурации, а не удалил бы предварительно объект, а потом вставил, например, из буфера обмена - в этом случае потеря данных была бы полной. Приоритет конфигурации влияет на состав замещаемых объектов. Если в качестве приоритетной конфигурации выбрана текущая , то замещения измененных объектов не происходит, в противном случае они включаются в список замещаемых.

Суть стратегии при выборе метода объединения объектов можно свести к следующей фразе: "При выборе метода объединения объектов конфигуратор стремится к тому, чтобы в результате объединения объект содержал все, что было в нем в текущей конфигурации и все, что было в загружаемой". Слово "стремится" здесь употреблено потому, что для некоторых объектов метаданных (например, "Задача") объединение является бессмысленным, они могут только замещаться.

Следуя этому правилу можно достаточно просто представить себе, что происходит с большинством объектов метаданных при объединении. Такие свойства объекта метаданных, как "синоним", "комментарий" и др. берутся из приоритетной конфигурации, а списочные (такие, например, как список реквизитов) сливаются, то есть их список после объединения будет содержать набор реквизитов обоих конфигураций. Отдельно стоит упомянуть свойства, содержащие массив ссылок на элементы метаданных, такие, например как, список входящих в журнал документов. Подобно списочным свойствам, они сливаются, однако, при этом корректно обрабатывается ситуация, когда ссылка в результате оказывается неразрешенной. Примером может служить случай, если объединяемый (или переносимый) журнал документов содержит ссылки на документы, которые не переносятся из загружаемой конфигурации и отсутствуют в текущей. В этом случае ссылка уничтожается, о чем выдается соответствующая строка в окно сообщений.

Теперь более подробно рассмотрим случаи, когда применение сформулированного правила не дает полного представления о результате или дает неверное представление.

Регистры. Специфика этого объекта метаданных состоит в том, что для него существенным является не только состав списочных свойств - измерений, ресурсов, реквизитов, но порядок их следования в списке. Для слияния этих списков используется следующий алгоритм: сначала берутся все элементы списка из приоритетной конфигурации в порядке их следования, затем к списку добавляются не вошедшие ранее элементы из списка неприоритетной конфигурации в порядке их следования в нем.

Формы диалогов. Результирующая форма диалога имеет все слои, которые имели обе исходные формы. В качестве основы берется форма диалога приоритетной конфигурации, элементы диалога, имеющиеся только в неприоритетной конфигурации, добавляются на тот слой, который был использован для каждого конкретного элемента в неприоритетной конфигурации.

Интерес представляет также способ, которым определяются пары соответствующих друг другу элементов диалога, т.к. они не являются элементами метаданных и, соответственно, способ сравнения идентификатора в этом случае неприменим. Поиск в форме элемента диалога, соответствующего данному элементу производится следующим образом: если присутствует идентификатор элемента диалога (который не следует путать с идентификатором элемента метаданных) происходит сравнение по нему. В противном случае производится поиск элемента того же типа (текст, кнопка и т.д.), имеющий такую же формулу (не пустую) или такой же заголовок (не пустой). Заметим, что данный алгоритм обеспечивает определение пары элементов диалога, соответствующих, с точки зрения совпадения идентификаторов, реквизитам отображаемого формой объекта метаданных, так как совпадение идентификаторов реквизитов гарантирует совпадение идентификаторов соответствующих им элементов формы диалога.

Модули (тексты). За основу берется текст модуля приоритетной конфигурации. В нем в виде комментариев вставляются все отличия модуля неприоритетной конфигурации фрагменты текста. В начало каждой строки вставляемого фрагмента текста добавляется двойной слеш (два символа косой черты), что в тексте программного модуля делает эти строки закомментированными. Кроме того, для облегчения дальнейшей работы с результирующим текстом, в него вставляются специальные строчки-комментарии.

Измененные фрагменты обрамляются сверху и снизу строками " //{{MRG[ <-> ] ",

добавленные " //{{MRG[ <-- ] ",

удаленные " //{{MRG[ --> ] ".

Таблицы. Форма, получившаяся в результате объединения, будет содержать все таблицы, имевшиеся в формах объединяемых конфигураций. В случае, если в обеих формах есть одинаково названные таблицы, таблице неприоритетной конфигурации присваивается новое, уникальное в пределах результирующей формы имя.

Права и интерфейсы. Независимо от установки метода объединения ("Объединять объекты" или "Замещать объекты"), пользовательские интерфейсы всегда объединяются, а права конкретного набора прав для конкретного объекта метаданных замещаются полностью в соответствии с выбранным приоритетом конфигурации. При этом, замещение прав выполняется при условии, что в окне объединения включен признак объединения и у объекта метаданных и у набора прав. При объединении интерфейсов за основу берется интерфейс приоритетной конфигурации, и в него добавляются отсутствующие в нем элементы интерфейса из неприоритетной конфигурации.

Таким образом, режим объединения конфигураций при выборе объединения объектов полностью сохраняет функциональность объекта из приоритетной конфигурации и опционально включает в результирующий объект функциональность из неприоритетной конфигурации. Как правило, для включения опциональной функциональности требуется корректировка конфигурации вручную.

Отличия режима объединения конфигураций от загрузки измененной конфигурации

В процессе работы с конфигурацией каждый вновь образующийся элемент метаданных получает уникальный в пределах данной конфигурации внутренний идентификатор, который сохраняется за ним весь цикл жизни конфигурации. Загрузка измененной конфигурации для определения пар объектов, соответствующих друг другу в текущей и загружаемой конфигурации, использует именно внутренний идентификатор, благополучно отрабатывая ситуацию, когда объект метаданных переименован. Кстати, именно поэтому так важно, чтобы загружаемая конфигурация являлась потомком текущей, так как нет никакой возможности "согласовать" словарь внутренних идентификаторов двух различных конфигураций при использовании загрузки измененной конфигурации.

Напротив, режим объединения конфигураций использует задаваемые пользователем идентификаторы объектов метаданных при определении пар соответствующих друг другу объектов. Это дает возможность объединять конфигурации, не имеющие общего родителя. Хотя следует учитывать, что объединение сильно различающихся конфигураций может потребовать существенной переработки полученной конфигурации для согласования структур данных, алгоритмов, а, зачастую, и самой концепции унаследованной от обеих конфигураций.

Однако может оказаться полезным даже из сильно отличающейся конфигурации выделить и перенести в текущую один или несколько объектов, реализующих ту или иную функцию, не поддерживаемую текущей конфигурацией. Метод объединения конфигураций дает такую возможность, благодаря реализованной выборочности переноса, чего не поддерживает загрузка измененной конфигурации.

Наконец, еще одним отличием режима объединения конфигураций является наличие метода объединения объектов, т.к. загрузка измененной конфигурации способна лишь замещать объекты.

Фактически, режим загрузки измененной конфигурации используется исключительно для обеспечения возможности изменения копии конфигурации параллельно с работой пользователей с информационной базой, и затем однозначного внесения сделанных в копии изменений в "рабочую" конфигурацию.

Из сказанного выше можно сделать вывод, что режим объединения конфигураций является по сравнению с загрузкой измененной конфигурации более развитым, дающим новые возможности способом обновления конфигураций, однако, его применение предъявляет к пользователю повышенные требования с точки зрения понимания механизма объединения.

Сравнение внешних отчетов

Режим сравнения файлов Конфигуратора (меню "Файл - Сравнить файлы") позволяет сравнивать любые файлы на полное совпадение, а для текстовых файлов предоставляет возможность сравнения с показом отличий в тексте.

При сравнении внешних отчетов может быть выполнено сравнение самих файлов на полное совпадение, а может быть выполнено сравнение текстов модулей с показом отличий в тексте.

Для принудительного сравнения модулей внешних отчетов следует при выборе файлов выбрать тип файла "Внешний отчет (обработка)"

Контроль целостности файла конфигурации в процессе разработки и внесения изменений в конфигурацию.

Аппаратные сбои некачественного компьютера во время сохранения файла конфигурации (1cv7.md) могут привести к частичному или полному его разрушению. Это подтверждает и анализ статистики обращений на линию консультаций по поводу разрушения файла конфигурации. Например, проведенное однажды исследование причин появления ошибки в файле конфигурации показало, что разрушение произошло на компьютере с неисправной оперативной памятью.

Приведенные ниже простые рекомендации помогут Вам избежать последствий аппаратных сбоев во время сохранения конфигурации:

  • проводите редактирование конфигурации и реструктуризацию только на компьютере, в качестве которого Вы уверены;
  • постоянно имейте резервную копию информационной базы, проверенную на отсутствие ошибок в файле конфигурации.

Для проверки отсутствия ошибок в файле конфигурации при применении версии 7.7 можно использовать встроенный в Конфигуратор режим тестирования и исправления ИБ. При этом все флажки в диалоге режима для ускорения процесса можно убрать и выбрать режим "Только тестирование". В этом случае будет проверяться только файл конфигурации. Для версии 7.5 проверку можно осуществить при помощи режима "Поиск во всех текстах" со всеми взведенными флажками, причем какую именно строку искать - неважно, существенным является сам факт нормального завершения поиска.

После окончания проверки можно сделать новую резервную копию взамен существующей и хранить ее до следующего исправления конфигурации – это должно защитить Вас и Ваших клиентов от неприятностей, связанных с внезапной потерей работоспособности системы.

Еще одной причиной появления ошибок в файле конфигурации может быть попытка внесения изменений вручную, при помощи различных редакторов. Подобные попытки, скорее всего, приведут к тяжелым последствиям, вплоть до полной невозможности восстановить хотя бы частично файл конфигурации. Для внесения исправлений в конфигурацию пользуйтесь предназначенным для этого средством - режимом запуска "Конфигуратор".

В заключение, хотелось бы отметить еще один аспект, связанный с целостностью информационной базы в целом. Файл конфигурации, а точнее состав содержащихся в нем метаданных, полностью определяет структуру таблиц информационной базы (но не наоборот). Можно сказать, что файл конфигурации является основой ИБ. Поэтому совершенно недопустима попытка копирования файла, содержащего "желаемую" конфигурацию, в каталог, содержащий "желаемые" данные, находящиеся в таблицах ИБ. Копируемый файл подразумевает некую структуру таблиц, которая практически наверняка не совпадет с реальной. Это приведет к нарушению целостности ИБ и, как следствие, к потере работоспособности, хотя и сам файл конфигурации и таблицы по отдельности могут не содержать ни единой ошибки. К сожалению, такое случается, когда разработка конфигурации идет параллельно с работой пользователей. Разработчик конфигурации приносит новый вариант и просто копирует его в каталог информационной базы, а это недопустимо по изложенным выше причинам. Для осуществления параллельной разработки реализован специальный режим Конфигуратора - "Загрузка измененной конфигурации".

Размер файла внешнего отчета

Данный раздел представляет интерес, прежде всего, для разработчиков, создающих внешние отчеты для массового тиражирования. В разделе приводится рекомендация, каким образом можно уменьшить размер файла внешнего отчета.

Диалоги форм внешних отчетов, как и любые другие диалоги форм, могут содержать поля ввода, имеющие не только базовый тип (строка, число, дата), но и тип любого типообразующего элемента метаданных (справочника, документа, перечисления и т.д.), из числа определенных в конфигурации, являющейся текущей во время создания этого элемента диалога. В связи с этим файл внешнего отчета содержит необходимую информацию о типообразующих элементах метаданных текущей конфигурации. Эта информация используется при загрузке формы внешнего отчета во время работы с конфигурацией, отличной от той, в которой внешний отчет создавался. Она служит для привязки типа данных, связанного с полем ввода диалога к одноименному, т.е. имеющему совпадающий идентификатор, элементу метаданных текущей конфигурации. Размер информации о типообразующих элементах метаданных конфигурации напрямую зависит от их количества в конфигурации и иногда может приводить к необоснованному увеличению размера файла внешнего отчета. Чтобы этого избежать, существует возможность создавать внешние отчеты, загрузив или

специально создав конфигурацию, имеющую лишь те типообразующие элементы метаданных, которые используются этим внешним отчетом. Причем создавать внутреннюю структуру элемента метаданных, т.е. создавать реквизиты для справочников, значения для перечислений и т.д., не является обязательным, т.к. в данном случае, значение имеет лишь идентификатор типообразующего элемента метаданных.

Например, форма диалог формы внешнего отчета имеет несколько полей ввода простых типов и одно поле ввода типа справочник Товары. Для того, чтобы внешний отчет имел минимальный размер и, в то же время, при загрузке во время работы в любой конфигурации, имеющей справочник Товары, тип данных поля ввода автоматически привязывался к данному справочнику, следует выполнить следующие действия:

  1. Создать новую информационную базу в пустом каталоге
  2. Войти в нее в режиме запуска "Конфигуратор"
  3. Создать новый справочник, задав ему идентификатор Товары, или скопировать из другой конфигурации.
  4. Создать новый внешний отчет и сохранить его.

Аналогично можно поступить и с уже существующим внешним отчетом, загрузив его в сокращенной (или пустой) конфигурации, формально что-то изменить, чтобы взвести флаг модифицированности, и затем сохранить.

Для внешних отчетов, не имеющих полей ввода, жестко привязанных к типу (например, тип "справочник неопределенного" вида не является жестко типизированным) или имеющих только поля базовых типов, рекомендуется сохранить внешний отчет, воспользовавшись запуском системы в режиме Конфигуратора в пустой конфигурации.

Размер файла конфигурации

Данный раздел представляет интерес, прежде всего, для разработчиков, создающих дистрибутив тиражируемой конфигурации.

Периодически на линию консультаций поступают обращения, в которых пользователи 1С:Предприятия выражают удивление по поводу труднопрогнозируемого изменения размера файла конфигурации (1cv7.md). Можно процитировать такую, типичную выдержку из письма : "После удаления из модуля достаточно большого фрагмента текста и сохранения конфигурации, мы ожидали некоторого уменьшения размера файла 1cv7.md. Однако, размер увеличился (!) на 350 байт. После этого в тот же модуль было добавлено несколько строк, но после сохранения размер файла не изменился. Тщательный просмотр текста модуля и запуск в режиме "1С:Предприятие" показывают, что изменения в тексте сохранены правильно, однако такое поведение файла 1cv7.md наводит на мысли о возможных ошибках в нем. Как вы можете прокомментировать такую ситуацию?".

Такое "поведение" файла конфигурации является НОРМАЛЬНЫМ. Дело в том, что используемая для работы с файлом конфигурации в 1С:Предприятии технология позволяет рассматривать его, как набор фрагментов, каждый из которых хранит свою часть данных о конфигурации. Такой подход позволяет в ряде случаев сократить время на сохранение конфигурации, т.к. переписывается не весь файл целиком, а только его фрагменты, хранящие информацию о тех частях конфигурации, которые реально были изменены в процессе редактирования. Перезапись фрагмента состоит из записи обновленной информации в специально отведенное дополнительно под нее место в файле конфигурации и отметке того места, где хранилась устаревшая информация, как свободного. Таким образом, внутри файла 1cv7.md образуются "пустоты", которые могут быть использованы при последующих записях информации об этой же или какой-либо другой части конфигурации, т.е. происходит фрагментация файла конфигурации.

Заметим, что, если при редактировании конфигурации были внесены изменения, которые могли потребовать реорганизацию информационной базы, то при сохранении файл конфигурации создается "с нуля" и в результате не является фрагментированным. Характерным признаком этого является появление сообщения о том, что "при сохранении метаданных будет произведен анализ сделанных изменений и, в случае необходимости, реорганизация информационной базы".

Для того, чтобы принудительно дефрагментировать файл конфигурации, рекомендуется сделать загрузку измененной конфигурации, указав в качестве загружаемого файл конфигурации текущей информационной базы.

Использование синонимов объектов метаданных

При создании объекта метаданных рекомендуется сразу указывать синоним.

В качестве синонима обычно используется краткое, но понятное пользователю обозначение объекта метаданных. Синоним следует задавать, если идентификатор объекта метаданных имеет большую длину или включает несколько слов. В последнем случае в синониме обычно те же слова, которые заданы в идентификаторе слитно, указываются через пробел или через точку.

Ввод синонима сразу при создании объекта метаданных целесообразен потому, что система использует введенный синоним при автоматическом формировании различных элементов интерфейса конфигурации.

Например, если создать новый вид документов и указать для него синоним, то при включении в меню пользовательского интерфейса команды ввода этого документа в качестве названия пункта меню будет подставлен именно синоним. А если синоним не будет указан, то в качестве названия пункта меню будет подставлен идентификатор и вероятнее всего название придется исправлять. Аналогично, если при создании реквизита документа указать синоним, то он будет использован системой при вставке реквизита в форму документа для подстановки имени реквизита шапки или заголовка колонки реквизита табличной части.

Использование шаблонов фрагментов модулей

Рекомендации по использованию шаблонов фрагментов модулей

При интенсивной разработке конфигураций весьма полезным инструментом является механизм шаблонов. Он позволяет создать заготовки фрагментов модулей, которые затем будут использоваться при написании алгоритмов. В этом разделе приводятся некоторые рекомендации по созданию и использованию шаблонов.

Для специалиста, работающего с несколькими конфигурациями, рекомендуется установить единый файл шаблонов для различных конфигураций. Это имя файла указывается в параметрах системы (меню "Сервис - Параметры" – закладка "Синтакс-Помощник" - поле "Файл шаблонов"). Если значение этого параметра установлено, то для всех конфигураций на данном компьютере будет использоваться единый набор шаблонов. В этом случае создание нового шаблона для часто используемой конструкции будет более оправдано, так как его можно будет использовать во всех конфигурациях.

При разработке шаблонов рекомендуется разбивать их на группы. Команда "Новая группа" вызывается из меню "Действия" или из контекстного меню окна редактирования списка шаблонов.

Для некоторых шаблонов имеет смысл задать строку в поле "Заменять". В этом случае шаблон будет автоматически вызываться при наборе в тексте указанного слова. Однако эту установку следует использовать осмотрительно, так как если задать слово, которое часто применяется в различных конструкциях, которые не имеют отношения к данному шаблону, то автоматический вызов будет мешать набору модулей.

Из всех шаблонов можно выделить 10 шаблонов, которые будут включаться в контекстное меню при редактировании текстов модулей. Разумеется, признак "Включать в меню" имеет смысл устанавливать для часто используемых шаблонов. Признак "Включать в меню" задается только для тех шаблонов, для которых указана строка "Заменять".

При создании шаблонов с переменной частью рекомендуется использовать управляющие конструкции, которые позволяют организовать ввод переменных частей шаблона при его использовании. Для вставки в шаблон управляющей конструкции следует воспользоваться контекстным меню, меню "Действия" или клавишами Ctrl+Shift+C. Основная управляющая конструкция "Произвольный запрос" позволяет ввести строку, которая будет помещена в том месте шаблона, в котором начинается управляющая конструкция. Рекомендуется задавать в управляющей конструкции подсказку. Это облегчит использование шаблона. При использовании конструкции запроса в шаблоне существует возможность указать в тексте шаблона два и более раз одну и ту же конструкцию (с одной и той же подсказкой). В этом случае запрос будет выдан только один раз, а его результат будет помещен во все места шаблона, в которых указан данный запрос.

В большинстве шаблонов имеет смысл также разместить управляющую конструкцию "Установка курсора". Она будет определять то положение, в которое будет помещен текстовый курсор после ввода шаблона. Использование этой конструкции позволит избежать дополнительных манипуляций курсором при использовании шаблона.

Весьма эффективным средством при использовании шаблонов является применение управляющих конструкций "Выбор метаданного". Это позволяет создавать шаблоны, при использовании которых будут выбираться объекты метаданных и подставляться в формируемый шаблоном фрагмент модуля. Например, это позволяет сделать шаблон, выполняющий обход справочника. При использовании данного шаблона достаточно будет выбрать из списка справочников нужный вид и в модуль будет вставлен фрагмент, выполняющий обход справочника выбранного вида.

Отдельной управляющей конструкцией является "Форматная строка". Она позволяет существенно упростить задание форматной строки, так как представляет все возможные варианты ее заполнения в диалоговой форме. Эту конструкцию используют в основном для создания шаблона, формирующего собственно вызов функции "Формат".

При создании шаблонов следует учитывать, что управляющие конструкции позволяют вставить непосредственно вводимую или выбираемую строку, а все "окружение" вставляемой конструкции должно быть задано непосредственно в шаблоне. Например, если вставляется управляющая конструкция для подстановки вида документа в функцию "СоздатьОбъект", то в шаблоне должно быть указано и слово "Документ" и точка и двойные кавычки, а вставляться будет только собственно идентификатор вида документа.

Заметим, что некоторые конструкции языка можно не выносить в шаблоны, а использовать соответствующие пункты Синтакс-Помощника. Например, из Синтакс-Помощника можно вставить практически все предопределенные процедуры. Создание аналогичных шаблонов целесообразно либо для сокращения времени поиска необходимой конструкции, либо для дополнения вставляемого фрагмента по отношению к тому, который содержится в Синтакс-Помощнике.

Расположение файла внешнего отчета

При открытии в Конфигураторе внешнего отчета через список последних открытых файлов в меню "Файл", иногда требуется убедиться, что для редактирования открывается именно тот файл, который необходим. Если посмотреть на заголовок окна открытого внешнего отчета, то до первого сохранения этого отчета в данном сеансе работы с ним в заголовке окна выдается полный путь к файлу отчета (после сохранения - только имя файла).

Поиск нужного объекта в пользовательском интерфейсе

Одна из задач, стоящих перед разработчиком конфигурации, - создание пользовательского интерфейса (или набора таких интерфейсов для разных категорий пользователей).

При разработке пользовательских интерфейсов для сложных конфигураций, содержащих большое число объектов, одна из типичных проблем, которую приходится решать, - определение того, включен ли уже какой-либо объект метаданных в пользовательский интерфейс, или еще нет.

Простым просмотром меню или панелей инструментов такую задачу зачастую не решить. Дадим несколько советов, которые позволят облегчить процесс поисков.

Чтобы определить, включен ли интересующий вас объект метаданных - справочник, документ, отчет, журнал документов - в какой-либо интерфейс, попробуйте создать в этом же интерфейсе команду для работы с этим объектом метаданных.

Удобно это делать в редакторе меню. Откройте любое меню верхнего уровня и дважды щелкните мышью по служебному элементу <новый…>. В палитре свойств заполните поле "Объект", выбрав интересующий вас объект метаданных. Если для выбранного объекта метаданных существует несколько команд для работы с ним - укажите одну из них в поле "Команда". Теперь нажмите кнопку "Обновить".

Если указанный объект уже присутствует в меню, будет выдано сообщение "Данное меню уже содержит аналогичную команду". Можно нажать кнопу "Отмена", чтобы отказать от добавления нового элемента меню: мы убедились что интересующий нас объект метаданных уже присутствует в пользовательском интерфейсе.

Однако, если для объекта метаданных предусмотрены несколько вариантов заполнения поля "Команда" (несколько команд вызова из меню), то успешное включение объекта метаданных в меню может еще ничего не означать - возможно, что в меню уже присутствует другая команда для работы с этим же объектом метаданных.

Чтобы определить это, воспользуйтесь другим приемом.

Для пользовательского интерфейса, в котором требуется "искать" объект метаданных, создайте временный подчиненный интерфейс с любыми свойствами, и откройте его для редактирования. Подчиненный интерфейс содержит все команды из интерфейса родителя, отсортированные в алфавитном порядке: сначала по типам объектов метаданных, внутри типов - по идентификаторам объектов, затем - по командам для работы с объектом, а если все это одинаковое - то по параметрам команд.

Таким образом, можно легко найти и интересующий вас объект метаданных, и увидеть все команды для работы с этим объектом.

Следует напомнить, что редактировать вы все равно будете интерфейс-родитель, а подчиненный интерфейс, пока не закончена разработка, можно не удалять, а использовать "для контроля".

Определение количества строк модулей в конфигурации

Иногда у разработчика конфигурации или специалиста, анализирующего какую либо конфигурацию, возникает необходимость оценки размера конфигурации. В данном случае под размером подразумевается не размер файла 1cv7.md, а объем прикладного решения, которое представляет собой конфигурация. Например, это может быть необходимо для косвенной оценки сложности конфигурации или трудоемкости ее поддержки и модификации.

Наиболее очевидным показателем объема конфигурации является количество объектов метаданных, однако это не всегда позволяет оценить сложность их реализации. Во многом сложность модификации и сопровождения конфигурации зависит от объема алгоритмов написанных на встроенном языке 1С:Предприятия. Для того чтобы оценить объем алгоритмов можно воспользоваться следующей методикой.

В режиме запуска "Конфигуратор" следует воспользоваться режимом поиска во всех текстах (меню "Конфигурация - Поиск во всех текстах"). В поле "Искать в" следует включить только флажок "Модулях", а в поле "Искать:" ввести символ ";". Далее следует собственно выполнить поиск. При этом будут проанализированы все модули конфигурации и подсчитано число символов ";".

Разумеется, не все строки модулей кончаются символом ";", а иногда в одной строке может быть несколько таких символов. Однако полученное число можно считать приблизительной оценкой количества строк и использовать для оценки объема конфигурации.

Следует заметить, режим поиска во всех текстах имеет ограничение по количеству отображаемых вхождений строки поиска. То есть с некоторого момента (после 32000 вхождений) найденные строки не будут отображаться, однако общее число вхождений будет подсчитано и выдано в окне результатов поиска.

Особенности работы с базовыми версиями 1С:Предприятия

Среди продуктов системы программ 1С:Предприятие существуют Базовые версии:

  • 1С:Налогоплательщик 7.7
  • 1С:Аспект 7.7 Компактная торговая система
  • 1С:Бухгалтерия 7.7 (базовая версия)
  • 1С:Бухгалтерия 7.7 Базовая версия для Украины
  • 1С:Зарплата и кадры (базовая версия)
  • 1С:Платежные документы 7.7
  • 1С:Деньги 7.7
  • 1С:Воинская часть 7.7

Особенностью данных продуктов является отсутствие режима конфигурирования.

Технологически это организовано следующим образом.

В комплект поставки данных продуктов входят специальные конфигурации, в которых проставлен признак, обеспечивающий возможность работы 1С:Предприятия с этими конфигурациями в качестве Базовой версии. Данный признак проставляется фирмой 1С. Работая с такой конфигурацией 1С:Предприятие не выполняет стандартную процедуру проверки ключа аппаратной защиты. Для некоторых конфигураций вместо этого применяется защита по ключевым словам документации. При работе 1С:Предприятия в режиме базовой версии для изменение конфигураций не допускается. Исключение составляет загрузка измененной конфигурации, полученной из фирмы 1С в качестве обновления.

При использовании данных конфигураций с обычной версией 1С:Предприятия (при установленном ключе аппаратной защиты) они могут быть изменены также, как и обычные конфигурации. Однако при записи конфигурации признак базовой конфигурации будет стерт и конфигурация не будет в дальнейшем работать с базовой версией 1С:Предприятия.

Таким образом, после покупки базовой версии пользователь в любой момент может приобрести версию 1С:Предприятия допускающую возможность конфигурирования, и начать модифицировать имеющуюся у него конфигурацию.

В качестве базовой версии 1С:Предприятия выступают программные файлы обычной несетевой версии (1cv7l.exe). Функционирование в режиме базовой версии обеспечивается при работе со специальной конфигурацией при отсутствии ключа аппаратной защиты.

С организациями, выполняющими разработку тиражных конфигураций фирма 1С может заключить специальный договор, предоставляющий возможность продажи одной из базовых версии 1С:Предприятия с конфигурацией разработанной этой организацией. Этот договор рассчитан на случаи, когда разработанная конфигурация предназначена для массового использования с базовой версией 1С:Предприятия.


1С-Предприятие. Документация | Вопросы администрирования

Вопросы администрирования

  • Обучение пользователей работе с 1С:Предприятием и конкретной конфигурацией
  • Выпуски 1С:Предприятия (Релизы)
  • Состав информационной базы
  • Нехватка места на диске при выполнении загрузки/выгрузки данных
  • Работа с системой 1С:Предприятие в локальных сетях
  • Выбор сетевого протокола для связи с MS SQL Server
  • Особенности установки системы 1С:Предприятие
  • Настройка списка файлов сохранения данных
  • Рекомендации по использованию журнала регистрации
  • Запуск одним пользователем 2-х экземпляров 1С:Предприятия в одной информационной базе
  • Особенности работы с 1С:Предприятием в операционных системах Windows NT/2000

Обучение пользователей работе с 1С:Предприятием и конкретной конфигурацией

Значительная часть пользователей (особенно начинающих) не применяют на практике многие полезные возможности 1С:Предприятия из-за того, что они не знают о них или не умеют их правильно применять. Например, бухгалтер или продавец может постоянно работать с 1С:Предприятием таким образом что нерационально настроенные размеры окон будут создавать ему массу неудобств. Очевидно, что специалист, выполняющий внедрение и администрирование системы может оказать пользователям значительную помощь, обратив их внимание на наличие той или иной возможности, упрощающей их повседневную работу.

Очевидно, что большинство приемов необходимых пользователям хорошо известно специалистам. В данном разделе мы хотим подчеркнуть важность такой "просветительской" работы.

Разумеется, основным источником информации при освоении 1С:Предприятия должна служить документация.

При начале работы с системой, можно обратить внимание пользователей на рекомендации, выдаваемые системой в "Советах дня". Заметим, что файл, содержащий советы дня для режима запуска "1С:Предприятие" (1cv7Main.tip) может быть помещен в каталог с информационной базой и отредактирован. То есть вы можете внести в него собственные рекомендации, касающиеся не только общих возможностей системы, но и конкретной конфигурации.

Далее следует обратить внимание пользователей на все основные имеющиеся в системе приемы для получения необходимой информации:

  • меню действие и контекстное меню;
  • режим "помощь";
  • встроенное описание;
  • подсказки к элементам диалога и кнопкам панели инструментов;

Заметим, что из перечисленного списка пользователи обычно забывают обращаться к меню "действия". Даже опытные специалисты не всегда осведомлены обо всех системных функциях, доступных в различных режимах 1С:Предприятия.

Рекомендуется привлечь внимание пользователей к режиму "Параметры". Зачастую пользователи работают достаточно продолжительное время с системой и не используют сервисные возможности, предоставляемые системой в режиме "Параметры".

Многие рекомендации, которые отвечают наиболее типовым потребностям пользователей, приведены на диске ИТС в разделе "Практические рекомендации по работе с 1С:Предприятием". Специалистам, работающим с пользователями, можно рекомендовать ознакомиться с содержанием этого раздела.

Выпуски 1С:Предприятия (Релизы).

В течение жизненного цикла программных продуктов системы 1С:Предприятие фирмой 1С в них вносятся различные изменения, исправляются обнаруженные недостатки и ошибки. Периодически производится очередной выпуск продуктов 1С:Предпряития. Такой выпуск называется релизом (англ. release - выпуск).

Выход очередного релиза относится ко всем компонентам системы 1С:Предприятие, а также к отдельным продуктам типа (1С:Платежные документы, 1С:Налогоплательщик). Релизы имеют единую нумерацию. Исключение составляют внешние компоненты, разрабатываемые фирмой 1С и компонента "Управление распределенными информационными базами", которые имеют независимую нумерацию релизов и которые могут использоваться с различными релизами 1С:Предпряития. Однако при выходе новых релизов этих компонент их также рекомендуется обновлять. Компонента "Управление распределенными информационными базами" будет автоматически обновляться при установке нового релиза любого из программных продуктов системы 1С:Предприятие, однако отдельная установка этой компоненты не обновит другие компоненты системы.

Заметим, что типовые конфигурации программных продуктов системы 1С:Предприятие имеют отдельный жизненный цикл. Каждая типовая конфигурация имеет свою нумерацию релизов. Однако замена релиза типовой конфигурации не может быть выполнена повторной установкой. Она может производиться только в режиме объединения конфигурация (в режиме загрузки измененной конфигурации в базовых версиях).

Наиболее простым способом определения релиза установленного комплекта 1С:Предприятия является вызов режима "О программе" в меню "Помощь". Номер релиза выводится в верхнем правом углу.

Программные файлы (.EXE, .DLL), входящие в состав каждого очередного релиза отличаются от аналогичных файлов предыдущих релизов. Номер релиза для системы 1С:Предприятие 7.7 обозначается как 7.NNN, где NNN - трехзначное число. Для того, чтобы можно было отличить программные файлы, входящие в состав различных релизов, в каждый из файлов заносится метка версии, соответствующая номеру релиза.

Для того, чтобы установить номер релиза системы 1C:Предприятие 7.7 следует взглянуть на метку версии одного из перечисленных ниже файлов:

  • ACCOUNT.DLL
  • BASIC.DLL
  • BKEND.DLL
  • BLANG.DLL
  • CONFIG.DLL
  • EDITR.DLL
  • MONITOR.DLL
  • MOXEL.DLL
  • MXL2XL.DLL
  • RGPROC.DLL
  • SALARY.DLL
  • SEVEN.DLL
  • TRACER.DLL
  • TRADE.DLL
  • TXTEDT.DLL
  • USERDEF.DLL
  • V7CHART.DLL
  • 1CV7.EXE
  • 1CV7L.EXE
  • 1CV7S.EXE

Для просмотра версии программного файла следует запустить Проводник (Windows Explorer), выделить интересующий файл, нажать на нем правую кнопку мышки и в появившемся меню выбрать пункт Свойства (Properties) и переключиться на закладку Версия (Version).

Программные файлы, входящие в состав одного релиза системы 1С:Предприятие полностью соответствуют друг другу. В одной установке системы (в одном каталоге) не допускается смешивание программных файлов из разных релизов системы. Если установка какого-либо из программных продуктов системы 1С:Предприятие производится в каталог, в который уже был установлен один из предыдущих релизов системы, все программные файлы будут обновлены до состояния соответствующего релизу устанавливаемого продукта. Обновлены будут все программные файлы, независимо от состава ранее установленных компонент и самого устанавливаемого продукта. Например, если в каком либо каталоге уже были установлены компоненты "Оперативный учет" и "Расчет", и поверх производится установка более нового релиза компоненты "Оперативный учет", то в результате каталог будет содержать обновленные версии программных файлов относящихся как к компоненте "Оперативный учет" так и к компоненте "Расчет".

При работе с сетевой версией системы 1С:Предприятие или версией для SQL администратору системы следует обеспечить работу всех пользователей с одним и тем же релизом 1С:Предприятия. Наиболее простой путь для достижения этого - установить систему таким образом, чтобы программные файлы находились только на сервере. Это гарантирует работу всех пользователей с одним релизом системы.

Синхронизацию релизов 1С:Предприятия следует выполнять также для различных узлов распределенной информационной базы и для специалистов выполняющих конфигурирование системы параллельно с работой пользователей с последующей загрузкой измененной конфигурации.

Состав информационной базы

Состав информационной базы В данном разделе приводится перечень и описание наиболее важных для системы 1С:Предприятие файлов, размещаемых в каталоге информационной базы. Указанная информация приводится для того, чтобы дать специалистам осуществляющим конфигурирование и администрирование 1С:Предприятия лучшее представление о внутренней организации информационных массивов. Например, она может быть использована для оценки использования ресурсов теми или иными объектами информационной базы или механизмами системы.

Создавать решения построенные на манипулирование данными, хранящимися в файлах информационной базы системы 1С:Предприятия средствами не штатными для 1С:Предприятия категорически не рекомендуется . Это объясняется сложностью поддержания логической целостности объектов информационной базы и возможностью изменения структур данных в последующих версиях. А также особенностями организации таких механизмов 1С:Предприятия, как "Управление распределенными информационными базами", возможностью хранения таблиц базы данных как в файлах DBF/CDX так и в среде сервера баз данных MS SQL Server и другими подобными причинами.

Итак в каталоге информационной базы размещаются:

Файл конфигурации (1 CV7.MD) Файл словаря данных (1С V7.DD или 1 CV7.DDS в зависимости от формата хранения таблиц базы данных)

Файл списка пользователей ( USRDEF\USERS.USR)

Файлы таблиц и индексов базы данных

В файле конфигурации (1 CV7.MD ) находится конфигурация системы: метаданные, интерфейсы и права.

Имя файла словаря данных зависит от формата хранения таблиц базы данных. В случае, если для хранения таблиц базы данных используются файлы DBF/CDX , словарем данных является файл 1 CV7.DD . Если же таблицы базы данных размещаются в среде MS SQL Server , то имя файла словаря данных - 1 CV7.DDS . Словарь данных содержит описание структуры таблиц и индексов базы данных системы 1С:Предприятие. Для MS SQL Server словарь данных содержит также описание хранимых процедур.

Файл списка пользователей - USERS.USR размещается в подкаталоге USRDEF каталога информационной базы. Данный файл содержит список пользователей с указанием для каждого пользователя набора прав, интерфейса и другой информации, связанной с пользователем. В случае, если для хранения таблиц и индексов базы данных используются файлы DBF/CDX , то указанные файлы также размещаются в каталоге информационной базы. Каждой из таблиц соответствует файл . DBF . Если у таблицы имеются индексы, то к ней также относится соответствующий файл CDX . Файлы . DBF и . CDX , относящиеся к одной таблице имеют одинаковые имена. Например, таблице 1 SJOURN соответствуют файлы 1 SJOURN.DBF и 1 SJOURN.CDX.

Ниже приведен перечень таблиц, которые могут входить в базу данных системы 1С:Предприятие.

Файлы | Назначение
1SUSERS | Системная таблица: отслеживание числа соединений с базой данных, счетчик изменений данных пользователями.
1SSYSTEM | Системная таблица: содержит общие параметры информационной базы (точку актуальности, рассчитанный период бухгалтерских итогов, периодичность оперативных итогов и т. п.).
1SCONST | Содержит значения констант, периодических реквизитов справочников и бухгалтерских счетов.
1SJOURN | Содержит заголовки всех документов (внутренний идентификатор, номер, дату, время, общие реквизиты, по которым установлен отбор)
1SCRDOC | Содержит вхождения документов в графы отбора, списки подчиненных документов, вхождения документов в общие журналы, для которых определен состав документов.
1SDNLOCK | Содержит временный список номеров документов, которые в данный момент вводятся, для автоматической нумерации документов с учетом вводимых.
1SUIDCTL | Используется для дополнительного контроля уникальности внутренней идентификации объектов (документов, справочников, бухгалтерских счетов).
1SBLOB | Содержит значения реквизитов справочников, документов, счетов имеющих тип "Строка неограниченной длины". Также содержит описания шаблонов типовых операций.
SC* | Содержит данные справочника конкретного вида. Каждый справочник хранится в отдельном файле.
DH* | Содержит данные реквизитов шапки и общих реквизитов без признака "Отбор" документа конкретного вида. Создается при наличии у документа соответствующих реквизитов.
DT* | Содержит данные реквизитов табличной части документа конкретного вида. Создается при наличии у документа соответствующих реквизитов.
1SACCS | Содержит список бухгалтерских счетов всех планов счетов .
1SOPER | Содержит данные бухгалтерских операций (сумму, содержание, дополнительные реквизиты). Содержит одну строку на документ, по которому создана операция.
1SENTRY | Содержит бухгалтерские проводки.
1SBKTTLC | Содержит рассчитанные бухгалтерские итоги оборотов между синтетическими счетами.
1SBKTTL | Содержит рассчитанные бухгалтерские итоги остатков и оборотов по синтетическим счетам и объектам аналитики.
1SCORENT | Содержит список корректных проводок.
1SACCSEL | Содержит вхождения проводок в отборы по бухгалтерским счетам.
1SSBSEL | Содержит список вхождений проводок в отборы по субконто.
1STOPER | Содержит список типовых операций.
RA* | Содержит движения регистра конкретного вида.
RG* | Содержит итоги регистра конкретного вида (остатки для регистров остатков, обороты для оборотных регистров).
CJ* | Содержит данные журнала расчетов конкретного вида.
CJPROP | Содержит свойства журналов расчетов (расчетный период, глубина просмотра и т.п.)
CL | Содержит данные календарей всех видов.
1SUPDTS | Системная таблица компоненты "Управление распределенными ИБ". Содержит таблицу регистрации изменений. Создается только для распределенных ИБ.
1SDWNLDS | Системная таблица компоненты "Управление распределенными ИБ". Содержит таблицу регистрации произведенных выгрузок изменений. Создается только для распределенных ИБ.
1SDBSET | Системная таблица компоненты "Управление распределенными ИБ". Содержит список информационных баз, входящих в распределенную ИБ. Создается только для распределенных ИБ.

В случае, если таблицы базы данных системы 1С:Предприятие размещаются в среде MS SQL Server , то в каталоге информационной базы появляется файл 1 CV7.DBA , содержащий ссылку на соответствующую базу данных, находящуюся на сервере баз данных. Состав таблиц, хранимых в среде сервера баз данных практически идентичен приведенному выше составу файлов в формате DBF/CDX . Исключение составляет хранение строк неограниченной длины, которое в формате MS SQL Server не выделяется в отдельную таблицу.

Нехватка места на диске при выполнении загрузки/выгрузки данных.

При выполнении операций как полной загрузки и выгрузки данных, так и загрузки/выгрузки изменений при работе с распределенной ИБ, в каталоге информационной базы создаются временные файлы. Иногда размер этих временных файлов может быть весьма значительным (особенно при полной загрузке или выгрузке).

Если при загрузке информационной базы, где таблицы представлены в формате DBF/CDX в общем понятно, что диск, на который производится загрузка информационной базы должен иметь достаточно большой размер свободного места, чтобы разместить конфигурацию и все данные, то в случае загрузки ИБ, где таблицы базы данных размещаются в MS SQL Server или в случае выгрузки данных некоторые ошибки, вызванные нехваткой свободного места на диске могут показаться загадочными. Между тем разгадка проста.

При загрузке данных в каталоге ИБ создается каталог UZNNNNNN (N - некоторая цифра). В данный каталог помещаются файлы извлеченные из файла переноса данных: 1CV7.MD, USERS.USR, 1CVDAT(1CV7.DAT в случае системы 1С:Предприятие 7.5). Файл 1CVDAT (1CV7.DAT) содержит данные, которые впоследствии будут помещены в таблицы базы данных.

При выгрузке данных в каталоге ИБ создается файл 1CVDAT (1CV7.DAT), в который переносятся данные, размещенные в таблицах базы данных.

Размер файла 1CVDAT (1CV7.DAT) пропорционален объему данных, размещаемых в таблицах базы данных и в случае размещения таблиц базы данных в файлах DBF/CDX может быть примерно рассчитан как сумма размеров всех файлов .DBF, в которых хранятся таблицы базы данных, умноженная на 0.7.

Работа с системой 1С:Предприятие в локальных сетях

Данный раздел содержит набор рекомендаций по построению локальной сети, в которой используются сетевые версии системы 1С:Предприятие, работающие с базой данных в формате DBF/CDX.

При использовании сетевых версий системы 1С:Предприятие следует учитывать тот факт, что система держит одновременно открытыми значительное число файлов информационной базы и ведет с ними интенсивную работу, что может в значительной мере загружать ресурсы сети и сервера, на котором размещаются файлы информационной базы. Таким образом характеристики сети могут оказывать ощутимое влияние на производительность системы. Поэтому к выбору файл-сервера и проектированию сети для работы с системой 1С:Предприятие следует отнестись внимательно .

Физическая структура сети

Сетевые версии системы 1С:Предприятие при интенсивной работе создают в сети довольно значительный трафик и этот факт следует учитывать при проектировании физической структуры сети. Использование высокопроизводительных сетей благоприятно сказывается на производительности системы 1С:Предприятие, особенно в тех случаях, когда с системой одновременно работает большое число пользователей.

На настоящий момент наибольшее распространение получили сети Ethernet (пропускная способность 10 МБит/с) и Fast Ethernet (100 МБит/с). Ethernet и Fast Ethernet могут комбинироваться в рамках одной локальной сети для обеспечения лучших характеристик. При выборе структуры и топологии сети следует учитывать, что для компьютеров, на которых будет работать 1С:Предприятие и, что еще важнее, для сервера, на котором размещается информационная база системы 1С:Предприятие должна быть обеспечена наилучшая пропускная способность сети.

Сети с меньшей пропускной способностью использовать не рекомендуется, так как они не могут обеспечить приемлемой производительности системы.

Файл-сервер

Для размещения файлов информационной базы настоятельно рекомендуется использовать выделенный файл-сервер, работающий под управлением специализированной серверной операционной системы. Использование машин, работающих под управлением Windows 95/98 (или других настольных систем) в качестве файл-серверов системы 1С:Предприятие крайне нежелательно, так как эти системы не являются специализированными серверными операционными системами и не могут обеспечить приемлемой производительности даже в том случае, когда используется в режиме выделенного сервера.

Кроме того при использовании компьютеров, работающих под управлением Windows 95/98 в качестве файл-серверов следует учитывать, что данные операционные системы не позволяют держать одновременно открытыми с других рабочих станций более чем 1024 файла. На практике это означает, что число пользователей одновременно работающих с информационной базой, размещенной на компьютере, работающем под управлением Windows 95/98 ограничено. Можно примерно оценить максимальное число одновременно работающих пользователей для данного случая. Для этого надо разделить 1024 на число файлов *. DBF, *.CDX , созданных системой 1С:Предприятие в каталоге информационной базы. А если учесть, что в случае комплексной конфигурации таких файлов насчитывается более 600, то становится понятно, что использование Windows 95/98 в качестве файл-сервера не всегда физически возможно.

В настоящее время наиболее в качестве серверных операционных систем наиболее широко используются Novell NetWare 3. x,4.x и Microsoft Windows NT.

Особенности работы с серверами Novell NetWare

Общепризнанно, что наиболее эффективным файл-сервером в настоящее время является Novell NetWare. Данная система обеспечивает наилучшие характеристики при совместном доступе к файлам со стороны большого числа пользователей и может быть рекомендована как серверная платформа для размещения информационных баз системы 1С:Предприятие. Однако не во всех случаях сервер под управлением NetWare способен сразу, без дополнительных действий по настройке, выполнять функции хранилища файлов информационной базы системы 1С:Предприятие. Главным образом, это связано с тем, что во время работы система 1С:Предприятие одновременно открывает на сервере значительное число файлов. Точное значение этого числа определяется конфигурацией. На практике же оно, как правило, не бывает меньше, чем 150. Если число файлов, одновременно открываемых системой 1С:Предприятие превышает максимально допустимое, то система аварийно завершит работу, выдав сообщение об ошибке открытия файла.

Ограничения на число открываемых файлов могут находиться как на стороне сервера, так и на стороне клиентской машины. На сервере число одновременно открываемых файлов зависит от значений следующих параметров:

  • Maximum File Locks
  • Maximum Record Locks
  • Maximum File Locks рer Connection
  • Maximum Record Locks per Connection

Параметр Maximum File Locks ограничивает максимальное число файлов, одновременно открываемых на файл-сервере. Значение параметра Maximum Record Locks как правило устанавливается как значение Maximum File Locks , умноженное на число, лежащее в диапазоне 2..4. Параметр Maximum File Locks per Connection ограничивает число файлов, одновременно открываемых на файл-сервере одной клиентской рабочей станцией. Аналогично, значение параметра Maximum Record Locks per Connection как правило устанавливается как значение Maximum File Locks per Connection , умноженное на 2..5. Значения указанных параметров могут быть установлены с помощью команды SET , задаваемой с консоли файл-сервера или, в случае использования Novell NetWare 4.1 и более старших версий, с помощью утилиты Server Manager.

Если в качестве рабочих станций при работе с файл-серверами Novell NetWare используются машины, работающие под управлением Windows NT , то никаких проблем, как правило, не возникает и никаких дополнительных настроек клиентских машин не требуется. Максимальное число файлов, которые могут быть одновременно открыты на сервере с одной рабочей станции определяется исключительно настройками файл-сервера. Необходимость в дополнительной настройке клиентской части при работе с файл-серверами Novell NetWare может возникнуть при использовании в качестве рабочих станций машин, работающих под управлением Windows 95/98. В этом случае могут иметь место два варианта. Если для связи с файл-серверами Novell NetWare используется клиентская часть, поставляемая в комплекте Windows 95/98, то никаких дополнительных настроек не требуется и максимально допустимое число открытых файлов определяется только установками сервера.

Если же для связи с файл-серверами Novell NetWare используется 32- bit Novell Client , то следует использовать версии 3.00 и старше, так как в более младших версиях также имеется жесткое ограничение на число одновременно открываемых на сервере файлов, вне зависимости от установок сервера (максимальное число одновременно открытых файлов не может превышать примерно 170-180). В случае использования 32- bit Novell Client 3.00 и более старших версий данное ограничение может быть преодолено. Д ля этого в свойствах Novell NetWare Client в закладке Advanced Settings надо д ля п араметра Use Extended File Handles установить з начение On. Д ля параметра File Cache Level следует уставить значение 1. Е сли указанные значения будут установлены, то для рабочей станции, работающей под управлением Windows 95/98, максимальное число одновременно открытых файлов на сервере Novell NetWare будет определяться только установками сервера. Правда, ограничение на число снимаются только для первого запущенного приложения, пытающегося открыть большое число файлов на сервере Novell NetWare . :Для последующих приложений ограничение продолжает действовать. То есть в той ситуации, когда на рабочей станции, работающей под управлением Windows 95/98 и оснащенной 32-bit Novell Client , запущен экземпляр системы 1С:Предприятие, открывший на сервере Novell NetWare значительное число файлов (например, более 600 в случае комплексной конфигурации), то второй экземпляр 1С:Предприятия, открывающий значительное число файлов на сервере, запустить на этой же рабочей станции уже не удастся.

Особенности работы с серверами Windows NT

Как файл-сервер, MS Windows NT несколько уступает Novell NetWare по производительности и надежности, но имеет и ряд преимуществ. В частности, для работы с системой 1С:Предприятие, сервер, работающий под управлением Windows NT не требует никакой специальной настройки. Ограничением может считаться лишь то, что каждой из клиентских машин позволено открыть на сервере не более 2048 файлов. Но это число достаточно велико и на практике пользователи системы 1С:Предприятие этого ограничения не видят.

Однако, при работе с системой 1С:Предприятие следует с осторожностью относиться к загрузке файл-сервера Windows NT выполнением других задач, так как это может привести к ощутимому снижению производительности сервера. Данная рекомендация весьма актуальна, так как для операционной системы Windows NT имеется развитой набор различных серверных приложений (MS SQL Server, MS Internet Information Server и т. п.) и есть соблазн по максимуму загрузить машину, работающую в качестве файл-сервера системы 1С:Предприятие еще какой-нибудь полезной работой.

На производительности сервера, работающего под управлением Windows NT может пагубно сказаться даже такая кажущаяся мелочью деталь, как Screen Saver . Некоторые из них могут расходовать значительную часть ресурсов системы на рисование на экране различных затейливых изображений. Аналогично, не рекомендуется использовать файл-сервер, с которым работает 1С:Предприятие в качестве рабочего места пользователя, а также для выполнения фоновых задач, кроме тех случаев, когда это действительно необходимо.

Выбор сетевого протокола для связи с MS SQL Server

При работе с системой 1С:Предприятие для SQL следует учитывать, что сетевой протокол, используемый для связи с сервером баз данных MS SQL Server может оказывать заметное влияние на производительность системы 1С:Предприятие. При установке на рабочие станции Microsoft Data Access или клиентской части MS SQL Server, для доступа к MS SQL Server по умолчанию выбирается сетевой протокол Named Pipes. Данный протокол не требует никаких дополнительных настроек и, как показывает практика, стабильно и надежно работает в самых различных конфигурациях сетей. Но у него есть и серьезные недостатки: он может сильно загружать сеть, мешая работе других пользователей и значительно проигрывает по производительности другим протоколам (иногда до 4-5 раз), особенно, если в качестве рабочих станций

используются компьютеры, работающие под управлением операционных систем Windows 95/

Наиболее широко для связи с MS SQL Server используются протоколы NWLink IPX/SPX и TCP/IP. По производительности данные протоколы почти не отличаются друг от друга (TCP/IP несколько быстрее) и выбор в пользу одного из них может быть сделан, исходя из конфигурации сети. Выбор рабочего протокола осуществляется с помощью "SQL Client Configuration Utility" (SQL Server 6.5 ) или

"Client Network Utility"(SQL Server 7.0 ).

Поэтому в случае жалоб на низкую скорость работы системы 1С:Предприятие для SQL необходимо убедиться, что для связи с MS SQL Server используется протокол, обеспечивающий нормальную производительность.

Особенности установки системы 1С:Предприятие.

Задачей процесса установки является сделать возможным запуск системы 1С:Предприятие на компьютере пользователя. В процессе установки 1С:Предприятия производятся следующие действия:

  • на локальном диске компьютера пользователя (или на сетевом диске, доступном с компьютера пользователя) размещаются программные файлы системы 1С:Предприятие
  • в системный каталог Windows компьютера пользователя копируются (или в случае необходимости обновляются уже находящиеся там) системные файлы, необходимые для работы системы 1С:Предприятие
  • производятся необходимые изменения в системном реестре Windows компьютера пользователя
  • на компьютере пользователя в меню операционной системы вносятся пункты для запуска программ системы 1С:Предприятие

В зависимости от комплекта поставки допускается несколько вариантов установки системы 1С:Предприятие:

  • локальная установка
  • административная установка
  • сетевая установка

Локальная установка может быть выполнена для любого комплекта поставки и является единственно возможным вариантом для однопользовательских вариантов 1С:Предприятия При выполнении локальной установки выполняются все перечисленные выше действия.

Административная установка, строго говоря, является не установкой, а подготовкой к установке. Суть ее состоит в том, что на сервере локальной сети создается каталог, в который из дистрибутива 1С:Предприятия переносятся все необходимые файлы для того, чтобы путем запуска из этого каталога программы SETUP.EXE можно было выполнить процедуры локальной или сетевой установки 1С:Предприятия. При этом не производится никаких изменений в меню, системном каталоге и реестре Windows как сервера, так и компьютера, на котором запущена программа установки.

Сетевая установка может быть выполнена только путем запуска программы SETUP.EXE из каталога, созданного в процессе административной установки. Сетевая установка отличается от локальной главным образом тем, что в процессе сетевой установки на компьютер пользователя не копируются программные файлы системы 1С:Предприятие, а пункты меню для запуска программ 1С:Предприятия настраиваются таким образом, что при запуске исполняемые файлы (.EXE, .DLL) берутся из каталога сервера локальной сети, из которого запускалась программа SETUP.EXE для выполнения сетевой установки.

Какой же из вариантов установки является предпочтительным?

(Понятно, что данный вопрос применим только к сетевым вариантам 1С:Предприятия).

Локальная установка является наиболее простым вариантом. В этом случае на каждом компьютере, на котором предполагается использовать 1С:Предприятие выполняется процедура локальной установки. В самом простом случае установка выполняется непосредственно с дистрибутивного комплекта 1С:Предприятия. Но локальная установка может быть выполнена также и из каталога на сервере, в который была предварительно произведена административная установка.

При локальной установке достигается наилучшая скорость запуска 1С:Предприятия (программные файлы загружаются с локального диска компьютера, а не с удаленного диска сервера) и несколько меньше загружается сеть. Но при этом на каждом из компьютеров пользователей расходуется дисковое пространство под одни и те же программные файлы 1С:Предприятия.

Однако, наиболее серьезным недостатком локальной установки являются сложности с администрированием, особенно в тех случаях, когда система 1С:Предприятие используется на многих компьютерах локальной сети. Дело в том, что периодически появляются обновленные выпуски (релизы) системы 1С:Предприятие, которые в случае использования локальной установки приходится устанавливать на каждый компьютер, на котором используется 1С:Предприятие (не рекомендуется использовать при работе с одной и той же информационной базой разные релизы системы 1С:Предприятие).

Поэтому, в случаях, когда в рамках одной локальной сети для работы с системой 1С:Предприятие используется значительное число компьютеров и сеть не слишком перегружена, рекомендуется использовать сетевую установку 1С:Предприятия. Как отмечалось, для того, чтобы на компьютерах пользователей выполнить сетевую установку 1С:Предприятия, надо предварительно выполнить административную установку на диск сервера. И только затем процедура сетевой установки может быть выполнена на компьютерах пользователей. Это несколько усложняет установку в целом, но позволяет воспользоваться некоторыми преимуществами, основным из которых является упрощение процедуры обновления релизов 1С:Предприятия. В данном случае обновление релиза 1С:Предприятия, в большинстве случаев, сводится к административной установке на сервер нового релиза 1С:Предприятия поверх уже установленного. Это само по себе обеспечивает то, что на компьютерах пользователей будут запускаться обновленные варианты программных файлов 1С:Предприятия (как отмечалось, в случае сетевой установки программные файлы запускаются с диска сервера).

Правда процедура сетевой установки подразумевает копирование в системный каталог Windows компьютеров пользователей некоторых входящих в комплект поставки 1С:Предприятия системных файлов, которые также могут время от времени обновляться (правда намного реже, чем программные файлы 1С:Предприятия). Поэтому, для обеспечения полной надежности и во избежание рассогласования версий системных файлов, после обновления релиза 1С:Предприятия на сервере рекомендуется повторить процедуру сетевой установки на компьютерах пользователей.

Настройка списка файлов сохранения данных

При использовании режима сохранения данных система выполняет резервное архивирование файлов информационной базы. Список файлов указывается при вызове пункта меню "Администрирование - Сохранить данные…". В списке можно определять отдельные файлы и маски файлов, которые будут сохраняться. Сам список хранится в файле 1Cv7File.lst. Этот файл обычно располагается в том, каталоге, в котором находятся исполняемые файлы 1С:Предприятия. В этом случае, установленный список фактически действует на все информационные базы, с которыми работают пользователи запускающие 1С:Предприятие из данного каталога.

В некоторых случаях необходимо в определенной информационной базе сохранять не только стандартные файлы, предлагаемые к архивированию по умолчанию, но и другие файлы, относящиеся к данной информационной базе. Например, это могут быть файлы с картинками. В этом случае имеет смысл поместить файл 1Cv7File.lst в каталог информационной базы. Тогда изменения списка файлов будет сохраняться только для данной информационной базы.

Существует также возможность поместить файл 1Cv7File.lst в рабочий каталог пользователя. В этом случае он будет редактироваться и сохраняться только для определенного пользователя конкретной информационной базы.

Фактически при вызове режима "Сохранить данные" программа сначала ищет файл со списком сохраняемых файлов в рабочем каталоге пользователя, затем (если не нашла) в каталоге информационной базы, а затем (если файл отсутствует и в каталоге информационной базы) выполняется поиск в каталоге исполняемых файлов 1С:Предприятия. Таким образом, расположением файла 1Cv7File.lst регулируется область действия настроенного списка сохраняемых файлов.

В случае необходимости сохранения подкаталогов каталога информационной базы следует учитывать, что при восстановлении архивной копии программа создает только те подкаталоги, в которых сохранен хотя бы один файл. Таким образом, если предполагается использовать механизм сохранения для переноса информационной базы на другой компьютер вместе с подкаталогами (например, с рабочими каталогами пользователей), то необходимо настроить список файлов таким образом, чтобы в подкаталогах реально сохранялись какие-либо файлы.

Рекомендации по использованию журнала регистрации

Журнал регистрации активно применяется администраторами, контролирующими текущую работу пользователей. При интенсивной работе пользователей журнал регистрации имеет достаточно большой размер. Любой отбор в журнале регистрации, система выполняет путем последовательного просмотра всех записей и поиска, удовлетворяющих условиям. Для того чтобы ускорить отбор записей или просмотр журнала можно использовать возможность просмотра не только собственно журнала регистрации, но и файлов с расширением "mlg". Например, можно выполнить отбор событий журнала регистрации за интересующий Вас интервал с параметром "Отобрать сразу". После этого можно сохранить полученную выборку на локальном диске в файле с расширением "mlg" (меню "Файл-Сохранить как"). Далее следует открыть этот файл (меню "Файл-Открыть"). Просмотр журнала регистрации сохраненного на локальном диске будет выполняться заметно быстрее, и не будет замедлять работу других пользователей в сети. Кроме того, в полученном файле, который сам может быть результатом отбора по некоторому критерию, можно устанавливать различные критерии отбора, сужая тем самым пространство поиска необходимой информации.

При анализе событий в журнале регистрации следует учитывать, что в журнал автоматически попадают только действия пользователей вызываемые из штатных интерактивных режимов. Действия над объектами, выполняемые конфигурацией средствами встроенного языка вне форм объектов не записываются в журнал регистрации автоматически. Соответствующие записи должны быть предусмотрены в самой конфигурации.

Запуск одним пользователем 2-х экземпляров 1С:Предприятия в одной информационной базе.

Сетевая версия системы 1С:Предприятие и версия 1С:Предприятия для SQL позволяют одновременно нескольким пользователям работать с одной информационной базой. При этом разные пользователи могут выполнять совершенно различные действия: вводить новые документы, получать отчеты и т. п.. А как быть, когда одному и тому же пользователю наряду с выполнением обычных действий (например, вводом новых документов) надо выполнить еще какие-либо действия? Например, запустить на выполнение длительную обработку или отчет? Напрашивается ответ, что пользователь должен запустить еще один экземпляр 1С:Предприятия. Однако, при попытке запуска еще одного экземпляра под тем же именем пользователя, на экран выводится сообщение "Каталог пользователя занят!" и запуск завершается неудачей.

Дело в том, что каждому запущенному экземпляру 1С:Предприятия соответствует так называемый рабочий каталог. И этот каталог может соответствовать только одному запущенному экземпляру 1С:Предприятия. Рабочий каталог для каждого пользователя задается при регистрации пользователя в Конфигураторе. При запуске 1С:Предприятия именно этот каталог и берется по умолчанию в качестве рабочего для данного пользователя. Таким образом, для того, чтобы запустить второй экземпляр 1С:Предприятия с тем же именем пользователя надо сделать так, чтобы эти экземпляры пользовались разными рабочими каталогами.

Рабочий каталог пользователя может быть задан в командной строке запуска 1С:Предприятия с помощью ключа /U<рабочий_каталог>. Причем каталог может быть задан как полным путем, так и относительно каталога информационной базы. Например, командная строка:

1cv7 enterprise /d:\1cv77\db /uusr1

запускает 1С:Предприятие (в режиме 1С:Предприятие). В качестве каталога информационной базы выбирается "d:\1cv77\db", а в качестве рабочего каталога - "d:\1cv77\db\usr1".

Следует заметить, что при обычном запуске задавать рабочий каталог в явном виде нецелесообразно. В большинстве случаев предпочтительно, чтобы для одного и того же пользователя использовался один и тот же рабочий каталог (по умолчанию, это каталог, который задан в Конфигураторе для данного пользователя), так как в данном каталоге размещается файл 1CV7.CFG, содержащий пользовательские настройки 1С:Предприятия (интервалы журналов, содержимое табло и т. п.). А в большинстве случаев для пользователя предпочтительно, чтобы его настройки сохранялись от запуска к запуску 1С:Предприятия.

Особенности работы с 1С:Предприятием в операционных системах Windows NT/2000

При использовании 1С:Предприятия 7.х на компьютерах с операционными системами Windows NT/2000 встречаются определенные проблемы, связанные с конструктивными особенностями указанных операционных систем.

Одна из них проявляется при выполнении автоматического объединения двух конфигураций достаточно большого размера. При этом может появиться сообщение "Ошибка открытия документа". Эта проблема связана с особенностями реализации подсистемы управления составными документами (OLE Compound Storage) которая используется 1С:Предприятием для работы с файлом конфигурации. Реализация данной подсистемы в Windows NT/2000 имеет более низкое, по сравнению с Windows 95/98, ограничение на объем модифицированных в пределах одной сессии данных. Для решения данной проблемы можно рекомендовать производить объединение таких конфигураций по частям или же производить такие операции на компьютерах работающих под управлением Windows 95/

Проявлением другой проблемы является полное или частичное исчезновение программного меню при одновременной работе нескольких экземпляров системы 1С:Предприятие. При дальнейшей работе это может приводить к невозможности открытия новых окон как в программе 1С:Предприятие так и в других программах. Данная проблема проявляется только при работе с конфигурациями, содержащими значительное количество пунктов меню в пользовательском интерфейсе и связана с принципиальными ограничениями систем Windows NT/2000 на количество одновременно задействованных пунктов меню, с учетом иерархических под-меню. При появлении вышеупомянутых проблем следует закрыть неиспользуемые экземпляры 1С:Предприятия.


1С-Предприятие. Документация | FAQ

Вопросы - ответы
  • Как установить 1С:Предприятие с эмулятором HASP на Windows2000 ?
  • Можно ли использовать для работы в 1С одновременно NT 4 TSE (W2k) и MS SQL Server ?
  • Как изменить логотип на сплеш-заставке выводимой при запуске 1С:Предприятия ?
  • Как отключить вывод сплеш-заставки при запуске 1С:Предприятия ?
  • Как снять пароль с конфигурации?
  • Как одолеть 90-дневное ограничение на использование Windows 2000 AS Terminal Service ?

Как установить 1С:Предприятие c эмулятором HASP на Windows2000 ?

Важная особенность для Windows2000 - все надо делать ПОСЛЕДОВАТЕЛЬНО. В списке девайсов, haspemul находиться : My computer->hardware manager->show hidden devices.

  1. Метод от © Mishell Ilchuck:
    1. поставить 1С:Предприятие;
    2. поставить драйвер HASP;
    3. перезагрузиться;
    4. удалить драйвер хаспа;
    5. перезагрузиться;
    6. поставить эмулятор;
    7. поставить вместо auto - boot;
    8. перезагрузиться.

    Если где-то напутать или пропустить или не перезагрузиться, то при попытке установить драйвер или эмулятор, Windows ругается на ошибку записи в реестр.

  2. Метод от © Skies:
    1. поставить 1С:Предприятие.
    2. установить драйвер HASP;
    3. перезагрузиться;
    4. АнИнсталить драйвер HASP;
    5. зайти девайс менеджер (не забыть включить "отображать скрытые устройства"), там удалит вручную HaspNT (это обязательно);
    6. перезагрузиться;
    7. поставить "..старый, добрый, надежный СОБОЛЬ";
    8. сделать полный патч;
    9. из каталога где установлен "соболь", запустить эмуляцию ключа под НТ. (c:\program files\sable\winnt\instnt.bat)
    10. перезагрузиться;

    Тестировано на разных версиях винды 2000 (Сервер, РабСтанция, Рус., Англ., и тд. На 12 и 14 релизах предприятия, включая веб компоненту... ) .

Можно ли использовать для работы в 1С одновременно NT 4 TSE (W2k) и MS SQL Server ?

Да - без проблем, только крайне рекомендуется разнести это все по двум серверам один под терминал и 1с, второй под SQL сервер. В таком варианте "убиваются" все зайцы сразу - терминальный режим дает скорость работы и простоту администрирования, а SQL - надежность и независимость от размера базы данных ... © ФТП Родионова

Как изменить логотип на сплеш-заставке выводимой при запуске 1С:Предприятия?

В директории базы находится файл 1cv7splh.dib, если в него положить логотип, то все отобразится при входе в систему.

Как отключить вывод сплеш-заставки при запуске 1С:Предприятия?

Любым HEX-редактором найти в запускаемом *.EXE файле последовательность и заменить на другую:

Тип | Имя файла: | Найти: | Заменить на:
Сетевая версия | 1cv7.exe | 8B 87 54 85 00 00 | 31 C0 90 90 90 90
Локальная | 1cv7l.exe | 8B 8B 54 85 00 00 | 31 C9 90 90 90 90

Приведенные последовательности встречаются в файлах один раз, но для различных релизов по разным смещениям.

Как снять пароль с конфигурации?

Необходимо пропатчить SEVEN.DLL:

Версия,релиз | Найти: | Заменить на:
7.5 все | 8B 54 24 08 8B 46 64 52 50 FF 15 -- -- -- -- 83 C4 08 F7 D8 1B C0 F7 D8 | -- -- -- -- -- -- -- -- 51 8A 08 88 0A 40 42 84 C9 75 F6 59 5A 33 C0 90
7.7.001-008 | 8B 47 64 8B 74 24 10 8A 10 8A CA 3A 16 75 1C 84 C9 74 14 8A 50 01 8A CA 3A 56 01 75 0E | -- -- -- -- -- -- -- -- -- -- -- 88 -- 74 -- -- -- -- -- -- -- -- -- -- 88 -- -- 74 --
7.7.009 и выше | 8A 1C 0E 3A C3 75 E1 | 88 04 -- -- -- EB 00

После этого на запрос конфигуратора о вводе пароля, нажать Enter. Дальше конфигуратор сделает все сам... © C/Digger

Как одолеть 90-дневное ограничение на использование Windows 2000 AS Terminal Service?

Несколько способов:

  1. Удалить на КЛИЕНТСКОЙ машине в системном реестре ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\Store и "..насладится чувством самоудовлетворения от осуществленного акта надругательства над лицензионной политикой MS." © Михаил Образцов (к сожалению прийдется повторять каждые 90 дней..)
  2. При активации выбрать Web-registration (не Internet registration), далее зайдя на https://activate.microsoft.com, ввести номер установленной Windows и получить код. © Жаба
  3. Перед инсталяцией, сменить системную дату на несколько лет вперед, а после - восстановить. © ???
  4. Применить к СЕРВЕРУ:
    =====8<===W2kTS.Crk from $CRACK$=======
    NT 5.02 B-2195 [TerminalServer] (C) by *HW*
    Remove expiration and limit checks! (RA mode) ICAAPI.DLL
    00004B84: 17 00 ; Connections licensed
    00004CC7: 7C EB ; Connections allowed
    00004DAA: 74 EB ; Expirationless
    =====8<===============================
    "...после этих манипуляций Windows захочет вернуть все как было (есть у него полезная во всех кроме этого случая фичь - защита системных файлов) поэтому dll надо поправить не только в %SystemRoot%\system32\ но и в %SystemRoot%\system32\dllcache - в противном случае файл будет заменен системой на старый, взятый оттуда... Ну и на требование засунуть CD'шник с Windows Setup, его, естественно, тоже нужно послать...:))).." © C/Digger


1С-Предприятие. Документация | Антон Секачёв. Финансовый и управленческий учёт.

Финансовый и управленческий учёт

Антон Секачёв
Ознакомиться с последней редакцией статьи, а также принять участие
в её обсуждении вы можете на сайте автора http://www.sekachev.ru/.

Общие сведения

В нашей версии "1С" реализовано два независимых вида учёта. Первый, финансовый, предназначен для ведения бухгалтерского учёта и формирования отчётности в налоговые органы. Второй вид учёта, управленческий, предназначен только для персонала фирмы и отражает реальное состояние учитываемых объектов (движение и остатки товаров на складе, резервы товаров и т.д.). Финансовый учёт не оказывает никакого влияния на управленческий учёт, но обратное утверждение не справедливо. В финансовом учёте есть ситуации, когда приходится задним числом учитывать некоторые операции, изначально проведённые в управленческом учёте. Рассмотрим этот вопрос более подробно. Во-первых, если какой-либо товар закупается неофициально (операция закупки отражается только в управленческом учёте), а затем продаётся официально (эта операция отражается в обоих видах учёта), то может возникнуть ситуация, когда финансовый остаток товара после проведения последней операции будет отрицательным, что является совершенно недопустимым с точки зрения бухгалтерского учёта. Для исправления этой ситуации периодически возникает необходимость в финансовом учёте задним числом оприходовать недостающие товары. Наша версия программы упрощает эту работу, автоматически проводя анализ недостающих товаров не только по количеству, но и по сумме так, чтобы прибыль от реализации приходуемых товаров была минимальной (ориентировочный процент прибыли задаётся пользователем). Во-вторых, если товар продаётся неофициально (операция продажи отражается только в управленческом учёте), то возникает необходимость его списания и по финансовому (бухгалтерскому) учёту. В отличие от предыдущей ситуации это не обязательно делать задним числом. Помимо рассмотренного выше примера, при введении неофициальных денежных средств в официальный (бухгалтерский) оборот фирмы может возникнуть необходимость в проведении дополнительной реализации по финансовому учёту так, чтобы сумма реализованного товара соответствовала поступающим денежным средствам. И в этом случае "1С" помогает решить проблему, автоматически формируя список товаров, которые есть на остатке по финансовому учёту, также рассчитывая при этом цену реализации так, чтобы прибыль от данной операции была минимальной (процент прибыли задаётся пользователем).

Практическое ведение управленческого учёта

Для правильной организации двойного учёта требуется чётко организованная работа менеджеров и сотрудников бухгалтерии. При практической работе по описанной схеме следует опасаться ситуации, когда финансовый учёт ведётся строго по всем правилам бухгалтерского учёта, а управленческий - нерегулярно, от случая к случаю. Ниже предлагается схема работы персонала, обеспечивающая чёткое ведение управленческого учёта на всех стадиях обработки информации.

Роль и задачи менеджеров

Менеджеры обязаны ежедневно предоставлять информацию офис-менеджеру обо всех проведённых за день неофициальных актах купли-продажи товаров. Время подачи информации должно быть выбрано так, чтобы офис-менеджер успевал её обработать при присутствии в пределах офиса подающего лица. При этом для ускорения обработки данных целесообразно, чтобы они передавалась в строго определённое время по согласованию с офис-менеджером (например, в 17-00).

Подаваемая информация должна включать в себя следующее:

  1. Дата совершения сделки.
  2. Наименование контрагента. На каждое юридическое лицо в базе данных (далее по тексту - БД) создаётся отдельная карточка. Частные лица могут проходить под одним названием (карточкой) - "Частное лицо", или, в случае необходимости, в БД может быть заведена персональная карточка. В последнем случае право выбора предоставляется менеджеру.
  3. Полная товарная спецификация с указанием количества и суммы (цены), согласно которой производилась купля (продажа).

Кроме того, менеджер обязан дать разъяснения в случае, если при проведении продажи по предоставленным им данным БД покажет, что на управленческом учёте нет нужного количества какого-либо товара.

Роль и задачи офис-менеджера

Офис-менеджер обязан ежедневно принимать информацию о неофициальных актах купли-продажи товаров от менеджеров по установленной форме и незамедлительно проводить соответствующие приходные и расходные документы в БД. О выявленных фактах несвоевременной подачи информации офис-менеджер обязан ставить в известность главного бухгалтера до того, как начать оформление документов в БД.

Поступление товаров оформляется по следующей схеме:

  1. В БД создаётся документ "Поступление товаров".
  2. Список "Тип учёта" - "Упр." (документ проходит только по управленческому учёту).
  3. Поле "№" (номер документа) - не изменять, очередной номер документа.
  4. Поле "от" (дата документа) - дата совершения оформляемой сделки.
  5. Поле "Поставщик" - контрагент, у которого был куплен товар. Из БД должна быть выбрана карточка юридического или физического лица. Допускается выбор "обезличенной" карточки "Частное лицо".
  6. Поле "Договор" - не изменять, пустое (значение данного поля в управленческом учёте не используется).
  7. Поле "Склад" - склад, на который приходуются товары (программа изначально предлагает основной склад, который, возможно, изменять не требуется).
  8. Переключатели "Товары поступили..." - не изменять, "на оптовый склад" (значение данного поля в управленческом учёте не используется).
  9. Флажок "Учитывать налог с продаж" - не изменять, флажок очищен (значение данного поля в управленческом учёте не используется).
  10. Флажок "Зачёт выданного аванса" - не изменять, флажок выбран (значение данного поля в управленческом учёте не используется).
  11. Таблица-спецификация заполняется по наименованию, количеству и сумме (цене). Поле "НДС" во всей таблице должно быть обнулено. Эту операцию целесообразно производить в конце ввода каждой строки таблицы. Рекомендуемый порядок заполнения таблицы при этом следующий: поле "Товар", поле "Количество", поле "Цена", поле "НДС" (обнуляется), контроль введённой строки по сумме. Особое внимание должно быть уделено не только правильному внесению товаров, но и тому, чтобы сумма по каждой строке и документу в целом строго соответствовала поданной информации.
  12. Кнопка "OK". При нажатии на эту кнопку документ должен быть сохранён и проведён.

Реализация (расход) товаров оформляется по следующей схеме:

  1. В БД создаётся документ "Отгрузка товаров, продукции".
  2. Список "Тип учёта" - "Упр." (документ проходит только по управленческому учёту).
  3. Поле "№" (номер документа) - очередной номер документа из 6-и знаков. Более подробно см. п. "Как выбрать номер расходной накладной?" в разделе "Типичные приёмы работы".
  4. Поле "от" (дата документа) - дата совершения оформляемой сделки.
  5. Поле "Покупатель" - контрагент, которому был продан товар. Из БД должна быть выбрана карточка юридического или физического лица. Допускается выбор "обезличенной" карточки "Частное лицо".
  6. Поле "Договор" - не изменять, пустое (значение данного поля в управленческом учёте не используется).
  7. Поле "Склад" - склад, с которого были отпущены товары (программа изначально предлагает основной склад который, возможно, изменять не требуется).
  8. Переключатели "Вид отгрузки..." - не изменять, "Продажа (счет 46)" (значение данного поля в управленческом учёте не используется).
  9. Флажок "Учитывать налог с продаж" - не изменять, флажок очищен (значение данного поля в управленческом учёте не используется).
  10. Флажок "Зачёт полученного аванса" - не изменять, флажок выбран (значение данного поля в управленческом учёте не используется).
  11. Таблица-спецификация заполняется по наименованию, количеству и сумме (цене). Поле "Всего" во всей таблице должно соответствовать по значению полю "Сумма". Эту операцию целесообразно производить в конце ввода каждой строки таблицы. Рекомендуемый порядок заполнения таблицы при этом следующий: поле "Товар", поле "Количество", поле "Цена", поле "Всего" (приравнивается к значению поля "Сумма"), контроль введённой строки по сумме. Особое внимание должно быть уделено не только правильному внесению товаров, но и тому, чтобы сумма по каждой строке и документу в целом строго соответствовала поданной информации.
  12. Кнопка "OK". При нажатии на эту кнопку документ должен быть сохранён и проведён.
  13. В случае, если проведение документа заканчивается сообщением об ошибке, свидетельствующей о нехватке товара на складе, порядок действий следующий:
    • Проверить, весь ли приход товара, по которому возникает проблема, внесён в БД по времени ранее, чем проводимый расход. Если нет - находится позже или ещё не внесён в БД - нужно соответственно изменить время созданного расходного документа ("в конец дня") или внести недостающий документ (документы) и повторить операцию. В последнем случае также нужно проследить, чтобы добавленный приходный документ (документы) находился по времени раньше, чем проводимый расход. Более подробно об операциях со временем документов см. п. "Как выбрать время документа?" в разделе "Типичные приёмы работы".
    • Если все действия, описанные выше, не приводят к успешному проведению, нужно обратиться за разъяснениями к менеджеру, который подал информацию. В этом случае можно с большой вероятностью утверждать, что данные были предоставлены не в полном объёме или неверно. После выяснения причин возникшей ситуации в БД вносятся изменения (например, корректируется проводимый документ или вносятся (корректируются) прочие) и документ проводится.

Роль и задачи главного бухгалтера

Главный бухгалтер обязан контролировать правильность ведения управленческого учёта участвующими в нём сотрудниками фирмы. В обязанности главного бухгалтера входит разъяснение персоналу целей и технологии ведения двойного учёта, а также их консультации по возникающим вопросам. Кроме этого, особое внимание должно уделяться фактам несвоевременной подачи информации менеджерами и несвоевременного её отражения в БД. Следует помнить, что неконтролируемое введение управленческих документов задним числом может вызвать известные проблемы в будущем. Поэтому каждый такой случай должен анализироваться отдельно с офис-менеджером, в обязанности которого входит предварительное информирование главного бухгалтера перед началом внесения соответствующих изменений в БД.

Так как периодически возникает необходимость в создании специальных приходных и расходных финансовых документов, нужно выбрать период (неделя, две недели или месяц), по прошествии которого будут производиться анализ и создание документов этого рода. В процессе работы периодичность может меняться, но при этом все периоды должны обрабатываться последовательно и непрерывно.

Для создания документов рекомендуется открыть БД в монопольном режиме доступа, который позволит ускорить работу с данными. Методика работы при этом рассматривается ниже.

А. Выбор периода.

Нужно определить период, за который будет производиться обработка данных. Правила по выбору периода были описаны выше.

Б. Контроль предыдущего периода.

Нужно убедится, что все документы за предыдущие периоды, связанные с движением, товаров корректно проведены (т.е. по обоим видам учёта не возникает отрицательных остатков, средняя себестоимость списания рассчитана правильно). В случае наличия каких-либо сомнений настоятельно рекомендуется перепроведение соответствующих документов. Помимо этого, за все предыдущие периоды должны быть созданы все необходимые специальные финансовые приходные и расходные документы. Следующая информация требуется только для перепроведения. Если перепроведение не требуется, то текст до конца данного параграфа можно пропустить. Перепроведение осуществляется стандартной процедурой "Обработка документов", вызов которой осуществляется из меню "Сервис". Перед перепроведением нужно установить значения двух констант "Разр. отриц. остатки (фин.)" - "Нет" и "Разр. отриц. остатки (упр.)" - "Нет". Если требуемое значение уже установлено, повторно выбирать его нет необходимости. В процедуре "Обработка документов" интервал дат выбирается так (допустим, что мы обрабатываем январь 2000 г.): "дата начала" - дата, до которой нет уверенности в правильности проведения документов (например, это может быть 01.10.1999), "дата конца" - дата, непосредственно предшествующая дате обрабатываемого периода (в нашем примере - 31.12.1999). Виды обрабатываемых документов - только те документы, которые влияют на движение товаров по финансовому и управленческому учёту: "Поступление товаров" и "Отгрузка товаров". Обработка-действие: "Провести". После установки всех вышеуказанных параметров выполняется перепроведение. Для его начала нужно нажать на кнопку "Выполнить". Все возникающие ошибки нужно проанализировать, устранить и принять меры для недопущения их в будущем. На этом этапе работы может потребоваться помощь менеджеров отдела продаж.

В. Контроль обрабатываемого периода.

Перед началом обработки нужно убедиться, что все документы за обрабатываемый период, связанные с движением товаров по обоим видам учёта, внесены в БД. Затем нужно проверить правильность ведения управленческого учёта. Для этого все документы, связанные с движением товаров (напомним, что это "Поступление товаров" и "Отгрузка товаров") за обрабатываемый период должны быть обязательно перепроведены с включенным контролем отрицательных остатков по управленческом учёту. Выполняется это следующим образом. Вызывается процедура "Обработка документов" из меню "Сервис". Перед перепроведением нужно установить значения двух констант "Разр. отриц. остатки (фин.) " - "Да" и "Разр. отриц. остатки (упр.)" - "Нет". В вызванной процедуре интервал дат нужно установить в соответствии с обрабатываемым периодом. Допустим, что мы обрабатываем январь 2000 г., тогда "дата начала" будет 01.01.2000, а "дата конца" - 31.01.2000. Виды обрабатываемых документов - только те документы, которые влияют на движение товаров по финансовому и управленческому учёту (см. выше). Обработка-действие: "Провести". После установки всех вышеуказанных параметров выполняется перепроведение. Для его начала нужно нажать на кнопку "Выполнить". Все возникающие ошибки, нужно проанализировать, устранить и принять меры для недопущения их в будущем. На этом этапе работы может потребоваться помощь менеджеров отдела продаж.

Г. Создание приходной накладной.

За обрабатываемый период предполагается создание одной управленческой приходной накладной, находящейся по времени в начале анализируемого периода. БД может значительно облегчить работу, автоматически заполнив товарную спецификацию. При этом туда будет включён минимум товаров, необходимых для правильного (здесь - без отрицательных остатков) проведения документов по финансовому (бухгалтерскому) учёту за период. Цены спецификации будут рассчитаны, исходя из средних цен расхода за период по заданному проценту прибыли. Следует предостеречь, что реальная прибыль может отличаться от заданного процента при расчёте потому, что на её формирование будут отказывать определённое влияние начальные остатки, а также приходные документы за период. Несмотря на это, расчёт по принципу "от продажной цены", в отличие от других возможных методов, даёт правдоподобные цены и, наряду с этим, позволяет в известной степени управлять прибылью.

Работа над созданием документа строится по следующему плану:

  1. В БД создаётся документ "Поступление товаров".
  2. Список "Тип учёта" - "Фин." (документ проходит только по финансовому учёту).
  3. Поле "№" (номер документа) - корректный номер документа, соответствующий дате (см. ниже).
  4. Поле "от" (дата документа) - дата, находящаяся в начале обрабатываемого периода; во избежание ошибок желательно, чтобы она была не старше даты первого документа вида "Отгрузка товаров".
  5. Поле "Поставщик" - контрагент, на которого оформляется покупка товаров.
  6. Поле "Договор" - договор-счёт, на основании которого оформляется закупка.
  7. Поле "Склад" - склад, на который приходуются товары (программа изначально предлагает основной склад который, возможно, изменять не требуется).
  8. Переключатели "Товары поступили..." - тип склада (оптовый или розничный), на который приходуются товары (изначально предлагается значение "на оптовый склад").
  9. Флажок "Учитывать налог с продаж" - нужно установить, если закупка товаров оформляется за наличный расчёт (изначально флажок очищен).
  10. Флажок "Зачёт выданного аванса" - изменять не рекомендуется (изначально флажок выбран).
  11. Таблица-спецификация заполняется автоматически. Для начала заполнения следует нажать на кнопку "Заполн. недост.". После чего будет задано три вопроса: "Дата начала контроля" (изначально - дата, следующая за датой документа) - здесь нужно указать дату начала контроля, которая должна находится в обрабатываемом периоде и не быть младше даты самого документа (т.е. вполне допускается дата, равная дате самого документа), "Дата конца контроля" (изначально - дата конца квартала, в котором находится создаваемый документ) - здесь следует указать дату конца обрабатываемого периода, "Процент наценки для расчета цен" (изначально ноль - работа без прибыли, "в ноль") - процент наценки, который будет использован при расчёте цен. После того, как таблица будет заполнена, категорически не рекомендуется: удалять строки, уменьшать количество, изменять (особенно - повышать) цены (последние два утверждения справедливы только для строк, автоматически рассчитанных программой). Все остальные действия разрешены. При модификации таблицы желательно осознавать, какие последствия окажет сделанное изменение на движение и остатки товаров, прибыль.
  12. Кнопка "OK". При нажатии на эту кнопку документ должен быть сохранён и проведён. Если расходные документы уже есть за дату сохраняемого документа, рекомендуется переместить созданный документ в начало дня (т.е. сделать его первым за дату, о чём более подробно см. п. "Как выбрать время документа?" в разделе "Типичные приёмы работы").

Д. Проведение документов за обрабатываемый период.

Документы за обрабатываемый период должны быть проведены. Как минимум, это касается двух видов документов "Поступление товаров" и "Отгрузка товаров", которых будет достаточно для получения финансового результата. Если есть уверенность, что сформированная приходная накладная даст удовлетворительный финансовый результат, настоятельно рекомендуется перепроводить все документы. Операция перепроведения аналогична описанной выше в п. "В", за исключением того, что дополнительно осуществляется контроль по недопущению отрицательных остатков товаров и по финансовому учёту, для чего устанавливается значение соответствующей константы (см. ниже). Перепроведение осуществляется стандартной процедурой "Обработка документов", вызов которой осуществляется из меню "Сервис". Перед перепроведением нужно установить значения двух констант "Разр. отриц. остатки (фин.) " - "Нет" и "Разр. отриц. остатки (упр.)" - "Нет". В процедуре "Обработка документов" интервал дат соответствует обрабатываемому периоду. Допустим, что мы обрабатываем январь 2000 г., тогда "дата начала" будет 01.01.2000, а "дата конца" - 31.01.2000. Виды обрабатываемых документов - только те документы, которые влияют на движение товаров по финансовому и управленческому учёту - "Поступление товаров" и "Отгрузка товаров" - или все документы (см. выше). Обработка-действие: "Провести". После установки всех вышеуказанных параметров выполняется перепроведение. Для его начала нужно нажать на кнопку "Выполнить". Все возникающие ошибки, нужно проанализировать, устранить и принять меры для недопущения их в будущем. Можно предположить, что ошибки могут возникнуть только в том случае, если при проведении корректировок товарной спецификации созданной приходной накладной были допущены ошибки.

Е. Создание расходной накладной.

За обрабатываемый период предполагается создание одной расходной накладной, находящейся по времени в конце анализируемого периода. БД может автоматически заполнить товарную спецификацию. При этом туда будут включёны все товары, существующие на финансовом (бухгалтерском) учёте на заданную дату. Цены будут рассчитаны исходя из средней себестоимости товаров по заданному проценту прибыли. В этом случае реальная прибыль будет строго соответствовать заданному проценту.

Работа над созданием документа строится по следующему плану:

  1. В БД создаётся документ "Отгрузка товаров, продукции".
  2. Список "Тип учёта" - "Фин." (документ проходит только по финансовому учёту).
  3. Поле "№" (номер документа) - корректный номер документа из 5-и знаков, соответствующий дате (см. ниже).
  4. Поле "от" (дата документа) - дата совершения оформляемой реализации.
  5. Поле "Покупатель" - контрагент, на которого оформляется продажа товаров.
  6. Поле "Договор" - договор-счёт, на основании которого оформляется реализация.
  7. Поле "Склад" - склад, с которого отпускаются товары (программа изначально предлагает основной склад который, возможно, изменять не требуется).
  8. Переключатели "Вид отгрузки..." - вид отгрузки (изначально предлагается "Продажа (счет 46)").
  9. Флажок "Учитывать налог с продаж" - установить, если товар отпускается за наличный расчёт (изначально флажок очищен).
  10. Флажок "Зачёт полученного аванса" - изменять не рекомендуется (изначально флажок выбран).
  11. Таблица-спецификация заполняется автоматически. Для начала заполнения следует нажать на кнопку "Заполн. имеющ.". После чего будет задано три вопроса: "Дата начала контроля" (изначально - дата, следующая за датой документа) - рекомендуется оставить без изменений (изменение этой даты требуется только при оформлении документа задним числом), "Дата конца контроля" (изначально - дата конца квартала, в котором находится создаваемый документ) - здесь нужно вновь указать дату, следующую за датой документа (изменение требуется только при оформлении документа задним числом), "Процент наценки для расчета цен" (изначально ноль - реализация без прибыли, "в ноль") - процент наценки, который будет использован при расчёте цен. После того, как таблица будет заполнена, категорически не рекомендуется: изменять (особенно - повышать) цены (справедливо только для строк, автоматически рассчитанных программой). Все остальные действия разрешены. При модификации таблицы желательно осознавать, какие последствия окажет сделанное изменение на движение и остатки товаров, прибыль.
  12. Кнопка "OK". При нажатии на эту кнопку документ должен быть сохранён и проведён. Рекомендуется переместить созданный документ в конец дня (т.е. сделать его последним за дату, о чём более подробно см. п. "Как выбрать время документа?" в разделе "Типичные приёмы работы").

Ж. Контроль финансового результата.

Финансовый результат может быть проверен при помощи стандартных бухгалтерских отчётов, а также двух дополнительных отчётов - "Прибыль от реализации" и "Убытки от реализации".

В случае, если полученный финансовый результат признан удовлетворительным, рекомендуется выполнить полное перепроведение документов за обрабатываемый период, как описано в п. "Д" (см. выше).

В случае, если полученный финансовый результат не удовлетворяет запросам, можно внести корректировки в сформированные приходную и расходную накладные. При этом удалять и повторно создавать эти документы не требуется. Открыв любой из этих документов, можно воспользоваться кнопкой автоматического подбора спецификации, изменив процент расчётной прибыли. Можно внести корректировки вручную. Важно помнить, что после внесения изменений в приходную накладную для корректного отражения сделанных изменений на финансовом результате документы за обрабатываемый период должны быть перепроведены, как описано в п. "Д" (см. выше).

З. Создание и печать сопутствующих документов.

В завершение, для юридического оформления документов должны быть распечатаны созданные документы, а также сопутствующие им (счета, счета-фактуры и накладные). Ниже приводится примерный порядок их создания и печати:

  1. Приходная накладная. Форму приходной накладной, если она требуется, можно получить, открыть созданную приходную накладную и нажав на кнопку "Печать".
  2. Счёт на приходную накладную. Это первичный документ поставщика, поэтому в БД не сохраняется. Для печати счёта нужно открыть созданную приходную накладную и нажать на кнопку "# Счёт". После этого нужно выбрать поставщика (из справочника "Контрагенты"), расчётный счёт (из справочника "Расчётные счета"), указать номер счёта и дату. После ответа на эти вопросы программа выдаст печатную форму счёта. Её можно распечатать или сохранить на диске в формате таблицы 1С (MXL) или Excel (XLS) для последующей передачи поставщику.
  3. Счёт-фактура на приходную накладную. Это первичный документ поставщика, поэтому в БД не сохраняется. Для печати счёта-фактуры нужно открыть созданную приходную накладную и нажать на кнопку "# Счёт-фактура". После этого нужно выбрать поставщика (из справочника "Контрагенты"), расчётный счёт (из справочника "Расчётные счета"), указать номер счёта-фактуры и дату. После ответа на эти вопросы программа выдаст печатную форму счёта-фактуры. Её можно распечатать или сохранить на диске в формате таблицы 1С (MXL) или Excel (XLS) для последующей передачи поставщику.
  4. Расходная накладная на приходную накладную. Это первичный документ поставщика, поэтому в БД не сохраняется. Для печати этого документа нужно открыть созданную приходную накладную и нажать на кнопку "# Накладная". После этого нужно выбрать поставщика (из справочника "Контрагенты"), указать номер накладной и дату. После ответа на эти вопросы программа выдаст печатную форму приходной накладной. Её можно распечатать или сохранить на диске в формате таблицы 1С (MXL) или Excel (XLS) для последующей передачи поставщику.
  5. Расходная накладная. Форму расходной накладной, можно получить, открыть созданную расходную накладную и нажав на кнопку "Печать".
  6. Счёт на расходную накладную. Счёт является "нашим" документом и поэтому он должен быть создан в БД. Создавать счёт нужно в режиме "Ввод на основании". При этом основанием является созданная расходная накладная. Важно проследить, чтобы дата счёта и его номер были корректными. При создании счёта очень важно, чтобы поле "Срок резервирования товара" было равно нулю. В противном случае товар будет зарезервирован, а т.к. резервы товаров необходимы и отражаются только на управленческом учёте, это приведёт к тому, что менеджеры не смогут продать товары, из-за ошибочного сделанного резерва. После успешного проведения счёта, его нужно повторно открыть, нажать на кнопку "Печать" и получить печатную форму документа.
  7. Счёт-фактура на расходную накладную. Счёт-фактура является "нашим" документом и поэтому он должен быть создан в БД. Создавать счёт-фактуру нужно в режиме "Ввод на основании". Основанием является созданная расходная накладная. Важно проследить, чтобы дата счёта-фактуры и его номер были корректными. После успешного проведения счёта-фактуры, его нужно повторно открыть, нажать на кнопку "Печать" и получить печатную форму документа.

Типичные приёмы работы

Здесь описаны приёмы работы, которые не включены в печатную документацию к программе и, в основном, касаются доработок, которые наша фирма произвела самостоятельно.

Как выбрать номер расходной накладной?

В нумерации расходных накладных наша фирма установила правило, согласно которому все официальные документы должны заноситься в БД с номерами из 5-и знаков, а неофициальные - с номерами из 6-и знаков. При открытии документа БД предлагает номер, состоящий из 5-и знаков, но его можно быстро изменить на очередной номер из 6-и знаков, нажав на кнопку автоматического подбора номера "...", находящуюся правее поля "Номер" и выбрав там количество разрядов "6". Кнопка "..." позволяет быстро находить последний номер среди номеров заданного количества разрядов.

Как выбрать время документа?

В БД документы обычно сортируются в хронологическом порядке, который определяет дата и время документа. В подавляющем большинстве случаев мы работаем только с датой документа, и нам совершенно не требуется дополнительно задумываться над временем его сохранения. Однако для многих операций в БД важна не только дата, но и время документа. Для большей части этих документов время, по большому счёту, не критично (например, что проведено раньше: отгрузка товаров или приходный кассовый ордер на её основании), но иногда время может играть серьёзную роль и приводить к ошибкам при проведении (например, может возникнуть ситуация, когда расход товаров проводится "чуть-чуть" раньше прихода). Для устранения ошибок, например, таких, как было описано в последнем случае, мы должны уметь управлять временем документов. Для изменения времени документа нужно, чтобы он был сохранён. Затем нужно найти его, открыв журнал документов "Общий". В принципе, изменить время можно, найдя документ в любом журнале, куда он включён, но это рекомендуется тогда, когда будет приобретён определённый опыт потому, что в прочих журналах колонка со временем документа даже не отображается (как было объяснено ранее, она нужна далеко не всегда). Изменять время можно только у не проведённых документов (проведённые документы нужно предварительно сделать не проведёнными). Затем нужно щёлкнуть на документе левой кнопкой мышки, вызвав контекстное меню, в котором выбрать пункт "Изменить время документа...". Появится диалог, где будет предложено следующее:

  • В начало дня
    Если документ является в БД единственным за дату, указанную в реквизите "Дата документа", то его время не изменится. Если документы с датой, указанной в реквизите "Дата документа", уже существуют в БД (независимо от журнала, в котором они размещены), то документу будет установлено время, на 10 секунд меньшее времени самого первого документа с такой же датой, независимо от вида документа.
  • В конец дня
    Если документ является в системе единственным за дату, указанную в реквизите "Дата документа", то его время не изменится. Если документы с датой, указанной в реквизите "Дата документа", уже существуют в системе (независимо от журнала, в котором они размещены), то новому документу устанавливается время на 10 секунд большее времени самого последнего документа с такой же датой, независимо от вида документа.
  • Текущее время
    Элемент "Текущее время" будет закрыт от использования (используется только при записи новых документов).
  • Время
    Позволяет указать в формате ЧЧ:ММ:СС конкретное время, которое будет присвоено документу.
  • OK
    Закрывает окно диалога и изменяет время документа.
  • Отмена
    Закрывает окно диалога, не изменяя времени документа.


1С-Предприятие. Документация | Антон Секачёв. Автоматизация небольшого предприятия.

Автоматизация небольшого предприятия

Антон Секачёв
Ознакомиться с последней редакцией статьи, а также принять участие
в её обсуждении вы можете на сайте автора http://www.sekachev.ru/.

СОДЕРЖАНИЕ

Введение
Компьютеры

  • Как это обычно происходит?
  • Таблица "семь раз подумай, один - напиши"
  • Открываем Америку!
  • Только цены
  • Немного теории о сетях
  • Намечаем места для рабочих станций и сервера
  • Экономичный вариант прокладки кабеля
  • Бизнес-вариант прокладки кабеля
  • Где и как покупать?

Программа

  • Нескучный экскурс в историю
  • Мой ответ Чемберлену!
  • Инструкция "Финансовый и управленческий учёт"

Интернет

  • Провайдер
  • Веб-сайт
  • Электронный магазин
  • Инструкция для клиентов электронного магазина
  • Доступ клиентов в базу данных через Интернет
  • Обратная связь: статистика и опросы

Введение

В этой статье сделана попытка изложить собственный взгляд на проблему автоматизации небольшого предприятия для их руководителей. К сожалению, привлекаемые для этой задачи технические специалисты часто имеют свой взгляд на мир, не омрачённый, например, такими понятиями, как экономия финансов. Поэтому зачастую руководителям приходится вникать и в область их компетенции. В большинстве случаев такое проникновение заканчивается неудачно. Обычно это происходит потому, что руководитель не обладает достаточной компьютерной грамотностью и запасом времени (или желания), чтобы во всём спокойно разобраться, а технические специалисты не любят пускать посторонних в свой "огород". И всё бы ничего, да вот только от последствий этого приходится страдать в первую очередь самим руководителям и их подчинённым, которые реально приносят им прибыль: менеджерам, бухгалтерам. Так что давайте попробуем спокойно во всём разобраться.

Несколько слов о себе. На протяжении всей своей трудовой деятельности я занимался организацией работы компьютерного парка предприятий различного масштаба: от маленьких фирм, где установлен всего один компьютер, до заводов, протяженность компьютерный сетей которых измеряется километрами, а число установленных компьютеров превышает 50. Приобретённые мною навыки позволяют говорить, что я:

  • разбираюсь в аппаратной части компьютеров ("железе") от забытых богом 286-ых до многопроцессорных серверов;
  • нахожусь в курсе изменений компьютерного рынка и владею его ценами;
  • знаю наиболее распространённые операционные системы: MS DOS, Windows 95, Windows 98, Windows NT Workstation и Server, Novell NetWare;
  • могу создать, защитить и администрировать сеть любого масштаба;
  • увлекаюсь системным программированием на языках C++ и Assembler;
  • владею сравнительным анализом бухгалтерских программ ("1С", "БЭСТ", "Галактика", "Парус", семейство "Лука" и так далее - всего около полусотни программ);
  • считаю 1С наиболее успешной программой для автоматизации предприятий различного масштаба и работаю с ней, начиная с самых первых версий;
  • разбираюсь в основах бухгалтерского учёта.

Всё это сказано исключительно для того, чтобы чётко обозначить вам круг собственной компетенции.

Накопленный опыт позволяет мне говорить, что в зависимости от масштаба предприятия и специфики его работы решение должно быть подобрано индивидуально. Однако можно дать общие рекомендации, основываясь на делении предприятий на группы по количеству компьютеризированных рабочих мест. Как вы уже поняли из названия статьи, речь в ней идёт об автоматизации именно небольшого предприятия. Под термином "небольшое предприятие" я понимаю организацию, где число компьютеров, объединённых в сеть, находится в районе от 5 до 15. Конечно, последняя граница несколько условна и может немного колебаться как в большую, так и в меньшую стороны. Для предприятий, не попадающих в эту категорию, приведённое ниже решение не является оптимальным и должно быть иным. Читая мою статью, пожалуйста, учтите, что это подробное, но, тем не менее, общее описание. Как вы понимаете, все реальные, жизненные ситуации предусмотреть невозможно. И тут позволю вам дать один совет: всегда руководствуйтесь только здравым смыслом.

В моей статье четыре главы. Одну из них, "Введение", вы сейчас читаете. Во второй главе, "Компьютеры", я расскажу, как покупаются и объединяются в сеть компьютеры. В третьей главе, "Программа", мы рассмотрим аспекты, связанные с автоматизацией ведения бухгалтерского учёта. Заключительная, четвёртая глава целиком посвящена аспектам, связанным с Интернетом: выбор провайдера, разработка веб-сайта, открытие электронного магазина и интернет-статистика.

Компьютеры

Как это обычно происходит?

В один прекрасный день вы вызываете вашего компьютерного специалиста (допустим, его будут звать Пётр) и говорите ему что-то вроде: "Эй, Петя! Нам нужно купить три компьютера и объединить их в сеть!". "Без проблем!", отвечает компьютерщик и едет в компьютерный магазин. Диалог в магазине происходит примерно такой:

  • (Вася) Привет, Петя! Какими судьбами?
  • (Петя) Привет, Вася! Да вот три компьютера надо купить!
  • (Вася) О, это интересно! Покажи-ка заказ! Так, так... Тебе это будет стоить всего 100 тысяч рублей. Выписывать счёт?
  • (Петя) Нет, постой. Тут одна проблема. Знаешь, я ведь тоже хочу подзаработать на этом заказе маленько. Давай увеличим сумму счёта до 120 тысяч, а разницу поделим?
  • (Вася) Ну, нет. Ты же знаешь, что мы этого сделать не можем. Мы же крупная, уважаемая фирма...
  • (Петя) Ну, тогда я, пожалуй, пойду в другое место...
  • (Вася) Постой. Ладно, мы всё устроим.

И Вася, менеджер (или директор) компьютерной фирмы, выписывает счёт на 120 тысяч рублей, и вы оплачиваете его. А уже через несколько дней ваш любимый Петя получает свою долю, 16 тысяч рублей. Знаете, вам очень повезёт, если купленная техника будет выбрана грамотно. Почему? Всё просто! Возможно, Петя захочет максимально сэкономить первую сумму и поэтому выберет что-нибудь подешевле.

Бухгалтерскую, учётную программу традиционно выбирает главный бухгалтер. Он говорит: "Ненавижу 1С!!! Помню, посмотрела её как-то у подружки лет 5 назад, так она мне жутко не понравилась! Хочу только БЭСТ!". Не правда ли, очень "весомые" аргументы для принятия столь ответственного решения? Особенно учитывая то, что с установленной программой будут работать (или мучатся) все остальные члены коллектива: менеджеры, кладовщики?.. И опять ваш компьютерщик отправляется в магазин! Кстати, как вы думаете, может ли в магазине, торгующем бухгалтерскими программами, состоятся диалог, аналогичный описанному выше? Скажу вам по секрету: да, может!

Потом происходит установка компьютеров, программы и начинается работа. Правда, компьютеры работают недостаточно быстро (вы уже догадались, почему?), да программа даётся рядовым сотрудникам с трудом (причину этого мы уже тоже знаем). А вам уже не до этого. Работа худо-бедно идёт...

Таблица "семь раз подумай, один - напиши"

Думаю, что вы, конечно, не захотите повторить описанный выше пример с Петей и Васей. И поэтому мы принимаемся за работу!

Допустим, в вашей организации нужно создать 10 компьютерных рабочих мест. Для начала нужно определить для каждого из них кто, когда и какие функции будет на нём выполнять. Возьмите несколько чистых листов бумаги и начинайте думать. Вот типичный пример:

Компьютер № 1
Кто? Когда? Какие функции?
Главный бухгалтер Полный рабочий день
  1. Excel (электронные таблицы);
  2. Word (текстовый редактор);
  3. 1С:Бухгалтерия (учётная программа);
  4. Outlook (электронная почта);
  5. PGP (криптозащита).

И так, продолжая описывать рабочие станции (компьютеры), вы увидите, что многие из них будут предназначены для выполнения только четырёх функций: электронные таблицы, текстовый редактор, учётная программа и электронная почта (как приведено в примере выше). Да, немного функций, заметьте!

Отдельная статья - PGP. Эта небольшая программа должна стоять на каждом компьютере. И сотрудники не должны бояться её. Наоборот, все должны любить, и умело пользоваться ей. Почему? Ответ прост: PGP - это единственная программа, которая позволяет надёжно защитить конфиденциальную информацию. А я уверен, каждой фирме есть, что скрывать от посторонних глаз.

Кроме того, если вы находитесь в курсе последних новостей, то, конечно, знаете, что Федеральная Служба Безопасности России, в соответствии с разработанным ею же проектом СОРМ-2, хочет установить ко всем российским провайдерам специальные "подслушивающие" устройства. На практике это приведёт к тому, что вся ваша деятельность в Интернет может незаметно контролироваться. В частности, особую опасность представляет то, что могут быть прочитаны все исходящие и входящие почтовые сообщения. А так как программа PGP была изначально разработана именно для надёжной защиты электронных почтовых сообщений, то вот ещё один весомый аргумент в её пользу.

Описание PGP выходит за рамки этой статьи. Знакомство с ней вы можете начать, открыв раздел "Безопасность" на моём сайте http://www.sekachev.ru/. Там вы всегда сможете взять последнюю версию PGP для Windows 95/98/NT, а также почитать несколько хороших статей по проблеме компьютерной безопасности.

Впрочем, давайте вернёмся к нашему списку. Мы идём дальше и вот, наконец, настала очередь рабочего места вашего системного администратора, программиста. Посмотрите пример его описания:

Компьютер № 10
Кто? Когда? Какие функции?
Программист Полный рабочий день
  1. Excel (электронные таблицы);
  2. Word (текстовый редактор);
  3. 1С:Бухгалтерия (учётная программа);
  4. Outlook (электронная почта);
  5. PGP (криптозащита);
  6. Front Page (средство создания веб-страниц).

Вы заметили отличия от остальных компьютеров? А оно всего одно: добавился "Front Page", программа, с помощью которой программист разрабатывает веб-сайт фирмы. На практике, конечно, программист может потребовать учесть другие, совершенно незнакомые вам программы. В этом случае подробно обсудите с ним практическую необходимость каждой из них.

В итоге работы вы получите небольшую таблицу. Безусловно, её нужно согласовать с каждым сотрудником. Ведь работать-то придётся именно им, и поэтому они не должны быть ограничены в естественных потребностях!

Очень важно! Используемые программы (в третьей колонке таблицы) не должны выбираться бездумно. Я говорю это, в частности, к тому, что учётную программу нужно выбрать уже сейчас. Моя рекомендация - "1С:Бухгалтерия", но об этом более подробно я расскажу вам в третьей главе.

Составив таблицу, вы сделали большое дело, но пока не учли ещё кое-что. Все компьютеры должен объединить главный компьютер, именуемый сервером. Хоть это и мощный компьютер, но его описание тоже нужно включить в список. Итак, вот пример:

Компьютер № 11
Кто? Когда? Какие функции?
Никто (на сервере обычно никто не работает) Круглосуточно
  1. AtGuard (защита от атак хакеров);
  2. IIS (веб-сервер);
  3. Proxy Server (прокси-сервер);
  4. 1С:Бухгалтерия (учётная программа);
  5. Exchange Server (корпоративная электронная почта).

Здесь я привёл вам типичное описание. Заметьте, всего пять программ! Правда, не так сложно, как вы, вероятно, предполагали?

Конечно, компьютерный специалист, взглянув на эту табличку, скажет, что здесь предполагается установка на сервер программного обеспечения от компании Microsoft. Но вы, вероятно, не специалист. И поэтому, возможно, вам посоветуют установить на сервер какую-нибудь UNIX-подобную систему. Самый широко распространённый вариант сейчас - FreeBSD. Также вам могут предложить Linux. И опять позвольте дать совет. Дело в том, программисты уже давно и яростно спорят, что лучше устанавливать на сервере: программное обеспечение от Microsoft или же UNIX-подобное. Конечно, есть длинные, скучные сравнительные описания, но, скажу по секрету, ваш советчик, склоняющий к UNIX, или их не читал вообще, или, в лучшем случае, только пробегал глазами. А поэтому его совет будет основан больше на эмоциях: "Microsoft на сервере - это же г****! Не будь смешным - поставь фришник! ("фришник" - FreeBSD на жаргоне программистов, автор)". Лично я ничего не имею против UNIX, это бесспорно очень хорошая система, но я считаю, что в нашем конкретном случае Microsoft - полное наименование программы Microsoft Windows Server - будет предпочтительнее.

Теперь давайте обратим внимание на третью колонку таблицы для сервера. Вы, вероятно, не знаете назначение некоторых программ, указанных там, и я дам описание каждой из них.

"AtGuard". Примерно то же, что и PGP на обычных рабочих станциях. Это средство при грамотной настройке на 100% защитит вас от атак хакеров. Об этой программе будет знать только системный администратор. Если интересно, описание AtGuard можно найти в Интернет. На моём сайте http://www.sekachev.ru/ вы можете скачать самую последнюю версию этой программы.

"IIS". Эта программа идёт в составе Microsoft Windows Server и должна быть установлена для того, чтобы открыть на сервере веб-сайт. При этом, конечно, я предполагаю, что ваш сервер будет подключен к Интернету (провайдеру) по выделенной линии.

"Proxy Server". Эта программа нужна для того, чтобы сотрудники вашей фирмы, обращаясь к одной и той же информации в Интернет, получали её быстрее. Допустим, вы пришли на работу 10:00, включили компьютер и запросили текущий курс доллара на популярном сервере финансовой информации http://www.rbc.ru/. Хорошо. Однако через минуту ваш менеджер включает свой компьютер и тоже хочет посмотреть курс доллара на http://www.rbc.ru/. Вот что из этого выйдет. Proxy Server уже сохранил ваш запрос, страничку с курсом, в своей специальной области на жёстком диске сервера. Когда менеджер произведёт повторный запрос, умный Proxy Server пошлёт очень маленький и поэтому быстрый запрос на http://www.rbc.ru/ с целью узнать, изменилась ли там информация по сравнению с той, что хранится у него на диске (т.е. которую минуту назад запросили вы). Если будет получен ответ, что данные остались без изменений, Proxy Server покажет менеджеру сохранённый ранее запрос. Как вы поняли, Proxy Server выступает в роли интеллектуальной прослойки между внутренней сетью фирмы и внешней, то есть Интернет. В результате его работы странички могут открываться быстрее. Кроме того, платить провайдеру, вашему проводнику в мир Интернет, вы будете меньше. Почему? Потому, что обычно провайдеры устанавливают плату за входящую информацию. В нашем же случае повторного чтения информации извне можно попытаться избежать благодаря Proxy Server’у.

"1С:Бухгалтерия". Эта программа нужна на сервере для обращений к базе данных. Здесь вы можете спросить: "Постойте, о каких обращениях идёт речь? Ведь на сервере никто не работает! Зачем там нужна 1С?!". Отвечаю: "1С:Бухгалтерия" должна быть установлена и запущена на сервере круглосуточно для того, чтобы, во-первых, автоматически производить периодическое обновление информации в вашем электронном магазине, и, во-вторых, чтобы дать возможность избранным клиентам получить доступ к базе данных через Интернет. Более подробно об этом будет рассказано в четвёртой главе, целиком посвященной вопросам, связанным с Интернетом.

"Exchange Server". Средство для корпоративной работы с почтой, задачами и многим другим. Exchange Server - это замечательная программа. Если вы не пользовались ей ранее, то, уверяю, она вам очень быстро понравится, и вы вскоре уже не сможете представить, как раньше могли работать без неё. Exchange Server позволит вам отправлять и получать почтовые сообщения, планировать задачи себе, сотрудникам и оперативно контролировать ход их выполнения, вести собственный календарь и планировать встречи. Не вставая с места, вы сможете проводить электронные голосования среди сотрудников. И это ещё далеко не полный перечень всех возможностей программы, но его, уверен, достаточно, чтобы доказать - Exchange Server - вещь просто незаменимая.

Открываем Америку!

Итак, составление таблицы полностью завершено. Возьмите её и внимательно посмотрите на программы, установка которых предполагается на обычные рабочие станции (кроме сервера). Как уже говорилось, их, вероятно, будет всего четыре: электронные таблицы, текстовый редактор, учётная программа и электронная почта. Немного больше программ - на компьютере системного администратора или программиста.

А теперь, с учётом этого, давайте попробуем представить вашу компьютерную сеть. Смелее, помечтайте! Что вы видите? Мощные рабочие станции с процессором Pentium III... Нет, это будет слишком дорого! Средние рабочие станции; обычные компьютеры, которые берут все ваши знакомые. Так, теперь сервер... Мощный сервер, вызывающий зависть у конкурентов?.. Нет, пожалуй... Что-нибудь по проще, подешевле...

Достаточно! Что мы видим? Обычный подход, основанный на подражании уже знакомому и попытке сэкономить финансы. Обратите внимание, что из-за экономии мощность планируемой вычислительной сети, баланс "рабочие станции - сервер" как бы усредняется. В общем виде работа будет строиться так. Ваши пользователи будут запускать различные программы на своих рабочих станциях, и работать с общими данными, хранящимися на сервере. Программы - это знакомые вам Excel, Word, 1С:Бухгалтерия, а данные, соответственно, это таблицы, текстовые документы и базы данных. При этом сервер в основном выполняет функцию обеспечения коллективного доступа к общим данным. Компьютерный специалист выразил бы это одним ёмким термином - файловый сервер.

Есть ещё один принцип организации сети, назовём его условно терминальным. Оптимальное рабочее место сотрудника при таком подходе представляет собой компьютер образца 1996-го года: процессор Intel 486, небольшой объём оперативной памяти - 1 мегабайт. Кроме того, жёсткий диск вообще отсутствует. Сервер наоборот представляет собой воплощение последних достижений компьютерных технологий. Два мощных процессора Intel Pentium-III, 512 мегабайт оперативной памяти, высокоскоростной жёсткий диск. Как это всё работает? Попытаюсь объяснить. Как вы уже поняли, вся мощь вычислительной сети сосредоточена на сервере. Из собственного опыта вы также хорошо знаете, что Windows позволяет запускать несколько программ одновременно. Что из этого? На сервере установлена специальная версия Windows, которая позволяет пользователям сети запускать программы непосредственно на сервере и управлять ими. Для этого каждому пользователю, подключившемуся к серверу, он передаёт по сети экран его работы, а в ответ получает от пользователя сигналы управления: нажатые клавиши на клавиатуре и сигналы перемещения от мышки. То есть рабочая станция в этом случае играет роль терминала - запущенная там программа выполняет две простые функции и поэтому не требует высокой вычислительной мощности. Как вы уже поняли, программа терминала принимает и показывает пользователю экран его действий на сервере и передаёт серверу сигналы управления, исходящие от пользователя. А так как сервер имитирует работу знакомой всем системы Windows 95/98/NT, а терминал показывает изображение в полноэкранном размере, то у пользователя складывается полная иллюзия работы с обычной версией Windows! При этом работающий человек не испытывает никаких ограничений и неудобств. Компьютерный специалист, рассмотрев этот вариант организации сети, скажет, что сервер выполняет здесь функции сервера приложений. Действительно, если, например, бухгалтер и менеджер запустят в этой системе программу (на компьютерном языке - приложение) 1С:Бухгалтерия, то она, как вы понимаете, откроется дважды на одном компьютере - сервере. Бухгалтер и менеджер, общаясь с сервером по сети, не будут мешать друг другу потому, что сервер показывает им и позволяет управлять только теми программами, которые данный пользователь запустил.

Я понимаю, что вам, вероятно, сложно понять второй вариант организации сети. Ничего страшного! Если что-то непонятно, внимательно перечитайте предыдущий абзац текста, обратитесь к компьютерным специалистам. Знаете, я не открыл Америку, настоящие специалисты хорошо знают эту технологию и применяют её там, где это оправдано. В нашем случае второй вариант как раз наиболее предпочтителен. Конечно, он ещё непривычен для вас. И вы даже испытываете внутренний страх перед открывшимися новыми перспективами. Это естественно, это - боязнь неизведанного. Но подумайте так: я же объяснил вам, что пользователи даже не почувствуют разницы, для них и для вас в том числе, ничего нового не будет. То есть не придётся дополнительно обучаться чему-либо, работа не будет парализована, а новые сотрудники будут быстро вливаться в систему. Запомните, внешних различий между первым и вторым вариантом нет. Они глубже и это - уже забота технических специалистов. Но решение должны принять вы.

Только цены

На основании имеющихся у нас данных произведём финансовое сравнение обоих вариантов организации сети. Итак, имеем десять рабочих станций и один сервер для них.

Расчёт стоимости по первому варианту было сделать несложно.

Я взял телефон и позвонил в одну хорошую новосибирскую компьютерную фирму. Вместе с менеджером мы быстро составили спецификацию типичного офисного компьютера и подходящего сервера. Вот наш расчёт стоимости по первому варианту:

Рабочая станция
Комплектующее | Марка | Сумма, р.
Материнская плата | ASUS P2-99 | 2892,90
Процессор | Celeron 466 PPGA | 2787,20
Оперативная память | SDRAM 32 Mb PC-100 | 1177,90
Флоппи-дисковод | 3,5" 1,44 Mb | 315,20
Жёсткий диск | Seagate 10,1 Gb UDMA | 2289,40
Привод для CD-ROM | ASUS CD-S 500 (50 x) | 1375,70
Видеоадаптер | S3 Trio 3D AGP 4Mb | 517,60
Сетевой адаптер | Realtek-8029 PCI TPC | 242,90
Адаптер | Celeron Socket 370 -> Slot 1 | 132,80
Корпус | Mini-Tower ATX | 696,80
Клавиатура | PS/2 | 126,00
Мышь | Mitsumi | 114,40
Планшет для мыши | с рисунком | 10,00
Монитор | Samsung SyncMaster 15" 550S | 4343,00
ИТОГО |  | 17 021,80
В таблице указаны цены ОАО "НЭТА" на 9.09.2000 за безналичный расчёт.

Сервер
Комплектующее | Марка | Сумма, р.
Материнская плата | ASUS P2B-S 440BX | 9685,60
Процессор | Pentium-III 500 / 512 Kb Slot 1 | 3948,50
Оперативная память | SDRAM 256 Mb PC-100 | 9290,50
Флоппи-дисковод | 3,5" 1,44 Mb | 315,20
Жёсткий диск | IBM 18,2 Gb UW-SCSI | 11281,30
Привод для CD-ROM | ASUS CD-S 500 (50 x) | 1375,70
Видеоадаптер | S3 Trio 3D AGP 4Mb | 517,60
Сетевой адаптер | 3COM 905 XL PCI-TX-NM | 1375,70
Корпус | Mini-Tower ATX | 696,80
Клавиатура | PS/2 | 126,00
Мышь | Mitsumi | 114,40
Планшет для мыши | с рисунком | 10,00
Монитор | LG 14" 450N | 3749,80
Источник питания | Smart-UPS 700 INET | 7985,30
ИТОГО |  | 50 472,40
В таблице указаны цены ОАО "НЭТА" на 9.09.2000 за безналичный расчёт.

При расчёте стоимости по второму варианту возникла проблема.

Как уже говорилось в предыдущем разделе, для работы терминальному компьютеру вполне достаточно 486-го процессора, 1 мегабайта оперативной памяти. Проблема же заключается в том, что современные компьютерные компании, следуя тенденциям мирового компьютерного рынка, предлагают со склада только новые модели комплектующих. Причём обычным покупателям эта политика далеко не всегда бывает выгодна. Очень наглядное подтверждение этому - ситуация с жёсткими дисками. Например, обратите внимание, что в спецификации рабочей станции, приведённой выше, фигурирует диск, емкостью 10,1 Гбайт. Это был жёсткий диск минимальной ёмкости, который менеджер смог мне предложить. Для того чтобы вы оценили, насколько велик указанный объём, скажу, что по самым оптимистичным расчётам вы вряд ли будете использовать более 20-25% его ёмкости. Поэтому, исходя из сказанного, при покупке терминалов нужно обращаться непосредственно к руководству фирмы с просьбой привезти оборудование под заказ. При этом срок исполнения заказа обычно составляет 1-2 недели.

Так как я выписывал счета не для оплаты, а только для сравнительного анализа, я не стал отвлекать директора компьютерного магазина разговорами насчёт цен и условий поставки, которая бы никогда не произошла. Поэтому мы с менеджером применили в терминальной рабочей станции наименее мощные компоненты из имеющихся на складе фирмы. Многие из них слишком мощны и дороги для терминала. Но вы, конечно, сделав специальный заказ, выберите то, что нужно и поэтому, не исключено, сэкономите небольшую сумму денег.

Сервер для терминалов содержит мощные компоненты. Поэтому, как вы понимаете, его расчёт не вызвал у нас затруднений.

Перед вами - результат нашей работы:

Рабочая станция
Комплектующее | Марка | Сумма, р.
Материнская плата | ACORP 5ALI-61 AGP | 2060,20
Процессор | AMD K6-2 300 | 1280,50
Оперативная память | SDRAM 32 Mb PC-100 | 1122,50
Видеоадаптер | S3 Trio 3D AGP 4Mb | 493,20
Сетевой адаптер | Realtek-8029 PCI TPC | 245,40
BOOT-ROM (для загрузки по сети) |  | 450,00
Корпус | Mini-Tower ATX | 474,20
Клавиатура | PS/2 | 120,20
Мышь | Mitsumi | 109,10
Планшет для мыши | с рисунком | 9,50
Монитор | Samsung SyncMaster 15" 550S | 4388,30
ИТОГО |  | 10 753,10
В таблице указаны цены ОАО "НЭТА" на 9.09.2000 за безналичный расчёт.

Сервер
Комплектующее | Марка | Сумма, р.
Материнская плата | ASUS P2B-DS 440BX | 13656,70
Процессор (x2) | Pentium-III 500 / 512 Kb Slot 1 | 9224,20
Оперативная память | SDRAM 512 Mb PC-100 | 18581,00
Флоппи-дисковод | 3,5" 1,44 Mb | 315,20
Жёсткий диск | IBM 18,2 Gb UW-SCSI | 11281,30
Привод для CD-ROM | ASUS CD-S 500 (50 x) | 1375,70
Видеоадаптер | S3 Trio 3D AGP 4Mb | 517,60
Сетевой адаптер | 3COM 905 XL PCI-TX-NM | 1375,70
Корпус | Big-Tower ATX | 1825,00
Клавиатура | PS/2 | 126,00
Мышь | Mitsumi | 114,40
Планшет для мыши | с рисунком | 10,00
Монитор | LG 14" 450N | 3749,80
Источник питания | Smart-UPS 700 INET | 7985,30
ИТОГО |  | 70 137,90
В таблице указаны цены ОАО "НЭТА" на 9.09.2000 за безналичный расчёт.

Итого ваши расходы в первом случае составят:

17 021,80 р. x 10 + 50 472,40 р. = 220 690,40 р.,

а во втором -

10 753,10 р. x 10 + 70 137,90 р. = 177 668,90 р.

При проведении расчёта стоимость сетевого оборудования не учитывалась потому, что его параметры зависят от многих факторов, о которых будет сказано в следующих разделах. Обращаю ваше внимание, что это исключение из расчёта не оказывает никакого влияния на результат сравнительного анализа потому, что в обоих случаях применяемое коммуникационное оборудование будет одинаково.

Стоимость программного обеспечения также не учитывалась. Но это сделано по другой причине. Думаю, для вас не является секретом, что в России за программное обеспечение платить, к сожалению, пока не принято.

В завершении раздела хочется отметить, что заказывать терминалы в компьютерных фирмах не целесообразно. Дело в том, что большинство компьютерных фирм не специализируются на продаже терминалов. Поэтому он будет представлять собой просто маломощный компьютер. А как уже говорилось, найти в компьютерной фирме подходящие для этого комплектующие очень трудно. Поэтому этот путь чреват лишними финансовыми затратами. Что делать? В России есть фирмы, которые занимаются производством терминалов. Именно к ним вам и следует обращаться при покупке терминалов. Преимуществ здесь очень много: терминал собирается из специально предназначенных для этого комплектующих, изделие более компактное, зачастую отсутствует вентилятор, что исключает шум при его работе и делает эксплуатацию более комфортной. Кроме того, покупая продукцию у производителя, вы выигрываете в цене. Я уверен, что большинство людей никогда не видели терминал, поэтому привожу здесь его фотографию:

Терминал "СТ-490" производства ООО "Сектор Т"

На фотографии вы видите функционирующее терминальное рабочее место. Терминал - это белая квадратная коробочка под монитором. Все остальные части вам хорошо известны - это монитор, клавиатура и мышь.

Немного теории о сетях

Как вы понимаете, создание сети подразумевает, что все компьютеры объединяются между собой. Чтобы объединить компьютеры, вам потребуется приобрести сетевой кабель, специальные вилки, сетевой концентратор, и, возможно, другое оборудование. Давайте рассмотрим этот вопрос подробнее.

Ваша сеть будет строиться на основании применения витой пары по технологии "звезда". Это означает, что проводником сигналов будет выступать восьмижильный кабель, именуемый "витая пара" (дословный перевод английского термина "twisted pair"). Кабель одним концом будет подсоединён к сетевому адаптеру компьютера, а другим - к сетевому концентратору, который будет перенаправлять идущие сигналы. Если эту схему представить графически, то получится что-то напоминающее звезду: в середине - сетевой концентратор, а от него как лучи отходят провода к рабочим станциям и серверу.

Сеть в первую очередь характеризуется скоростью прохождения сигналов. Витая пара предусматривает два основных стандарта: 10 Мбит/сек и 100 Мбит/сек. Замечу, что указанная скорость является максимальной. Реальная скорость прохождения информации в обычных условиях всегда ниже. В связи с тем, что 100-мегабитное оборудование в настоящее время не сильно отличается по цене от 10-мегабитного, а преимущество от применения первого будет ощутимым, вам следует выбрать для построения сети именно его.

Сетевой кабель (витая пара) имеет два очень важных параметра:

  1. Категория. Кабелю, разработанному для работы на предельной скорости 10 Мбит/сек, присваивается 3-я категория. Кабелю, разработанному для работы на предельной скорости 100 Мбит/сек, присваивается 5-я категория
  2. Многожильность. Как уже говорилось, кабель состоит из восьми тонких проводников. В свою очередь эти проводники могут состоят из одной жилы или нескольких. Первый тип кабеля на ощупь относительно жесткий и используется при прокладке так называемых "магистральных" участков, соединяющих сетевой концентратор и розетку, находящуюся у рабочего места. Второй тип кабеля наоборот, хорошо гнётся и предназначен, как вы уже могли предположить, для соединения небольшого участка от розетки до сетевого адаптера компьютера.

На кабель с одного или обоих концов должны быть надеты вилки. Вилки надеваются при помощи нехитрого инструмента - обжимных клещей, чем-то напоминающих пассатижи. Вилка характеризуется следующими параметрами, которые, заметьте, аналогичны параметрам кабеля:

  1. Категория. Вилки, разработанные для работы на предельной скорости 10 Мбит/сек, имеют 3-ю категорию. Вилки, разработанные для работы на предельной скорости 100 Мбит/сек, имеет 5-ю категорию.
  2. Многожильность. Есть вилки для насаживания на одножильный кабель (см. выше), есть - для насаживания на многожильный. Вилка имеет восемь так называемых "ножей", которые при её креплении вонзаются в кабель. Различие состоит в том, что в зависимости от того, сколько жил в проводнике кабеля, форма ножей немного различается в их окончаниях.

Монтировать вилки обычно выгоднее собственными силами. Однако если вы делаете крупный заказ, то вполне можно договориться, что монтаж будет выполнен бесплатно специалистами магазина. Если за это будет потребована плата, то она не должна превышать 10 - 30 рублей за каждую вилку. В Москве, например, я был в небольшой фирме, менеджер которой запросил 100 рублей за каждое выполненное соединение и даже пытался аргументировать эти затраты тем, что человек, выполняющий эту операцию, может ошибиться и тогда ему потребуется другая вилка (вилка стоит около 10 рублей). Я резонно возразил ему, что если работает специалист, он не должен ошибаться. Если вам интересно продолжение этой истории, то в итоге мы расстались каждый при своём мнении.

Сетевой концентратор среди компьютерных специалистов называется просто "концентратор". Вы также сможете услышать слово "хаб" (от английского слова "hub") или "свич" (от английского слова "switch"). Сетевой концентратор имеет следующие параметры:

  1. Количество портов. Это число разъёмов, предназначенных для подключения компьютеров. Это число обычно кратно четырём. Наиболее распространены 4-, 8-, 12- и 16-портовые сетевые концентраторы. Конечно, существуют сетевые концентраторы и с большим числом портов. Сетевые концентраторы можно наращивать. Для этого они объединяются между собой по специальной схеме. Благодаря этому вам не нужно волноваться, что рост числа рабочих станций превысит свободное количество разъёмов установленного концентратора. Если это превышение произойдёт, вы просто приобретёте и установите ещё один концентратор, объединив его со старым. Замечу, что для этого у многих моделей сетевых концентраторов существуют специальные крепёжные элементы, позволяющие крепить один концентратор к другому. Таким образом, со временем постепенно можно строить целые стойки (напоминающие небольшие башни) из этого оборудования.
  2. Скорость. Сетевые концентраторы рассчитаны на работу на скорости 10 или 100 Мбит/сек. Многие 100-мегабитные концентраторы могут работать и на скорости 10 Мбит/сек.
  3. Тип проводника. Сетевые концентраторы могут работать с проводниками сигналов, отличными от витой пары (например, с коаксиальным кабелем). Нас сейчас интересуют только те концентраторы, которые работают только с витой парой. Они обычно содержат в наименовании три английские буквы TPO, что означает "twisted pair only" ("только витая пара").
  4. Функция интеллектуального распределения идущих по сети пакетов. Сетевой концентратор с функцией интеллектуального распределения пакетов ускоряет работу сети. Причём на компьютерном жаргоне обычный концентратор называют "хаб" ("hub"), а интеллектуальный - "свич" ("switch").

К прочему коммутационному оборудованию относятся розетки и коммутационные панели (кросс-панели, патч-панели и т.п.). В зависимости от метода, которым вы будете прокладывать сеть, это оборудование может быть очень разным. Поэтому я не буду приводить здесь описание всех возможных вариантов. Однако одно правило должно соблюдаться неукоснительно. Всё покупаемое оборудование этой группы должно быть обязательно сертифицировано на соответствующую категорию: 3-ю (сеть на 10 Мбит/сек) или 5-ю (сеть на 10/100 Мбит/сек).

При монтаже компьютерной сети обычно идут тремя путями.

Начнём от самого дешёвого. Он состоит в том, что кабель просто бросают около плинтусов, кое-где приколачивая его гвоздиками. Это дёшево, но очень не эстетично.

Второй вариант заключается в том, что покупается минимальное количество крепежа: обычно - так называемые дюбели - гвоздики с пластмассовым захватом. Это экономичный вариант. Выглядеть помещения будет более аккуратно, но всё равно, пучки кабеля будут видны.

Последний, третий вариант основан на применении коробов таких фирм, как, например, "Legrand". Расходы при этом будут намного больше, чем в первом и втором случаях, поэтому я рекомендую делать это только тогда, когда вы создаёте офис европейского уровня. "Legrand" и подобные фирмы обычно предоставляют обширный выбор всевозможного оборудования: короба, соединители, розетки, выключатели и др.

Намечаем места для рабочих станций и сервера

Теперь давайте от теории перейдём к практике. В связи с тем, что я не вижу ваш офис, право выбора способа монтажа сетевого кабеля в помещениях оставляю вам. Поэтому в дальнейших расчётах учитывать эту категорию оборудования я не буду.

Сейчас вам нужно взять план помещения и наметить места, где будут установлены рабочие станции. Обсудите со всеми заинтересованными сотрудниками наиболее удобное, на их взгляд, расположение. Планируйте удобный подход к каждому рабочему месту. Располагайте мониторы так, чтобы сотрудники никогда не располагались вблизи задней стенки монитора соседнего рабочего места. Нарушение этого правила - грубое несоблюдение элементарных санитарно-гигиенических норм. Учтите также влияние освещения, которое меняется в зависимости от времени суток и времени года. Надо постараться рассчитать так, чтобы мониторы не бликовали, и не отсвечивали. Конечно, это далеко не полный перечень условий, создающих предпосылки для комфортной работы персонала.

Отдельно стоит остановиться на выборе места для сервера. Рекомендуется, чтобы это было хорошо охраняемое, защищенное от посторонних место. Учтите, что системному администратору после настройки постоянный доступ к серверу не потребуется. Поэтому размещать его рядом с его рабочим местом, на мой взгляд, является довольно распространённой ошибкой.

После того как места для всех рабочих станций и сервера выбраны, нужно определится, как вы собираетесь прокладывать сеть. Есть два основных типа монтажа, которые описываются в двух следующих разделах. Не забывайте, что есть промежуточные варианты, но они, как правило, встречаются редко в связи с тем, что, либо организация экономит на прокладке сетевого кабеля, либо выделяет необходимые средства и делает всё правильно и эстетично.

Экономичный вариант прокладки кабеля

Экономичный вариант прокладки кабеля, как следует из названия, используется тогда, когда организация экономит средства на прокладку кабеля. Этот вариант характеризуется отсутствием розеток и кросс-панелей.

Место для сетевого концентратора при таком подходе обычно выбирается так, чтобы суммарная длина отходящих от него кабелей была минимальной. При этом из сетевого оборудования требуется только жёсткий одножильный кабель и вилки. Кабель одним концом вставляется в порт сетевого концентратора, а другим - в разъём сетевого адаптера компьютера.

Главная отличительная особенность этого подхода заключается в том, что в офисе с ремонтом по европейским стандартам лежащий на полу или прибитый вдоль плинтусов кабель будет смотреться неопрятно.

Давайте попробуем просчитать стоимость такого варианта. Для этого вы должны тщательно измерить длины 11 проводов. Планом, каким бы точным он не был, тут уже не обойдёшься. Придётся взять рулетку и вымерить всё самостоятельно. Возможно, вам потребуется помощь электрика и строителя в случае, если вы планируете сверлить в стенах отверстия. Дело в том, что при этом можно нарушить электрические коммуникации. Ещё сложность иногда может возникнуть потому, что в некоторых зданиях сверление некоторых стен сопряжено с определёнными трудностями: стена может оказаться не кирпичной, как вы могли предположить, а, например, железобетонной.

В итоге вы должны свести работу к следующей таблице:
№ компьютера | Длина провода, м
1 | 4,50
2 | 9,00
... |
11 | 2,00
ИТОГО | 57,50

Длину проводов лучше измерять с точностью до полуметра. Учтите, что при этом расчёте вы должны рассчитывать длину от сетевого концентратора до задней стенки компьютера, где расположен разъём сетевого адаптера.

Теперь мы располагаем всеми данными, чтобы составить смету расходов на сетевое оборудование. Она должны выглядеть примерно так:
Комплектующее | Марка | Количество | Цена, р. | Сумма, р.
Сетевой кабель жёсткий | UTP4-24R5D Кабель "Витая пара" 8 пров., 5 кат. ("Duratube", Англия) | 58 м (в т.ч. 0,5 м - запас) | 9,32 | 540,56
Вилки для жёстоко кабеля | TP-8P8C-S3 Вилка RJ-45 5 кат. для плоского, однож. кабеля, 3 зубца | 22 шт. 2 шт. x 11 | 8,82 | 194,04
Сетевой концентратор | 3COM модель 16735 (16 портов, 10/100 Мбит/сек, TPO) | 1 шт. | 11273,00 | 11273,00
ИТОГО |  |  |  | 12 007,60
Стоимость всего оборудования, кроме сетевого концентратора, указана по ценам ООО "Сектор Т" на 12.09.2000 за безналичный расчёт. Стоимость сетевого концентратора указана по ценам ОАО "НЭТА" на 12.09.2000 за безналичный расчёт.

Бизнес-вариант прокладки кабеля

Если уровень отделки вашего помещения высок, и вы хотите, чтобы сетевые провода были скрыты от взгляда сотрудников и посетителей, то вы, вероятнее всего, пойдёте по второму варианту, который я условно назвал "бизнес". Этот вариант характеризуется применением коробов таких фирм, как "Legrand" или других. Фирмы, занимающиеся производством этого рода оборудования, обычно имеют обширные каталоги, где по разделам представлен весь спектр продукции. При этом имеется и возможность выбора по цвету.

Около каждого рабочего места устанавливается розетка. От розетки до компьютера идёт гибкий кабель, называемый "патч-корд" ("patch-cord"). Продаются готовые патч-корды, но иногда дешевле их сделать самим, воспользовавшись гибким кабелем и специальными вилками для него. От розеток по коробам жесткий кабель идёт к кросс-панели. К кросс-панели кабель прикрепляется жёстко ("врезается") сзади. Кросс-панель, в свою очередь, крепится к стене. Рядом с кросс панелью расположен сетевой концентратор. На передней стенке кросс-панели есть пронумерованные выходы, разъёмы, число которых, как вы понимаете, соответствует количеству гнёзд сзади. Кросс-панель соединена с сетевым концентратором посредством небольших гибких участков кабеля, патч-кордов.

Как вы понимаете, расход материалов, по сравнению с предыдущим вариантом, возрастает. При замерах на плане помещений должно отмечаться месторасположение розеток. Конечным пунктом прокладки всех кабелей является то место, где будет укреплена кросс-панель. Учтите, что длина патч-кордов обычно составляет 1 - 1,5 м.

Вот пример таблицы, которая должна у вас получиться:
№ компьютера | Длина провода, м
1 | 6,50
2 | 11,50
... |
11 | 4,00
ИТОГО | 81,00

Конечно, данные, приведённые в таблице, условны. Но увеличением итоговой длины кабеля я хочу подвести вас к мысли, что прокладка кабеля в коробах может потребовать зачастую несколько большего его расхода.

Комплектующее | Марка | Количество | Цена, р. | Сумма, р.
Сетевой кабель жёсткий | UTP4-24R5D Кабель "Витая пара" 8 пров., 5 кат. ("Duratube", Англия) | 82 м (в т.ч. 1м - запас) | 9,32 | 764,24
Сетевой кабель мягкий | UTP4-24SR5D-BL Кабель "Витая пара" 8 пров., кат. 5, многожильный - СИНИЙ ("Duratube", Англия) | 34 м 1,5 м x 11 x 2 + 1 м. (запас) | 17,88 | 607,92
Вилки для мягкого кабеля | TPS5-8P8C Вилка RJ-45 5 кат. для многожильного кабеля, со вставкой, экранир. | 44 шт. 11 шт. x 2 x 2 | 29,49 | 1297,56
Кросс-панель | Патч-панель 19",16 портов, тип "krone" | 1 шт. | 2205,00 | 2205,00
Сетевой концентратор | 3COM модель 16735 (16 портов, TPO, 10/100 Мбит/сек) | 1 шт. | 11273,00 | 11273,00
ИТОГО |  |  |  | 16 147,72
Стоимость всего оборудования, кроме сетевого концентратора указана по ценам ООО "Сектор Т" на 12.09.2000 за безналичный расчёт. Стоимость сетевого концентратора указана по ценам ОАО "НЭТА" на 12.09.2000 за безналичный расчёт.

В стоимость не включены коробы, соединители, розетки. Учтите, что в коробы обычно закладываются и кабели электропитания оборудования, поэтому эти расходы нельзя полностью отнести к расходам на прокладку компьютерного кабеля.

Где и как покупать?

Каждая фирма выбирает себе опредёленную специализацию. Поэтому из того большого списка, что у нас получился, покупать всё в одном месте невыгодно.

Заказ на компьютерное оборудование - рабочие станции, сервер и сетевой концентратор можно сделать в любой надёжной компьютерной фирме, любящей своих клиентов и готовой всегда оказать грамотную техническую поддержку. Выбор здесь за вами. Примерная смета расходов дана в предыдущем разделе. Безусловно, она должна быть согласована с вашим техническим специалистом.

Советую вам сделать заказ в нескольких фирмах. На мой взгляд, достаточно трёх-четырёх. Получив счета, вы должны торговаться. Можете устроить тендер. В итоге вы должны получить скидку от 4 до 10 процентов. Если будет сопутствовать удача, то скидка может быть даже больше 10 процентов, но это скорее исключение из правил.

Какие магазины я могу вам порекомендовать?

В Новосибирске, бесспорно, это фирма "НЭТА". Рекомендую вам обратиться в магазин "Домашний компьютер" на улице Советской, директором которого является Дмитрий Шпилёв. Мне нравится этот энергичный молодой человек тем, что с ним всегда можно не только приятно пообщаться, но договориться. Адрес интернет-сайта фирмы "НЭТА" http://www.neta.ru/, телефон/факс магазина (3832) 18-22-18.

В Санкт-Петербурге на протяжении многих лет мне очень нравится работать с фирмой "Свега Плюс". Совет: если вы заглянете туда, сразу же поднимайтесь в сервис-центр, расположенный на втором этаже здания. Дело в том, что сервис-центр может продать вам любой товар из магазина, расположенного на первом этаже и, помимо этого, оказать всестороннюю техническую поддержку. Начальник сервис-центра - Александр Васильевич Синев. С этим представительным господином мы тоже быстро нашли взаимопонимание. Адрес интернет-сайта "Свега Плюс" - http://www.svegaplus.ru/, телефоны магазина на Фонтанке - (812) 259-9109, 259-9107, 251-5211, 251-1892.

В Москве хороших компьютерных фирм относительно много и поэтому найти подходящий вариант не очень сложно. Если не знаете, возьмите и пройдитесь пешком по центру города. Уверен, что за час-другой вы накопите достаточно счётов для работы.

В качестве поставщика коммуникационного оборудования - кабелей, розеток, коробов и прочего - советую обращаться в московскую фирму "Бурый медведь". Адрес их сайта в Интернет - http://www.brownbear.ru/, телефон в Москве (095) 333-10-10 (4 линии).

В Новосибирске фирму "Бурый медведь" представляет дилер, фирма "Сектор Т". Адрес интернет-сайта этой фирмы - http://www.sector-t.ru/, телефоны - (3832) 22-76-20 и 22-81-29. Советую обращаться непосредственно к старшему менеджеру Александру Борисовичу Гренкову.

Производством и продажей терминалов на протяжении многих лет занимается фирма "Сектор Т", о которой говорилось чуть выше. Покупая терминалы, учтите, что мониторы, клавиатуры и мыши, необходимые для их эксплуатации, вы можете заказать в специализированной компьютерной фирме, где, вероятно, это обойдётся вам несколько дешевле.

Хочется предостеречь, что на пути покупки терминалов у производителя вы можете столкнуться с одним тонким моментом. Цена терминала у производителя может сильно превышать цену терминала, подобранного из комплектующих обычной компьютерной фирмы. Я уверен, что вы хотите экономно расходовать свои финансы, поэтому при покупке терминалов лучше поступать следующим образом. Выпишите счета на терминалы в фирмах, которые их производят. Выпишите счета на терминалы в обычных компьютерных фирмах. После получения счетов, выберите наилучшее предложение по "производственному" и "компьютерному" направлениям и устройте тендер между "лидерами". Тот, кто предложит лучшие условия, и должен стать вашим поставщиком.

Программа

Нескучный экскурс в историю

Я начал активно работать с бухгалтерскими программами начиная с 1995 года. В те годы разработчики программного обеспечения только начинали активно осваивать новый для них рынок. Если вы бывали на компьютерных выставках в Новосибирске в те годы, то помните, какой большой выбор программ этого направления был там представлен. Сначала все бухгалтерские программы были примитивны. Явных лидеров выделить было сложно. Версии программ под Windows были редкостью. Но жизнь не стояла на месте, развитие шло достаточно бурно.

Жизнь требовала возможности гибкой настройки под нужды конкретного пользователя. Разработчики пошли двумя концептуально-различными путями. Одни начали просто наращивать количество настроек своих программ. Это наименее трудоёмкий, простой путь, требующий наименьшего количества капитальных вложений. Поэтому по нему пошли разработчики таких программ, как "Галактика", "R-Style", "БЭСТ", "Парус" и многие другие.

Однако есть вторая концепция. Разработчики, следующие ей, увеличили штат сотрудников примерно в два раза, разделившись на две взаимодействующие команды. Первая из них, которая состояла из системных программистов, разрабатывала бухгалтерский конструктор (вернее сказать - предметно-ориентированный язык программирования), а вторая - прикладные программисты, на языке, созданном стараниями первых, писала типовые решения для различных участков учёта. Конечно, для упрощения я несколько идеализировал схему работы, но идея должны быть вам ясна. Как оказалось, это путь развития оказался наиболее перспективным потому, что дал потребителям продукт, который они могли доработать под себя полностью.

Первым этот прогрессивный путь осознала Карагандинская фирма "Плюс/Микро". Шесть талантливых разработчиков, системных программистов из Караганды сумели создать первый полноценный бухгалтерский конструктор. Эта революционная программа получила название "Лука Про". В 1997 разработка этой программа была полностью завершена. Однако на протяжении всей работы фирма "Плюс/Микро" допустила большую стратегическую ошибку - она не вложила достаточных средства в разработку типовых решений. Из-за этого эта идея не была понята широким кругом потребителей. Люди не только сомневались в новой концепции, что естественно, но и не видели готового решения. Не сделав правильных выводов из причин серии неудач, фирма "Плюс/Микро" сократила финансирование проекта. В итоге в 1997 году вместо шести разработчиков остался всего один. Так прекрасное начинание было погублено.

Далее эстафету перехватила очень известная фирма "1C". Фирма уже имела на своём счету очень популярный продукт "1С:Бухгалтерия 6.0 для Windows", который довольно примитивен, но добротно сделан. Из-за этого он снискал всенародную любовь пользователей.

Фирма "1С" начинает очень осторожно экспериментировать в создании бухгалтерских конструкторов. Их первой разработкой стала "1С:Торговля 7.0", выпущенная в 1997 году. Эта программа не предусматривала ведение плана бухгалтерских счетов. Учёт вёлся на примитивных регистрах, представляющих собой n-мерные таблицы, содержащих какие-то учётные данные. Фирма "1С" не захотела повторять ошибки "Плюс/Микро". Она разработала силами сторонней фирмы хорошее типовое решение (типовую конфигурацию) и обеспечила пользователей хорошей поддержкой: документацией, линией горячих консультаций. Так как программа, как уже было сказано, была довольно примитивной, то подготовленное решение было тоже не сильно сложным - ведение склада, учёт примитивных торговых операций. Программа не делала бухгалтерские проводки, но могла формировать специальный файл для их переноса в "1С:Бухгалтерию 6.0.".

Через некоторое время выходит версия "1С:Торговли 7.5". В программу были внесены небольшие изменения, призванные обеспечить целостность данных. В новой версии при удалении записей они помечались на удаление, а физически удалялись только после успешного прохождения специального контроля удалённых записей. Это обеспечивало невозможность удаления какого-то объёкта, если на него ссылается один или несколько других. Например, нельзя удалить документ "Счёт", если на него ссылается выписанная на его основании расходная накладная.

Ещё через некоторое время фирма "1С" на основании "1С:Торговли 7.5" создаёт новый программный продукт. "1С" удаляет регистры, а вместо них вводит бухгалтерские счета и методы работы с ними. Новая программа получила название "1С:Бухгалтерия". Тут же создаётся типовое решение (типовая конфигурация) для ведения бухгалтерского учёта.

А вот здесь попрошу у вас особого внимания за ходом моих рассуждений! Получив две программы - примитивную "1C:Торговлю 7.5" и совершенную "1С:Бухгалтерию 7.5" - фирма "1С" пошла на поводу своих меркантильных интересов. Фирма "1С" могла (замечу - и может) создать комплексное типовое решение для одной программы - "1С:Бухгалтерии 7.5", куда было бы включено предыдущее решение (типовая конфигурация) для "1С:Торговли" - учёт складских и торговых операций, а также функции бухгалтерского учёта, свойственные для "1С:Бухгалтерии". Как вы понимаете, учёт складских и торговых операций на бухгалтерских счетах "1С:Бухгалтерии" вести можно (это счета 41, 42, 46, 60, 61, 62, 64), а вот вести бухгалтерский учёт на регистрах "1С:Торговли" - нельзя. Я это говорю к тому, что "1С:Бухгалтеря" могла стать естественным и удобным преемником "1С:Торговли"! Но этого, увы, не произошло. Фирма "1С" захотела получать больше прибыли, продавая две программы, и обеспечила всем "весёлую" жизнь.

То, что сделала далее фирма "1С" - воистину можно назвать одним словом "мерзость". Она стала продавать две программы по отдельности и вместе. Программы были объединены в один комплекс, названный "1С:Предприятие". То есть программы стали выступать частями системы "1С:Предприятие". Это означает, что установив "1С:Торговлю", вы получаете доступ к регистрам, а установив "1С:Бухгалтерию" - к бухгалтерским счетам. Комплексное решение получило название комплексная конфигурация. Она активно рекламируется "1С" и её дилерами потому, что это им выгодно - продать вам две программы вместо одной. Чтобы такое поведение не вызвало критику со стороны пользователей, фирма "1С" предприняла хитрый ход. Регистры в комплексной конфигурации учитывают, как и было ранее, товары и примитивные торговые операции, но так, что каждый документ можно проводить в двух разрезах учёта. Первый из них, "управленческий", показывает учёт товара для себя, это реальный учёт. Другой учёт, "финансовый", предназначен, как говорится в документации, для налоговых органов, акционеров и пр. Таким образом, на устаревших регистрах был написано то, что везде называют термином чёрный учёт! А так как чёрный учёт у нас в России все любят, то и интерес к регистрам, а значит и "1С:Торговле", снова был искусственно подогрет. Красивый стратегический ход, не правда ли? Параллельно управленческому и финансовому учёту на регистрах "1С:Торговли" комплексная конфигурация отражает торговые операции на стандартном плане счетов "1С:Бухгалтерии". Естественно, что помимо этого комплексная конфигурация позволяет создавать проводки, документы, свойственные только для "1С:Бухгалтерии".

Однако этого фирме "1С" показалось мало. В свет выходит новый, третий компонент - "1С:Зарплата" (для проведения, как говорит сама фирма "1С", сложных расчётов по зарплате). "1С:Зарплата" также может продаваться и работать как отдельно (для неё написано самостоятельное решение), так и в составе комплексной конфигурации, которая после выхода "1С:Зарплаты" уже даже не работает, если не установлены все три компонента.

Здесь, возможно, вам уже хочется задать вопрос: "Что дальше? Сколько ещё программ чрез некоторое время мы должны будем купить для того, чтобы заработала комплексная конфигурация 1С. Сначала было две программы, потом - три, а дальше?..". И ваши опасения будут не лишены оснований...

Мой ответ Чемберлену!

Что сделал я, наблюдая за всем этим? Знаете, я сказал: "Чёрт возьми, если 1С:Бухгалтерия может поглотить 1С:Торговлю и 1С:Зарплату, то пусть так и будет!". Я сел за компьютер и самостоятельно доработал типовое решение для "1С:Бухгалтерии" так, что оно, в дополнение, стало вести и учёт торговых операций, как в "1C:Торговле", и учёт зарплаты, как в "1С:Зарплате". Если вы думаете, что эта доработка стоит очень больших денег, то ошибаетесь. Я, как человек, сделавший это, оцениваю работу максимум в 2500 - 3000 рублей. Другой вопрос, стоит ли вам это делать? Отвечу: да, стоит. Уж поверьте моему опыту, стоимость двух других программ, а также последующие мучения ваших сотрудников, безуспешно пытающихся понять, зачем вы установили такое их разнообразие, обойдётся вам гораздо дороже названных сумм!

Моё решение по доработке "1С:Бухгалтерии" получилось простым, понятным и изящным. В процессе его эксплуатации я не раз убеждался, что людям оно нравится и открывает такие замечательные возможности, какие обычным пользователям, измученным новыми решениями "1С", даже не снились! В качестве убедительного доказательства предлагаю вам ознакомиться с небольшой внутрифирменной инструкцией к моему решению. Как вы увидите, читая её, это решение для одной программы - "1С:Бухгалтерия" - умеет, например, резервировать и снимать с резерва товар, вести двойной учёт. Эти функции как раз и были наследованы от "1С:Торговли".
Инструкция "Финансовый и управленческий учёт".

Интернет

Новый, XXI-й век будет просто немыслим без Интернета. Поэтому, хотите вы того или нет, вам придётся отдать должное этому факту и продвигать свои товары во Всемирной Сети. Работу можно разделить на четыре направления: подключение к Интернету, создание веб-сайта, открытие электронного магазина и обеспечение прямого доступа клиентов в вашу базу данных через Интернет. Все эти этапы можно выполнять последовательно, можно - параллельно. Решение здесь остаётся за вами. Попытаюсь описать каждый этап.

Провайдер

Выбор на рынке этих услуг достаточно большой. Попытаюсь дать некоторые ориентиры:

  1. Очень желательно, чтобы провайдер не был субпровайдером. То есть не занимался перепродажей услуг более крупного провайдера. У маленьких провайдерских компаний слабее технические специалисты, а значит вам, возможно, придётся столкнуться со слабой технической поддержкой. Кроме того, защита сети от атак хакеров может оказаться слабой. Признаюсь по секрету, я отчасти являюсь хакером, разбираюсь в компьютерных вирусах, методах хакерских интернет-атак и ещё многом другом. Поэтому советую очень серьёзно отнестись к этой рекомендации. (Кстати, я уверен, что вы даже не знаете, кто такие настоящие хакеры! Если интересно, посетите мой раздел www.sekachev.ru/comp/hack/ и прочите замечательную статью "Как стать хакером" одного зарубежного автора.)
  2. Качество предлагаемых услуг должно быть высоким и удовлетворять ваши запросы. Это включает в себя скорость, надёжность и стабильность доступа, и ещё некоторые важные аспекты.

Хотелось бы ещё раз подчеркнуть, что здесь я предполагаю подключение вашего сервера к провайдеру по выделенной линии. В противном случае, если подключение будет производиться периодическим дозвоном до провайдера через модем, вы будете сильно ограничены во многих интернет-возможностях. Например, вы не сможете содержать у себя на сервере веб-сайт, электронный магазин. Также вам придётся забыть о системе доступа к базе данных через Интернет. И это только часть неудобств. Об остальных сложностях я рассказывать не буду потому, что их можно попытаться решить, но применяемые при этом технические решения будут не совсем обычными и далеко не все провайдеры пойдут на это ради вас.

Мои практические рекомендации будут таковы.

Новосибирск. Провайдер "Ринет" (веб-сайт web.risp.ru, телефон абонентского отдела (3832) 22-90-97) - пожалуй, лучший провайдер города. На втором месте - "Магистраль Телеком" (веб-сайт http://www.siberia.net/, телефон отдела продаж (3832) 225-678), но они уже на порядок хуже.

Санкт-Петербург. На основании сравнительного анализа питерских провайдеров, который я провёл во время своего последнего пребывания там, больше всего мне понравилась компания "Петерлинк" (веб-сайт http://www.peterlink.ru/, телефоны (812) 113-5722 и 310-0337).

Москва. Сложный вопрос для меня. Ничего конкретного советовать не хочу, боюсь дать ложную информацию. Так что ищите сами по критериям, обозначенным мною выше.

И ещё дам вам один совет. Если есть возможность, всегда пользуйтесь так называемым тестовым входом. Это предполагает то, что провайдер предоставляет вам возможность подсоединиться к Интернет через его технические средства на какой-то ограниченный период, за время которого вы должны оценить качество его услуг. Плата за эту услугу обычно не взимается. Однако если провайдер всё же взял деньги (иногда бывает так, что услуга тестового входа не предусмотрена), но качество услуг показалось вам неудовлетворительным - требуйте полностью вернуть ваши деньги назад. Но учтите, что для этого между вами предварительно должно быть заключено соответствующее соглашение, имеющее юридическую силу.

Веб-сайт

Создание веб-сайта можно сравнить со строительством здания. Здесь можно пойти двумя путями. Можно поручить эту работу профессионалам, можно обойтись собственными силами. Однако вероятность получить что-то стильное, выразительное, непохожее на что-либо созданное ранее и, в конечном итоге, запоминающееся клиентам намного больше в первом случае. Рассмотрим оба пути решения более подробно.

Если вы хотите доверить работу над созданием сайта сторонним разработчикам главное при этом найти талантливую команду веб-дизайнеров и веб-программистов, которая сможет конструктивно работать с вами. Хорошо запомните это правило для выбора веб-создателей! И, пожалуйста, обратите внимание на выделенные слова. Я хочу пояснить вам их значение и важность.

Над созданием сайта должна работать команда, состоящая, как минимум, из двух человек - веб-дизайнера (художника) и веб-программиста. Дело в том, что разработка сайта делится на две части. Во-первых, это разработка фирменного стиля, создание графических образов. Этим занимается веб-дизайнер. И хотя при этом им зачастую применяются специальные графические программы, не имеющие непосредственно ничего общего с веб-страничками (Photoshop, Corel Draw, 3D MAX и т.п.), веб-дизайнер обязан знать, как его графика будет выглядеть в Вебе (Интернете). То есть веб-дизайнер - профессиональный художник со знанием аспектов отображения графики в Интернете. Во-вторых, созданные веб-дизайнером графические образы должны быть объединены с элементами управления сайтом, чтобы получить в итоге то, что будет видеть посетители. Это - работа веб-программиста. Думаю, что у вас не вызовет вопросов моё утверждение, что все участники этого процесса должны быть не только профессионалами. Помимо этого, они должны обладать талантом. Подчёркиваю: оба этих качества должны присутствовать вместе потому, что одно никогда не заменит другого!

Работа с создателями веб-сайта должна происходить в конструктивном русле. Здесь первое слово - ваше. Вы, как заказчик, высказываете все свои идеи о том, что вы хотите видеть. Люди, к которым вы обратились, должны внимательно выслушать вас, задать уточняющее вопросы. После этого можно обсудить стоимость проекта. При этом исполнители, если они настоящие профессионалы, не должны задавать вам вопросов, на которые вы не можете дать ответ! То есть если вы что-то не знаете, это должно быть вам подробно разъяснено. Если перед вами ставится вопрос выбора, то все альтернативные варианты должны быть подробно обрисованы. С другой стороны, исполнители должны обладать известной самостоятельностью в принятии решений, которые не носят стратегический характер.

Надеюсь, что каждое слово в моём правиле для выбора разработчиков веб-сайта было объяснено. Несоблюдение этого правила неизбежно приводит к тому, что полученный продукт, веб-сайт, будет не запоминающимся по форме или (и) содержащим ошибки кодировки (программирования) страничек. В итоге вы рискуете получить неэффективный сайт, который не будет привлекать потенциальных клиентов. А это, как вы понимаете, называется "упущенная выгода".

Какие команды разработчиков веб-сайтов я могу вам порекомендовать?

В Новосибирске стабильно высоким качеством своих работ выделяется "Веб-Артель". Адрес интернет-сайта этой команды - http://www.web-artel.ru/, телефоны - (3832) 52-43-01 и 52-42-96. В Москве и Санкт-Петербурге никого посоветовать не могу. Конечно, мне нравятся многие работы московской команды известного веб-дизайнера Артемия Лебедева (веб-сайт http://www.design.ru/), но думаю, что у небольшого предприятия нет финансовых возможностей, чтобы оплатить их работу, и прославится на всю российскую часть Интернета тем, что внизу первой странички сайта будет скромно написано "Создание сайта - Студия Артемия Лебедева". Впрочем, деление по городам разработчиков веб-сайтов очень условно. Они не знают границ. Что, например, мешает фирме, расположенной, скажем, в Москве, обратится к новосибирским мастерам из "Веб-Артели"?..

От варианта создания веб-сайта средствами сторонних профессиональных разработчиков переходим к самому экономичному. Разработка веб-сайта собственными силами, благодаря стараниям фирмы Microsoft, стала теперь вполне доступна каждому. Однако при этом подходе обычно бывает очень-очень трудно придать страничкам индивидуальность, делающую в итоге ваш сайт стильным и запоминающимся. Но давайте всё же рассмотрим и этот вариант более подробно.

В состав популярного пакета офисных программ "Microsoft Office 2000 Professional Edition" (это тот, где, помимо прочего, есть Excel и Word) входит программа для создания простых страничек и сложных веб-сайтов. Она называется "Front Page 2000". Если вы не знаете эту программу, то освоить её будет не трудно. В продаже имеется соответствующая литература. Как уже говорилось, эта программа предназначена для создания веб-сайтов. Возможно, вам будут говорить: "Front Page - это программа для дураков!" или тому подобное. Не верьте таким утверждениям! Эти слова показывают только некомпетентность советчика. Согласитесь, Microsoft серьёзная фирма, которая денег на ветер не кидает. И то, что она сделала процесс создания веб-сайтов простым и понятным каждому, заслуживает только глубокого уважения, а не нападок со стороны некомпетентных "умников".

Попросите вашего системного администратора научить вас публиковать (делать доступным посетителям вашего сервера) веб-сайт на сервере и делайте его сами. Конечно, я не призываю делать эту работу вас лично. Вы можете назначить ответственного сотрудника за выполнение этой работы. Этим человеком, по вашему усмотрению, может стать системный программист, ваш секретарь или кто-то другой.

Электронный магазин

Электронный магазин предполагает, с одной стороны, наличие на веб-сайте постоянно обновляемого прайс-листа с ценами и желательно, приблизительными остатками товаров, а с другой - средства для формирования заказа и отправки его к вам по каналам сети Интернет.

Электронный магазин - сложная программа. Поэтому вы будете должны найти грамотного разработчика для выполнения этой работы.

Если ваш веб-сайт создаёт профессиональная команда, лучшее решение - поручить эту работу им. Действительно, веб-дизайнер поможет создать в электронном магазине стиль, не отличающийся от остальных разделов сайта, а веб-программист разработает программу магазина. Если веб-программист не может справиться с написанием электронного магазина (например, по причине незнания вашей учётной программы, "1С:Бухгалтерии" и т.п.), есть практический смысл в совместной работе веб-дизайнера, разрабатывавшего вам сайт, с вашим системным программистом, который обязан знать все программы, используемые фирмой.

Если вы пошли по пути разработки сайта собственными силами, то разработку электронного магазина целесообразно поручить вашему системному администратору (или программисту).

Разработчик, к которому вы обратитесь, может выбрать множество средств для написания программы электронного магазина. Это может быть модный в наше время язык программирования Java, это могут быть серверные приложения (скрипты) написанные на Delphi или C++, это может быть JavaScript. Я перечислил наиболее распространённые языки программирования. Зачастую программист выбирает инструментальное средство исходя не из сравнительного анализа и выбора лучшего, а по соображениям личных интересов. Признаюсь, такие люди лично мне глубоко ненавистны. Их подход можно сравнить с тем, если бы врач при проведении операции брал не тот инструмент, который нужен, а тот, который ему просто нравится. Поэтому давайте разберём достоинства и недостатки описанных выше подходов.

Java. Java-программа (она называется также "аплет") выполняется на компьютере пользователя, зашедшего на ваш сайт. Для этого аплет загружается к нему через Интернет в виде довольно больших архивов, распаковывается, устанавливается и запускается. Всё это занимает сравнительно большое время (около 1-2 минут). Мне кажется, что не все клиенты могут выдержать это ради того, например, чтобы узнать цену на какой-нибудь копеечный товар. Поэтому определённая часть клиентов будет потеряна. Ещё дело осложняется тем, что при загрузке Java компьютер как бы "зависает", никаких внешних индикаторов процесса загрузки нет. А далеко не все ещё обладают достаточной компьютерной грамотностью, чтобы определить, из-за чего у них вдруг "завис" компьютер. Эти пользователи могут, сами не ведая того, прервать процесс запуска Java-аплета, перейдя на другие странички вашего или чужого сайта.

Скрипты (серверные приложения). Работают несколько быстрее, чем Java. В противоположность Java, программный код в этом случае выполняется на вашем сервере. Но этот подход не лишён известных недостатков. Скорость работы всё равно относительно медленная. На поиск нужного товара уходит не менее 10-15 секунд. Кроме того, определённая нагрузка ложится на ваш сервер. Не лучше ли оставить его мощность для нужд собственной организации?

JavaScript. При профессиональном подходе электронный магазин на JavaScript получается наиболее простым в разработке и наиболее эффективным в использовании. Но как раз именно из-за простоты его создания, выливающейся в относительно небольшой размер стоимости работ, писать электронные магазины на JavaScript разработчики не любят. У меня, например, на внедрение такого магазина ушло всего 3 дня. Результат моей работы вы можете увидеть вот здесь: www.sector-t.ru/nettrade/default.htm. Принцип работы магазина на JavaScript эффективно совмещает два предыдущих подхода. При работе на компьютер пользователя через Интернет загружается небольшая программа, написанная на JavaScript, которая обеспечивает отображение товарного каталога, формирование заказа и отправку его на сервер. Правильная организация данных при этом позволяет минимизировать нагрузку на компьютер пользователя и ваш сервер.

При разработке электронного магазина не менее важен и вопрос своевременного обновления информации. Я, например, доработал свою конфигурацию (решение) для "1С:Бухгалтерии", так что каждую ночь она автоматически производит обновление данных электронного магазина. При этом программа не только пересчитывает цены по текущему внутрифирменному курсу доллара. По каждому товару она показывает клиентам ориентировочный остаток товара на складе (единицы, десятки, сотни, тысячи и так далее), а также возможность поставки его под заказ (возможно, невозможно, нет данных).

Если клиент отправляет заказ через Интернет из электронного магазина, вы должны постараться оперативно его обработать. В противном случае, если выписка счёта и отправка его заказчику затянется, идея выписывать товары через Интернет в глазах отправившего клиента будет надолго дискредитирована. Расскажу, как я решил этот вопрос. Когда вы отправляете заказ, максимум через 5 минут у менеджера, работающего в "1С:Бухгалтерии", на экране появится уведомление о пришедшем заказе. Конечно, я написал конфигурацию так, что она не только уведомит о пришедшем заказе, но и, по запросу менеджера, превратит его в обычный документ "Счёт" программы "1С:Бухгалтерия". При этом создание счёта происходит максимально просто - программа даже попробует самостоятельно найти клиента по указанному им в электронном заказе ИНН.

Электронный магазин был запущен мною в конце марта 2000 года и больше его обслуживанием я не занимался. Всё прекрасно работает без моего вмешательства. Приходят заказы, выписываются счета. На мой взгляд, программы нужно писать так, чтобы они не были подобны инвалидам, а могли "жить" самостоятельной, полноценной жизнью.

А теперь отвечу на главный вопрос. Для чего нужен электронный магазин? Он нужен вам для обеспечения двух функций. Во-первых, доступ клиентов к самой свежей информации о ваших ценах и ориентировочных (или точных) складских запасах. Во-вторых, вы экономите время своих менеджеров, которым не придётся набирать счета, пришедшие из электронного магазина. Эту работу за них сделает программа, освободит их время на другие задачи, а значит, в конечном итоге, увеличит вашу прибыль.

По своему опыту рекомендую вам давать всем клиентам электронного магазина небольшую скидку (например, 3%). Обязательно нужно доработать учётную компьютерную программу так, чтобы в заголовке спецификации каждого счёта выписанного не через электронный магазин, в чёрной жирной рамке было написано примерно следующее: "Выписав этот счёт через электронный магазин, вы бы сэкономили XX=XX руб.!". Это даст клиентам дополнительный стимул выписывать счёта через Интернет. Возможно, прочитав эту информацию, клиент захочет провести уже выписанный ему "вручную" счёт через электронный магазин, чтобы сэкономить. И этому не надо препятствовать. Вы должны всячески поощрять стремление клиентов работать с электронным магазином. Так, например, если счёт был выписан в электронном магазине, в документе "Счёт" на месте чёрной рамки должна быть изящная, например из двух тонкий линий, с текстом: "Этот счёт был выписан в электронном магазине. Вы сэкономили XX=XX руб.!". Вы можете дарить небольшой поощрительный подарок заказчику, выписавшему первый "электронный" счёт на неделе. Пусть это будет бутылка шампанского. В общем, будьте изобретательны. Конечно, всё это похоже на игру, но результат её увидят немногие - это прибыль, живые деньги у вас в кармане!

В заключение предлагаю вашему вниманию инструкцию для клиентов, написанную мною для своего электронного магазина.
Инструкция для клиентов электронного магазина.

Доступ клиентов в базу данных через Интернет

Это шаг в будущее. Как я убедился на собственном опыте, это очень удобно, но тёмная Россия пока с трудом понимает, зачем это нужно. Поэтому перед началом вложения денег в эту работу чётко представьте, кто будет пользоваться этой услугой. В чём она состоит? Клиент заходит в специальный раздел веб-сайта и может просматривать там все документы, касающиеся его, получать некоторые, предусмотренные системой отчёты. При этом для входа в систему клиент обязательно должен указать условное имя и пароль. Пример вы можете увидеть по адресу www.sector-t.ru/html/balance/balance.htm (учтите, что внутрь этой системы вы ни за что не попадёте, так как у вас нет ни условного имени, ни пароля).

Все, кому я показывал эту работу, восхищались. Представьте, клиент работает в базе данных наряду с вами! Он видит всё, что касается его, без малейших задержек. Ваши поставщики могут оперативно контролировать денежные перечисления, которые вы сделали им, просматривая введённые вами документы "Платёжное поручение" и "Банковская выписка". Ваши покупатели могут контролировать поступление к вам на расчётный счёт собственных платежей, состояние выписанных счетов - "Оплачен", "В ожидании", "Комплектуется", "Готов". Кроме того, клиенты могут получить отчёт, представляющий собой бухгалтерскую сверку за выбранный период. Все формы документов и отчёта я разработал так, чтобы они выглядели в Интернете красиво.

Система получилась довольно сложная. Я просидел над её разработкой около 2-х недель. Нарушение доступа в этой системе может повлечь очень неприятные последствия. Представьте, например, что будет, если ваш покупатель увидит документы ваших поставщиков? Поэтому при разработке системы на первое место я поставил вопрос её безопасности. И как программист, я сделал её хорошо защищенной изнутри. Но, на мой взгляд, чем сложнее программа внутри, тем проще и понятнее должно быть её управление снаружи. Иначе неизбежны опасные ошибки. Поэтому внешнее управление системой выполнено очень просто и осуществляется прямо из "1С:Бухгалтерии" ответственными сотрудниками, состав которых определяется директором. Если ответственный сотрудник открывает в базе данных карточку любого клиента, он видит закладку, невидимую для остальных. На ней находится флажок: открыть или закрыть доступ, имя пользователя и его пароль. Таким образом, внешне схема предельно проста. Клиент, желающий получить доступ, садится с ответственным лицом за компьютер. Ответственное лицо открывает карточку этого клиента, устанавливает три параметра на секретной закладке и всё! Ответственный сотрудник может и оперативно закрыть доступ по первому требованию клиента. Например, клиент может утерять пароль и попросить закрыть доступ до следующей смены пароля.

После разработки системы интернет-доступа, как и в случае с электронным магазином, я оставил её на управление ответственных лиц. С этих пор система живёт самостоятельной жизнью и не нуждается во вмешательстве разработчика.

Для чего это было сделано? Я хотел попытаться оградить менеджеров и бухгалтеров от телефонных переговоров, типа: "А когда вы нам платили?", "Можно ли получать груз?", "Давайте сделаем сверочку!" и т.д. и т.п. У менеджера и бухгалтера освобождается время, а их время - это деньги, заметьте! Так что разработка отнюдь не была сделана мною просто так, ради интереса.

Как я уже говорил, разрабатывать систему доступа клиентов к базе данных через Интернет следует только в том случае, если вы уверены, что эта услуга будет востребована ими. На практике для решения этого вопроса достаточно точно узнать, пользуется ли кто-либо из ваших поставщиков или покупателей Интернетом. И если такие фирмы будут найдены, то они смогут стать пользователями этой прогрессивной системы. Потом вы должны взвесить, стоит ли этот потенциальный контингент средств, вложенных в разработку системы интернет-доступа.

Разработка системы интернет-доступа занимает от 2 до 4 недель в зависимости от сложности поставленной задачи. Особое внимание при этом должно уделяться её безопасности. Клиенты, войдя в систему, должны иметь возможность просматривать все документы, касающиеся их. Вы также можете дать им право формировать бухгалтерскую сверку за произвольный период времени. Но это только базовый набор функций. Возможно, вы захотите его расширить, и это будет прекрасно.

Кого выбрать в качестве исполнителей проекта? Здесь полностью применим совет по выбору разработчиков электронного магазина, данный ранее. Только учтите дополнительно, что разрабатываемая система обрабатывает конфиденциальные данные. Поэтому, если для выполнения этой работы будет привлечён сторонний программист, вы должны позаботится о том, чтобы ему для проведения разработки был предоставлен аналог вашей базы данных, но с условной, вымышленной информацией.

Обратная связь: статистика и опросы

Завершить разговор об интернет-технологиях мне хотелось бы проблемой статистики. Дело в том, что ваш выход в Интернет - это не дань моде. Это - эффективное средство привлечения новых клиентов, повышения прибыли фирмы. Причём жизнь показывает, что в настоящее время эта эффективность неизменно увеличивается со временем. С каждым годом всё больше россиян начинают использовать Всемирную Сеть в бизнесе. Поэтому важно не только создать комплекс интернет-услуг, описанных в этой главе. Это - только первый шаг. Очень важно развивать свою деятельность в Интернет. И для достижения успеха делать это нужно не вслепую, а на основании статистических данных.

Системный администратор или другое лицо, обслуживающее ваш веб-сайт, должно не реже одного раза в месяц предоставлять сводную статистику по всем направлениям деятельности фирмы в Интернет и вносить аргументированные этими данными предложения по улучшению работы или исправлению допущенных недостатков.

Вот неполный перечень вопросов (с примерами ответов), которые статистика обязана помочь вам решить:

  1. Сколько человек посетило сайт за месяц? (451 человек)
  2. Какова география посетителей? (282 человека - Москва, 74 - Новосибирск и т.д.)
  3. Как распределяется посещаемость в среднем по дням недели? (27 человек - четверг, 24 человека - вторник и т.д.)
  4. Какие разделы сайта пользуются наибольшей популярностью? ("Электронный магазин" - 407 посещений, "Наши товары" - 388 посещений и т.д.)
  5. Какие разделы товарного каталога электронного магазина пользуются наибольшей популярностью? ("Колбасы" - 46 обращений, "Молоко" - 42 обращения и т.д.)
  6. Подробные описания каких товаров открывали клиенты в каталоге электронного магазина? ("Колбаса Торговая Площадь" - 18 раз, "Молоко Весёлый Молочник" - 16 раз и т.д.)
  7. Сколько заказов было сделано через Интернет? (11 заказов на общую сумму 46543 руб.)
  8. Детальная характеристика интернет-заказов: кто их делал, что и в каких количествах было заказано? (Описание пришедших заказов)
  9. Какие клиенты, когда и зачем обращались к базе данных через Интернет? ("Фирма Полёт" - 14.09 и 15.09 - проверяла готовность товара по счёту № 437 от 08.09 и т.д. и т.п.)
  10. Какие жалобы и предложения по работе веб-сайта поступили от людей по электронной почте или были переданы устно, в офисе фирмы? (Разбор каждого замечания и выполненных по нему работ, если они проводились)
  11. Какие публикации появились в Интернет о нашей фирме за прошедший месяц? (Обзор публикаций)

Обратите внимание, что для улучшения обратной связи вы можете проводить на своём веб-сайте опросы посетителей на интересующие вас и их темы. Например, вы можете поинтересоваться мнением посетителей о новом товаре, который планируете предложить. Учтите, что длительность проведения опроса обычно составляет не менее месяца. Это, с одной стороны, позволит получить более точные результаты голосования, а с другой - сделает опрос ненавязчивым для посетителей. Частая смена вопросов для голосования приведёт к тому, что клиенты устанут на них отвечать и будут игнорировать их. Поэтому никогда не злоупотребляйте вниманием интернет-сообщества!


1С-Предприятие. Документация | Сетевые "глюки" применительно к программным продуктам фирмы "1С"

Сетевые "глюки" применительно к программным продуктам фирмы "1С"

С самого начала должен сделать следующие оговорки:

  1. Не все описанные ниже "глюки" можно с полным правом назвать "глюками" - очень часто глюком называют ситуацию, когда программа ведет
    себя не так, как хотелось бы пользователю, в то время как с точки зрения разработчика все нормально и корректно. Для простоты далее все такие ситуации будут причислены к "настоящим глюкам".
  2. Не все описанные ниже "глюки" являются следствием ошибок в программах фирмы "1С" - просто на практике они проявляются именно при использовании программ фирмы "1С".
  3. Не все описанные "глюки" имеют непосредственное отношение к сети, однако, как правило, наиболее ярко они проявляются именно при сетевой работе.
  4. Некоторые из описанных "глюков" вообще не имеют отношения к программам фирмы "1С".
  5. Вся информация, изложенная ниже, основана на моем собственном опыте эксплуатации сетевых программных продуктов или на опыте сотрудников нашей компании и ни в какой степени не заимствована из технических рассылок фирмы 1С.

1. Общие положения.

С самого начала следует разделить неполадки, связанные с опознаванием и чтением информации с ключа защиты NetHASP и неполадки, связанные с функционированием собственно программ 1С. Такое разделение абсолютно целесообразно и оправдано т.к. доступ к ключу защиты из программ 1С осуществляется только в момент их запуска. После успешного опознавания ключа и декодирования частей программы ключ становится не нужен. Кто мне не верит, может попробовать запустить программу 1С (здесь и далее я буду просто писать "программа 1С", если не требуется конкретного уточнения, что это за программа) и затем выдернуть ключ. Программа продолжит свою работу и будет работать до тех пор, пока Вы не выйдете из нее (последний раз я проверял это на релизе 8, может быть сейчас что-то изменилось, но это крайне маловероятно). В связи с вышеизложенным я буду разделять все глюки на глюки, связанные с поиском и опознаванием ключа и глюки рабочего режима.

1. Инициализация сервера защиты.

Это пожалуй один из самых "глюконосных" моментов в программах 1С. Начать вероятно следует с самого страшного и необъяснимого.

Если при установке ключа защиты на сервер Windows NT Вы последуете рекомендациям, приведенным в документации по установке, и установите сервер защиты (NetHasp server) в качестве NT-шного сервиса, то может случиться так, что Вы будете сильно удивлены: при перезагрузке NT сервер стабильно переходит в режим "синей смерти", т.е. загрузка не завершается, а на экране монитора на синем фоне возникает какое-то жуткое невразумительное диагностическое сообщение с указанием каких-то адресов. В этой ситуации можно только выразить Вам соболезнование и посоветовать быстренько переустановить NT Server. Нам так и не удалось определить зависимость возникновения такой ситуации от релиза NetHasp server-а - такая штука кажется может происходить с любыми релизами, кроме 13, но прямой связи версии NetHasp Server с релизом нет - в одном и том же релизе, но в разных коробках может попасться NetHasp Server разных версий. Зато нам удалось найти то, с чем не желает спокойно жить NetHaspServer, вызывая этим нежеланием "синюю смерть" - это установленный SAP support. Достаточно убрать из сетевых протоколов SAP support и никакой "синей смерти" больше не возникает. Можно конечно не устанавливать NetHasp Server как NT-шный сервис и запускать его при старте NT любым доступным способом - хоть вручную. Но даже при ручном запуске наличие SAP support продолжает конфликтовать с NetHasp Server-ом - в некоторых случаях NetHasp Server не видит нормально установленный и "живой" протокол NetBios (имеется в виду конечно его эмуляция на IPX), иногда при выключении и последующем включении (без перезагрузки) NetHasp Server вдруг вообще перестает "видеть" установленные сетевые протоколы. В итоге конечно можно подобрать такую комбинацию версии NetHasp Server, способа его запуска и установленных и задействованных на сервере NT сетевых протоколов, что все будет нормально, но как мне кажется, даже в этой ситуации сбои при опознавании ключа возникают чаще. В качестве хохмы могу привести пример, когда нам пришлось написать небольшой BAT-файл, который перезапускался каждые пять минут и вырубал, а затем снова запускал NetHasp Server. Это из-за того, что после каждых 5-7 запусков программы 1С:Торговля на рабочих станциях ключ вдруг переставал опознаваться, а NetHasp Server начинал показываать, что он не видит ни одного из установленных сетевых протоколов. В итоге после сноса SAP support-а все нормализовалось.

Теперь перейдем к следующему глюку. Его в общем-то нельзя назвать сетевым на сто процентов, однако возникает он только в сетевых версиях, когда доступ к ключу осуществляется через NetHasp Server.

Наверное любой из специалистов, поимевших дело с сетевыми версиями программ 1С обратил внимание на возникающую иногда ситуацию, когда после старта NetHasp Server-а первая попытка запуска программы 1С с рабочей станции заканчивается неудачей с сообщением о том, что "…ключ не найден". Однако следующий запуск проходит нормально и все последующие тоже. Хотя иногда вдруг опять программа берет и не запускается. В чем тут дело? По всей вероятности причина заключается в следующем. Ключ защиты - это активное устройство, имеющее в своем составе микрочип. Этот микрочип питается микротоком, который возникает в тот момент, когда в порт LPT (т.е. на ключ) записывают какие-либо данные. До момента первой записи ключ остается не запитанным и соответственно не инициализированным. Вероятно, для инициализации ключа NetHasp Server должен либо бросить туда пустую посылку, а затем уже начать давать "рабочие" посылки, которые требуют ответа ключа, либо после первой посылки сделать паузу перед вычитыванием данных. Мне представляется более вероятным первый вариант. Налицо факт недоработки программного обеспечения NetHasp Server. При встрече с подобным дефектом Вы можете уточнить его характер просто напечатав что-либо на принтере, подключенном к тому же LPT-порту сразу после запуска NetHasp Server-а. Если после этого первый запуск программы 1С с рабочей станции проходит успешно - можете быть уверены - Вы столкнулись именно с вышеописанным дефектом. Если он начинает досаждать Вам, можно попытаться вылечить его заменой LPT-порта - просто подобрать порт, обеспечивающий большую величину микротока (конечно, если LPT-порт интегрирован на материнской плате, то придется поставить дополнительный порт). Программным путем этот дефект можно излечить написанием программки, периодически обращающейся к LPT-порту, однако здесь есть свои трудности - есть вероятность влезть в процесс обмена между NetHasp Server-ом и ключем, так что аппаратный способ мне кажется более приемлемым.

С "левыми" материнскими платами (типа китайских Lucky Star) часто связана неработоспособность нескольких ключей, подключенных к встроенному (на маме) LPT-порту: порт просто не дает необходимой мощности микротока для питания более, чем одного ключа.

2. Принтеры.

Если уж речь зашла об LPT-портах, то невозможно не упомянуть о лазерных принтерах, особенно о принтере HP LaserJet 6L, которые напрочь "сажают" напряжение на ключе и делают его полностью неработоспособным. Выход один - установка дополнительного LPT-порта - больше здесь ничего не поможет. В некоторых случаях принтер просто "подсаживает" LPT-порт и работать на таком порту может только один ключ. На два и более ключа просто не хватает мощности. Есть также некоторые модели принтеров, которые "убивают" ключ, если питание принтера выключить после того, как выключается питание компьютера. Это в первую очередь относится к комбинированным монстрам, объединяющим в себе факс, ксерокс, принтер и т.д. Конечно, не все модели таких устройств столь злобно настроены по отношению к Алладдиновским ключам, но я бы рисковать не стал.

Отдельный разговор о принтерах Lexmark, а вернее о программном обеспечении для них. Речь идет о драйверах этих принтеров. Эти драйвера написаны не программистами, а какими-то абсолютно враждебными существами, категорически недружелюбно настроенными к сетевым принтерам других производителей. Если на компьютере, подключенном к сети болтается такой драйвер (от принтера Lexmark) и в свое время Вы имели неосторожность установить этот принтер, как доступный другим пользователям сети, а потом принтер отключили, но драйвер не снесли, то сколько бы Вы не пытались организовать сетевую печать на принтер другой фирмы, подключенный туда, где раньше жил Lexmark, ничего у Вас не получится - никто из других пользователей сети не сможет напечатать на этом принтере ни слова. Даже снос драйвера Lexmark не всегда помогает: он оставляет какие-то DLL включенными в систему и их приходится либо удалять хирургически, путем долгих и нудных поисков в Registory, либо просто переставлять с нуля Windows. Сами можете представить себе, что будет выделывать ключ NetHasp, включенный в порт компьютера, изгаженного драйверами Lexmark. Выводы: может быть где-то и существуют нормальные драйвера для лазерных принтеров Lexmark, но я таких не встречал. С того момента, как Lexmarkи появились на нашем рынке (3-4 года назад) нам неоднократно приходилось с ними бороться.

Еще о принтерах. Это уже не относится к поиску ключа, а относится к нормальному режиму работы. Однажды мы наткнулись на следующую загадочную ситуацию. Вдруг, ни с того, ни с сего у одного из наших клиентов стали чрезвычайно медленно работать два компьютера из пяти, подключенных к одному хабу (сеть - витая пара пятой категории, 10 Мбит, сервер Novell NetWare 4.11, протокол IPX/SPX). Больно было смотреть, как компьютеры "засыпали" на несколько секунд при листании справочника. Клиент клялся и божился, что с этими компьютерами ничего не делал. После целого дня бесплодных попыток что-то сделать (переустановка и настройка протоколов, драйверов сетевых карт, замена сетевых карт, замена хаба и т.д.) мы обратили внимание на один из оставшихся трех "нормальных" компьютеров этой группы, а вернее на странный лазерный принтер, подключенный к одному из них. Спросили и выяснили, что клиент где-то (ГДЕ???) добыл по случаю лазерный принтер (кажется фирмы NEC), абсолютно новый, но 4-х или 5-ти летней давности выпуска. А с этим принтером на дискете был драйвер только для Windows 3.11. Вот этот драйвер клиент и влепил в Win95. Мы тут же снесли драйвер и к неописуемой радости (своей и клиента) обнаружили, что те два "больные" компьютера заработали как надо - с нормальной скоростью. Драйвер для Win95 мы потом скачали с Интернет, но почему драйвер принтера под 3.11, установленный на одном из компьютеров тормозил два других компьютера (и только их!) я так до сих пор понять не могу.

Вообще похожие ситуации, выражающиеся в сильном торможении компьютера/компьютеров при установке на сети каких-либо драйверов от 3.11 в Win95 или использования программ от 3.11 на Win95 встречаются достаточно часто, но обычно тормозит та машина, где это все установлено.

3. Протокол TCP/IP

Я не хочу говорить никаких плохих слов о протоколе TCP/IP. Я просто считаю его не нужным для систем, использующих программы 1С. Поскольку в системе спокойно уживаются несколько протоколов, то в случае необходимости для сугубо определенных целей TCP/IP имеет право на существование. Ну и пусть он живет на тех рабочих станциях или серверах, где он нужен (например для удаленного доступа), а 1С чудесно будет работать на IPX/SPX или на NetBIOS. 1C-овские программы, работающие на протоколе TCP/IP вполне работоспособны, однако не являются идеалом быстродействия. Тем более, что существуют какие-то заморочки с работой NetHasp Server на TCP/IP. По идее TCP/IP - это протокол, который в первую очередь обязан обеспечить маршрутизацию в сложных сетях. Однако, на обычной локальной сети, но с несколькими сегментами, NetHasp Server часто бывает невозможно заставить дать доступ к ключу программам, запущенным на другом сегменте сети. Скорее всего это ошибка самого NetHasp Server-а, но нам от этого не легче. Систематизировать неполадки данного вида нам не удалось (да честно говоря мы особо и не старались), как не удались и попытки смоделировать подобные ситуации на своей сети (2 сегмента). Но факт есть факт - иногда не работает и не лечится, а иногда работает. Я лично предпочитаю с головной болью не связываться.

TCP/IP способен преподнести еще некоторые сюрпризы. Наличие установленного, но ненастроенного (по IP-адресам) протокола TCP/IP на паре компьютеров в сети способно заставить программы 1С искать ключ по 3-5 минут, а затем "тормозить" при работе так, что создается впечатление, что перед Вами не 100 мегабитная сеть Ethernet, а просто компьютеры, связанные через COM-порты. При этом тормозит ВСЯ сеть, а не только те машины, где установлен TCP/IP. Лечится просто - сносом протокола TCP/IP на одной из машин (т.е. следует устранить наличие TCP/IP-шной "двухточки"). Естественно ситуация такая наступает не всегда, но при определенных условиях (каких???). Исследования на эту тему нам проводить было лень, достаточно того, что найден метод лечения.

4. NetBIOS, IPX/SPX и NetHASP.

Однажды мы решили наконец разобраться в том, что же нужно (в протокольном смысле) иметь на сети, чтобы ключ искался быстро и надежно (а соответственно и программы запускались быстро и без сбоев). Проведя ряд экспериментов, мы получили некий результат. Не претендуя на истину в последней инстанции, но опираясь на проведенные эксперименты и опыт эксплуатации сетей с программами 1С могу сказать следующее:

· Для одноранговых сетей Win95 оптимальным вариантом является протокол NetBIOS (родной NetBEUI, а не эмуляция его на IPX/SPX). Сама сеть работает очень быстро и протокол устанавливается легко. Единственным недостатком является то, что NetBIOS не маршрутизируется по многосегментной сети, хотя недостатком это назвать сложно: я с трудом могу представить себе одноранговую сеть без выделенного сервера, но с несколькими сегментами. По-моему это будет просто извращение какое-то. Единственным препятствием для использования NetBIOS в такой сети может служить наличие сетевого принтера вроде Jet Direct, который, как правило, требует для своей работы протокола IPX/SPX.

· Если в одноранговой сети используется более 6-7 компьютеров и все они должны иметь доступ к одному из компьютеров, играющему роль сервера, то здесь начинаются неприятности. Ресурсы Win95 в случае, когда компьютер играет роль сервера, не позволяют ему обслужить более 5-6 экземпляров 1С:Торговли или 1С:Бухгалтерии, запущенных на других компьютерах (каждый экземпляр программы открывает более 200 файлов на дисках псевдо-сервера). В итоге запуск 6-го или 7-го экземпляра программы 1С заканчивается неудачей. Конечно, наилучшим решением является установка выделенного сервера, но клиенты/заказчики прижимисты и часто приходится устанавливать NT Workstation на компьютер, выполняющий роль сервера (NT Wks имеет значительно большие ресурсы по открытию разделяемых файлов). В такой ситуации наилучшим вариантом будет протокол IPX/SPX (без поддержки SAP). Работает практически так же быстро, как и NetBIOS (надо только сделать скидку на "естественное" торможение NT Wks по сравнению с Win95). Варианта с установкой эмуляции NetBIOS на IPX следует избегать - хотя работа программы будет так же быстра, как и на чистом IPX/SPX, при запуске программы и поиске ключа будет происходить сильное "торможение".

· Такой же вариант следует предпочесть и для системы с выделенным сервером Windows NT Server.

· Для систем с выделенным сервером Novell NetWare 3.12 или 4.11 протокол IPX/SPX является практически единственным. Его использование дает прекрасные результаты, как по надежности поиска ключа, так и по скорости. А если еще применить двухпроцессорную конфигурацию (с NetWare 4.11) то система просто будет летать. Только ни в коем случае не надо ставить на рабочие станции родного Novell-овского клиента. Глючит по-черному. Несмотря на мое теплое отношение к продуктам Novell и резко отрицательное к продуктам от Била Гейтса, вынужден признать, что Microsoft-овский клиент NetWare для Win95 вполне прилично выполняет свои функции.

Все вышеописанные варианты проверялись на наиболее капризной комбинации: 1C:Бухгалтерии 7.5, поставленной поверх 1С:Торговли 7.5 в один и тот же каталог. При этом тестировались NetHasp Server-ы от релизов с 8-го по 15-й. Наилучшие (по безотказности и надежности) результаты показал NetHasp Server от 13-го релиза, вне зависимости от какого продукта он был взят (проверяли в том числе NetHasp Server от SQL-версий). Не забыли мы и про проблемы с ключами от Бухгалтерии 6.0 о которых часто пишут в конференции 1сsoft. Как ни странно, никаких проблем у нас с ними не было - все прекрасно функционировало "в одном флаконе" в вышеописанных конфигурациях. Во всяком случае, посоветовать кое-что могу: надо внимательно читать не только печатную документацию, но и файлики "Readme" на установочных дискетах. Ну а пользователям пиратской продукции могу только посочувствовать.

Здесь следует добавить еще несколько слов вот о чем: если на Вашей сети установлено несколько протоколов, то запись в AUTOEXEC.BAT "set nethaspprotocol=…" определяет только протокол, который будет использоваться для поиска ключа на сети. А вот с помощью какого протокола будут выполняться файловые операции программой 1С? Нами замечено, что многие сетевые глюки появляются, когда на разных компьютерах сети установлен разный набор протоколов и каждая станция (т.е. каждый экземпляр программы 1С) выбирает тот протокол, который ей больше по душе из того набора, который предлагается на данном компьютере. Поэтому настоятельно рекомендую унифицировать все рабочие станции сети по набору протоколов и их настройкам.

5. NE2000-совместимые драйверы.

Очень часто в процессе установки сетевой карты в компьютер Win95 сама определяет свежеустановленную сетевую карту как NE2000-совместимую и устанавливает соответствующий драйвер. Многие "специалисты" этим и удовлетворяются. А иногда просто для карты нет дискеты с драйвером и искать его лень - ведь установился же NE2000-совместимый и вроде бы даже все работает. Вот это самое "вроде все работает" может жестоко Вас подставить.

Действительно, если на сетевую карту установился NE2000-совместимый драйвер, то сеть внешне может быть вполне (и даже очень хорошо) работоспособна. Однако, установка такого драйвера на современную сетевую карту подобна установке драйвера VGA на хорошую видео карту с ускорителем. Вы не в состоянии использовать всю ее функциональность. Дело в том, что сетевая карта имеет много аппаратных функций, которые используются сетевым ядром системы Windows95 через драйвер карты. Если установлен "родной" драйвер, то все эти функции полноценно используются. Если же установлен NE2000-совместимый драйвер, то во время установки он проводит тесты, чтобы определить, какие функции имеются у карты. Как правило, аппаратное исполнение любой сетевой карты хоть немного, да отличается от стандарта совместимости, по которому действует драйвер NE2000. Поэтому, некоторые из имеющихся в наличии функций, остаются для NE2000-совместимого драйвера невидимыми и при последующем обращении ядра Windows к этой функции, драйвер даже не пытается что-то сделать с картой, а просто возвращает ядру код успешного завершения. Для обычной работы сети большинство таких "продвинутых" функций не нужны, поэтому все выглядит пристойно - сеть работает, файлы качаются и т.д. и т.п. Однако, программа 1С для поиска ключа видимо использует какую-то из этих функций, скорее всего что-то связанное с широковещательными посылками. Если NE2000-совместимый драйвер способен реально заставить карту выполнить эту функцию, то все будет хорошо: ключ будет найден. Если же выполнение функции просто имитируется, то программа 1С ключ не найдет.

По опыту работы могу сказать следующее: в 60-70% случаев неработоспособности программ 1С на сети (не находится ключ) виноваты те, кто залепил NE2000-совместимый драйвер вместо "родного", поставляемого на дискете или CD вместе с картой. Особенно это касается случаев установки такого драйвера на компьютер, на котором установлены ключи NetHASP.

Метод лечения очевиден: установить "родной" драйвер. А вывод прост: всегда, когда на сети с программами 1С имеют место "глюки", и на одном или нескольких компьютерах обнаруживается NE2000-совместимый драйвер - это первое, что следует поправить.

Примечание: желающим удостовериться в разнице между родными и NE2000-совместимыми драйверами могу посоветовать следующий метод: установите свою карточку в сервер Novell NetWare и установите сначала родной, а потом NE2000-совместимый драйвера (имеются в виду конечно драйвера для сервера с расширением "lan"). И в том, и в другом случае посмотрите в программе MONITOR набор возможностей и функций, выполняемых картой.

6. "Левые" драйвера сетевых карт.

В предыдущем пункте речь шла об универсальном драйвере сетевой карты, который рассчитан на работу с картами разных производителей и поэтому не в состоянии использовать в полной мере функции, предоставляемые этими картами. Вы вполне можете натолкнуться на противоположную крайность: на драйвер специально рассчитанный на работу с конкретной картой и пытающийся использовать ее функциональность настолько полно, что это приводит к плачевным последствиям. Для иллюстрации изложу реальную жизненную ситуацию, с которой мне пришлось столкнуться пару лет назад.

Имелась работоспособная сеть: 15-20 компьютеров на витой паре и сервер Novell NetWare 3.12. Происходило расширение сети - добавляли 3 или 4 компьютера (точно не помню сколько). В компьютеры установили свежезакупленные сетевые карты на чипе AMD и драйвера с дискеток, поставленных вместе с картами. Все шло нормально, пока дело не дошло до последнего компьютера из новой партии. Когда стали устанавливать драйвера, обнаружили, что на дискетке помимо обычного драйвера живет еще один драйвер - т.н. "турбо"-драйвер. В прилагаемом файлике "Readme" утверждалось, что при применении этого драйвера производительность сети увеличится на 10-15%. Ну что ж, увеличение производительности - это хорошо. Поставили этот "турбо" драйвер. Проверили. Да, действительно, скорость передачи данных несколько возросла. По несчастной случайности "одевание" последнего компьютера происходило поздно вечером, когда на сети никто уже не работал, поэтому проверяемый компьютер был на сети один одинешенек. Опять же, поскольку было уже поздно, другие компьютеры из новой партии "переодевать" в турбо-драйвера мы не стали и разошлись по домам весьма довольные. И естественно, про турбо-драйвера моментально забыли. Но, начиная с утра следующего дня нас начал доставать персонал предприятия: система работала очень медленно. При ближайшем рассмотрении обнаружилось огромное количество коллизий на довольно слабо загруженной сети - светодиод коллизий на хабе светился практически постоянно. Начали разбираться. И опять нам не повезло: тот самый компьютер, где был установлен турбо-драйвер, был загружен практически постоянно и до него мы добрались в последнюю очередь. В итоге, когда наконец до этого компьютера добрались и он был выключен - тут же восстановилась нормальная работоспособность сети. Поскольку было абсолютно непонятно, почему совершенно исправный компьютер с совершенно исправной картой (а это было проверено в первую очередь) ведет себя таким образом, мы занялись исследованиями, использовав все имевшееся в наличии программное и аппаратное обеспечение, позволявшее анализировать функционирование сети. Не буду пересказывать здесь подробности наших изысканий, которые заняли у нас 2-3 дня. Вот что нам удалось выяснить. Турбо-драйвер прекрасно работает и действительно увеличивает производительность сети на 10-15%, но… только в том случае, если ВСЕ компьютеры в сети (в т.ч. и сервер) укомплектованы одинаковыми картами и НА ВСЕХ них установлены эти самые турбо-драйвера. Как только в сети появляется "чужая" карта или "чужой" драйвер, так сразу же все карты, снабженные турбо-драйверами, начинают бомбардировать сеть широковещательными посылками, ожидая, что вновь появившаяся "чужая" карта получит эти посылки и ответит на них. Соответственно, если она ответит так как нужно, т.е. в случае установленного турбо-драйвера, в сети устанавливается симбиоз: турбо-драйвера образуют сообщество, которое использует дополнительную функциональность карт для ускорения работы сети. Если же ответ неправильный или ответа вообще не получено (т.е. драйвер действительно "чужой"), то турбо-драйвер не желая смириться с этим продолжает бомбардировать сеть широковещательными посылками, вероятно в надежде на то, что в один прекрасный момент "чужая" карта с "чужим" драйвером вдруг заработают так как надо. В нашем случае, поскольку на сети существовала всего одна карта с турбо-драйвером, она непрерывно бомбардировала сеть этими широковещательными посылками, причем делала это тем интенсивнее, чем больше машин было активно на сети. Налицо явный просчет разработчика программного обеспечения для сетевой карты. Если эти турбо-драйвера поставлялись в качестве рекламы, то конечно в файле "Readme" следовало написать об особенностях их применения. Вот такая история, стоившая нам нескольких дней сильной головной боли и ругани с заказчиком.

А рассказываю я это все для того, чтобы еще раз напомнить о старом постулате: "…лучшее - враг хорошего". Следует очень внимательно относиться к программному обеспечению сети нижнего уровня, в т.ч. и к драйверам сетевых карт. Попытки революционного подхода могут здесь обойтись очень дорого.

7. 100 мегабитная сеть.

100 мегабитная сеть дарит нам удивительный глюк, метода борьбы с которым (кроме переконфигурирования сети) я пока не нашел. Непосредственного отношения к программам 1С этот глюк не имеет, но поскольку он сильно снижает быстродействие сети, его следует здесь упомянуть. Глюк возникает, если имеется "умный" хаб 10/100 (который сам разбирается, какой из каналов с какой скоростью может работать) и с этого хаба каскадируется хотя бы один обычный 10 мегабитный хаб. Кроме этого, к хабу 10/100 подключены не только 100 мегабитные станции, но и парочка 10 мегабитных. Так вот этот "умный" хаб в некоторые моменты становится слишком умным: он начинает путать 10 мегабитные линии со 100 мегабитными. Вернее он начинает считать некоторые 100 мегабитные линии 10 мегабитными. А компьютеры со 100 мегабитными карточками продолжают работать в режиме 100 мегабит. В результате резко подскакивает уровень коллизий и катастрофически падает производительность сети. Лечение "на лету" проводится кратковременным (на 2-4 сек.) выключением питания "умного" хаба. Иногда кроме этого приходится перегружать сервер. Такие глюки происходят не часто, но если происходят, то весь персонал, работающий на сети встает на уши. Что здесь можно придумать? Или полностью разделить 10 и 100 мегабитные сегменты, или не использовать "умный" хаб, а использовать комбинированный хаб с фиксированным числом 10 и 100 мегабитных линий. Решение не самое лучшее, но иного я пока не придумал.

8. SQL-версии.

Все сказанное выше относительно неполадок, связанных с поисками ключа относится и к SQL-версиям программ 1С. Что же до всего остального, то в связи с отсутствием опыта (SQL-версии выпущены недавно), нами пока замечены только разные мелочи. Могу только напомнить, что не следует забывать устанавливать протокол Named Pipes при установке MS SQL Server. Отсутствие этого протокола существенно снижает производительность системы.

9. Некоторые общие рекомендации для больших сетей

Если Вы имеете дело с большой сетью (а большой сетью я считаю сеть с числом компьютеров более 20 и конечно, с выделенным сервером), то экономически и технически вполне оправдано завести отдельный компьютер для установки на нем ключей NetHASP. Избавьте сервер от этой нагрузки: ведь у него и так хватает дел, которыми следует заняться. Поверьте, такой подход облегчит жизнь и серверу и Вам, если Вы занимаетесь администрированием этой сети. "Ключевой" компьютер не обязательно одевать "по полной программе" - это может быть вполне посредственная по характеристикам машина, например какой-нибудь 486DX2-66. Кроме задачи по обслуживанию ключей этот компьютер можно загрузить работой по приему и отправке почты и факсов, обслуживанию линии удаленного доступа (в режиме Dial Up), а также другими вспомогательными задачами, например программированием офисной ATC и протоколированием ее работы с помощью программы типа WinTarif. Ну и конечно, как и сервер, этот компьютер должен быть запитан через UPS.

Далее: не вешайте на один сетевой сегмент более 20 компьютеров, даже если на них только вбивают накладные. Трафик по сегменту будет слишком интенсивным и сеть будет тормозить.

При возможности используйте "европейский" метод разводки сети, т.е. все кабели от всех рабочих мест сводятся в одну комнату. Конечно, кабеля может потребоваться значительно больше и за прокладку придется платить больше, но поверьте, при последующей эксплуатации это окупится сторицей.

06.09.1998г. Алексей Жедь.

© Copyright Alter Logo Ltd., 1998. All Rights Reserved.


1С-Предприятие. Документация. Статья | Почему SQL "тормозит"?

Почему SQL "тормозит"?

В последнее время в коференции fido.ru.1csoft стали появляться вопросы по клиент-серверным версиям (SQL) программ фирмы "1С". Аналогичные вопросы поступают к нам и по электронной почте и по телефону от клиентов нашей компании (Альтер Лого). Судя по содержанию этих вопросов (а также по содержанию ответов на них в фидошной конференции) могу с прискорбием констатировать, что люди, занимающиеся внедрением и эксплуатацией программных продуктов "1С" имеют весьма смутное представление о том, что такое клиент-серверная система, для чего она вообще нужна, как она работает и чего от нее можно и нужно ожидать, а чего нельзя.

Мимо такого непонимания я пройти спокойно не могу, поэтому беру на себя труд по сочинению этого текста, который, как я надеюсь, поможет многим из разработчиков и пользователей понять, нужен ли им SQL-продукт или нет.

Итак, первое, что необходимо понять и запомнить: SQL-системы не предназначены для ускорения выполнения выборок и печати отчетов. Если Вы ожидаете, что установив "1C-Торговлю для SQL" Вы ускорите работу своей системы, то Вы глубоко заблуждаетесь. Не будет она работать быстрее. Поэтому всякие разговоры о том, что "…SQL-Торговля - это тормоз…" абсолютно не имеют смысла. Несколько лет назад журнал PC Magazine проводил сравнительный анализ (в том числе и по быстродействию) систем управления базами данных, построенных на основе обычных файл серверов и с использованием клиент-серверных (SQL) систем. Естественно, условия испытаний по возможности были нивелированы, т.е. применялись одинаковые объемы баз данных, одинаковые их структуры, один и тот же компьютер в качестве сервера, одинаковое количество рабочих станций и т.д. Если мне не изменяет память, из клиент-серверных систем были испытаны Oracle, Interbase, Informix, Gupta и самый дешевый в то время Watcom SQL Server. Во всех случаях, средняя скорость выполнения запросов в SQL-системах была ниже, чем у файл-серверной системы (сейчас об этом эффекте можно прочесть в любой серьезной книге по SQL ). Испытатели не были удивлены полученным эффектом, поскольку были людьми грамотными и понимали причину такого поведения SQL-систем при заданных условиях эксперимента. Ведь задачей эксперимента было сравнение быстродействия двух видов систем и поэтому были выбраны условия, позволяющие произвести это сравнение. В частности для тестов использовались базы данных объемом 1.5-2Гб. Ведь если бы исследователи взялись проводить испытания, используя базы данных на порядок большего размера, то им просто не с чем было бы сравнивать SQL-варианты, поскольку обычная файл-серверная система на таких объемах информации просто заткнулась бы. Вот в этом то и состоит основное отличие и достоинство клиент-серверных систем: они будут работать со вполне приемлемой скоростью с базами данных такого объема, с которыми файл-серверная система работать просто не сможет ("не сможет" в том смысле, что ее функциональность, в том числе и быстродействие, станут неприемлемы для коммерческих приложений).

Посмотрите на обычный сетевой вариант 1С-Торговли. Она реализована на файл-серверном принципе, т.е. обработка данных ведется рабочей станцией, а сервер служит просто как дополнительное, доступное всем пользователям дисковое устройство. Это означает, что при выполнении задачи (например при сборке отчета) ВСЯ база данных (или значительная ее часть) прокачивается по сети на рабочую станцию и там обрабатывается процессором рабочей станции. Быстродействие такой системы зависит от быстродействия диска сервера, скорости передачи данных по сети, мощности процессора рабочей станции, объема ее ОЗУ и некоторых других факторов. Центральный процессор сервера играет второстепенную роль и должен просто обеспечивать передачу потока данных с сетевого канала на диск и обратно, по возможности не внося замедления в этот процесс. Главным в таком подходе является то, что практически вся база данных перегоняется по сети на рабочую станцию для последующей обработки. Если несколько станций одновременно выполняют сборку отчетов, то всем им закачивается база данных и естественно система "тормозит". Когда выполняются менее накладные операции, типа ввода нового документа, то объем перекачки данных значительно меньше, правда в реальности ввод документа как правило сопровождается поиском клиента в справочнике, вычислением задолженности клиента и т.п., что в свою очередь порождает перекачку большого количества информации с диска сервера на рабочую станцию. Не следует также забывать о необходимости синхронизации доступа рабочих станций к данным. Поскольку вся обработка ведется на уровне рабочих станций, а файл-сервер просто играет роль разделяемого дискового устройства, задачи синхронизации решаются в таких системах с помощью организации различных файлов блокировок (на диске файл-сервера) в которые каждая рабочая станция записывает информацию о данных, которые она модифицирует в данный момент, а при попытке считать данные проверяет не заняты ли эти данные другой рабочей станцией. Несмотря на ряд недостатков ("висячие" блокировки при аварийном выключении рабочих станций, "торможение" всей системы при модификации большого числа записей), способ вполне работоспособен.

Скорость работы такой системы прямо связана с объемом обрабатываемой базы данных. Они начинают ощутимо "тормозить", когда база данных достигает объема свыше 200-300Мб и при приближении к 1Гб практически просто перестает работать. Цифры конечно приблизительные и зависят от используемого программного обеспечения и формата базы данных. Например, при использовании формата таблиц базы данных Paradox торможение наступает значительно позже, чем при использовании формата DBase. Когда "торможение" ощутимо дает о себе знать, пользователи системы идут на различные хитрости: закрывают старую базу и открывают новую каждый квартал, пытаются удалить старые данные и т.п. Однако любой бухгалтер скажет Вам, что данные нужны ему не за квартал, а минимум за год и предпочтительно в динамике, а не в виде отдельных кусков. Да и долги клиентов иногда тянутся годами. Временным решением проблемы в такой ситуации может быть увеличение пропускной способности сети за счет установки 100-мегабитной сети вместо 10-мегабитной и интеллектуальных маршрутизаторов вместо тупых хабов. Однако, маршрутизаторы чрезвычайно дороги, а 100Мбит сеть даст повышение пропускной способности 2.5-3 раза (а не в 10 раз, как можно было бы ожидать!!!). Да и зачем увеличивать пропускную способность сети, если жесткий диск сервера уже работает на пределе своей производительности? Через пол-года Ваша база данных вырастет еще на 300-500Мб и система опять заткнется, пустив по ветру все вложенные в модернизацию денежки. Не следует забывать и еще об одной значительной детали. Это архивирование. Попробуйте заархивировать базу данных объемом 1-1.5Гб - за время потребное для архивации вы можете успеть пообедать, посмотреть кино и поругаться с начальником. А ведь это нужно делать каждый день. И при этом во время архивирования ни один из пользователей с базой работать не может.

Теперь рассмотрим SQL-систему ( т.е. клиент-серверную систему). Если кто-то говорит Вам, что у него сильно тормозит SQL - спросите его, какой у него сервер. Если он ответит, что-то вроде: "…Pentium 266, 64Мб ОЗУ и UDMA IDE", то можете смело сказать ему, что он … не слишком квалифицированный специалист. Серверы для SQL-систем должны иметь значительно большие ресурсы. PentiumII 300Mhz со 128Мб ОЗУ и Ultra Wide SCSI дисками - это пожалуй тот минимум, на котором может НОРМАЛЬНО функционировать программное обеспечение MS SQL Server с 5-8 подключенными клиентами. Заметьте при этом, что сеть с пропускной способностью 100Мбит совсем не обязательна. Все дело в том, что при работе с SQL-сервером рабочая станция не качает базу данных к себе по сети. Она просто передает по сети достаточно компактный запрос на сервер, который выполняет запрос, например производит выборку, и передает результат запроса обратно на рабочую станцию. Таким образом, трафик по сети значительно снижается, поскольку перекачки базы не происходит, а по сети передаются только запросы и результаты их выполнения. Конечно, если при разработке клиентской части программного обеспечения будет допущена ошибка и будет запрограммирован запрос, результатом выполнения которого является вся база данных или значительная ее часть, то вся эта информация будет качаться на рабочую станцию, выдавшую такой запрос. Но это уже по большей части лежит на совести разработчиков прикладных задач, т.е. применительно к программам "1С" - на совести тех, кто занимается настройками (и на совести разработчиков из "1С" - в части запрещения оптимизации таких запросов).

Теперь посмотрим, что же происходит с сервером в SQL-системе. Ведь север сам выполняет полученный запрос, поэтому, легко представить себе, что если с SQL-системой работают 10 пользователей, то для сервера это практически то же самое, как если бы на нем были одновременно запущены 10 экземпляров программы, с которой работают пользователи (например 10 локальных копий 1С-Торговли). Попробуйте запустить локально на каком-нибудь Pentium 200 или 266 десять экземпляров 1C-Торговли и выполнить одновременно 10 отчетов об остатках на складе. Сделав это и оценив результат Вы поймете, что всякие разговоры о "торможении" SQL-системы без обсуждения параметров сервера не имеют смысла. SQL-системы крайне прожорливы на ресурсы сервера. По-хорошему для таких систем вообще следует использовать компьютеры с RISC процессорами в многопроцессорном варианте (что-нибудь из продукции SUN Microsystems). Однако, для наших бедных клиентов с их ограниченными финансовыми возможностями SQL-системы все равно имеют существенное преимущество: даже при использовании сервера стоимостью 4-5 тыс. долларов они будут работать со вполне приемлемой скоростью с базами данных такого объема, на котором обычные файл-серверные системы просто заткнутся. Причем, этот объем может достигать величин в десятки ГИГАБАЙТ. Ведь доступ к данным очень быстр - они расположены здесь же, на диске сервера и не требуют передачи по сети для последующей обработки. Все запросы поступают к серверу, так что кроме обычного файлового кэширования есть огромные возможности по оптимизации выполнения запросов, их распараллеливанию. Эти возможности уже заложены в программное обеспечение MS SQL Server, а от разработчиков из "1С" требуется так написать исполняющую часть программы, чтобы использовать эти возможности в полной мере. Возможно также применение различных хитростей, например серверов-репликаторов (для разделения групп пользователей на тех, кто пользуется только отчетами, т.е работает в режиме "только чтение", и тех, кто активно модифицирует данные) или разноски данных по разным дисковым устройствам. При перегрузке дисковой системы она легко модернизируется, например с помощью RAID-массива (не забывайте однако, что SQL-система - это вообще иная ценовая категория как по цене матобеспечения, так и по цене железа). В результате при правильном проектировании системы (если не обнаружатся любители выдавать крутые запросы, результатом которых будет перекачка всей базы данных по сети), 100Мбит-ная сеть может не понадобиться. Вот что в первую очередь дает SQL-система. Вообще, SQL-система предоставляет значительные возможности для оптимизации аппаратной части и настройки программной части. И говорить о "торможении" SQL-системы имеет смысл только тогда, когда эти возможности исчерпаны.

До сих пор мы говорили о принципиальных различиях файл-серверных систем от клиент-серверных. Теперь немного о дополнительных преимуществах клиент-сервера.

Надежность. Клиент-серверные системы имеют встроенный механизм работы с транзакциями, в том числе и их отката. В файл-серверных версиях программ "1С" также имеется механизм работы с транзакциями, однако способ реализации их принципиально отличается. В файл-серверных версиях механизм транзакций представляет собой ни что иное, как просто блокировку всей базы данных до завершения выполнения критических по времени операций одной из рабочих станций. Откат возможен только при сохранении работоспособности рабочей станции, инициировавшей транзакцию. В клиент-серверной системе этот механизм (который реализуется программным обеспечением SQL-сервера - в нашем случае MS SQL Server 6.5) значительно более сложен. Он позволяет получить "слепок" базы данных на момент начала транзакции без блокировки базы данных. И слепков таких может быть много: для каждой рабочей станции - свой. В случае "зависания" рабочей станции, открывшей транзакцию, транзакция может быть просто откачена (т.е. база данных будет восстановлена в том виде, в каком она была до начала инициации транзакции). Откат осуществляется либо по запросу рабочей станции (при сохранении ее работоспособности), либо при перезагрузке рабочей станции, либо администратором SQL-системы. Таким образом, выход из строя рабочей станции не столь опасен для целостности базы данных. Кроме того, SQL-система ведет так называемый журнал транзакций. По сути база данных хранится в виде ее начального содержимого и ее модификаций записанных в журнал транзакций. Такой способ хранения позволяет производить архивирование базы данных во время работы всей системы: просто состояние базы данных фиксируется на момент начала архивирования, отсекаются незавершенные транзакции, а основная база и часть журнала транзакций, содержащая завершенные транзакции записываются в архив. Процесс архивирования легко поддается автоматизации, т.е. присутствие оператора необязательно - SQL-сервер имеет встроенные средства для этого.

Защита. В общем-то защищенность данных в значительной мере зависит от прикладной задачи (1С-Торговли или 1С-Расчета), однако по сравнению с обычным вариантом, в котором любой начинающий хакер спокойно может срубить пароль, в клиент-серверном варианте защита данных опирается на средства, предоставляемые SQL-сервером, что гораздо более недежно.

Гибкость применения. Системы на основе SQL-сервера позволяют построить сложные сетевые конфигурации со многими десятками и даже сотнями пользователей. При этом разработчику предоставляются широкие возможности по оптимизации системы, ее разделению по группам сложности и способам доступа. Серверы-репликаторы, например, дают прекрасный механизм для организации системы учета в крупной организации с разветвленной системой удаленных офисов, складов и т.п. При этом, работа на такой системе может вестись в реальном режиме времени, без перерывов для переноса и синхронизации данных - достаточно лишь организовать постоянные каналы связи 32-128 Кбит, что вполне осуществимо на наших телефонных линиях и не слишком дорого (конечно, в масштабе крупной компании).

Ну и наконец пора поговорить о недостатках. Недостатков у SQL-систем много - и крупных и мелких - тех же самых, которые присущи и файл-серверным системам. Однако есть два и весьма существенных.

Первый Вы наглядно увидите в прайсе фирмы "1С" - это цена. Цена не только программного обеспечения, но и цена железа на котором оно может функционировать и цена обслуживания. Ну, что же делать - SQL это продукт высоких технологий. А продукт высоких технологий всегда стоит дорого и должен эксплуатироваться грамотным персоналом, поэтому и системный администратор, способный грамотно работать с SQL-системой обойдется дороже, чем аналогичный специалист для обычной файл-серверной системы.

Второй - это существенные недоработки клиентской части программ комплекса 1C:Предприятие для SQL. В тех версиях, которые пока выпущены в продажу, далеко не полностью используются преимущества SQL сервера. Разработчик или поленился или не успел реализовать в полной мере возможности, предоставляемые средствами SQL сервера, поэтому во многих случаях там, где можно ожидать выполнения несложного SQL-запроса программа просто (как это делалось и в файл-серверной версии) перекачивает на локальный компьютер всю базу данных, вернее ее часть, и затем продолжает работу с локальной копией. Это с "внутренней" точки зрения, а внешне, для пользователя это выливается в те самые "тормоза" о которых пишут в конференции. Остается только надеяться, что со временем фирма "1С" доработает свои SQL-продукты таким образом, что функциональность SQL-сервера будет использоваться значительно более полно. В оправдание фирмы "1С" могу заметить, что программный продукт такой сложности всегда развивается постепенно - ведь если пытаться выпустить на рынок полностью "вылизанный" продукт высочайшего качества, то этого можно просто не дождаться. Все софтверные компании, выпускающие продукты высокой степени сложности идут именно по пути постепенного улучшения первоначально выпущенного продукта. Тот, кто пытается нарушить эту традицию обычно терпит крах на этом пути. Достаточно вспомнить историю с выпуском Windows 95 фирмой Microsoft: выпуск продукта все оттягивался и оттягивался, несмотря на многократные анонсы и переносы сроков, и в конце концов на рынок был выброшен недоработанный продукт. А уже потом были выпущены OSR1 и OSR2, однако продукт так и стался "сырым".

Теперь пора подвести некоторые итого. Не ждите, что SQL-системы будут работать быстро. Но они смогут работать там, где файл-серверный вариант не сможет, или же будет создавать существенные неудобства (удаленный доступ). Однако и обойдется это Вам не дешево.

Вот, пожалуй, и все. Надеюсь, что этот краткий обзор позволит Вам хоть немного сориентироваться в вопросе, что такое SQL и зачем он нужен.

06.09.1998г. Алексей Жедь.

© Copyright Alter Logo Ltd., 1998. All Rights Reserved.


1С-Предприятие. Документация. Статья | Маленькие хитрости администрирования баз данных программ семейства "1С-Предприятие"

Маленькие хитрости администрирования баз данных программ семейства "1С:Предприятие"

Владимир Козлов, ICQ/UIN 26870123

Введение

Очень часто в различных электронных конференциях по программам семейства "1С:Предприятие" попадаются вопросы, связанные с администрированием баз данных. Желание поделиться опытом, накопленным почти за три года работы и обкатанными приемами в данной области с одной стороны и природная лень - с другой (в смысле надоело раз от разу отвечать на одни и те же вопросы) и вызвало желание как-то систематизировать все это в одном - общедоступном месте. Все нижеизложенное касается программ сетевой файл-серверной версии 7.5 (на 7.7 и SQL я только вот-вот перейду), т.ч. в случае использования более старших версий (как и SQL версий) возможно потребуется некая адаптация кода : Кроме этого подразумевается, что читатель хотя бы поверхностно знаком с компьютерной техникой, сетями, c основами MS Windows и основами работы с программой "1С:Предприятие". Приводимый в прилагаемых конфигурациях код не "привязан" к какой-то отдельной компоненте программы (Оперативный учет, Бухгалтерия, Расчет), а потому может быть использован в любых конфигурациях.

Общие сведения (v.7.5)

Итак, вы распаковали увесистую желто-красную коробочку с логотипом 1С :, что же дальше? Как и какую вязать сеть, что для этого нужно и прочие технические вопросы мы здесь рассматривать не будем - это отдельная тема - предположим, что сеть уже есть : Также не будем останавливаться на процедуре инсталляции программы 1С, как правило здесь вопросов не возникает. Единственное, что хочется отметить - я бы не советовал производить "административную" установку программы (сугубо личное мнение, наверняка у меня тут же найдутся оппоненты). Проще установить программу локально каждому клиенту - мне кажется, что такой режим более "человечен" по отношению к сетевому трафику. Хочу сразу же предостеречь - для работы в сети каталог базы данных лучше разместить на специально отведенном для этих целей компьютере - сервере. По возможности не следует нагружать его еще чем-либо (типа MS Office), т.е. сделать "выделенным", также следует помнить, что тактико-технические характеристики данного аппарата напрямую влияют на комфортность вашей работы, поэтому жаться здесь не стоит. Что выбрать в качестве операционной системы для вашего сетевого файл-сервера базы данных? Однозначный ответ - ни в коем случае не Microsoft Windows 9X ! Дело в том, что у этих операционных систем существует ограничение на число одновременно открываемых файлов (1К: 1024) - в результате с таким "сервером" в сети смогут работать лишь несколько пользователей (конкретное количество зависит от числа файлов в конфигурации вашей базы). Лично я предпочитаю пользоваться системой Microsoft NT 4.0. Если вы уверены, что число клиентов вашей сети не превысит 10, то можно установить на сервер NT Workstation (большее число соединений ей просто не поддерживается), в противном случае не обойтись без NT Server. В качестве альтернативы для серверной системы можно использовать и Nowell Netware, но я с ней к сожалению (или быть может к счастью) не знаком, поэтому ничего посоветовать не могу : Также уже начали появляться первые восторженные отзывы об использовании долгожданной Windows 2000 (NT 5) в связке с 1С, но мне кажется не стоит торопить события, 17 февраля уже не за горами, поживем - увидим.

Для начала приведу ключи запуска программы из командной строки (как не странно, много раз с удивлением убеждался, что не всем они известны) :

1cv7.exe MODE [ /M | /D<Path> | /U<Path> | /N<Name> | /P<Pass> ],

где MODE - режим запуска, может принимать только одно из трех значений :

config - режим конфигуратора;

debug - режим отладчика;

enterprise - нормальный (рабочий) режим.

следующие ключи опциональны :

/M - запуск программы в монопольном режиме;

/D - каталог базы данных;

/U - рабочий каталог пользователя (каталог из списка пользователей игнорируется);

/N - имя пользователя;

/P - пароль пользователя;

Например при выполнении такой команды : 1cv7 enterprise /DD:\Dbase /NИванов /P123,

произойдет запуск программы без вывода диалогов о выборе базы и режима работы, а также без запроса имени и пароля пользователя.

Также хочу здесь остановиться еще на одном нюансе. В режиме кофигуратора в пункте меню "Файл" есть две команды : "Выгрузить данные" и "Загрузить данные" (не путать с командами "Сохранить/Восстановить" - это просто архивирование). Исходно они предназначены для переноса информационных баз между файл-серверной и клиент-серверной (SQL) версиями. Но у них есть одна приятная особеннось - в процессе выгрузки - загрузки производится верификация корректности исходных данных на уровне информационных объектов (т.е. констант, справочников, документов и пр.). Поэтому если в базе содержатся ошибки, появившиеся в процессе работы из-за сбоев оборудования или программы, при выполнении данной процедуры база с большой долей вероятности будет корректно восстановлена. Так что в процессе работы полезно периодически производить сие действие для уверенности в корректности данных (хотя данная процедура занимает порядка нескольких десятков минут - в зависимости от железа и объемов базы) - я обязательно выполняю ее раз в месяц. Кроме этого желательно почаще переиндексировать базу (особенно если есть документы, проведенные "задним числом") - напрочь сносим *.CDX и открываем базу в монопольном режиме, у меня это делается автоматически каждую ночь.

Поскольку все пользователи в сети работают с базой в режиме реального времени, то необходимо при включении клиентских компьютеров выполнять синхронизацию их таймеров с таймером сервера - у меня в автозагрузке на клиентах выполняется следующий командный файл :

@ECHO OFF

NET TIME \\Server /SET /Y

(здесь Server - сетевое имя сервера базы)

Подальше положишь - поближе возьмешь :

Регулярно выполнять резервное архивирование нужно обязательно, чтобы не было потом обидно за безвозвратно утерянные данные. Чем это делать - это вопрос скорее вкуса. Существует например специально "заточенная" под 1С программа "Хранитель" от ростовской фирмы "Гендальф" http://www.gendalf.ru/ , которая умеет делать массу полезных вещей, но мне она кажется слишком перегруженной для таких простых целей, я пользуюсь старым добрым RAR'ом. Архивировать следует только файлы базы *.dbf и сами метаданные (1cv7.dd/md), ну еще LOG-файл и ваши оригинальные файлы (если они есть). Сначала приведу содержимое нескольких командных файлов (расширение *.cmd работает только под Win NT, если используется Win'9X, то расширение должно быть *.bat):

ARCH.CMD

REM используемые каталоги (должны существовать)

REM D:\1C\DB - рабочая база

REM C:\Temp\DB - временная копия базы

REM C:\BACKUP - архив базы

REM \\Adm\Storage - резервный архив базы (на другом компьютере сети)

@echo off

; чистим временный каталог

Del С:\Temp\DB\*.*

; копируем в него архивируемые файлы рабочей базы (*.md,*.dd,*.log,*dbf)

Copy D:\1С\DB\1cv7* С:\Temp\DB

Copy D:\1C\DB\*.dbf C:\Temp\DB

; сохраняем предыдущую версию архива под новым именем

copy C:\BACKUP\db.rar C:\BACKUP\db0.rar

; создаем новый архив

rar.exe u -r -m1 -dh -std C:\BACKUP\db.rar С:\Temp\DB\*.*

if errorlevel 0 goto rpl

echo P_A_C_K_I_N_G___E_R_R_O_R__!

goto end

:rpl

; сохраняем копию архива в надежном месте

net use Z: \\Adm\Storage

copy C:\BACKUP\*.rar Z:

net use Z: /delete

:end

Выполнять сию процедуру можно не прерывая производственного процесса (никого из базы выгонять не надо), именно для этого мы архивируем не саму базу, а ее временную копию.

На этом все, осталось всего навсего запустить системную службу Sсhedule: Explorer-ControlPanel-Services-Schedule-Startup-Automatic (поддерживается только под Win NT, для Win'9X нужны специальные внешние утилиты) и набрать из командной строки что-нибудь аналогичное :

At 13:00 /Every:M,T,W,Th,F C:\COMMAND\arch.cmd

At 18:00 /Every:M,T,W,Th,F C:\COMMAND\arch.cmd

At 07:00 /Every:M,T,W,Th,F C:\COMMAND\shutdown /l /r /y /c

и все - мы имеем два раза в день автоматическое архивирование нашей базы, ежедневно - с понедельника по пятницу. По-моему просто и самодостаточно. Как часто нужно делать архивы - это зависит от интенсивности документооборота в вашей организации, я делаю два раза в день, т.ч. если что, то придется восстанавливать документы максимум за пол-дня (тьфу-тьфу):

Теперь о третьей строке в команде AT - в плане автоматизиции рутинных действий я пошел еще дальше, как я уже упоминал у меня каждую ночь производится реиндексация базы, для этого используется такой командный файл :

REINDEX.CMD

@echo off

; каталог базы

set db=D:\1С\DB

; каталог программы

set pr="C:\Program Files\1cv75\bin\1cv7"

; принудительно сносим индексы

del %db%\*.cdx /Q

; запускаем программу монопольно под "фиктивным" пользователем

%pr% enterprise /D%db% /M /NЧистяков /Pstart

Этот командный файл вставляется в папку автозагрузки на сервере, утилита SHUTDOWN.EXE (из Windows NT Resource Kit - это набор дополнительных сервисных утилит) производит перезагрузку сервера, для того чтобы по загрузке не нажимать магическую комбинацию из трех пальцев (Ctrl-Alt-Del) и не вводить пароль, а загрузить сервер автоматически, нужно подправить системный реестр NT (запустить из командной строки regedit.exe) :

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

"DefaultUserName"="YourProfileName"

"DefaultDomainName"="Comp"

"AutoAdminLogon"="1"

"DefaultPassword"="YourPass"

где YourProfileName - имя профиля администратора на сервере (по умолчанию Administrator), Comp - сетевое имя сервера, YourPass - пароль аминистратора на сервере (обязательно должен быть не пустым).

Итак подъитожим - в заданное нами время происходит автоматическая перезагрузка сервера с переиндексацией базы, для того чтобы программа по окончании переиндексации сама завершилась необходимо в глобальном модуле конфигурации предусмотреть некие нестандартные действия по обработке входа в программу исскуственного "фиктивного" пользователя (Чистяков - без пароля) - они приведены в демонстрационной конфигурации (архив Adm.rar).

В принципе никто не запрещает пойти еще дальше - и наряду с переиндексацией базы по ночам выполнять любые желаемые действия, например групповое перепроведение документов для восстановления границы последовательности или формирование "тяжеловесных" отчетов, с последующим сохранением их результатов в *.mxl файлах, рассылки прайсов по факсу или e-mail'у и т.д. Все ограничивается только вашей фантазией.

Уборка мусора в DBF-файлах

Идеология использования DBF/CDX-файлов построена таким образом, что при удалении объекта базы производится только пометка объекта как удаленного, физически же запись об этом объекте остается в базе в качестве "мусора". Если не предпринимать никаких специальных мер, то этот мусор копится, база пухнет, драгоценный сетевой трафик забивается зря. В принципе "уборку мусора" можно производить в конфигураторе через выгрузку-загрузку данных, но это не очень удобно, поскольку, как я уже упоминал выше, выполнение данной процедуры может требовать значительных временных затрат: Альтернативный путь - использовать для этих целей внешние утилиты, предназначенные для работы с DBF/CDX-файлами (например утилитка DBU.EXE из Clipper'а) тоже не очень хорош, т.к. обычно они не умеют работать с маской файлов (*.dbf), а "подсовывать" им по одному файлу из сотни - удовольствие ниже среднего.

В тоже время встроенный язык программ "1С:Предприятия" поддерживает соответствующий DBF-примитив (метод объекта Xbase Сжать()), поэтому я в свое время и написал на 1С небольшую конфигурацию, предназначенную исключительно для этих целей и пользуюсь ей регулярно до сих пор (раз в неделю). Кроме "чистки" базы в ней также попутно предусмотрена возможность использования стандартного внешнего архиватора WinZip/WinRAR для архивирования базы, собственно сама конфигурация в архиве Cleaner.rar , небольшое описание приведено в этом же архиве в файле Read.me.

Есть кто живой ?

Как известно, в состав сетевых версий программы 1С:Предприятие входит встроенная утилитка - монитор пользователей (пункт главного меню программы "Помощь", далее пункт меню "О программе" и кнопка "Монитор"), назначение ее очевидно - отображать кто в данный момент находится в системе, причем реализована она как внешнее приложение (..\1cv75\bin\usrmon.exe). В свое время, на ранних релизах версии 7.5 я столкнулся с крайне неудовлетворительной работой данной утилиты - либо безумно долго запускалась, либо вообще убивала систему. Но ведь вещь то нужная и я решил построить что-то аналогичное средствами 1С.

Идея проста - я завел новый справочник "Сеансы", у которого текстовое поле код - это имя пользователя, а наименование - текстовое представление времени входа в систему.

Далее, при входе каждого нового пользователя в программу создается новый элемент данного справочника, при выходе - соответстветствующий элемент уничтожается. Теперь для того чтобы узнать кто работает в программе, нам достаточно просто выбрать все элементы данного справочника и отобразить их в удобном виде. Подробный код, реализующий данный механизм можно найти во все той же демонстрационной конфигурациии - adm.rar.

Опять же, при таком подходе можно пойти дальше - добавить дополнительные поля в данный справочник и хранить в них все что заблагорассудится. К примеру, год назад у меня были проблемы с сетью, почти ежедневно кто-то из пользователей аварийно отваливался, нужно было как-то автоматически отслеживать кто именно. Я добавил к данному справочнику поле, в которое один раз в 15 минут для каждого пользователя записывалось текущее время (делалось это в глобальном модуле через процедуру ОбработкаОжидания(), т.е. если пользователь умирал, то запись соответственно не производилась). Перед каждой записью из элемента справочника считывалось предыдущее значение времени и если разница между ним и текущим значением времени превышала 18 минут (15 мин. + некий запас), то констатировался факт "смерти" пользователя с сохранением некролога в LOG файл. Это в свое время помогло съэкономить мне массу сил и нервов - не пришлось допрашивать с пристрастием бедных пользователей "А корректно ли вы сегодня закончили работу ?" и сверять результаты допроса с содержимым LOG-файла - подсчитывать для каждого пользователя число входов/выходов в/из систему/системы:

Как поняли, прием :

Часто бывает крайне полезно иметь под рукой средства интерактивного общения по сети, например, попросить всех "выйти вон" на 5 мин. для переиндексации базы, или пользователь просит меня открыть ему доступ для авансового резервирования товара (выписать счет на товар, который уже пришел, но еще не оприходован), в конце концов просто послать кого-нибудь куда подальше : Штатные средства, предназначенные для этих целей (WinPopUp и пр.) не всегда удобны - они должны быть установлены и запущены у всех клиентов - в общем морока.

Общеизвестно, что в типовых конфигурациях Торговли, по-моему начиная с Редакции 6, появился справочник "Блокнот", предназначенный именно для этих целей. Но моя реализация мне нравится больше, к тому же на момент ее написания - не только 6, но и Редакции 5 еще в помине не было. Ну а насколько я объективен - судить вам. Суть в следующем - есть справочник "Сообщения" со следующими полями : "Наименование" - адресат сообщения, "Запись" - собственно текст сообщения, "Прочитано" - флаг 1/0 (дошло до адресата или нет), "Кто" - отправитель сообщения и "ДВ" - дата и время отправки. Для каждого активного пользователя системы (опять же нам здесь пригодился справочник "Сеансы") каждые 30 секунд перебираются элементы справочника "Сообщения", в случае совпадения имени пользователя и значения поля "Адресат" и нулевого значения флага "Прочитано", выводится сообщение "Вам письмо!" и открывается соответствующая форма с текстом сообщения. По закрытии данной формы, что предполагает прочтение адресатом сообщения, флаг "Прочитано" автоматически устанавливается в 1. При выходе пользователя из системы все прочитанные им сообщения автоматически удаляются. Каждый "обычный" пользователь может послать сообщение только одному из пользователей, активных в данный момент. И только администратор (для себя любимого возможность) может послать сообщение для всех пользователей сразу. Такая организация кажется мне наиболее оптимальной исходя из соотношения сервисные возможности / загрузка трафика. Реализация приведена все в той же конфигурации - adm.rar.

Кому-то можно, кому-то нет :

Достаточно часто встречаются вопросы, а как производить авторизацию пользователей с одинаковым набором прав - скажем есть 5 менеджеров и желательно сделать так, чтобы доступ у каждого из них был только к своим документам. Это делается достаточно просто - при помощи предопределенных процедур глобального модуля ПриУдалении() и ПриОтменеПроведения(), все это совершенно очивидно из кода демонстрационной конфигурации adm.rar, поэтому задерживаться на этом не буду. Еще один момент - мне кажется довольно удобным, когда каждому пользователю соответствует свой цифровой префикс (точнее его часть) в нумерации документов (конечно же при условии, что пользователей не очень много). Механизм реализации этого можно посмотреть там же :

Ссылки на полезный софт (всякие всякости)

Поскольку все наши данные хранятся в формате DBF/CDX, очень часто бывает полезно, а порой и просто необходимо средство для просмотра / редактирования данных на уровне файлов. Таких утилит существует множество, единственный недостаток - не все из них умеют сами разбираться с перекодировкой ANSI-OEM (да еще и с кириллицей), в этом смысле самая на мой взгляд удобная - это DBFView от фирмы "Гендальф", скачать ее можно совершенно бесплатно здесь: http://www.gendalf.ru/DOWNLOAD/wDBFview.zip

Теперь остановимся подробнее на собственно средствах системного сетевого администрирования. Их сейчас появилось очень много, поэтому здесь я упомяну только те, с которыми я сам постоянно работаю и которые мне нравятся. Начну пожалуй со своей любимой программы Hyena от фирмы "Adkins Resource Inc." http://www.asdkins-resource.com/. Пожалуй проще перечислить чего она не умеет, чем наоборот : С ее помощью вы сможете получить полный доступ к локальным дискам клиентов, просматривать журналы событий на компьютерах сети, запускать и останавливать service'ы на клиентах, изменять их права, ну в общем почти все что может придти в голову. В общем настоятельно ее рекомендую. Да, стоит упомянуть, что как и положено, работает она только с Windows NT 4 / 2000, т.ч. любителям Windows 9X можно не беспокоиться. Достойны также пристального внимания продукты, предназначенные для целей сетевого администрирования фирмы "Aelita Software" http://aelita.net/. Их целый ряд, на мой взгляд наиболее полезны MultiReg - средство для удаленного редактирования системного реестра клиента, EventAdmin и Journal - база данных для накопления и последующего анализа системных журналов событий на клиентских машинах, ну и пожалуй еще ERDisk - утилита для создания копий загрузчиков и системных файлов сетевых клиентов (в случае "Blue Screen of Death" - это первое и, пожалуй единственное средство). Все эти продукты также поддерживают только Windows NT.

В последнее время появился целый ряд программ для полного удаленного доступа к сетевым компьютерам. Собственно Norton pcAnywere создан давно и достаточно хорошо известен, но он не является лучшим продуктом этого класса. Я экспериментировал с двумя аналогичными программами - это WinOp (отдельное большое спасибо BigHarry) фирмы "Danware A/S" http://www.danware.com/ и Remoute Administrator нашего соотечественника Дмитрия Зноско http://www.famatech.com/, функциональные возможности у них примерно одинаковые, но первая мне нравится больше, мне показалась, что она более разумно обходится с сетевым трафиком, т.ч. я работаю с ней. Что же она умеет, а почти все - поддерживает все сетевые протоколы от Microsoft, включая MSDN и модемный Dial-Up (чуствуете какие перспективы открываются для ленивых админов!). Программа состоит из двух компонент - host (устанавливается на клиентов) и guest (ставится на компьютер администратора). Причем клиентская часть под WinNT может устанавливаться как service в stealth-режиме, абсолютно прозрачно для клиента. При запуске guest'а и подключении к клиенту вы видите на своем мониторе его экран, ваши клава и мышь работают как клиентские, т.е. доступ действительно полный ! Более того, вы можете погасить экран клиента, заблокировать его клаву и мышь и даже удаленно перезагрузить его компьютер : Есть еще такие вещи как chat, файловый обмен и пр. В общем штука чрезвычайно полезная. Работает быстро и надежно (и кстати поддерживает Windows 9X/3.1). Единственное хочу предостеречь от злоупотреблений - трафик то не резиновый, т.е. пользоваться ей нужно только тогда, когда это действительно необходимо.

Итак подъитожим - используя все эти средства у сисадмина появляются реальные возможности для проведения своего рабочего времени целиком у родного компьютера, беготня по клиентам канула в лету :

Ну и напоследок хочу привести несколько полезных ссылок на различные FAQ'и по Windows NT :

http://www.ntfaq.com/ - это классика, FAQ от John Savill (кстати там есть и локальный вариант, т.е. можно скачать файл (html/hlp/txt) и штудировать его в off-line), здесь можно найти ответы на абсолютно любые вопросы;

http://www.pvv.spb.ru/ - очень приятный и полезный для любого компьютерщика русский FAQ по Windows 9X/NT/2000 от Владислава Пестова, настоятельно рекомендую;

http://windowsnt.miningo.com/mlibrary.htm - это просто огромный каталог всего (ресурсы, публикации, ссылки на сайты и т.д.), что связано с WinNT.

Владимир Козлов ( mailto:stm62@comset.net ICQ/UIN 26870123)

Санкт-Петербург,

январь 2000

КЛУБ ПРОФЕССИОНАЛОВ "1С"


1С-Предприятие. Документация. Внедрение | Этапы внедрения. шаг за шагом (Фирма 1С-РАРУС)

Этапы внедрения: шаг за шагом (Фирма 1С-РАРУС)

Россия, Москва, 125267, ул. Чаянова д. 15, корп.5, 10 этаж, тел. (095) 250-6383 факс (095) 250-6393

Цель данной книги - написание инструкции, с помощью которой сотрудники франчайзинговой фирмы могут провести весь процесс внедрения, встретив при этом минимум проблем и сложностей. Вполне естественно, что поставленная цель не может быть выполнена в первом же издании. Однако мы постарались изложить материал максимально подробно и доступно.

Далее будут рассмотрены все аспекты взаимодействия фирмы-франчайзи вначале с потенциальным, а потом с состоявшимся клиентом.

На протяжении всей книги будут рассматриваться только I программы семейства «1С:Предприятие 7.х» и не будет остановлено внимание на системе «1С: Бухгалтерия 6.0». Это связано с тем, что доля вновь продаваемых продуктов этой версии уменьшается с каждым днем и основная масса внедрений приходится именно на платформу «1С:Предприятие». При этом необходимо отметить, что объем работ, связанных с поддержкой этой системы, уменьшается медленно. Это наглядно было видно в январе 2000 года - очень большое количество людей пришло за обновлениями.

Входящая информация

Вся деятельность фирмы-франчайзи, связанная с внедрением, начинается с получения входящей информации. Мы уверены, что от полноты информации, полученной во время первого контакта, зависит очень многое.

Что необходимо узнать

При самом первом контакте необходимо узнать минимум информации, который поможет подготовиться к дальнейшему разговору с клиентом, правильно понять бизнес клиента, определить для себя объем работ, выделить наиболее интересные для клиента особенности у того продукта (или продуктов), которые Вы ему хотите предложить. Более подробно эту проблему (особенно по перечню задаваемых вопросов) можно посмотреть в главе 3.2.1 книги [I].

Далее мы разделим информацию на обязательную, и крайне желательную информацию. Без крайне желательной информации можно обойтись при первом разговоре (контакте). К обязательной информации относится:

· название фирмы;

· отрасль деятельности;

· ФИО и должность человека, с которым Вы разговаривали;

· контактные телефоны;

· специфические особенности - например, если Вы разговариваете с представителем какого-либо магазина, то такой специфической особенностью будет наличие в магазине ККМ и POS-терминалов;

· что хочет потенциальный заказчик (обучение, настройка, комплексное внедрение).

Желательная информация, которую можно и не получить во время первого контакта (встречи):

· пользуются ли они уже продуктами «1С», если «да», то какими;

· пользуются ли они другими учетными системами, если «да», то какими;

· чем не устраивает существующая система учета потенциального клиента;

· каковы особенности в учетной схеме предприятия клиента.

Следует также понимать, что зачастую просто невозможно выяснить всю информацию при первом контакте с потенциальным клиентом. Причем финансовая информация о деятельности клиента получается гораздо сложнее, чем какая либо другая. Эта информация нужна нам для оценки той суммы, которую может заплатить клиент за выполнение работ. В этом случае приходится пользоваться косвенными данными о деятельности клиента, такими как:

· данные по фирме такого же профиля;

· точные или оценочные данные по объему продаж фирмы;

· точные или оценочные данные по объему оказываемых услуг;

· какие либо данные, которые доступны Вам, и по которым можно оценить бизнес клиента.

Более подробно о правилах оценки можно посмотреть главу 3.2.3 книги [I].

Варианты входящей информации

Всю поступающую в фирму-франчайзи информацию можно условно разделить на три основных канала: телефонный звонок, письменное обращение, контакт на выставке. Ниже мы более подробно рассмотрим каждый из каналов получения информации.

Необходимо отметить один аспект, общий для всех случаев общения с клиентом: вежливость. Вне зависимости от Вашего настроения, загруженности, наличия неприятностей и т.д., разговор с клиентом должен быть предельно вежливым и доброжелательным. Всегда действуйте по поговорке - «относись к людям так, как хочешь, чтобы они относились к тебе».

Телефонный звонок

Самый распространенный способ получения первичной информации от клиента.

Основная задача сотрудника во время первого телефонной разговора: получить от клиента информацию по «обязательному» перечню вопросов и договориться о встрече с ним или дате и времени следующего телефонного разговора.

Необходимо помнить о том, что клиент позвонил не просто так, ему что-то интересно из того перечня работ/услуг, который предлагает Ваша фирма. В процессе разговора необходимо выяснить, что интересует клиента и не отходить от темы разговора, стараясь предложить ему смежные продукты и услуги.

Идеальным окончанием телефонного разговора с клиентом является просьба клиента выписать ему счет или заключить договор на необходимые программы/услуги. Однако хорошим результатом является достижение договоренности о проведении демонстрации продукта в офисе фирмы или на территории клиента.

Письменное обращение

К письменному обращению мы относим письмо по электронной почте. Такое письмо может возникнуть в нескольких случаях:

· по адресу на Вашей визитной карточке (подразумевается наличие адреса электронной почты на визитных карточках сотрудников);

· после посещения Вашего Web-сайта. В этом случае письмо придет либо на обобщенный адрес фирмы (например, таким адресом у «IC-Papyca» является адрес lc@rarus.ru), либо на адрес сотрудника (или подразделения), отвечающего за то или иное направление деятельности;

· предложение участия в тендере на автоматизацию какого-либо предприятия;

· разрешение какой-либо проблемы.

Письмо сотруднику

Отвечать на письма необходимо всегда. При ответе на письмо дует всегда подписываться, причем из Вашей подписи люди могли четко представить, как связаны отвечающий сотрудник и тема данного вопроса. Например, если приходит вопрос по системе «1С-Рарус:Фармацевт», то в качестве подписи необходимо написать «С уважением, Плякин Александр, разработчик системы».

Обращение по электронной почте

Следует сказать несколько слов о Web-сайте компании. Хорошо спроектированный и оформленный Web-сайт может заменить демонстратора в продажах некоторых продуктов (особенно это касается ТОР).

Но даже если после просмотра Web-странички клиент не покупает продукт, то он может задать вопрос, положительный ответ на который явится для него (клиента) безусловным стимулом к покупке продукта.

Документация для участия в тендере

Тендеры появляются в тех случаях, когда фирма, желающая автоматизировать свой учет, хочет получить максимально выгодное для себя решение. В этом случае объявляются условия тендера (например, сроки и стоимость всего внедрения) и срок подачи документации. После этого фирма-организатор тендера анализирует поступившие предложения и выбирает наиболее оптимальный для себя вариант предлагаемых услуг.

Для успешного участия в тендерах необходимо иметь комплект документации, которая предоставляется фирме-организатору тендера. Более подробно остановимся на этом комплекте. Документация для тендеров должна состоять из трех обязательных разделов и одного дополнительного раздела. Обязательные разделы обычно остаются неизменными в любом тендере, в то время как дополнительный раздел изменяется в каждом тендере. Ниже приведены три обязательных раздела:

· подробная информация о фирме;

· подробная информация о продукте (или продуктах), предлагаемых для участия в тендере;

· информация о успешно выполненных внедрениях, которая поможет клиенту убедиться в способности фирмы хорошо выполнить работу.

Последняя, четвертая, часть тендерной документации должна содержать в себе информацию о том, насколько предлагаемый продукт (продукты) и услуги Вашей фирмы соответствуют требованиям, выставляемым фирмой-организатором тендера.

Контакт на выставке

Выставка - хорошее место для получения клиентов. Для нормальной работы необходимо соответствующим образом оборудовать стенд. Подробнее об этом смотри главу 5.2 книги [I].

Необходимо четко проинструктировать сотрудников о необходимости максимально эффективно использовать свое рабочее время на протяжении всей выставки. Важно эффективно построить разговор: быстро определить, что ищет посетитель на выставке, быстро и четко принять решение, можно ли помочь посетителю на стенде компании, или подсказать, кто на выставке предлагает то, что нужно посетителю. Если стенд компании полезен посетителю, сотрудник должен оперативно подвести посетителя к нужному сотруднику либо самому провести презентацию.

Кроме того, выставка - это мероприятие, когда на ограниченном пространстве (стенд) собраны ведущие сотрудники Вашей фирмы по всем направлениям деятельности, демонстрационные версии программного обеспечения и стендовые экземпляры оборудования. Следовательно, Вы можете квалифицированно ответить практически на все вопросы клиента непосредственно на стенде.

Следует отметить еще несколько аспектов работы внедренческой фирмы на выставке:

· все сотрудники, которые работают на стенде, должны:

· уметь быстро определить, что интересует посетителя Вашего стенда;

· знать перечень продаваемых фирмой программных продуктов;

· знать сотрудников, ответственных за то или иное направление автоматизации или тот или иной продукт;

· знать в каком месте стенда посетителю могут ответить на интересующий его вопрос и показать тот или иной продукт.

· перед проведением выставки необходимо провести тренинг тех сотрудников, которые будут работать на стенде. В качестве полезного методического материала можно использовать книгу [З].

Обработка контакта

После получения первоначальной информации необходимо ее обработать. Результатом обработки должны явиться два основных момента:

1. Мы дальше отрабатываем этот контакт?

2. Если мы его отрабатываем, то КТО это делает.

Несмотря на кажущуюся парадоксальность первого вопроса, он достаточно важен. Фирма-франчайзи может не взяться за заказ по нескольким причинам:

· отсутствие ресурсов - в данный момент времени сотрудники, специализирующиеся на этом направлении, заняты на другом заказе, а больше таких специалистов нет;

· недостаточно опыта - Ваша фирма никогда не занималась автоматизацией определенного сегмента учета, а заказчик очень ответственный и нельзя ставить на нем эксперименты;

· не договорились об оплате услуг;

· после первой беседы с потенциальным клиентом выяснилось, что Ваши услуги не требуются: клиент искал другую систему (сроки, условия работы и т.д. и т.п.).

Распределение обращений по профилю

После того, как принято решение о том, что мы будем выполнять работы у данного клиента, необходимо распределить работу между специализированными подразделениями (или сотрудниками) компании. При таком распределении следует считать «профилем» не только отраслевую специфику (например, автоматизация автотранспортных предприятий, компаний, занимающихся работой, с ценными бумагами), но и распределение по компонентам системы программ «1С:Предприятие».

Очевидно, что специализированное подразделение (сотрудник) компании должен получать профильный заказ в первую очередь.

Рассматривая специализацию сотрудников по компонентам необходимо помнить о том, что очень неплохо иметь сотрудников, которые знают несколько продуктов. Тогда в периоды пиковой нагрузки для какого-либо продукта (это начало и конец года для «1С:Зарплата и кадры», конец квартала для «1С:Бухгалтерии» и т.д.) можно будет переориентировать такого рода универсалов на соответствующий продукт и тем самым обеспечивать клиентов услугами.

Комплексная автоматизация

Принимая решение о комплексной автоматизации предприятия нужно в обязательном порядке решить для себя ряд вопросов:

· кто будет создавать техническое задание?

· кто будет руководить внедрением у данного клиента?

· какие сотрудники будут реализовывать техническое задание и соответствует ли их квалификация уровню договора?

Следует обратить особое внимание на создание технического задания. От качества технического задания зависит успех и качество выполнения всей автоматизации.

При работе нескольких сотрудников над комплексной автоматизацией предприятия необходим сотрудник, который будет отвечать за весь процесс внедрения, и который будет иметь| полномочия требовать с подчиненных ему сотрудников выполнения| планов работ.

Конфигурация на базе системы программ «1С: Предприятие»

Система программ «1С: Предприятие» (локальная, сетевая, SQL-серверная)

Сетевая операционная система (Windows NT, Novell NetWare)

Принятие решения о составе системы и подготовка коммерческого предложения

От выбора состава всего комплекса (как программной, так и аппаратной составляющих) зависит качество и скорость выполняемых у клиента работ. Поэтому очень важно до начала работ у клиента определиться, на каком ПО и с каким оборудованием мы будем работать.

Будем разделять программное обеспечение «1С» и программное обеспечение сторонних производителей (Microsoft, Novell и т.д.). Фактически необходимо рассматривать структуру, приведенную на рисунке:

Программное обеспечение

При выборе программного обеспечения для построения информационной системы у клиента, необходимо определиться с двумя основными моментами: какая платформа фирмы «1С» будет использоваться, и какая конфигурация будет работать на этой платформе. Фактически выбор серверной части системы зависит от сложности конфигурации и количества рабочих мест в сети.

При определении, какая платформа фирмы «1С» будет использоваться в нашей системе, следует принимать во внимание следующие замечания:

если количество рабочих мест, работающих одновременно, более 7-10 - должна использоваться SQL-серверная версия платформы (следовательно, сетевая ОС - Windows NT Server);

если планируемых размер базы данных более 400-500 МБайт - должна использоваться SQL-серверная версия платформы (следовательно, сетевая ОС - Windows NT Server);

если важна надежность базы данных (причем минимальный размер базы не играет роли), то следует использовать SQL-серверная версию платформы как более надежное решение;

если не планируется использование выделенного сервера, то не рекомендуется использовать более 3 рабочих станций, при этом в качестве операционной системе на «сервере» следует использовать Windows NT Workstation.

(Данная рекомендация обусловлена тем, что ОС Windows 9х имеет ограничение в 1024 открытых «через сеть» файла. ОС Windows NT Workstation не имеет таких ограничений.)

во всех остальных случаях следует использовать файл-серверную версию платформы

если планируется использовать файл-серверную версию платформы, то рекомендуется ставить операционную систему Novell NetWare.

Таким образом мы видим, что ключевое влияние на состав всей информационной системы оказывает выбор варианта системы программ «1С:Предприятие». Следовательно, необходимо начинать комплектацию информационной системы именно с выбора варианта системы «1С:Предприятие».

Обязательно надо следовать следующему правилу - сетевое программное обеспечение должен устанавливать специалист (желательно сертифицированный соответствующей фирмой). Соблюдение этого правила дает гарантию устойчивой работы всего программно-аппаратного комплекса.

Следующий шаг, который нужно рассмотреть при комплектовании информационной системы клиента – конфигурация, которая будет обслуживать бизнес-процессы клиента. Можно выбирать из трех различных вариантов конфигураций: типовые (идут вместе с коробкой), отраслевые конфигурации третьих фирм и заказные решения.

Типовая конфигурация

С точки зрения клиента это наиболее экономное и простое решение. К типовым конфигурациям без проблем подходят все исправления и обновления, выпускаемые фирмой «1С». Это решение, с которым можно начинать работать сразу после установки программы на компьютер. Типовые конфигурации «1С» решают основные учетные проблемы, возникающие на небольших предприятиях.

Резюме. Типовые конфигурации подходят для небольших фирм, ведущих типовой учет и не имеющих сильно выраженной отраслевой специфики. Характерным является также тот факт, что используется, как правило, локальный компьютер, либо небольшая локальная сеть, чаще всего с невыделенным сервером.

Отраслевые конфигурации

Прежде всего, попробуем определить, что же такое «отраслевая конфигурация». На мой взгляд, будет уместным такое определение этого продукта:

Отраслевая конфигурация (или типовое отраслевое решение - TOP) – это конфигурация, специально написанная для удовлетворения потребностей учета в определенной сфере деятельности, учитывающая специфику учета отрасли в целом, и не отражающей специфику какого-либо конкретного предприятия.

Как следует из определения, основное предназначение ТОРа – учет отраслевой специфики. Из этого следует, что ТОР необходимо выбирать тогда, когда у клиента есть четкая отраслевая специфика (например, торговля медикаментами или розничная торговля с применением различного торгового оборудования). На данный момент (15/02/2000 г.) существует большое количество (только в прайс-листе фирмы «1С» их насчитывается 27) отраслевых решений выпущенных различными фирмами-франчайзи и самой фирмой «1С». Эти решения охватывают достаточно большой спектр отраслей, начиная с расчета заработной платы для «1С: Бухгалтерии 6.0» и заканчивая реализацией интернет-магазина для «1С:Предприятия 7.5/7.7». Полный список отраслевых решений, сертифицированных фирмой «1С» можно найти в [2].

Перечислим основные преимущества ТОР:

· приобретается не только готовая конфигурация, но и определенная система знаний по тому, как вести автоматизированный учет в данной отрасли;

· проделана большая работа по формированию системы учета, отвечающая заданной отраслевой специфики;

· затраты на доводку ТОР меньше (а иногда значительно), чем затраты на доработку типовой конфигурации фирмы «1С».

Резюме. ТОР подходят для фирм, которые имеют выраженную отраслевую специфику. В этом случае разумно подобрать для клиента готовый ТОР (если он есть) и затем доработать его. Компьютерная сеть может варьироваться от простого компьютера до мощной сети с несколькими серверами. Возможно использование SQL-серверной версии платформы «1С:Предприятие».

Заказная конфигурация

Это самый сложный вариант при выборе конфигурации нашей системы. При создании заказной конфигурации обязательным является проведение создание технического задания, в котором будут учтены все нюансы и аспекты деятельности автоматизируемого предприятия. По нашему опыту, объем технического задания может варьироваться от пяти до 300-500 страниц текста. Понятно, что основой для заказной конфигурации может быть:

· типовая конфигурация фирмы «1С»;

· любой ТОР;

· ни один из вышеперечисленных пунктов, т.к. конфигурация будет создаваться «с нуля».

Причем в любом случае основой может служить не одна, а несколько конфигураций. Например, конфигурации «1С-Рарус: Производство» и «lC-Papyc:GAAP», могут использоваться для автоматизации производства, в котором есть доля иностранного капитала.

Следует четко определить схему оплаты при создании заказной конфигурации. Подробно этот аспект внедрения рассмотрен в главе 3.6 книги [I].

Резюме. Данный метод характерен для предприятий, обслуживание которых либо не укладывается в готовые решения, либо являются комбинацией готовых решений с существенной доработкой. Компьютерная сеть почти всегда имеет выделенный сервер. По опыту «IC-Papyc» достаточно часто в таких случаях применяется SQL-серверная версия «1С:Предприятия».

Аппаратное обеспечение

После определения конфигурации программного обеспечения необходимо определить, на каком аппаратном обеспечении будет работать наш комплекс.

Следует отметить, что для нормальной работы всей системы в целом заказчику не следует чрезмерно экономить средства на приобретении аппаратного обеспечения. Разумно напомнить клиенту, что существует не только стоимость приобретения (средства, которые мы платим в момент покупки), но и стоимость владения (средства, которые клиент тратит на поддержание работоспособности того, что мы купили). Излишне занижая стоимость приобретения, клиент с большой вероятностью теряет большие суммы во время владения оборудованием. Причем эти суммы не всегда выражены деньгами, они могут быть выражены бессонными ночами сетевого администратора, который пытается заставить работать компьютерную сеть, поседевшим главным бухгалтером, у которого «упала» база в тот момент, когда он наконец-то свел годовой баланс и т.д. и т.п.

Наш опыт показывает, что, приобретая качественное аппаратное обеспечение, клиент экономит силы и средства в первую очередь себе, а затем фирме, которая занимается обслуживанием его системы.

Очень сложно давать какие-то конкретные рекомендации по конкретным именам фирм, поставляющим оборудование, следует отметить лишь тот факт, что оперативная память, жесткие диски и сетевые карты должны быть только от проверенного производителя. Ибо именно эти компоненты компьютеров оказывают наибольшее влияние на стабильность работы Вашей сети.

При определении конфигурации компьютеров, на которых будет функционировать Ваша система, необходимо помнить о том, что требования одновременно работающих на компьютере приложений суммируются (особенно это показательно на примере размера оперативной памяти). В заключении можно дать ряд рекомендации по минимальным характеристикам рабочих станций и серверов для построения Ваших сетей.

Режим работы | Конфигурация
Рабочая станция | Минимум: Celeron 300/32Mb Рекомендуется: Pentium II-400/64 Mb*
Сервер для Novell NetWare | Pentium II-400/128 Mb/два SCSI жестких диска емкостью >10 Gb в режиме зеркального отображение
Сервер для SQL Server | 2xPentium II-450/192 Mb/два SCSI жестких диска емкостью >17 Gb в режиме зеркального отображение

* - рекомендуется как рабочая станция с расширенными возможностями.

При подборе рабочих станций в сети следует помнить о том, что все станции должны быть примерно одинаковой производительности, в противном случае вся Ваша сеть будет работать по скорости наименее производительной рабочей станции. Причем особенно это будет заметно в случае работы файл-серверной системы.

Кроме того, настоятельно рекомендуется оснащать все компьютеры, которые работают с системой, источниками бесперебойного питания (ИБП). Если не получается установить ИБП на все компьютеры, работающие с системой, то их обязательно необходимо поставить компьютеры, играющие роль серверов.

При выборе компьютеров для построения сети неплохую помощь оказывает система сертификации оборудования, которое проводит фирма «1С». Для систем, основное предназначение которых -работать с продуктами фирмы «1С», крайне желательно выбирать только сертифицированное оборудование.

Практически любой сервер, который работает с базами данных, должен обладать устройствами резервного копирования. В самом дешевом варианте это могут быть устройства типа iomega ZIP или аналогичное устройство. При повышении объема хранимой информации Вы можете поставить более мощное устройство резервного копирования.

В заключении хочется сказать о том, что при выборе всего комплекса программно-аппаратных средств необходимо исходить не из соображений «моды и престижа» или экономии денежных средств, а из соображений оптимального соотношения «цена/производительность» и надежности получившейся системы в целом.

Коммерческое предложение

Итак, мы сформулировали (в варианте «для себя»), какая система должна быть у клиента. Теперь необходимо показать это клиенту. Пример коммерческого предложения можно найти в приложении 7.2 книги [I].

Отметим, что в коммерческом предложении должно быть подробно описано, как мы работаем, почему мы рекомендуем выбирать именно то, что написано в коммерческом предложении.

Непосредственная работа с клиентом

Общение с клиентом

При работе с клиентом сотрудник обязан выполнять ряд правил. Соблюдение данных правил уменьшает количество конфликтных ситуации у клиента, приводит к более продуктивному сотрудничеству клиента и Вашего сотрудника.

Ниже. эти правила будут подробно рассмотрены.

Внешний вид

Сотрудник, работающий с клиентом, должен выглядеть так, чтобы не создавать дискомфорта при общении с собой. Одежда должна быть чистой и выглаженной, ботинки должны быть начищены, человек должен быть причесан, аккуратно побрит. В целом можно сказать, что человек должен выглядеть так, как его ожидает увидеть клиент. Если в организации принят свободный стиль одежды, то допустимо прийти в джинсах. Если у заказчика принято ходить в костюме, то также правильно будет одеть для визита к нему деловой костюм.

Нормы общения

При общении с клиентом необходимо соблюдать определеные нормы общения.

Когда Вы или Ваш сотрудник встречается с клиентом, всегда необходимо представиться. Обязательно дайте сотрудникам клиента свою визитную карточку. Если Вы не уверены, как общаться с сотрудником клиента, то задайте ему вопрос об этом: «Извините, как Вам удобнее, чтобы я Вас называл - на «ты» или на «Вы»?». При этом всегда скажите, как удобнее называть Вас. Если вы не считаете возможным задавать такой вопрос, то правильно будет называть собеседника на «Вы».

Запрещается повышать голос на клиента.

Речь не должна содержать непонятных обеим сторонам жаргонных слов и выражений. Если Вам что-то непонятно в словах клиента, вежливо попросите его объяснить термин.

Никогда не надо опасаться лишний раз поблагодарить Вашего собеседника за предоставленную информацию или за проведенную беседу.

Соблюдение расписания

При непосредственной работе с клиентом, сотрудник всегда договаривается с клиентом о времени звонка или своего визита. Не допускается опоздание без уважительной причины или пропуск встречи (это просто ужасно).

Если Вы видите, что опаздываете на встречу, то практически всегда можно перезвонить клиенту и извиниться за свое опоздание. Всегда спросите клиента, удобно ли ему перенести встречу на время Вашего опоздания. Если неудобно, то попытайтесь назначить встречу на другое время. На перенесенную встречу опаздывать (а тем более пропускать ее) нельзя ни в коем случае!

В случае если Вы не можете встретиться с клиентом в оговоренное время, то обязательно позвоните ему, извинитесь, если возможно, то назовите причину, по которой Вы не можете выполнить Вашу договоренность и постарайтесь перенести встречу на другое время (причем в назначении времени приоритет остается за клиентом, как за пострадавшей стороной).

Из всего вышеперечисленного следует, что у сотрудника, работающего с клиентом всегда должен быть контактный телефон ответственного сотрудника клиента. Крайне желательно, чтобы Ваш сотрудник знал не только офисный номер телефона, но и мобильный (пейджер) номер клиента для экстренной связи.

Если у сотрудника есть пейджер, то клиент всегда должен знать номер пейджера сотрудника (сотрудников), которые у него работают.

Внедрение

Все работы у клиента можно разделить на две достаточно большие группы работ: работы «по часам» и работы «по перечню работ». Более подробно с принципами разделения можно познакомиться в главе 3.5 книги [I]. Здесь мы остановимся на ключевых моментах работы по тому или иному принципу у клиента.

Перед началом работы у клиента, сотрудник обязан точно знать, на каких условиях он работает у заказчика (обязательно знать условия оплаты - «по часам» или «по перечню работ», какой объем работ необходимо выполнить, какое подразделение мы автоматизируем и т.д.). Однако совершенно нет необходимости посвящать сотрудника в финансовые тонкости договора (сумма договора, условия оплаты и т.д.). Если Вы проводите крупное внедрение, то обязательно должен быть сотрудник, который руководит работами, и через которого решаются все ключевые вопросы с клиентом.

Если оплата данного внедрения ведется «по часам», то необходимо, чтобы сотрудник вел листы учета рабочего времени. Без этого будет невозможно выставлять счета на оплату рабочего времени специалиста.

Если внедрение ведется по «перечню работ», то следует строго выполнять последовательность этапов при внедрении:

· предварительные переговоры;

· подготовка технического задания;

· внедрение системы;

· обучение и сопровождение готовой системы

Соответствующие формы документов (коммерческое предложение, договор на внедрение по часам, договор на создание перечня работ и плана-графика, договор на внедрение по перечню работ, акт приемки-сдачи работ и договор на сопровождение) Вы можете найти в главе 7 книги [I]. Исключение составляет лист учета рабочего времени, который не приводится в книге [I]. Форма этого документа приведена в главе 0 данной книги.

Если в фирме выделен специалист, который руководит процессом внедрения у данного заказчика, то все документы (кроме финансовых) подписывает этот специалист. В сферу его ответственности также входит решение большинства организационных и технических вопросов, связанных с выполнением работ у клиента. К таким вопросам относятся:

· разрешение конфликтных ситуаций;

· подписание промежуточных актов выполненных работ;

· согласование и подписание технического задания (или перечня работ);

· принятие решения о дополнительных (к объему технического задания) работах и определения их статуса - платные или бесплатные. Если работы платные, то происходит согласование содержания работ, сроков их выполнения и объемов дополнительных платежей.

Если на каком-то внедрении нет такого выделенного специалиста, то решение об объеме дополнительных работ принимает непосредственно тот сотрудник, который выполняет работы у заказчика, после обязательной консультации с руководителем подразделения, в котором он работает.

Обучение

Обучение является очень важным этапом во всем процессе внедрения. Фактически обучение начинается после того, как клиенту установлена система и он начинает работать на ней. Правильно и качественно проведенное обучение является залогом успешной и надежной работы системы.

Необходимо помнить о том, что без наличия лицензии на образовательную деятельность нельзя упоминать о самом факте обучения. В этом случае разумно говорить об оказании консультационных услуг, связанных с каким-либо программным продуктом.

Основными этапами обучения являются:

· план занятий - должен быть составлен до начала обучения, с ним должны быть ознакомлены обучаемые сотрудники заказчика;

· график занятий - должен быть составлен до начала обучения, с ним должны быть ознакомлены обучаемые сотрудники заказчика. Нарушение графика не приветствуется;

· методические материалы - в них должны быть описаны ключевые моменты системы, по которой проводится обучение. Очень хорошим вариантом будет включение в методические материалы FAQ по продукту. Целесообразно предоставление Руководства, специально написанного для данного клиента (разумеется, если это оговорено заранее).

· аттестация после проведения обучения является дополнительным механизмом контроля качества того, как сотрудники заказчика поняли принципы работы системы. Только после прохождения аттестации можно допускать сотрудника заказчика к работе с системой.

Подписание акта сдачи-приемки

Подписание акта приемки-сдачи работ - очень важный этап, который недооценивается многими сотрудниками.

Необходимо довести до сознания сотрудников, что работа закончена тогда и только тогда, когда деньги пришли на расчетный счет или в кассу и подписаны все документы со стороны заказчика (в частности - акт приемки-сдачи работ). Если не подписан акт, то заказчик вправе предъявлять претензии по уже закрытым (с точи зрения сотрудника!) работам, и бывает очень тяжело объясни заказчику, что это уже другие работы, за которые надо платить новому.

Сопровождение

В последнее время все большее и большее количество клиентов требуют, чтобы фирма-франчайзи сопровождала своих клиентов после окончания работ.

Сопровождение бывает двух видов: по договору и без договора. Кроме того, на фирме-франчайзи обязательно должна быть линия консультации, которой бесплатно могут пользоваться клиенты фирмы. Далее мы подробнее рассмотрим каждый вид сопровождения.

Более подробно документацию по сопровождению можно найти в главе 3.2.5. книги [I].

По договору

Сопровождение по договору. В этом случае клиент заключает с фирмой-франчайзи договор, по которому обязуется платить ей каждый месяц фиксированную сумму, в рамках которой сотрудники фирмы-франчайзи приезжают к клиенту определенное число раз в месяц и проводят закрепленные договором регламентные работы.

При этом фирма-клиент не имеет права обслуживать свою систему силами третьих лиц или организаций (даже собственных IT-специалистов). В случае возникновения нештатной ситуации фирма-франчайзи гарантирует выезд сотрудника в течение фиксированного отрезка времени (например, 4 часа).

Если в процессе обслуживания возникают дополнительные (по отношению к оговоренным в договоре) работы, то они оплачиваются по текущим ставкам фирмы-франчайзи.

Резюме. Данный метод обслуживания подразумевает абонентскую плату, регулярное появление сотрудника у клиента для проведения. регламентных работ, фиксированное время максимального отклика и дополнительную оплату за дополнительные услуги. Хорошо использовать в случае, если имеется специальное подразделение, которое занимается такого рода работами.

По вызову

Данный метод характеризуется тем, что сопровождение заказчика выполняется по принципу «первый свободный сотрудник едет к клиенту», т.е. оказывается сотрудниками, а не службой поддержки.

Такой режим более устраивает клиента по денежным затратам (он платит только за реальное рабочее время специалиста и причем только тогда, когда это нужно), но не устраивает по двум другим параметрам: скорости реакции и частой сменой специалистов. Однако многие вопросы можно решить по телефону и нет необходимости посылать туда сотрудника.

Фирме-франчайзи следует держать в офисе, по крайней мере, по одному сотруднику каждого направления для выполнения такого рода сопровождения.

Резюме. Такое сопровождение дает клиент меньше гарантий, но позволяет ему расходовать средства более экономно. Обратной стороной медали является менее предсказуемый график работы сотрудников Вашей фирмы. Метод хорошо применим при длительном сопровождении качественно обслуженных клиентов.

Линия консультации

Линия консультации - специальное подразделение фирмь-франчайзи, основная работа которого заключается в оказании различных консультаций клиентам. Сюда входит обновление релизов программных продуктов и конфигураций, форм отчетности, помощь в решении тех или иных вопросов и т.д. Очень важно иметь такое подразделение на фирме. По опыту фирмы «IC-Papyc», линия консультация очень сильно снижает нагрузку на остальных сотрудников, которые раньше играли роль такого подразделения. Более подробно с этим вопросом можно ознакомиться в главе 3.3 книги [1].

При ведении линии консультации необходимо вести специальную базу данных, как это делается на фирме «1С», в которой ведется история всех обращений любого клиента, когда-либо обратившегося на линию консультации. Это позволяет сотрудникам линии консультации видеть историю обращений клиента. Иногда наличие такой истории существенно помогает в понимании проблемы клиента, и, соответственно, путей ее решения.

Если фирма-франчайзи продает собственные ТОР, то необходимо хранить серийные номера всех проданных настроек. Это необходимо для корректной рассылки обновлений по своим программным продуктам. В противном случае мы можем выслать обновление фирме, которая никогда не покупала у нас тот программный продукт, обновление которого она хочет получить.

Если все предыдущие услуги оказываются линией консультации только для клиентов Вашей фирмы, то обновления релизов программных продуктов фирмы «1С» и обновления форм отчетности линия консультации должна делать для всех зарегистрированных пользователей фирмы «1С». Для того, чтобы оказывать такого рода поддержку только легальным пользователям, сотрудники линии консультации должны требовать регистрационную карточку продукта, на который клиент хочет получить обновление. Без предъявления такой карточки (анкеты) обновление не производится.

Приложение 1

Лист учета рабочего времени

Организация

Сотрудник

Дата | Начало работы | Конец работы | Кол-во часов | Содержание работы | Подпись исполнителя | Подпись заказчика

Приложение 2

Литература

  1. «Технология работы фирмы «1С:Франчайзи».
  2. Перечень конфигураций, имеющих сертификат «Совместимо! 1С:Предприятие».
  3. Алан Пиз. «Язык телодвижений. Как читать мысли других по их жестам».


1С-Предприятие. Документация | Технология внедрения программ системы 1С-Предприятие (фирма ИКС-Технологии)

Технология внедрения программ системы 1С:Предприятие (фирма И.К.С. Технологии)

А.В. Поляков, В.Л. Ожигов.

г. Москва, ул. Каланчевская д.29, тел.: (095) 262-1756, 262-9347, факс: (095) 262-0470, info@xtek.ru http://www.xtek.ru

От авторов

В предлагаемом материале представлен вариант технологии процесса внедрения, который мы хотели бы обсудить с коллегами из других франчайзинговых фирм.

По нашему опыту многие внедренцы (особенно начинающие) часто недостаточно четко строят организацию своих внедрений. В комплексных внедрениях проблема организации процесса ведения проекта стоит еще более остро. «Разрывы» в действиях сотрудников фирмы-франчайзи, причастных к выполнению задач автоматизации заказчиков могут привести к ошибкам, затягиванию сроков реализации, недовольству со стороны клиентов и т.п. Т. е. напрямую |могут сказаться на успехе внедрения.

В этой связи, на наш взгляд, назрела необходимость составить определенный набор требований для каждого этапа процесса внедрения, рекомендуемых к выполнению.

Наш материал построен следующим образом.

В начале мы предлагаем общую схему технологии внедрения системы программ 1С:Предприятие. Схема наглядно представляет последовательность выполнения задач. Далее применительно к схеме представлено краткое описание задач и набор типовых действий специалистов фирмы-франчайзи.

Конечно, линейность здесь довольно условна. Задачи могут пересекаться и объединяться. Многие из них растягиваются на несколько этапов. Не всегда представляется возможным выполнение задачи именно в предлагаемой последовательности и т.п.

Хотим выразить огромную благодарность нашим коллегам Жутаевой И., Бушуеву Е., Савину А., Лисогору Д., Мифтаховой М., за помощь в подготовке материала.

Ждем отзывов и предложений. Поляков А.В., Ожигов В.Л. Компания «ИКС Технологии» (г. Москва)

P.S.

При изложении технологии применены следующие ДОПУЩЕНИЯ:

· КЛИЕНТ уже ВЫБРАЛ СИСТЕМУ (если это касается внедрений категорий А и Б; см. задачу 7) с помощью грамотных специалистов фирмы-франчайзи и его выбору оказался правильным и рациональным;

· ВНЕДРЕНИЕ 1С:Предприятия - оказание франчайзинговых услуг любого объема: от решения частных задач автоматизации до внедрения «в комплексе». Минимальный набор услуг предоставляемых внедренческими фирмами определен Франчайзинговым договором (рекомендации по оказанию услуг см. [1, раздел 2.3], [2, раздел «Типовой набор услуг»]).

Литература, используемая в контексте ссылок:

  1. Технология работы фирмы - «1С:Франчайзи». Д.И. Казачков.
  2. Фирма - 1С:Франчайзи: система обслуживания клиентов. А.В. Поляков, Д.А. Лисогор, В.Л. Ожигов

Описание выполняемых задач процесса внедрения

1. Заказ на внедрение.

РУКОВОДИТЕЛЬ ОТДЕЛА ВНЕДРЕНИЯ (здесь и далее: или диспетчер) принимает заказ от клиента, если тот обращается за оказанием услуг внедренческой фирмы.

2. Оформление и подготовка заказа.

РУКОВОДИТЕЛЬ ОТДЕЛА ВНЕДРЕНИЯ должен заполнить бланк заказа утвержденной формы в журнале заказов. Все поля бланка заполняются в обязательном порядке на основе диалога с клиентом (рекомендации по перечню необходимых сведений и форме бланка заказа см. [I, раздел 3.2.1, 7.11], [2, раздел «Типовая организация обслуживания»]).

Затем подготавливается сопроводительный ПАКЕТ ДОКУМЕНТОВ и ПРОДУКТОВ для заказа: документы, требуемые для оформления взаимоотношений с заказчиком и закрытия выполненных работ, сопроводительная методическая документация и продукты, набор рекламно-информационной продукции. Рекомендации по формам документов и методике их оформления см. [1, разделы 3.2.5, 7.2-7.10].

Проверяется наличие на складе ПРОГРАММНОГО ПРОДУКТА, в том случае, если внедрение включает его доставку и установку.

Ответственным за подготовку пакета документов и продуктов является руководитель отдела внедрения.

3. Определение исполнителей для начального этапа внедрения.

РУКОВОДИТЕЛЬ ОТДЕЛА ВНЕДРЕНИЯ определяет исполнителя для начального этапа работ у клиента.

Основные критерии выбора: специфика заказа, предметная специализация (компонента 1С:Предприятия, спектр выполняемых услуг и пр.) и опыт «кандидата», отраслевая специализация (наличие «готовых решений» и наработок на рынке деятельности заказчика), текущая загрузка.

Далее руководитель отдела внедрения ставит задачу исполнителю на выполнение работ, исходя из данных бланка соответствующего заказа и диалога с клиентом.

4. Предварительный анализ задачи.

ЭКСПЕРТ (в т.ч. технический специалист) должен подготовиться к предварительной беседе с клиентом на основе бланка заказа и обсуждения задачи с руководителем отдела внедрения.

Далее эксперт связывается с клиентом для выяснения деталей предстоящей автоматизации, договаривается о своем визите.

Эксперт должен взять с собой на заказ ПРОГРАММНЫЙ ПРОДУКТ (в случае надобности; и проверив работоспособность ключа защиты и носителей информации) и ПАКЕТ ДОКУМЕНТОВ, уточнив при необходимости правильность их заполнения.

5. Начальное обследование объекта.

ЭКСПЕРТ выезжает для выполнения заказа на основании договоренности с клиентом.

На месте экспертом уточняется предполагаемый спектр реальных задач внедрения (в т.ч. определяется круг первоочередных задач автоматизации). При необходимости вносятся соответствующие корректировки.

Здесь важно добиться одинакового понимания проблем, для чего уже на этом этапе начинается процесс ПОДГОТОВКИ специалистов заказчика к различным аспектам внедрения, его технологическим и организационным особенностям.

Эксперт при выполнении задачи 5 должен выяснить и зафиксировать всю необходимую информацию, в том числе для более точной оценки категории (см. задачу 7) и объема внедрения, а также возможностей клиента. Рекомендации по списку необходимых сведений см. [1, раздел 3.2.1].

Рекомендации по методике общения с клиентами и ведению переговоров см. соответственно [1, разделы 3.2.2 и 3.2.3].

6. Определить союзника внедрения.

Одной из важнейших задач ЭКСПЕРТА при выполнении задачи 5 является определение отв. лица или круга лиц со стороны заказчика, которые в первую очередь заинтересованы в успешной автоматизации. Тесное сотрудничество с ними при выполнении внедрения поможет сделать работу эксперта более продуктивной. Возможные варианты см. в задаче 13.

Кроме того, важно обеспечить: а) поддержку внедрения со стороны руководства заказчика, б) понимание важности внедрения как такового со стороны всех причастных к этому лиц заказчика.

ПРИМЕЧАНИЕ: Желательно определить союзника внедрения и заручиться его поддержкой (важно создать КОМАНДУ внедрения, в которую, кроме эксперта, входили бы представители заказчика) как можно раньше, однако не всегда на данном этапе это бывает возможным, особенно в комплексных внедрениях.

7. Анализ категории внедрения.

ЭКСПЕРТ на основании предварительной оценки делает вывод о предполагаемой категории внедрения.

ПРИМЕЧАНИЯ: 1) Понятие КАТЕГОРИИ внедрения вводится для их ранжирования, что предполагает а) более объективную оценку своих возможностей и ресурсов при обслуживании заказа, 6) более четкое следование дальнейшим этапам цепочки технологии внедрения.

2) Масштаб и сложность внедряемой системы, условия ее сопровождения должны быть адекватны уровню фирмы-франчайзи.

3) Границы представленных категорий внедрений весьма условны; часто в процессе реальной работы происходит плавный переход внедрений из младших категорий в старшие.

Категории внедрения

7А. Категория А:

Внедрение НАЧАЛЬНОГО УРОВНЯ.

ВОЗМОЖНЫЕ ЗАДАЧИ: установка и начальное обучение (гарантированный сервис) после чего пользователь предполагает начать самостоятельную работу с использованием типовой конфигурации, небольшие консультации по использованию типовой конфигурации системы.

ОБЪЕМ ЗАКАЗА: ограничивается обычно 10-ю часами работы специалистов франчайзи (1-2 визита).

ОСНОВНЫЕ ЗАКАЗЧИКИ: небольшие фирмы.

ТИП ПОСТАВКИ: работа обычно в локальной версии 1С: Предприятия на основе типовой конфигурации (используется чаще всего компонента 1С:Бухгалтерия).

7Б. Категория Б:

НЕБОЛЬШОЕ внедрение.

ВОЗМОЖНЫЕ ЗАДАЧИ: гарантированный сервис, конвертация базы при переходе с предыдущих версий программы (или других программ), незначительное изменение плана счетов, незначительная переделка форм и отчетов, обучение работе с программой, консультации и пр.

ОБЪЕМ ЗАКАЗА: от 10 до 50 часов работы специалистов франчайзи (2-10 визитов в течение месяца или разовые визиты в процессе эксплуатации системы).

ОСНОВНЫЕ ЗАКАЗЧИКИ: небольшие и средние фирмы.

ТИП ПОСТАВКИ: работа в локальной, 3-х пользовательской или сетевой версиях 1С:Предприятия (используются чаще всего 1-2

компоненты системы: ВЕДУЩЕЙ может быть любая из компонент в зависимости от профиля фирмы заказчика; 1С:Бухгалтерия при этом используется практически всегда).

7В. Категория В:

КОМПЛЕКСНОЕ внедрение.

ВОЗМОЖНЫЕ ЗАДАЧИ: комплексная поэтапная работа: всестороннее обследование объекта, составление ТЗ, разработка конфигурации, обучение персонала, ввод конфигурации в эксплуатацию, подготовка пользовательской документации, комплексное сопровождение и пр.

ОБЪЕМ ЗАКАЗА: не менее 30 часов работы специалистов франчайзи.

ОСНОВНЫЕ ЗАКАЗЧИКИ: средние и достаточно крупные фирмы;

ТИП ПОСТАВКИ: работа в сетевой версии 1С:Предприятия (используется чаще всего комплексная конфигурация, ВЕДУЩЕЙ может быть любая из компонент в зависимости от профиля фирмы заказчика).

ПРИМЕЧАНИЯ: 1) Необходимо четкое понимание руководством фирмы-франчайзи следующего непременного условия: Только наличие соответствующей инфраструктуры позволяет рассчитывать на успешную работу над внедрениями категории В.

2) Внедренческая структура должна быть готова: а) подключиться к автоматизации системы у клиента на любом из ее этапов, б) к возможной замене конкретных исполнителей проекта.

Для внедрений КАТЕГОРИЙ А и Б: задачи 8-11.

8. Решение первоочередных задач автоматизации.

ЭКСПЕРТ должен в первую очередь решить наиболее острые и неотложные задачи автоматизации заказчика (и желательно при первом же визите), которые были определены при начальном обследовании объекта (см. задачу 5).

См. также рекомендации по выполнению работ задачи 15.

9. Задача «закрепления» клиента.

ЭКСПЕРТ и фирма-франчайзи в целом в своей работе должны РУКОВОДСТВОВАТЬСЯ УСТАНОВКОЙ: «Каждый клиент должен стать постоянным для эксперта и фирмы и оставаться им на всем цикле эксплуатации 1С:Предприятия».

Оперативное и квалифицированное решение первоочередных задач внедрения - это не только качественное выполнение текущего заказа, но и работа «на перспективу».

ЭКСПЕРТ во время работы над заказом должен:

· продемонстрировать высокий профессиональный уровень (рекомендации по обеспечению качества выполнения работ см. [1, раздел 3]) и высокий уровень общения для создания благоприятной среды, в которой будет проходить внедрение (см. рекомендации [1, разделы 3.2.2, 3.2.3]);

· предложить свои идеи по усовершенствованию системы, а возможно и помощь в разработке стратегии автоматизации клиента (что является новым качеством внедрения фирмы-франчайзи);

· подробно проинформировать клиента о своей фирме, ее услугах и возможностях, инициалы ответственных по направлениям, системе сопровождения пользователей и т.п. Оперативность и точность получения последующей от клиента информации обеспечит более оперативную реакцию на обращения.

ПРИМЕЧАНИЕ: Задача «Закрепления клиента» (см. УСТАНОВКУ в задаче 9) стоит на всех этапах внедрения и для всех его категорий.

10. Закрытие выполненных работ.

Для закрытия выполненных работ ЭКСПЕРТ должен:

· оформить и подписать у отв. представителя заказчика весь пакет соответствующих документов и протоколов (акты о выполнении работ, другие первичные документы, специализированные документы и протоколы);

· получить расчет от заказчика (или проконтролировать поступление средств на расчетный счет в случае безналичной оплаты).

Далее ЭКСПЕРТ вносит перечень проделанных у клиента работ в ОТЧЕТ ЭКСПЕРТА (рекомендации по формам такого отчета см. [1, раздел 7.12], другие рекомендации по отчетности экспертов см. [2, раздел «Типовая организация обслуживания клиентов»]). Отчет раз в неделю лично сдается РУКОВОДИТЕЛЮ ОТДЕЛА ВНЕДРЕНИЯ и комментируется экспертом. Отчет (включая его устную форму) в данном случае служит для регулярного контроля процесса внедрения. Руководитель отдела внедрения визирует сданный экспертом отчет.

Только после этого заказ можно считать ВЫПОЛНЕННЫМ и ЗАКРЫТЫМ.

Здесь полезны рекомендации по типу документов и их оформлению [1, раздел 3.2.5].

11. Заказчик идет на дальнейшее сотрудничество?

Производя закрытие выполненных работ, ЭКСПЕРТ должен еще раз поинтересоваться у отв. представителей заказчика о планах на дальнейшее сотрудничество. Если заказчик взял время на обсуждение, необходимо договориться о дате возможных контактов. Эксперт должен поставить в известность РУКОВОДИТЕЛЯ ОТДЕЛА ВНЕДРЕНИЯ о дальнейших планах заказчика.

Для внедрений КАТЕГОРИИ Б: задачи 12-16.

12. Перспективное планирование работ.

ЭКСПЕРТ в переговорах с отв. представителями заказчика должен согласовать предполагаемый порядок дальнейших действий и составить на основе этого проект ( ПЛАНА ) ГРАФИКА РАБОТ (по возможности максимально подробно с указанием предполагаемых сроков).

Далее эксперт должен оговорить с заказчиком даты и время ближайших контактов.

13. Оценка «перспективности» заказчика.

ЭКСПЕРТ в процессе сотрудничества с заказчиком вырабатывает оценку его «индивидуальных» особенностей и перспективности внедрения. ОЦЕНКА «перспективности» заказчика оформляется в виде рабочего документа для внутреннего пользования и передается руководителю отдела внедрения. Далее сведения «Оценки...» должны размещаться в базе сводных данных о клиенте (данные исключительно для внутреннего пользования с ограничением прав доступа к ним).

Примеры полей «Оценки...» (возможны дополнения):

1. Название организации, адрес, телефон;

2. Контактные лица;

3. Масштаб организации: а) небольшая, б) средняя, в) крупная. Комментарии к каждому варианту;

4. Наличие удаленных отделений и филиалов, их количеств, местонахождение. Комментарии к каждому варианту;

5. Численность рабочих мест (в т.ч. одновременно работающих в системе). Комментарии;

6. Объем документооборота;

7. Профиль деятельности: а) розничная торговля, в) оптовая торговля, в) производство, г) бюджетная структура, д) другое. Комментарии к каждому варианту;

8. Отраслевое направление деятельности. Комментарии;

9. Целесообразный масштаб автоматизации по оценке эксперта: а) небольшой, б) довольно большой, в) очень большой. Комментарии к каждому варианту;

10. Клиент оценивает перспективный масштаб автоматизации: а) в основном правильно, б) недостаточно правильно, в) неправильно. Комментарии к каждому варианту;

11. Платежеспособность клиента: а) готов платить всегда, б) готов платить при строгом контроле работ и их стоимости, в) платит «со скрипом», г) практически не готов платить. Комментарии к каждому варианту;

12. Кто из отв. представителей клиента в первую очередь заинтересован во внедрении: а) РУКОВОДИТЕЛЬ (зам. руководителя), б) ПРОГРАММИСТ (системный администратор и т.п.), в) БУХГАЛТЕР, г) МЕНЕДЖЕР (руководитель направления фирмы и т.п.), д) Другие сотрудники. Комментарии к каждому варианту;

13. Кто из отв. представителей клиента не поддерживает внедрение: а) РУКОВОДИТЕЛЬ (зам. руководителя), б) ПРОГРАММИСТ (системный администратор и т.п.), в) БУХГАЛТЕР, г) МЕНЕДЖЕР (руководитель направления фирмы и т.п.), д) Другие сотрудники. Комментарии к каждому варианту;

14. Адекватность восприятия происходящего и уровень общения отв. лиц клиента в процессе внедрения: а) работается комфортно, б) работается нормально, в) работается некомфортно г) работать невозможно (скандальный клиент). Комментарии к каждому варианту;

15. Инициалы отв. эксперта от франчайзи.

ПРИМЕЧАНИЕ: Желательно составить подобную оценку как можно раньше. но в дальнейшем оценка может корректироваться.

14. Выработка системы отношений с заказчиком.

ЭКСПЕРТ в согласовании с руководителем отдела внедрения на основе данных, полученных при выполнении задач 12 и 13, вырабатывает модель поведения по отношению к клиенту.

Далее оговаривается СИСТЕМА ОТНОШЕНИЙ (договорные и финансовые) заказчика и исполнителя, определяются условия взаимодействия, порядок разрешения споров и противоречий. Здесь полезными будут рекомендации и примеры форм документов [1, разделы 3.2.3, 3.2.5, 7.2-7.10].

Затем согласуется ГРАФИК РАБОТ, который оформляется в виде рабочего документа с визированием со стороны заказчика и исполнителя (в редких случаях допускается устная форма договоренностей).

Выполняя весь цикл согласований задачи 14, эксперт при необходимости может обращаться за советами к руководителю отдела внедрения.

ПРИМЕЧАНИЕ: График работ может корректироваться по условиям выполнения текущих работ внедрения.

15. Выполнение текущих работ.

Задача ЭКСПЕРТА при выполнении работ - добиться максимальной эффективности работы системы заказчика, исходя из существующих условий. Рекомендации по обеспечению качества выполнения работ см. [1, раздел 3]).

Эксперт для данной категории внедрения является: а) непосредственным исполнителем внедрения, б) координатором внедрения от исполнителя с довольно широким кругом полномочий при решении вопросов и разрешении проблем.

Необходимо понимание экспертом технологической цепочки своей фирмы, ее возможностей, уровня и наличия специалистов для принятия четких и оперативных действий по всему комплексу обслуживания со стороны внедренческой фирмы.

Эксперт должен заслужить хорошую репутацию у заказчика профессиональной работой, заинтересованностью при решении проблем заказчика, пунктуальностью, высоким уровнем общения, опрятным внешним видом и т.п. НЕОБХОДИМО постоянно поддерживать репутацию и авторитет своей фирмы при выполнении работ. Этому, в частности, способствуют: рациональное использование времени работы с клиентом (что-то необходимо оставлять на проработку сотрудникам пользователя, ставить перед персоналом клиента конкретные цели и задачи) и основных усилий по внедрению (например, обучение штатного программиста заказчика, способного в дальнейшем обслуживать систему), возможные небольшие переработки.

Важным здесь является также необходимость обеспечения информированности о всех аспектах внедрения причастных к этому лиц со стороны заказчика.

РУКОВОДИТЕЛЬ ОТДЕЛА ВНЕДРЕНИЯ должен осуществлять постоянный контроль качества выполнения работ. Рекомендации по контролю качества обслуживания см. [1, раздел З.З.З].

16. Закрытие выполненных работ.

По аналогии с задачей 10.

Производя закрытие выполненных работ, ЭКСПЕРТ должен еще раз поинтересоваться у отв. представителей заказчика о планах на дальнейшее сотрудничество и оговорить даты и время ближайших встреч.

Для всех категорий внедрений: задача 17.

17. Система сопровождения пользователей.

На фирме-франчайзи должна быть поставлена отлаженная СИСТЕМА СОПРОВОЖДЕНИЯ ПОЛЬЗОВАТЕЛЕЙ. Это один из ключевых элементов долгосрочного сотрудничества с клиентом.

Элементы системы сопровождения пользователей: линия консультаций, обновления из офиса и С выездом к клиенту, ИТС, специализированные семинары, абонементное обслуживание, сетевой и технический консалтинг и поддержка и пр. (рекомендации по сопровождению пользователей см. [2, раздел «Типовой набор услуг»]).

Для внедрений КАТЕГОРИИ В: задачи 18-42

Предварительный этап внедрения

18. Выработка системы отношений с заказчиком.

В переговорах с отв. представителями клиента вырабатывается СИСТЕМА ОТНОШЕНИЙ (договорные и финансовые) заказчика и исполнителя, определяются условия взаимодействия, порядок разрешения споров и противоречий. Здесь полезными будут рекомендации и примеры форм документов [1, разделы 3.2.3, 3.2.5, 7.2-7.10].

Со стороны франчайзи основные переговоры обычно ведет РУКОВОДИТЕЛЬ ОТДЕЛА ВНЕДРЕНИЯ (здесь и далее: или руководитель группы по работе над комплексными заказами для крупных внедренческих структур) с возможным привлечением руководителя фирмы и ведущего эксперта.

19. Определение постановщика проекта.

РУКОВОДИТЕЛЬ ОТДЕЛА ВНЕДРЕНИЯ определяет кандидатуру ПОСТАНОВЩИКА проекта. При этом учитываются мнения и пожелания: отв. представителей заказчика, руководителя внедренческой фирмы, возможных «кандидатов».

Кандидатура ПОСТАНОВЩИКА проекта выбирается из числа экспертов наиболее высокого класса фирмы-франчайзи. Это должен быть опытный специалист-универсал (аттестованный чаще всего по нескольким компонентам 1С:Предприятия). Выбор должен также учитывать: отраслевую специализацию эксперта (наличие «готовых решений» и наработок на рынке деятельности заказчика), текущую загрузку.

ЭТАП 1 внедрения: Комплексное обследование, выбор системы, составление ТЗ и графика работ

20. Договор на обследование объекта и составление ТЗ.

РУКОВОДИТЕЛЕМ ОТДЕЛА ВНЕДРЕНИЯ и отв. представителями заказчика вырабатывается и подписывается ДОГОВОР НА ОБСЛЕДОВАНИЕ ОБЪЕКТА И СОСТАВЛЕНИЕ ТЗ (по результатам договоренностей задачи 18). В нем оговариваются только условия и сроки выполнения этапа I внедрения: комплексное обследование, составление ТЗ и плана графика работ. Только после выполнения этапа I внедрения можно детально обсуждать условия и сроки выполнения последующих этапов внедрения (хотя, во многих случаях с заказчиком приходиться предварительно обсуждать ориентировочный бюджет проекта автоматизации).

Продолжительность выполнения этапа I внедрения составляет обычно не менее двух недель.

Здесь могут быть полезны рекомендации по форме договора [1, раздел 7.5].

21. Комплексное обследование объекта.

Этап I внедрения выполняется в основном ПОСТАНОВЩИКОМ проекта. Однако, для обсуждения специфических вопросов внедрения (в т. ч. вопросов технического характера), окончательной оценки трудоемкости написания конфигурации постановщик должен провести соответствующие консультации с другими специалистами и кодировщиками.

Задача ПОСТАНОВЩИКА при выполнении этапа I внедрения -во взаимодействии с отв. представителями заказчика выработать максимально эффективную модель автоматизированной системы учета предприятия, исходя из существующих условий (бюджет проекта, сроки).

Эксперт-постановщик проекта для внедрений категории В является а) непосредственным исполнителем, как минимум, этапа I внедрения, б) координатором внедрения от исполнителя на всех его этапах с широким кругом полномочий при решении вопросов и разрешении проблем.

Эксперт при выполнении задачи 21 должен выяснять и зафиксировать всю необходимую информацию. Эти сведения станут основой для правильного выбора системы, успешного составления ТЗ и плана графика работ (рекомендации по списку необходимых сведений см. [1, раздел 3.2]). Они помогут также при составлении ОЦЕНКИ "ПЕРСПЕКТИВНОСТИ" ЗАКАЗЧИКА (см. задачу 23).

Здесь и далее см. также рекомендации задачи 15 «Выполнение текущих работ».

22. Задача «закрепления» клиента.

По аналогии с задачей 9.

23. Оценка «перспективности» заказчика.

По аналогии с задачей 13.

24. Выбор системы.

На основе данных, полученных при выполнении комплексного обследования (задача 21) ПОСТАНОВЩИК (в согласовании с руководителем отдела внедрения и техническими специалистами фирмы-франчайзи) вырабатывает предложение для заказчика о возможных вариантах поставки системы. Предложение описывает характеристики предлагаемых вариантов и указывает их стоимость. Рекомендации по процедуре выбора системы см. [2, раздел «Типовой набор услуг»].

Заказчик принимает решение о том, на основе какого варианта поставки будет производиться внедрение. Закупка же самого продукта не обязательно возможна именно здесь. Она может состояться и несколько позже или в принципе не состояться, если заказчика не будут удовлетворять результаты выполнения этапа I внедрения.

25. Составление ТЗ и графика работ.

ТЗ является концептуальным документом, подтверждающим одинаковый подход сторон к пониманию и решению конкретных задач по автоматизации учетного процесса.

ЭКСПЕРТ- постановщик проекта является отв. исполнителем задачи 25. При этом он должен добиться от руководства заказчика, чтобы с ним тесно сотрудничал опытный специалист (или группа специалистов) заказчика, хорошо понимающий особенности технологии работы и учета своего предприятия. Эксперт обязан предупредить о высокой ответственности заказчика за согласование разрабатываемого ТЗ.

Тщательно проработанное и правильно составленное ТЗ значительно снижает стоимость внедрения и сокращает сроки его выполнения, что в свою очередь является хорошей базой для дальнейшего сотрудничества с заказчиком.

При составлении ТЗ следует учитывать, что оно может быть успешным только в том случае, если основные трудозатраты по его составлению пришлись на долю представителей заказчика. Работа эксперта на данном этапе в основном состоит в правильном понимании потребностей заказчика, их соотнесении с реальными возможностями программного продукта, а также в оформлении пожеланий заказчика в виде документа.

С другой стороны, не следует забывать, что комплексное внедрение зачастую предполагает внесение серьёзных изменений в бизнес-процесс заказчика. Естественно, не каждый заказчик готов самостоятельно оценить необходимость и масштаб подобных изменений. Поэтому роль постановщика задачи в подобных случаях должна состоять не только и не столько в терпеливом выслушивании пожеланий заказчика, сколько в выявлении тех особенностей учета, которые могут помешать внедрению новых информационных технологий. При выявлении таковых необходимо, прежде всего, указать заказчику на возможную нестыковку и предложить способы ее устранения.

При выполнении задачи 25 ЭКСПЕРТ должен регулярно консультироваться с РУКОВОДИТЕЛЕМ ОТДЕЛА ВНЕДРЕНИЯ (в том числе при определении предполагаемых сроков выполнения и стоимости работ по следующему этапу внедрения).

26. Закрытие этапа 1 внедрения.

ЭКСПЕРТ- постановщик проекта должен подписать ТЗ и график работ у отв. представителя заказчика (в данном случае чаще всего им является один из руководителей фирмы). Далее по аналогии с задачами 10 и 16.

27. Заказчик идет на дальнейшее сотрудничество?

По аналогии с задачей 11.

ЭТАП II внедрения: Разработка конфигурации и ввод ее в эксплуатацию

28. Договор на внедрение.

РУКОВОДИТЕЛЕМ ОТДЕЛА ВНЕДРЕНИЯ и отв. представителями заказчика вырабатывается и подписывается ДОГОВОР НА ВНЕДРЕНИЕ (по результатам подписанных ТЗ и плана графика работ). В нем оговариваются условия и сроки выполнения этапа II внедрения, который включает: разработку конфигурации, тестирование конфигурации, обучение администраторов и персонала, подготовку пользовательской документации, сдачу-приемку конфигурации, опытную эксплуатацию.

Продолжительность выполнения этапа II внедрения составляет обычно не менее одного месяца.

Рекомендации по форме составляемого договора см. [1, раздел 7.6].

29. Есть ли потребность в дополнительных исполнителях?

Комплексное внедрение, как правило, предполагает участие группы экспертов. Ведущая роль, как уже говорилось, принадлежит ПОСТАНОВЩИКУ проекта. Кроме него, в разработке может принимать участие один или несколько специалистов-кодировщиков, главная задача которых состоит в написании тех документов и отчетов, которые требуются постановщику. На завершающем этапе потребуется специалист по обучению персонала заказчика.

К этой работе полезно привлечь эксперта (не кодировщика) имеющего больше опыта в общении с людьми, нежели с программированием.

30. Определение и подключение дополнительных исполнителей.

Проекты по внедрению, в которых принимают участие несколько исполнителей, гораздо более сложны в управлении, однако именно в таких проектах эффективность работы фирмы наиболее высока. В тех случаях, когда мы имеем большой объем работ, причем зачастую в смежных областях (например, стыковка с торговым оборудованием и сложный бухгалтерский учет), либо проект имеет жесткое ограничение по срокам, оправдано привлечение к работе нескольких специалистов. При этом возможно назначение РУКОВОДИТЕЛЯ ПРОЕКТА (особенно это характерно для крупных и многогранных задач), которому передаются все необходимые полномочия и на которого возлагается вся полнота ответственности за его выполнение. В разных случаях функции руководителя проекта могут осуществлять ПОСТАНОВЩИК или руководитель группы по работе над комплексными заказами.

Вопросы по определению и подключению дополнительных исполнителей и возможному назначению руководителя проекта решает руководитель отдела внедрения в консультациях с постановщиком (при возможном обсуждении с руководителем фирмы-франчайзи).

31. Разработка конфигурации.

На основе ТЗ разрабатывается конфигурация, учитывающая конкретные потребности заказчика.

При разработке конфигурации силами группы специалистов большое значение имеет координирование общей работы. В этой связи, целесообразно, чтобы структура данных описывалась постановщиком. Создается макетная конфигурация, в которой не прописаны модули, а лишь заданы основные типы данных и написаны черновые варианты описаний к документам, чтобы в дальнейшем эта информация была руководством к действию отдельным исполнителям.

Никакой тип данных не должен меняться без согласования с постановщиком, иначе непредвиденные изменения в данных, осуществленные разными людьми, могут вступить в противоречие и затянуть выполнение задачи в целом. Изменения процедур и функций в Глобальном модуле тоже не допустимы без согласования с тем исполнителем, который эту процедуру или функцию написал. Для этого желательно, чтобы в виде ремарок, в Глобальном модуле было видно авторство процедур и функций.

Каждый исполнитель должен понимать идеологию задачи, а не только «свой кусок». Для этого постановщик так формулирует информацию о задаче, чтобы каждый исполнитель понял ее взаимосвязи (но не в ущерб конфиденциальности).

Безусловно, на этапе составления ТЗ не исключены ошибки. Поэтому, в процессе создания конфигурации эксперт обязан внимательно проработать каждый пункт ТЗ.

В случае необходимости или явной предпочтительности применения механизмов отличных от тех, которые указаны в ТЗ, эксперт имеет право отступать от таких механизмов и требований ТЗ в рамках предварительной договоренности с заказчиком.

В случае необходимости внесения принципиальных изменений в ТЗ, эксперт инициирует дополнительные переговоры с представителями заказчика для разрешения всех появившихся вопросов. Уровень представителей со стороны Заказчики и Исполнителя определяется исходя из конкретно возникшей ситуации.

32. Тестирование.

Целесообразно предварительное тестирование вновь разработанной конфигурации проводить на специально собранном для этой цели полигоне на территории Исполнителя с обязательным присутствием представителей Заказчика.

В случае невозможности проведения предварительного тестирования на полигоне Исполнителя по техническим или организационным причинам, тестирование проводится на территории и оборудовании Заказчика.

В любом случае составляется и подписывается обеими сторонами акт, отражающий итоги проведенных испытаний.

На этапе тестирования конфигурация проверяется на соответствие всем пунктам ТЗ в их последней редакции. Выявляются нестыковки и отклонения в реально существующей конфигурации и требований указанных в ТЗ.

При проверке документов, необходимо заводить данные близкие к реальным, т.е. осуществлять проверку по «живым» документам. Это позволяет избежать мелких, но досадных ошибок (например: не хватает разрядности у числовых переменных, не «влезает» наименование и т.п.). Если справочник имеет несколько уровней, то нужно сразу создать группы во избежание ошибок, связанных принадлежностью элементов к группам. Если с документом, предполагается работа нескольких пользователей с разными правами, то необходимо сразу создать соответствующие наборы прав, особенно если разделение доступа производится средствами языка.

После тестирования проводится совещание с участием представителей Заказчика и Исполнителя, на котором принимаются решение о дальнейших действиях (в т.ч. по выявленным отклонениям).

33. Обучение администраторов.

Администраторы принимают активнейшее участие в тестировании разработанной конфигурации. Именно на этом этапе они получают основную часть требуемых знаний. В случае необходимости проводится дополнительное обучение администраторов силами квалифицированных специалистов внедренческой фирмы. Темы обучения, объем и форма преподаваемого материала определяется отдельно для каждого конкретного проекта.

Необходимо учитывать, что администраторы информационной базы заказчика являются очень значимыми звеньями в процессе эксплуатации системы. Значительное количество обращений пользователей на линию консультаций происходит именно из-за отсутствия у заказчика хорошо подготовленных специалистов, способных квалифицированно решать задачи ежедневного обслуживания информационной системы.

34. Обучение персонала.

Подготовку специалистов заказчика, как уже говорилось, целесообразно начинать уже на первых стадиях внедрения и вести эту работу на всех его этапах. Специализированное обучение персонала работе на разработанной конфигурации проводится квалифицированными экспертами внедренческой фирмы. Персонал должен получить все необходимые для корректной эксплуатации системы знания и навыки. Именно качественная подготовка персонала во многом определяет успех автоматизации. В некоторых случаях бывает полезным в завершении обучения проводить сертификационные экзамены.

См также рекомендации по обучению[2, раздел «Типовой набор услуг»].

35. Подготовка пользовательской документации.

Обучение пользователей не освобождает внедренцев от подготовки пользовательской документации. Эта задача начинается с описаний к справочникам и документам, которые делаются еще на этапе создания макетной конфигурации (т.е. при выполнении задачи 31). В процессе написания алгоритмов для проведения документов, эти описания пополняются, затем редактируются и собираются в один файл (документ). Файл желательно снабдить для наглядности иллюстрациями.

36. Сдача-приемка конфигурации.

Сдача-приемка конфигурации осуществляется на территории Заказчика в присутствии его представителей и представителей Исполнителя. Конфигурация проверяется на соответствие всем пунктам ТЗ. По факту сдачи-приемки составляется и подписывается соответствующий акт.

37. Опытная эксплуатация.

Опытная эксплуатация представляет собой пробную эксплуатацию системы в продолжение заранее оговоренного срока. Во время опытной эксплуатации Исполнитель обязуется обеспечить непрерывный контроль функционирования системы и в случае необходимости устранить возможные ошибки в работе конфигурации (назначается эксперт отв. за выполнение данной задачи). После проведения опытной эксплуатации составляется и подписывается соответствующий акт.

Важно понимание того, что во время опытной эксплуатации неизбежно возникновение ошибок как по вине сотрудников заказчика, отвечающих за эксплуатацию системы, так и в результате ошибок в конфигурации, не выявленных на этапе тестирования.

Изменения, вносимые в конфигурацию на этапе опытной эксплуатации, очень ответственная задача. Если конфигурация писалась коллегиально, необходимо тщательно проанализировать, не приведут ли эти изменения к ошибкам в работе документов, написанных другим исполнителем.

38. Проработка условий выполнения этапа III внедрения.

Заказчик и Исполнитель прорабатывают условия сопровождения системы. Обычно результатом проработки становится подготовка и подписание договора на абонементное обслуживание.

39. Закрытие этапа II внедрения.

По аналогии с задачами 10 и 16.

40. Заказчик идет на дальнейшее сотрудничество?

По аналогии с задачей 11.

ЭТАП III внедрения: Комплексное сопровождение внедренной системы

41. Договор на комплексное сопровождение.

Оптимальный вариант подобного договора: фиксированная сумма в месяц за оговоренные действия специалистов франчайзи по отслеживанию состояния базы, исправление своих же мелких погрешностей и ошибок пользователей, которые неизбежны на начальном этапе реальной эксплуатации системы. Исправление же ошибок, допущенных при проектировании и разработке ТЗ (а таковые нередки и, как правило, являются обоюдными), а также доработку конфигурации лучше всего приравнять к разработке (т.е. проводить по расценкам договора на внедрение). Это важный момент и он должен быть предусмотрен в договоре на сопровождение.

42. Абонементное обслуживание.

Существует две модели выполнения задачи 42.

Реактивная модель предполагает, что действия специалистов франчайзи по сопровождению системы осуществляются после возникновения проблемы.

Активная модель предполагает проведение профилактических действий, предупреждающих появление проблем, связанных с эксплуатацией информационной системы.

Естественно, вторая модель предполагает более активные действия. Поэтому такая форма абонементного обслуживания несколько дороже по стоимости. Однако, как показывает опыт, безотказная работа хорошей информационной системы с лихвой окупает все затраты на ее эксплуатацию.

43. Система сопровождения пользователей.

См. задачу 17.


1С-Предприятие. Документация. Внедрение | Методические материалы по разработке технического задания на привязку программ 1С

Методические материалы по разработке технического задания на привязку программ 1С (Фирма «Весь учет»)

Зайдман С.А.

Введение

В перечне основных услуг фирмы-фраичайзи выделяются два вида, по трудоемкости и сложности, нередко превосходящие остальные - это привязка и внедрение программ 1С. Кроме того, привязка и внедрение отличаются еще одной существенной деталью. При их выполнении, в процессе перевода предприятия (организации) на автоматизированный учет принимают участие и учетный персонал организации и специалисты франчайзи, т. е. появляется "человеческий фактор". В тоже время услуги другого рода продажа программных продуктов, доставка, установка, консультационные услуги и ряд других, характерны тем, что функции франчайзи и клиента четко разделены, и франчайзи не несет ответственности за процесс автоматизации учета на предприятии (организации) с использованием программ 1С.

Почему возникает потребность в привязке программ 1С.

В бухгалтерском учете выделяется группа учетных задач, которые имеют "прозрачную" содержательную сущность и строго регламентированные алгоритмы решения. Такие задачи базируются на нормативных документах по организации бухгалтерского учета, мало зависят от вида деятельности предприятия и особенности хозяйственной деятельности. Программы 1С в значительной степени автоматизируют именно эти задачи, что позволяет им стать универсальными и применяться с незначительной адаптацией. В то же время в учете имеется множество задач, отражающих специфику видов деятельности, предполагающих многовариантность организации и методов ведения учета. Задач такого рода в программах 1С значительно меньше, чем унифицированных, высока вероятность, что их надо дорабатывать при привязке к предприятию (организации).

Программа 1С рассматривается как система, для которой установлены назначение, область применения, условия и правила использования без изменений или с незначительной доработкой к конкретным условиям.

Что такое привязка и внедрение

Определимся в терминологии. Что такое привязка и внедрение? Под привязкой понимается процесс приспособления заложенных в программах 1С проектных решений по функциональной части, информационному и программному обеспечению к условиям конкретного предприятия (организации).

Привязка может осуществляться посредством адаптации системы или ее доработки.

На практике чаще всего применяется комбинация этих способов.

Под адаптацией понимается настройка программ 1С на конкретные условия применения с помощью установки значений предусмотренных переменных параметров.

Под доработкой понимается конфигурирование системы, замена отдельных ее компонентов, которые не удовлетворяют условиям конкретного применения и разработка дополнительных проектных решений.

Внедрение системы представляет собой процесс постепенного перехода от существующих способов и техники учета к новым, на основе использования программ 1С, прошедших привязку. Внедрение может осуществляться достаточно длительное время.

При внедрении программ 1С, как и любой другой человеко-машинной системы, происходит окончательное согласование состава и содержания автоматизированных функций, распределение учетных функций между человеком и машиной, согласование информационных взаимосвязей задач.

Все это может вызвать необходимость разработки дополнительных проектных решений, что увеличит объем работ по привязке.

Внедрение может производиться как на основе программ 1С, предварительно прошедших адаптацию и доработку, так и на основе только адаптированной типовой конфигурации.

Привязка и внедрение это два самостоятельных этапа работ, каждый из которых должен регулироваться собственными регламентирующими документами.

Работы по привязке и внедрению распределяются на следующие этапы:

· обследование объекта

· организационные мероприятия

· разработка технического задания

· адаптация и доработка программ 1С к специфике предприятия (организации)

· внедрение программного продукта

В данных методических материалах будет рассматриваться только один этап: разработка технического задания.

Для чего нужно техническое задание?

1. В техническом задании устанавливается точный состав и содержание работ по привязке программ 1С к объекту. Заказчик их утверждает в составе технического задания, Работы, выходящие за рамки технического задания и потребность в которых возникла на этапе внедрения, оплачиваются и выполняются по дополнительному соглашению.

2. Устанавливается состав изменений в методике и организации учета на предприятии (организации), в связи с переходом на автоматизированный учет на базе программ 1С. Заказчик их утверждает, и их выполнение является обязательной предпосылкой внедрения.

3. Устанавливается порядок приемки программ, прошедших привязку и порядок контроля правильности функционирования программ.

4. Сама необходимость разработки и оформления технического задания заставляет франчайзи и заказчика более тщательно разобраться в задачах привязки, что, в конечном счете, приводит к повышению качества работ, сокращению сроков проведения, уменьшает возможность возникновения конфликтов с заказчиком.

5. С помощью технического задания возможно избежать изменений, которые являются следствием субъективного подхода к решению отдельных вопросов работниками бухгалтерского аппарата, сложившимся на предприятии традициями существующей системы обработки учетной информации и могут повлечь снижение эффективности внедрения.

Техническое задание разрабатывается на основании результатов обследования объекта и выявленных отклонений действующей системы организации и методологии учета на предприятии (организации) от предусмотренных в программах 1С.

Следует четко проводить границу между решениями программы 1С, которые будут сохранены при внедрении, и решениями, которые будут переработаны при привязке. В техническом задании отражаются решения, подлежащие переработке.

Техническое задание устанавливает основные требования, которым должна удовлетворять программа 1С после ее адаптации и доработки. Договорные документы должны содержать ссылки на техническое задание

Естественно, что на этапе обследования объекта учетный персонал должен быть ознакомлен с принятыми в программах 1С функциональными и информационными решениями, они должны быть ему понятны. Тогда и все положения технического задания воспринимаются заказчиком вполне осознано. Техническое задание - один из важнейших документов, регулирующих отношения между франчайзи и клиентом.

В методических указаниях устанавливаются требования к составу, содержанию и оформлению технического задания на привязку программ 1С.

Далее изложены возможные требования к составу и оформлению технического задания.

Состав технического задания

Основание для разработки.

Назначение разработки.

Методологические основы решения задач.

Функциональные спецификации и описание алгоритмов.

Условия эксплуатации.

Порядок контроля работоспособности программ и их приемка.

Этапы разработки.

Разделы технического задания

Основание для разработки.

В данном разделе идентифицируется работа и ее заказчик, акцентируется внимание на организационных и методических материалах положенных в основу работы.

В разделе указываются:

· наименование работы, краткое ее содержание, условное обозначение, если оно имеется;

· наименование организации заказчика;

· перечень документов, на основании которых ведется разработка с указанием полного названия этих документов и данных об их утверждении;

· наименование программы 1С и ее условное обозначение, принятой для проведения привязки к объекту;

· перечень исходных материалов, использованных при разработке технического задания, в том числе материалы обследования, нормативно-технические документы, рекомендованные для использования, методические, проектные, научно-исследовательские разработки и т.п.; по каждому из приведенных материалов указываются данные об их утверждении, а также - какие именно разделы документов использованы;

· место проведения работ по привязке программ 1С.

Назначение разработки.

В разделе указывается функциональное назначение разработки. Программы 1С имеют определенное функциональное назначение. Они ориентированы на реализацию регламентированного состава учетных задач с фиксированными алгоритмами решения. В разделе приводятся наименования задач в составе программ 1С, которые будут переработаны. Здесь же перечисляются задачи, которые будут дополнительно разработаны и включены в состав программ 1С.

Указываются отклонения от программ 1С по содержанию задач.

Поясняется, каким образом будут использоваться результаты решения переработанных задач.

Методологические основы решения задач

В этом разделе должна быть приведена аргументация по всем изменениям и дополнениям к действующим в программах 1С методологическим установкам.

По задачам приводится краткое описание проектных решений по методологии и организации автоматизированного выполнения учета. Это снижает возможность разработки ошибочных решений.

Если в программах 1С выдерживается строгий методологический подход, то в изменениях к ним также следует придерживаться строгой регламентации тех методологических установок, в основе которых положены действующие законодательные, нормативные, инструктивные и методические документы по ведению учета.

Методологические решения, заимствованные из действующих регламентирующих документов не излагаются. На них делается ссылка.

Описание методологических решений выполняется в виде текста или таблицы, с указанием краткого содержания каждого решения, его обоснования и ссылки на соответствующий директивный или методологический материал.

Методологические решения не являются описанием алгоритма задач. Они представляют собой описание задач с позиций методологии учета, раскрывают идею изменений.

В разделе должен быть отражен еще один аспект привязки. При проведении обследования учетного процесса предприятия (организации) могут быть выявлены необоснованные отклонения от регламентированных положений учета, предусмотренных в программах 1С. Это может мешать проведению привязки, а в дальнейшем и внедрения. Следует указать сущность отклонений и обязательства заказчика по их устранению.

Функциональные спецификации и описание алгоритма

Раздел должен включать подробное описание изменений в программе 1С. Описание должно быть приведено в такой форме, чтобы его понял заказчик, не искушенный в тонкостях программы 1С. Утверждая техническое задание, заказчик подписывается тем самым под изменениями, соглашаясь с ними. Здесь имеет место не только формальная сторона дела. Вникая в суть изменений, заказчик Дополнительно страхует исполнителя от возможных ошибок. Основным правилом при написании этого раздела является акцентирование, "выпячивание" тех аспектов, которые связаны с ломкой действующих на предприятии положений учета.

Одновременно, содержание раздела должно быть достаточным для специалистов при переработке или доработке задач.

Раздел может включать следующие основные спецификации:

· описание плана счетов

· описание справочников

· описание субконто

· описание документов

· описание отчетов

· параметры адаптации

На каждую спецификацию открывается отдельный подраздел.

Описание плана счетов.

Появление новых синтетических счетов (в сравнении с типовой конфигурацией) происходит крайне редко. Это может быть связано с отраслевыми особенностями и регулируется инструкциями. Что же касается появления новых субсчетов, то это наблюдается значительно чаще и связано с необходимостью аккумулирования хозяйственных операций определенного вида. Например, для сельскохозяйственного предприятия счет 20 " Основное производство", как минимум, имеет три субсчета "Растениеводство", "Животноводство", "Промышленное производство".

Для предприятий (организаций) со значительными отклонениями от типовой конфигурации приводится полный план счетов. Указываются наименования счетов и их свойства: признак ведения валютного учета, признак ведения количественного учета, признак забалансового счета, признак активный-пассивный.

Обязательно перечисляются счета, субсчета, которые увязаны с формированием отчетности и подлежат обязательному применению.

Для предприятий, где действующий план счетов мало чем отличается от принятого в типовой конфигурации, следует привести фрагмент плана счетов, по которому имеется расхождение. В любом случае, следует перечислить программы, которые предстоит корректировать в связи с изменением плана счетов. Например,

документы, где производится генерация проводок, а также формы отчетности.

По вновь введенным счетам обязательно приводится возможная корреспонденция.

По счетам типовой конфигурации, которые используются на предприятии, пояснения не приводятся.

В подразделе следует описать изменения в системе аналитического учета.

На этапе обследования устанавливается соответствие действующей на предприятии системы аналитического учета, предусмотренной в типовой конфигурации. Известно, что настройку аналитического учета типовой конфигурации рекомендуется сохранять, так как она используется при генерации проводок в документах и в алгоритмах форм отчетности. Конечно, следует добиваться минимально возможных изменений настройки, они могут повлечь увеличение трудоемкости и сложности привязки.

В подразделе технического задания следует привести структуру аналитических разрезов по тем счетам, где имеют место отклонения от типовой конфигурации. Это относится и к субконто типа Перечисление. В отдельный фрагмент целесообразно выделить перечень программ (документы, формы отчетности), которые подлежат корректировке в связи с изменением системы аналитического учета.

Изменения по системе аналитического учета могут быть оформлены в виде таблицы, где на одной ее стороне приводится перечень счетов, а на другой стороне - наименования аналитических разрезов.

Описание справочников.

Здесь приводится информация о вновь введенных справочниках или о справочниках типовой конфигурации с измененными свойствами. Указывается, какого рода информация содержится в справочнике, в каких документах он используется. Если список справочника многоуровневый, указывается назначение групп, а где это необходимо, приводится полный список групп.

По справочникам приводятся основные свойства:

· идентификатор,

· комментарии,

· длина кода и наименования,

· подчиненность,

· количество уровней,

· серии кодов,

· тип кода.

В тех случаях, когда список справочника необходим для понимания всей задачи, он приводится полностью.

По справочнику приводится дополнительная информация об элементах в виде списка реквизитов и их основных свойств:

· наименование,

· идентификатор,

· периодический,

· тип значения,

· длина.

По каждому реквизиту указывается, для какой цели он используется и каким образом заполняется. При описании важно четко разделить информацию на две части: для заказчика и разработчика. Если справочник используется для организации аналитического учета, целесообразно указать конкретные счета, использующие его как субконто.

Описание субконто.

Необходимая информация об организации аналитического учета приводится в подразделе "План счетов". В данном подразделе приводятся специальные сведения о свойствах вида субконто, необходимые для разработчика. Для заказчика этот подраздел смысловой нагрузки не несет.

Описание документов.

Новые документы создаются в тех случаях, когда появилась необходимость ввода и печати первичных документов, или когда

требуется автоматизировать формирование проводок. Нередко имеют место обе предпосылки одновременно. Документы могут являться аналогами бумажных документов, но могут представлять собой программы для решения определенных задач.

Описание документа целесообразно начинать с изложения его функционального назначения: состав функций, выполняемых данным документом, перечень решаемых им функциональных и технологических задач, цель создания, укрупненный состав вводимых и расчетных показателей, состав формируемых проводок, "закрепленные" элементы проводок и соответствующие им значения счетов и аналитических счетов, информационная взаимосвязь с другими задачами, периодичность решения задачи. Функциональное назначение документа можно оформлять в виде таблицы со следующими реквизитами:

· наименование функциональной задачи

· назначение

· функциональное содержание

· периодичность решения

· дополнительные сведения

В дополнительных сведениях приводится краткая характеристика документа (ограничения на возможность применения, условия его реализации, данные, влияющие на его использование и т. п.).

Приведенное описание служит обобщенным алгоритмом и не подменяет собственно алгоритм. Он скорее ориентирован на учетных работников заказчика и дает представление о содержании доработок.

Затем приводится информация, вводимая в документ, диалог ввода. Приводится описание диалога и внешний вид диалога (форма). В форме диалога выделяются шапка и табличная часть документа. Форма диалога должна соответствовать экранному отображению. Проектируется размещение реквизитов на шаблоне экрана, приводятся наименования реквизитов и их идентификаторы. Идентификаторы необходимы для увязки описания диалога с общим описанием алгоритма. Описание диалога приводится в виде таблицы, включающей реквизиты:

· наименование элемента диалога

· порядок обхода элементов

· пояснение по вводу реквизитов.

Затем описываются свойства всех реквизитов документа. В описании целесообразно выделять два раздела: шапка и таблица. Приводятся реквизиты диалога, реквизиты справочников, расчетные реквизиты. Описание можно представить в виде таблицы со следующими реквизитами:

· наименование реквизита

· идентификатор

· тип значения

· длина

· точность

· пояснение

В пояснении указывается порядок формирования значения реквизита (вводимый, справочный, расчетный) и другие сведения.

За таблицей можно расположить описание алгоритма. Алгоритм решения задачи можно приводить по следующей схеме: используемая информация - результаты решения - алгоритм формирования - выходные документы.

В составе используемой информации перечисляются данные диалога, реквизиты справочников, промежуточные расчетные реквизиты.

При изложении алгоритма решения следует приводить:

· описание логики решения задачи и способа формирования результатов решения с указанием последовательности этапов счета;

· расчетные и логические формулы, используемые в алгоритме;

· указания о точности вычислений;

· соотношения, необходимые для контроля достоверности вычислений;

· указания о порядке расположения строк или значений в документе.

Соотношения для контроля вычислений на отдельных этапах выполнения алгоритма приводятся в виде равенств и неравенств. При этом указываются контрольные соотношения, позволяющие выявить допущенные в процессе счета ошибки и принять решения о необходимости отклонений от нормального процесса вычислений.

Описание алгоритма решения задачи должно содержать все варианты ее решения и ситуации, которые могут возникнуть в процессе решения по данным вариантам, включая возможные отклонения от нормального хода решения задачи.

Для описания алгоритма используются все необходимые идентификаторы из таблицы описания свойств реквизитов документа. Алгоритм можно представить в табличной форме. В таблице "Алгоритм расчетов" приводится порядок формирования реквизитов. Таблица может включать реквизиты:

· наименование формируемого реквизита

· идентификатор формируемого реквизита

· идентификаторы исходных реквизитов

· порядок расчета реквизита

· дополнительные пояснения

Порядок расчета может включать не только формулу, но и наименование бухгалтерских итогов, например, "По значению Х обороты по кредиту с начала года".

Отдельную таблицу рекомендуется составлять для описания схемы формирования проводок. В таблице приводятся реквизиты проводок и порядок их формирования. Применяемые в таблице идентификаторы реквизитов должны соответствовать реквизитам, приведенным в таблице описания свойств реквизитов всего документа.

Приводится описание порядка формирования печатной формы документа. Для этого можно использовать две таблицы. В первой таблице "Формирование ведомости" приводятся реквизиты ведомости и соответствующие им реквизиты документа. По реквизитам ведомости указывается длина и точность. Вторая таблица представляет собой печатную форму ведомости (документа).

Завершает алгоритм документа описание его свойств. Описание можно оформить в табличной форме, включив в нее следующие реквизиты:

· идентификатор документа

· комментарий

· журнал

· нумератор

· периодичность

· длина кода

· тип кода

· используемый компонент

Все части описания алгоритма должны быть взаимоувязаны, в них не должно быть повторении. Те части, которые должны быть согласованы с заказчиком, описываются подробно и "прозрачно".

Описание отчетов.

В процессе привязки программ 1С может возникнуть необходимость получения дополнительных отчетных документов. В этом случае информация, накопленная в системе, используется для обобщения и формирования итоговых результатов в различных разрезах. В данном подразделе приводятся алгоритмы формирования вновь введенных отчетов.

Описание алгоритма открывается наименованием отчета, его назначением, организацией использования отчета заказчиком. Затем приводится таблица, представляющая собственно форму отчета. Целесообразно заполнить форму отчета небольшим контрольным примером, чтобы заказчик ясно представлял содержание и расположение информации в отчете.

Затем приводится описание диалога, при помощи которого, при необходимости, можно организовать ввод каких-либо параметров, влияющих на формирование отчета.

В диалоге обычно указываются следующие параметры отчета:

· период, за который формировать отчет (задается выбором даты начала периода и даты окончания периода или выбором "круглого периода");

· счет, по которому формировать ведомость;

·


1С-Предприятие. Документация. Внедрение | Методология внедрения пакета программ «1С-Предприятие» (Фирма АКВАРИУС-Консалтинг)

МЕТОДОЛОГИЯ ВНЕДРЕНИЯ ПАКЕТА ПРОГРАММ «1С: ПРЕДПРИЯТИЕ» (Фирма АКВАРИУС Консалтинг)

Назначение и область применения.

Общие положения

В данном документе в конспективной форме приводятся описание методологии внедрения пакета прикладных программ "1С:

Предприятие". Под методологией понимается описание задач, их связей и общих подходов к их решению. Методология позволяет ответить на вопрос: «Что?». Ответ же на вопрос «Как?» дают конкретные методики и технологии, разрабатываемые на основе методологии.

Рассматриваемый подход к внедрению прикладных систем проверен многолетней практикой. Главной его особенностью является нацеленность на обеспечение качества. Качество при этом понимается конструктивно и включает следующие критерии:

· удовлетворение бизнес-требований, т.е. требований к поддержке бизнеса клиента, (функциональность, рабочие характеристики, удобство эксплуатации и обслуживания), подтвержденное объективными данными тестирования;

· получение результата при заданных ограничениях на сроки, бюджет и персонал.

Качество достигается за счет четкого определения бизнес-процессов и бизнес-требований предприятия в самом начале проекта и их последовательного отображения на процессы и базу данных внедряемой Прикладной системы.

В конечном итоге рассматриваемый Подход направлен на минимизацию затрат и времени при обеспечении гарантированного качества. Для этого используется тесная интеграция задач собственно внедрения с задачами управления проектом. Именно хорошая организация и управление проектом при правильной методологии дают гарантию успеха.

Рассматриваемая методология представляет собой адаптацию методов, предлагаемых ведущими консультационными и программными фирмами, применительно к конкретным условиям применения системы "1С: Предприятие". Несмотря на то, что изначально данный метод был разработан для средних и больших проектов, он применим и к сравнительно малым проектам.

В данном документе рассматривается в основном аспект методологии, описывающий структуру и связи задачи выполнения внедренческих работ. Также приводятся краткие сведения по процессам и задачам управления проекта. Организационный аспект, описывающий состав и функции группы внедрения, систему управления проектом, сетевые планы работ будут описаны в последующих документах.

В дальнейшем работы по созданию методического обеспечения проектов внедрения будут продолжены по следующим направлениям:

· разработка методических руководств и документов для практического использования;

· подготовка вариантов методологии для различных групп партнеров;

· разработка, выбор и адаптация программных инструментов для решения задач внедрения и сопровождения.

В целом, методология внедрения должна послужить основой для разработки и внедрения новых стандартов качества деятельности компании «"1С"».

Потребность в методологии

Интересы основных участников проектов внедрения

Методология служит для решения задач, которые отражают принципиальные интересы различных участников цепочки «компания - партнер - клиент»:

Участник | Задачи
Компания "1С" | Обеспечение качества внедрения и сопровождения
 | Установление и поддержание стандартов деятельности партнеров
 | Поддержка развития системы
 | Улучшение имиджа компании
Партнеры | Методическая поддержка внедрения и сопровождения
Пользователи | Эффективное использование системы
 | Оптимизация внедрения по времени, затратам и рискам
 | Эффективное сопровождение

Практические проблемы внедрения

Практика внедрения системы "1С: Предприятие" демонстрирует наличие ряда серьезных проблем, связанных, среди прочего, с недостаточностью методической проработки процесса внедрения. Некоторые примеры приведены ниже.

Задача внедрения | Практические проблемы
Реинжиииринг бизнес-процессов. Разработка архитектуры прикладной системы | Отсутствие методик и инструментальных средств Нехватка квалифицированных системных и бизнес аналитиков Неготовность клиента
Переход к новым версиям при комплексной поставке | Организационные, технологические и психологические проблемы, связанные с переходом к новому уровню автоматизации.
Стратегия реализации и конфигурирование | Организация и управление проектом.
Ввод в эксплуатацию | Организация и технология перехода на новую систему в масштабах предприятия.
Перенос данных | Разноформатность данных. Перенос с бумажных носителей.
Обучение | Отсутствие проработанных методик. Разный уровень подготовки клиентов.
Интеграция с другими системами | Различия в архитектуре и средствах реализации. Закрытость внешних систем. Нехватка инструментальных и методик средств интеграции.

Область применения

Методология и разработанные на ее основе методические материалы могут найти следующее практическое применение.

Сфера применения | Методические материалы
Внедрение и сопровождение | Инструменты внедрения и сопровождения
 | Руководство по внедрению и сопровождению системы «1С:Предприятие»
 | Типовые формы документов
Обучение и сертификация партнеров и специалистов | Учебный курс, тема «Методология внедрения и сопровождения системы «1С:Предприятие»
 | Программа сертификационных экзаменов, раздел «Методология внедрения и сопровождения системы «1С:Предприятие»
Обучение клиентов | Программа обучения, раздел «Методология внедрения и сопровождения системы « 1С:Предприятие»

Партнеры компании

Практические цели разработки методологии в "наибольшей степени затрагивают партнеров компании «"1С"». Ниже приводится их краткое описание и типизация.

Уровень сервиса

Можно выделить три основных группы партнеров по уровню сервиса и числу клиентов. Как показывает опыт, имеется корреляция между уровнем сервиса и числом аттестованных специалистов. Партнеры каждого последующего уровня оказывают услуги предыдущего.

№ уровня | Сервис | Масштабы деятельности | Требования к специалистам | Услуги
1 | Гарантированный сервис | Отдельные внедрения | До 3 аттестованных специалистов | Доставка Установка Начальное обучение Регулярное обновление Технические консультации
2 | Индустриальный сервис | Массовое внедрение | Более 3 аттестованных специалистов | Гарантированный сервис + Обследование + Дополнительное обучение + Расширение функциональности + Изменение базы данных + Внедрение + Сопровождение, включая модификации и развитие системы
3 | Прикладной сервис (разработка приложений под клиента) | Специальное внедрение | Несколько групп аттестованных специалистов Группа бизнес реинжиниринга бизнес-процессов Группа разработки | Индустриальный сервис + Реинжиниринг бизнес-процессов + Полный цикл разработки (либо кардинальная переработка) с использованием инструментальных средств системы

Дополнительные характеристики партнеров в связи особенностями клиентов представлены в таблице ниже.

№ уровня | Уровень сервиса | Масштаб клиента | Вариант поставки | Требования к квалификации | Организационная структура партнера
1 | Гарантированный сервис | Индивидуальный клиент | Базовый Стандартный | Низкие | Специалист по вызову
2 | Индустриальный сервис | Уровень отдела | Стандартный Профессиональный | Средние | Специализированное подразделение
3 | Прикладной сервис | Уровень предприятия | Профессиональный Комплексный | Высокие | Специализированная фирма

Следует отметить ярко выраженное стремление партнеров к переходу на более высокий уровень. Особенно часто наблюдаются миграции с первого на второй уровень. Партнеры, оказывающие индустриальный сервис, постоянно предпринимают попытки перейти на уровень поставки приложений. Однако зачастую эти попытки оказываются безрезультатными в силу недостаточности потенциала и методической подготовки.

Партнеры уровня индустриального сервиса являются наиболее существенными для обеспечения рыночного успеха системы. Именно с ориентацией на них должна разрабатываться методология внедрения и сопровождения.

Выводы

Ниже приводятся выводы, имеющие наиболее существенное значение для разработки методологии внедрения системы "1С:Предприятие".

Цель разработки методологии

Методология внедрения и сопровождения должна послужить основой для разработки и поддержания стандартов качества в деятельности партнеров всех типов и уровней.

Методическая база

Разработка методологии понимается как адаптация методик, предлагаемых ведущими консультационными и программными фирмами, применительно к конкретным условиям применения системы "1С: Предприятие".

Масштабирование системы

Система "1С: Предприятие" имеет ярко выраженные уровни масштабов и сложности, отражающиеся в различных вариантах поставки. При разработке методологии ориентиром являются профессиональный и комплексный варианты поставки системы.

Тины партнеров

Партнеры уровня индустриального сервиса являются наиболее существенными для обеспечения рыночного успеха системы. По мере развития системы и перехода партнеров на прикладной уровень сервиса значение проработанной методологии будет возрастать.

Дальнейшие работы

В дальнейшем работы должны быть продолжены по следующим направлениям:

· разработка методических руководств и документов для практического использования;

· подготовка вариантов методологии для различных групп партнеров;

· разработка, выбор и адаптация программных инструментов для решения задач внедрения и сопровождения.

Общий вывод состоит в наличии четкой корреляции между масштабом и сложностью системы, вариантом поставки и уровнем сервиса партнеров. Соответственно, методология должна поддерживать два типа процессов внедрения: ускоренный и полномасштабный, как это показано ниже.

Масштаб системы | Вариант поставки системы | Уровень сервиса | Вариант процесса внедрения
Уровня отдела | Стандартный Профессиональный | Индустриальный | Ускоренный
Уровня предприятия | Профессиональный Комплексный | Прикладной | Полномасштабный

Выполнение проекта

В данном разделе рассматривается структура задач выполнения работ по проекту внедрения. Приводится краткая характеристика фаз и процессов выполнения проекта.

Фазы выполнения проекта

Проект внедрения разбивается на следующие фазы:

№ фазы | Фаза
01 | Постановка задачи
02 | Анализ и оценка
03 | Техническое проектирование
04 | Рабочее проектирование
05 | Ввод в эксплуатацию
06 | Промышленная эксплуатация

Ниже приводится их краткая характеристика.

Постановка задачи

В данной фазе осуществляется планирование проекта, анализ бизнес-задач организации и оценка возможности выполнения этих задач в условиях ограниченного времени, ресурсов и денежных средств. Акцент делается на создании выполнимого рабочего плана и ориентации на достижение общих целей. Для каждого процесса определяются стратегия, задачи и подходы, обеспечивая основу для создания реалистичного плана проекта.

В этой фазе группа проекта проводит моделирование процессов. Целью является определить бизнес-требования и требования к системе, предложить будущую бизнес-модель с учетом текущей ситуации. Группа проекта изучает финансовые, операционные, технические и административные процессы, добиваясь понимания и согласия с детальными бизнес-требованиями. Четкое понимание этих требовании является критическим фактором успеха проекта.

Анализ и оценка

В этой фазе группа проекта разрабатывает сценарии выявления и реализации бизнес-требований, основанные на результатах предыдущей фазы, которые затем используются для оценки соответствия бизнес-требований и стандартной функциональности внедряемой системы. Выявляются разрывы и разрабатываются соответствующие решения по их устранению.

Разрабатывается программно-техническая архитектура. Документы по архитектуре используются для разработки детального проекта во время фазы технического проектирования.

При необходимости готовятся предложения по разработке/модификации модулей расширения функциональности и интеграции с другими приложениями.

С самого начала большое внимание уделяется тестированию. Группа тестирования разрабатывает модели для тестирования рабочих характеристик новой системы. Эти модели обычно сконцентрированы на критических показателях (время реакции, производительность), связанных с ключевыми бизнес-функциями и операциями.

Техническое проектирование

Целью данной фазы является определение и детальная разработка технических решений, обеспечивающих выполнение бизнес-требований. Для этого группа проекта создает детальные описания решений, основываясь на процессах, построенных на предыдущей фазе.

Для удовлетворения бизнес-требований может потребоваться программирование расширений. Возможные варианты соответствующих решений были выработаны на предыдущей фазе. Группа проекта тщательно исследует эти варианты и выбирает из них наиболее подходящий.

Для эффективного использования внедряемой системы может потребоваться внести изменения в существующие роли и процедуры будущих пользователей. Группа проекта тщательно готовит соответствующие предложения.

В этой фазе разрабатывается программно-техническая архитектура, которая в состоянии поддерживать выбранную конфигурацию прикладной системы и пользовательские расширения. Также рассматриваются будущие потребности компании и оцениваются возможные изменения в архитектуре. Параллельно идет работа по подготовке тестов рабочих характеристик системы.

Как только приняты основные решения, начинает готовиться рабочая документация. Документация уточняется и корректируется по мере движения проекта.

Проектирование бизнес-процессов является повторяющейся процедурой. Задачи, охватывающие как фазу анализа, так и фазу технического проектирования, могут выполняться как отдельная часть проекта. Например, группа проектирования/отображения реализует целостный итерационный процесс, включающий создание модели бизнес-процессов и формулирование детальных требований, вытекающих из этой модели, их отображение на прикладную систему, выявление и документирование разрывов, поиск обходных путей и т.д.

Рабочее проектирование

В этой фазе выполняется программирование и тестирование программного обеспечения, включая модули расширения, программы преобразования данных и интерфейсы. Также проводится тестирование для определения соответствия разработанных решений бизнес-требованиям.

Если настройка, расширения и преобразования не требуются, фаза рабочего проектирования все равно остается важной, потому что в нее включен тест бизнес-системы, который обычно выполняется в среде, максимально приближенной к реальным условиям эксплуатации.

Во время фазы рабочего проектирования группой тестирования рабочих характеристик создаются программы тестирования и выполняются сами тесты. Разработчики создают программные модули и проводят их автономное тестирование, а также тестирование связей. Также проводятся тесты интеграции с внешними приложениями. Результатом является работоспособное протестированное программно-техническое решение.

Ввод в эксплуатацию

Во время данной фазы группа проекта реализует окончательное решение в организации. Все элементы внедрения выполняются совместно для успешного перехода к промышленной эксплуатации. Группа проекта проводит обучение конечных пользователей, в то время как техническая группа конфигурирует среду эксплуатации и преобразует данные. Фаза завершается переходом к промышленной эксплуатации, как только конечные пользователи начинают. выполнять свои должностные обязанности, используя при этом новую систему.

В данной фазе управление изменениями и защита организации от негативного влияния внедрения являются наивысшим приоритетом, требующим тщательной предварительной подготовки и планирования.

Если используется подход к реализации по фазам, фаза ввода в эксплуатацию может состоять из нескольких этапов, когда компоненты/экземпляры прикладной системы внедряются на различных географических площадках и/или в бизнес-единицах в различное время.

Промышленная эксплуатация

Данная фаза является последней фазой внедрения и началом процесса сопровождения системы. Персонал ИТ-подразделений работает в ускоренном режиме, обеспечивая использование системы в регулярном режиме и создавая инфраструктуру сопровождения. В данной фазе проводится сравнение фактических результатов с задачами проекта. Наконец, формулируются возможные направления развития системы в контексте совершенствования бизнеса предприятия.

Процессы проекта

Проект может быть представлен как совокупность следующих взаимосвязанных процессов, протекающих параллельно:

Код процесса | Процесс
БП | Моделирование бизнес-процессов
БТ | Определение бизнес-требований
БО | Отображение бизнес-требований
ТА | Построение программно-технической архитектуры
ГШ | Создание программных модулей
ПД | Преобразование данных
ДО | Документирование
ГС | Тестирование бизнес-системы
ГР | Тестирование рабочих характеристик
ОБ | Освоение и обучение
ПЭ | Переход к промышленной эксплуатации

Каждый процесс соответствует определенному аспекту проекта: бизнес-реинижиниринг, документирование, разработка программного обеспечения, обучение и т.д. Процесс представляет собой цепочку задач, специфических для каждой фазы. Таким образом, получается регулярная декомпозиция проекта в виде матрицы «фаза-процесс», которая позволяет упорядочить рассмотрения и организовать управление проектом в виде совокупности регулярных процедур.

Типичная структура проекта показана на рисунке. Ниже приводится краткая характеристика процессов выполнения проекта. Состав задач и основных результатов для каждого процесса приведен в Приложении 1.

 | Фазы и процессы проекта внедрения | Постановка задачи | Анализ и оценка | Техн-кое проект-ние | Рабочее проект-ние | Ввод в экс-цию | Промышленная экс-ция
УП | Управление проектом | ======= | ======= | ======= | ======= | ======= | =======
БП | Моделирование бизнес-процессов | ===== | = | = |  |  |
БТ | Определение бизнес-требований | === | ======= |  |  |  |
ВО | Отображение бизнес-требований |  | ======= | == |  |  |
ТА | Построение технической архитектуры | ===== | ====== | = | ======= |  |
ПМ | Создание программных модулей | = | = | ====== | ==== |  |
ПД | Преобразование данных | = |  | ====== | ==== |  |
ДО | Документирование | ===== | == |  | ==== |  |
ТС | Тестирование бизнес-системы | = |  | ==== | ======= | = |
ТР | Тестирование рабочих характеристик | = | == | ==== | ======= |  |
ОБ | Освоение и обучение | ======= | = | ====== | == | == | ==
ПЭ | Переход к промышленной эксплуатации |  | = |  | == | ======= | =======

Моделирование бизнес-процессов

Задачи данного процесса в основном связаны с построением укрупненного (высокоуровневого) описания организации клиента: структуры бизнеса, перспектив развития, основных бизнес-процессов, организационной структуры, системы управления, приоритетов информатизации, иных существенных моментов. По существу, речь идет о построении архитектуры организации клиента.

В рамках процесса моделирования бизнес-процессов также решается важная задача определения укрупненного баланса между доработкой прикладной системы и внесением изменений в организацию и технологию деятельности предприятия клиента.

Определение бизнес-требований

В процессе определения бизнес-требований формулируются потребности поддержки бизнеса, которым должна удовлетворять внедряемая прикладная система. Существенные требования отражаются в т.н. сценариях бизнес-требований, которые описывают источник требований, их обоснование, связь с другими требованиями, способы обеспечения его выполнения и проверки, другие существенные моменты.

Как часть процесса определяются финансовая и операционная структуры предприятия. Дополнительно собирается информация об объемных показателях деятельности, которая позволяет оценить интенсивность и структуру информационных потоков, а также структуру размещения и объемы данных.

Отображение бизнес-требований

В процессе отображения проводится сравнение бизнес-требований со стандартной функциональностью прикладной системы. Главная цель сравнения - выявить разрывы, которые должны быть устранены для достижения максимально возможного соответствия бизнес-требованиям. Основой для проведения работ является описание архитектуры предприятия и сценарии бизнес-требований.

По мере выявления, разрывы между требованиями и функциональностью удаляются с помощью разработки каких-либо обходных путей, включая изменения в бизнес-процессах, изменение структуры базы данных, либо разработку модулей расширения функциональности.

Построение технической архитектуры

Техническая архитектура представляет собой описание принципиальных технических решений, включая прикладное программное обеспечение, аппаратные средства, локальную сеть, системную платформу. В частности, решаются такие важные вопросы, как выбор типа сервера, схема размещения данных, схема управления доступом и разделения данных между различными подразделениями, интерфейсы к внешним приложениям.

Именно на уровне архитектуры производится дальнейшее уточнение требований. Главная цель процесса - адекватное отображение бизнес-требований на уровне технических решений.

Целостная и адекватная архитектура прикладной системы является критическим фактором успеха для любого проекта внедрения. Проект технической архитектуры должен удовлетворять следующим требованиям:

· использование при разработке полных и точных данных;

· согласованность с корпоративным видением бизнеса;

· реалистичность в отношении возможностей предприятия и ограничений используемых технологий.

Первый из перечисленных выше пунктов особенно важен, поскольку архитектурная часть проекта зачастую считается чисто технической, в результате чего возникает риск подгонки бизнес-требований к применяемой технологии. Хорошо управляемый проект разработки архитектуры использует бизнес-требования и их отображение для решения следующих задач:

· выбор оптимальной конфигурации внедряемой системы;

· создание программно-аппаратной инфраструктуры и сети, обеспечивающих работу прикладной системы

· выбор и/или разработка инструментов и процедур, необходимых для управления прикладной системой.

Будучи связанным с другими процессами, процесс построения архитектуры начинается уже на ранних фазах проекта внедрения. Хотя формально процесс действует только во время фаз постановки задачи, анализа и оценки, технического проектирования, документы по архитектуре используются на протяжении всего проекта внедрения. В конечном итоге, именно архитектура является переходным элементом между требованиями бизнеса и конкретными решениями на уровне реализации.

Создание программных модулей

В процессе проектирования и Программирования модулей принимаются решения по разработке дополнительного программного обеспечения (либо модификации существующего) с целью устранения разрывов в функциональности, выявленных в процессе отображения бизнес-требований.

Предлагаемые решения охватывают программные модули (формы интерфейса, отчеты, обработка данных и т.д.), которые должны быть спроектированы, запрограммированы и протестированы до того, как они будут включены в систему.

Основой для подготовки внешних спецификаций модулей, как и всего процесса в целом, служит техническая архитектура и результаты отображения бизнес-требований.

Преобразование данных

В процессе преобразования данных решаются задачи по идентификации, преобразованию и переносу унаследованной информации в базу данных внедряемой прикладной системы. Преобразованные данные используются как во время эксплуатации, так и при тестировании модулей, обучении и приемочном тестировании.

Общая стратегия определяет средства, методы и процедуры преобразования. Отдельно рассматриваются ручные процедуры для отдельных фрагментов данных. Процесс преобразования включает разработку и тестирование необходимых процедур и программ, а также проверку правильности фактически преобразованных данных.

Документирование

Процесс документирования начинается с самого начала проекта. Обязательно документируются и формально утверждаются решения по ключевым вопросам, включая планы и организацию проекта, бизнес-требования, принципиальные технические решения, результаты комплексного и приемочного тестирования, техническое обслуживание, управление системой и работу пользователей.

Полный набор документации включает руководство по управлению системой, руководство пользователя, справочное руководство пользователя, техническое справочное руководство и текст оперативной подсказки. Создание прототипов каждого документа начинается уже на ранних фазах проекта.

Тестирование бизнес-системы

Главной задачей процесса тестирования бизнес-системы является разработка и проведение тестов, результаты которых позволяют объективно оценить степень выполнения бизнес-требований, прежде всего, требований к бизнес-логике, функциональности, пользовательскому интерфейсу, совместной работе с внешними приложениями и пользовательскими расширениями.

Процесс тестирования бизнес-системы обеспечивает формальный интегрированный подход к тестированию. Основным результатом является высококачественная прикладная система, объединяющая стандартные компоненты и пользовательские расширения.

Тестирование рабочих характеристик

Процесс тестирования рабочих характеристик нацелен получение объективного подтверждения требуемых показателей производительности, времени реакции, надежности и других критичных для конкретной ситуации параметров.

Важной задачей данного процесса является использование общей методологии при тестировании различных компонентов, минимизация объемов повторного тестирования, установление связей между показателями тестирования отдельных компонентов и системы в целом.

Эффективность тестирования, и даже сама возможность его проведения, существенно зависит от наличия соответствующих инструментальных средств, позволяющих смоделировать различные ситуации функционирования в реальных условиях. Чаще всего для этих целей может использоваться командный язык интерпретирующего типа (например, командная оболочка операционной системы либо специальный язык для моделирования прикладной системы), позволяющий описывать различные сценарии.

Освоение и обучение

В процессе освоения и обучения достигается главная цель - обеспечение эффективного использования всех возможностей прикладной системы, а также средств управления и обслуживания. Для этого разрабатывается и реализуется программа подготовки менеджеров различного уровня к работе в новых условиях, а также проходит интенсивное обучение администраторов системы, специалистов по техническому обслуживанию и конечных пользователей. При этом важно адаптировать учебные курсы к конкретной ситуации, ориентируясь на ролевые задачи и должностные обязанности персонала, а не на изучение отдельных модулей прикладной системы и выполнение отдельных операций.

Следует проводить четкое различие между теоретическими и практическими занятиями. Теоретические занятия обеспечивают понимание основ и логики функционирования бизнеса в новой информационной среде, в то время как практические занятия направлены на освоение практических навыков в работы информационной системой в реальных условиях.

Составной частью процесса обучения и освоения является выработка рекомендаций по созданию условий эффективной работы персонала в новой среде.

При внедрении информационной системы часто приходится сталкиваться с непониманием и даже прямым противодействием со стороны отдельных групп сотрудников и менеджеров предприятия клиента. Существенным элементом процесса обучения и освоения является продвижение новой концепции деятельности с помощью проведения специальной разъяснительной компании, ориентированной на различные контактные аудитории, способные повлиять на успех проекта.

Переход к промышленной эксплуатации

Процесс перехода к промышленной эксплуатации переводит предприятие и персонал на полномасштабное использование новой информационной системы. Процесс перехода к промышленной эксплуатации включает в себя планирование и обеспечение готовности к эксплуатации, собственно переход к эксплуатации и последующую поддержку.

Переход считается завершенным, когда полностью сформирована база данных, и пользователи начали полностью работать в новой системе. После этого старая система выводится из использования. Как только достигается режим стабильного функционирования, начинается постоянное сопровождение и улучшение системы.

В процессе перехода, а также в начальный период эксплуатации могут готовиться рекомендации по усовершенствованию как отдельных бизнес-процессов, так и функций самой прикладной системы. Основой для этого служат планы и решения руководства предприятия клиента о дальнейшем развитии бизнеса и его информатизации.

Управление проектом

В конечном итоге управление проектом направлено на достижение гарантированного результата при заданных ограничениях на сроки, денежные и трудовые ресурсы. Для этого используется тесная интеграция задач собственно внедрения с задачами управления проектом. Именно хорошая организация и управление проектом является гарантией успеха.

Стадии и этапы управления проектом

С точки зрения управления проект разбивается на ряд стадий -по числу фаз. Все стадии имеют схожую структуру и включают в себя следующие этапы:

Взаимосвязь процессов собственно выполнения работ и процессов управления показана на рисунке. Ниже приводится краткая характеристика этапов. Состав зада

Код этапа | Этап | Когда выполняется
ПП | Планирование проекта | При запуске проекта
ФП | Планирование фазы | В начале каждой фазы проекта
ФК | Контроль фазы | В процессе выполнения каждой фазы проекта
ФЗ | Завершение фазы | При окончании каждой фазы проекта
ПЗ | Завершение проекта | При окончании проекта

ч каждого этапа определяется в описании процессов управления проектом (Приложение 2) и рабочем плане проекта (Приложение 3).

Планирование проекта

На данном этапе основное внимание уделяется решению стратегических задач проекта, включая:

· определение предмета, рамок, целей проекта;

· создание организационной структуры и системы управления проектом;

· ориентацию всех участников проекта;

· распределение ответственности между исполнителем и клиентом;

· обеспечению ресурсами;

· составление бюджета;

· установление сроков для основных работ.

Планирование фазы

Планирование фазы носит более оперативный характер и представляет собой, по сути, адаптацию задач планирования проекта применительно к более детальному уровню отдельной фазы. На этапе планирования фазы при необходимости происходит коррекция планов, включая планы проекта.

На практике планирование проекта и планирование первой фазы часто представляются в виде одного этапа.

Контроль фазы

Процесс контроля протекает параллельно процессу собственно внедрения. Основными задачами этапа является мониторинг хода проекта, подготовка отчетов и оперативное регулирование.

Завершение фазы

На этапе завершения фазы проводятся в основном организационные мероприятия, связанные с подведением итогов и переходом к выполнению следующей фазы. Главной задачей этапа является обеспечение приемки результатов фазы клиентом и подписание соответствующих официальных документов.

Завершение проекта

Состав задач этапа завершения проекта аналогичен этапу завершения фазы. При завершении проекта происходит сдача-приемка всего проекта в целом. Важнейшими задачами данного этапа являются урегулирование всех спорных вопросов и окончательные расчеты.

На практике завершение всего проекта и завершение последней фазы часто представляются в виде одного этапа.

*** Схема «Взаимосвязь процессов выполнения и управления» – не приводится из-за своей бессодержательности.

Процессы управления проектом

Структура задач каждого этапа определяется с помощью следующих процессов управления:

Код процесса | Процесс управления проектом
УО | Контроль и отчетность
УР | Управление работами
УС | Управление ресурсами
УК | Управление качеством
УФ | Управление конфигурацией

Каждый процесс соответствует определенному аспекту управления проектом. Процесс представляет собой цепочку задач, специфических для каждого этапа. Таким образом, получается регулярная декомпозиция системы управления проектом в виде матрицы «этап-процесс», которая позволяет упорядочить рассмотрения и организовать управление проектом в виде совокупности регулярных процедур. Данная декомпозиция представлена на рисунке.

Ниже приводится краткая характеристика процессов управления проектом. Состав задач каждого процесса определяется в описании процессов управления проектом (Приложение 2).

Контроль и отчетность

Задачи данного процесса состоят в мониторинге и оперативном регулировании, направленном на выполнение планов, соблюдение установленного подхода к реализации проекта, разрешение споров, проведение изменений проекта в зависимости от ситуации.

Управление работами

Данный процесс в основном связан с составлением и контролем выполнения рабочего плана и бюджета проекта.

Управление ресурсами

Задачи данного процесса направлены на решение вопросов по обеспечению и эффективному использованию ресурсов, необходимых для успешного выполнения проекта, важнейшим из которых являются люди. Данный этап также тесно связан с созданием инфраструктуры проекта, т.е. организационно-технологического комплекса, в рамках которого развивается проект. Примерами элементов инфраструктуры может служить создание оборудованного участка для проведения тестов, генерации прикладной системы для последующего переноса в подразделения предприятия клиента.

Управление качеством

Задачи данного этапа решаются с целью обеспечить надлежащее качество промежуточных и итоговых результатов проекта. Это достигается за счет соблюдения стандартов и процедур для всех видов деятельности, а также за счет тщательного анализа и оценки выходных результатов каждой фазы.

Управление конфигурацией

Управление конфигурацией имеет своим предметом элементы проекта любой природы, которые создаются и используются в ходе выполнения проекта, а также передаются клиенту. Такими элементами могут быть документы, программы, вычислительное оборудование, обученный персонал и т.д. Управление конфигурацией направлено на поддержку эффективного учета, хранения и использования всех элементов проекта.

 | Процессы и этапы управления проектом | План-ние проекта | План-ние фазы | Контроль фазы | Завершение фазы | Завершение проекта
УО | Контроль и отчетность | ======== | ======== | ======== | == | ==
УР | Управление работами | ====== | ==== | ======== |  |
УС | Управление ресурсами | ======== | ====== | ======== | ==== | ====
УК | Управление качеством | == | == | ======== | == | ==
УФ | Управление конфигурацией | == | == | ======== | == | ====

Рабочий план проекта

Регулярная декомпозиция задач проекта позволяет построить детальный сетевой график, который отражает взаимосвязи задач. На основе сетевого графика создается рабочий план, представляющий собой структурированный перечень задач, упорядоченный во времени.

Типовой рабочий план представлен в Приложении 3.

Обязательные и дополнительные задачи

Рассматриваемый типовой рабочий план охватывает все ситуации внедрения, включая случай комплексной поставки системы масштаба предприятия с большим объемом разработок. Однако независимо от масштаба и сложности системы можно выделить набор обязательных задач, выполнение которых реально обеспечивает достижение высокого уровня качества.

Следует, отметить, что именно набор обязательных задач устанавливает стандарт качества для реализации проектов внедрения системы «1С: Предприятие».

Выполнение обязательных задач требует от исполнителя значительной методической подготовки и создания у себя продвинутой технологии. Основную часть работ по разработке конкретных методик, форм документов и инструментов внедрения для обязательных задач выполнит компания «1С». Соответствующие результаты будут доступны всем партнерам, что в значительной степени облегчит переход всей партнерской сети на новый уровень обслуживания клиентов.

Документирование результатов

Важнейшим элементом технологии внедрения является документирование основных результатов на всех стадиях проекта. Набор обязательных документов для всех проектов внедрения представлен в рабочем плане. Данные документы служат в конечном итоге достижению одной цели: подтверждению качества конечного результата, понимаемого комплексно:

· соблюдение сроков и ресурсных ограничений;

· обеспечение требуемой функциональности;

· достижение целевых рабочих характеристик (производительности, времени ответа, надежности и т.п.).

Данные документы позволяют объективно оценивать качество деятельности каждого партнера, а также служат конструктивной платформой при разрешении споров с клиентом. Аналогично методическому обеспечению компания «"1С"» разработает формы всех обязательных документов, которые будут доступны всем партнерам.

События проекта

В рабочем плане представлены основные контрольные точки, соответствующие началу и окончанию фаз и этапов проекта.

Обобщенные процессы

Некоторые задачи выполнения и управления проектом для удобства объединены в типовом плане в обобщенные процессы:

Код процесса | Процесс
ФП-КОР | Провести обзор и ревизию планов
ФК-ИНД | Контролировать выполнение фазы
ФК-РЕЗ | Контролировать не размещенные резервы

Набор задач каждого такого процесса получается в виде объединения однотипных задач, связанных с планированием, контролем и завершением. Дополнительная классификация задач управления по типам показана в описаниях процессов управления проектом (Приложение 2).

  • ПРИЛОЖЕНИЕ 1. Процессы и задачи выполнения проекта
  • ПРИЛОЖЕНИЕ 2. Процессы управления проектом
  • ПРИЛОЖЕНИЕ 3. Рабочий план проекта внедрения
  • ПРИЛОЖЕНИЕ 4. ГЛОССАРИЙ
  • ПРИЛОЖЕНИЕ 5. Выдержки из ГОСТов на автоматизированные системы


1С-Предприятие. Документация. Внедрение | Психология клиента и как с ней бороться

Психология клиента и как с ней бороться

© Copyright Alter Vita Ltd., 2000. All Rights Reserved. Все пpава в отношении данного текста пpинадлежат компании Альтер Вита. Пpи воспpоизведении текста или его части сохpанение Copyright обязательно. Коммеpческое пользование допускается только с письменного разрешения компании Альтер Вита.

Как всякое авторское творение, данное выступление не лишено значительной доли субъективизма, хотя основано оно на опыте реального общения с клиентами-заказчиками нашей компании и не содержит ни малейшей примеси фантазии.

Начнем, пожалуй, с сервисного обслуживания, или иначе «сопровождения». Основными задачами таких услуг является поддержание в работоспособном состоянии компьютерной техники, локальной компьютерной сети и программного обеспечения предприятия-клиента, небольшая доработка прикладного программного обеспечения, установленного на предприятии и консультации/обучение персонала клиента.

Вот типичная ситуация. Клиент – небольшая компания, имеющая в своем распоряжении 4-5 компьютеров, включенных в локальную сеть, выделенного сервера нет (его роль выполняет один из компьютеров) и пару принтеров. На компьютерах установлена сетевая версия складской/бухгалтерской программы. Поскольку клиент торгует со склада не только оптом, но и в розницу, с программой идет довольно интенсивная работа. Завершаем работу по установке и настройке программного обеспечения, запускаем в работу всю систему, немножко обучаем персонал. Поскольку до нашего участия компания уже использовала локальные версии тех же программ, особых усилий на обучение не требуется. На этом наше участие во внедрении заканчивается. Завершаем расчеты с клиентом и интересуемся, не хочет ли он заключить с нами договор на абонементное обслуживание своей системы. Мы знаем, что такое обслуживание, может быть и в небольшом объеме, но обязательно нужно, поскольку своего специалиста ни по железу, ни по программному обеспечению у клиента нет, а квалификация персонала во всем, что непосредственно не связано с бухгалтерией, далеко не самого высокого уровня (во всяком случае, подключение отвалившегося сетевого принтера выливается в неразрешимую проблему даже при подробных инструкциях по телефону). Наше предложение с финансовой точки зрения, как нам кажется, весьма привлекательно и сводится примерно к следующему: ежемесячно клиент платит нам 100 долларов и имеет право за эти деньги вызвать нашего специалиста к себе на объект до 5 раз в месяц. Специалист обязан прибыть к клиенту не позднее трех часов после вызова. Общее время работы специалиста у клиента не должно превышать 10 часов (то есть, 5 вызовов по два часа или в любых других комбинациях). Это в ДВА С ПОЛОВИНОЙ РАЗА дешевле, чем просто почасовая работа нашего специалиста (часовая ставка 25 долларов). Единственное, что мы хотим взамен – это выплату ста долларов абонементной платы ежемесячно, вне зависимости от того, понадобилась ли наша помощь клиенту в текущем месяце или не понадобилась. Кстати, если клиенту потребуется дополнительные часы работы наших специалистов, сверх предусмотренных договором лимитов, то мы не бросим клиента, а сделаем все от нас зависящее, чтобы его система работала, и при этом возьмем дополнительную оплату по льготному почасовому тарифу (15 долларов в час вместо 25) – это тоже предусматривается договором. На наш взгляд, условия договора со всех сторон выгодные для клиента и совершенно невыгодные нашей компании (вернее нам они тоже выгодны, когда количество клиентов, обслуживаемых по подобным договорам, переваливает за десяток).

Как же реагирует на такое предложение клиент? Сначала тот, кто ведет переговоры со стороны клиента (директор или чаще главный бухгалтер) с удивлением вопрошают: «А что, это все еще и обслуживать надо?!». Работают они с вычислительной техникой не первый день и прекрасно знают, что «…это все еще и обслуживать…» обязательно надо. Просто сделав вид, что это им неизвестно, они получают возможность при первой же неисправности или просто при ошибке пользователя, позвонить нам и дико возопить, что «…вот вы тут у нас что-то сделали, а теперь все не работает…». И это не из-за незнания, а из острого желания получить обслуживание своей системы, к которой мы имели несчастье приложить руки, навечно и бесплатно. Ну с этим вопросом обычно удается разобраться быстро, дав клиенту понять, что бесплатно он больше от нас ничего не получит, кроме кратких телефонных консультаций и гарантийного ремонта компьютеров и сетевого оборудования (что и было предусмотрено договором). А дальше опять плавно переходим к абонементному договору, объясняя, что это именно то, что им надо, причем достаточно дешево. Вот тут то и начинается! Два ключевых вопроса. Первый: «…а за что это мы должны Вам платить, если у нас за месяц ничего не сломается и мы Вас вызывать не будем?» и второй: «…а откуда мы знаем, что вы не будете просто сидеть тут у нас и делать вид, что работаете, просто накручивая на счетчик?». Начинаем дискуссию по первому вопросу, объясняем, что деньги берем за то, что мы всегда «на низком старте», готовые гарантировано быстро к ним приехать в случае каких либо неприятностей, в то время как обычные вызовы обслуживаются нами по возможности, как правило, в течение двух-трех суток с момента вызова. Объясняем, что для работы с абонементными клиентами нам нужно содержать кроме технических специалистов еще и склад запчастей и диспетчерскую службу. Да и технических специалистов надо больше, чтобы всегда был хотя бы один свободный для осуществления экстренного вызова. Пускаемся в пространные объяснения самого понятия «абонементное обслуживание», проводим аналоги с бытовой техникой, автосервисом и т.п. В ответ обычно заявляют, что им проще нанять себе сотрудника… Начинаются расчеты затрат на сотрудника и расходов на оплату абонементного договора и сравнение плюсов и минусов того и другого варианта. В итоге наемный сотрудник (равноценный по широте квалификации и к тому же никогда не болеющий и не ходящий в отпуск) проигрывает и по затратам и по плюсам и минусам. Теперь переходим ко второму вопросу. Это самое сложное. Кроме рекомендаций других наших клиентов и голословных заявлений о том, что нам самим не выгодно, чтобы наш человек сидел у клиента и «наматывал» часы, мы никаких аргументов привести больше не можем. Но, в конце концов, клиент великодушно снисходит к тому, чтобы нам поверить. Дальше обсуждаем разные детали. Переговоры прерываются, клиент просит тайм аут, чтобы подумать.

Через пару дней клиент звонит и радостно сообщает, что они готовы заключить договор, все условия их удовлетворяют, только пусть при тех же условиях цена будет не 100 а 60, а лучше 50 долларов – большего они не могут себе позволить. Все. Клиент потерян. Дальнейшие переговоры бессмысленны. Налицо явная попытка получить бесплатный пряник. И это при том, что фирма-клиент, хоть и небольшая, однако, ее месячный оборот переваливает за несколько сот тысяч долларов и при остановке или сбое компьютерной системы убытки могут исчисляться десятками тысяч долларов. И при всем при этом острое желание сэкономить 50 долларов в месяц. Просто абсурд.

Самое забавное в этой ситуации, что весьма вероятно, что работать с этим клиентом мы все-таки будем. Только клиенту это обойдется дороже в финансовом смысле, а нам в смысле моральном. Через пару месяцев у нас в офисе раздастся телефонный звонок и разъяренный главный бухгалтер этой самой фирмы надрывно начнет ту же песню о том, что «…вот вы нам тут плохо сеть сделали и у нас ничего теперь не работает…» и «…чтобы срочно приезжали все исправляли, а то…» (дальше следует список ожидающих нас неприятностей). И это после двух месяцев нормальной работы всего, «что мы там сделали». Наши разговоры о том, что любая компьютерная система требует регулярного обслуживания напрочь забыты: свои грехи нужно спихнуть на кого-то. Начинаем разбираться (пока по телефону). Сначала спрашиваем, а работало ли «все, что мы там сделали» до сегодняшнего дня. Клиент быстро соображает, что допустил ошибку и заявляет, что, конечно же, ничего не работало, но им не особо и нужно было, поэтому они и не звонили. Начинаем крутить этот вопрос и так и этак, и если все-таки здравый смысл возобладал, то разговор переходит в нормальное русло, т.е. договариваемся с клиентом, о том, чем мы сможем ему помочь и сколько это ему будет стоить (в большинстве случаев требуется просто восстановить разрушенные неграмотными пользователями настройки сетевых протоколов и т.п.). Если же клиент невразумляем и твердо задумал вывернуть нас наизнанку, то ему задается простой вопрос: «А у Вас на компьютерах Windows лицензионный?». Windows у них нелицензионный, но суть не в этом. Поняв, что дальше мы с ними объясняться не собираемся, клиент либо просто начинает угрожать (варианты разные: бандиты, арбитражный суд, жалоба в налоговую инспекцию и т.п.), либо поняв, что наездами от нас ничего не добиться, все же переходит к конструктивным переговорам. Вариант с угрозами здесь рассматривать не будем – эти проблемы каждый решает по-своему. Ну а в случае достижения консенсуса, мы договариваемся о выезде к клиенту наших специалистов (разумеется, за нормальную почасовую оплату) и действительно стараемся прислать к нему людей побыстрее, чтобы он понял преимущества абонемента. Самое обидное для клиента (хотя он этого и не знает), это то, что если бы он позвонил нам и не скандалил, не качал права (а качать права нет даже формального повода – гарантийный срок дается только на компьютеры и сетевое оборудование, а с ним все в порядке), а просто попросил помощи, то мы бы обязательно ему помогли, и, вероятно, даже дали бы скидку. Когда проблема решена, можно опять вернуться к вопросу об абонементном договоре. Иногда это срабатывает с первого раза, иногда со второго или третьего. Иногда вообще не срабатывает, особенно когда на данном предприятии подвизается какой-нибудь отрок с косичкой и немытыми волосами, изображающий из себя асса компьютерного дела. В послекризисные времена с такими личностями приходится сталкиваться достаточно часто, поэтому следует посвятить несколько строк их общему описанию, чтобы в случае необходимости Вы легко смогли опознать такой экземпляр. Высшего и даже среднего технического образования они, как правило, не имеют. Зато часами сидят в Интернете и участвуют во многочисленных конференциях, засоряя их полнейшей чепухой. Их лексикон изобилует массой специальных терминов, почерпнутых их околокомпьютерной литературы и интернетовских чатов. На их личных компьютерах установлены все существующие операционные системы. И конечно они преисполнены собственного величия. Однако, если поинтересоваться у такого существа, что такое алгоритм Лемпеля-Зива-Уэлча, то последует немая сцена из «Ревизора» Гоголя. Они с одинаковым успехом могут пытаться сжать архиватором файл, расположенный на диске, обработанном Drive Space-ом и отбраковать видеоадаптер с 2Мб видеопамятью только потому, что он не желает работать с разрешением 1024х768 и 32 разрядным цветом. Но… у них у всех есть одно существенное преимущество: их можно нанять за 50 баксов в месяц. Правда, почему-то никому из руководства предприятия не приходит в голову обратить внимание на то, что за свои 50 баксов такой субьект будет появляться на работе не более одного раза в неделю, да и то - на пол дня. А когда случится аварийная ситуация, искать его будут всей конторой и найдут только через пару дней. Да и техника и программное обеспечение, которые он обслуживает почему-то станут доставлять персоналу предприятия массу неприятностей. Но, несмотря на все это, магическая сумма в 50 долларов делает свое черное дело. Конечно, после крупного прокола с серьезными финансовыми потерями (а такой прокол рано или поздно обязательно случится) сего отрока погонят взашей, но его место займет такой же точно субъект. И только после того, как и этот т.н. «сисадмин» будет с позором изгнан, клиент может обратить свои взоры в нашу сторону. Но и в этом случае клиента ожидают дополнительные финансове потери. Мы ни в коем случае не возьмем на обслуживание предприятие в том виде, в котором его оставили эти горе-специалисты. Сначала нужно обследовать технику и софт, потом наладить то, что они разрушили. Все это стоит клиенту денег, а он их платить очень не хочет. Но и мы не можем взять на себя обязательства (довольно жесткие) по обслуживанию предприятия, если оно останется в том же виде, до которого его довели. Снова складывается ситуация, которую мы уже проходили. И начинается второй круг.

Так в чем же причина? Почему руководители предприятий, которым совершенно очевидно требуется партнер, который возьмет на себя заботы об их технике и программном обеспечении не в состоянии принять правильное решение? Ведь ситуация может быть просто экономически просчитана.

Оставим в стороне предприятия, которым действительно требуется постоянно присутствующий свой сотрудник. Обычно это предприятия с большим количеством (больше 20) разномастных рабочих станций, несколькими серверами, изобилующее принтерами и… с крайне неквалифицированным (в смысле обращения с вычислительной техникой) персоналом. Внедрив на таком предприятии систему мы сами обычно рекомендуем им нанять себе сотрудника, поскольку взяв такое предприятие на абонементное обслуживание мы просто будем вынуждены отрядить кого-то из своих специалистов для постоянного пребывания у этого клиента (а он естественно за такое количество часов работы платить не желает). Мы не только рекомендуем нанять сотрудника, но и сообщаем руководству предприятия-клиента те квалификационные требования, которым должен отвечать данный сотрудник и примерную величину оклада, соответствующую этим квалификационным требованиям. Ведь мы лучше, чем клиент знаем рынок труда в этой области. Несмотря на это в большинстве случаев все развивается по описанному выше сценарию: нанимается копеечный «крутой» специалист, который за несколько месяцев приводит компьютерную систему предприятия в неработоспособное состояние… а затем следуют телефонные звонки нам.

Так в чем же причина? Почему предприятие, оборот которого составляет несколько сотен тысяч (а зачастую и несколько миллионов) долларов в месяц не может нанять себе специалиста с окладом 400-600 долларов или заключить с нами договор на обслуживание на 100-300 долларов в месяц? Почему максимальная сумма, которую предприятие готово потратить на это не превышает 50 долларов? Дело в руководителе. Причем, практически в 100 процентах случаев речь идет о руководителе самого высшего звена: генеральном директоре, исполнительном директоре и т.п. Решение тратить или не тратить и, если тратить, то, сколько тратить, принимает не тот, кто работает с системой. Обычно, непосредственно за работу компьютерной системы отвечает главный бухгалтер предприятия. Он же пользуется теми благами, которые использование этой системы дает предприятию. И, как правило, главный бухгалтер, понимает, что нужно, чтобы эту систему эксплуатировать. Другими словами, имей мы дело только с главным бухгалтером, все было бы прекрасно: предприятие было бы у нас на абонементном обслуживании или там работал бы свой грамотный специалист. Увы, решения принимает другой человек. И вот здесь самое любопытное. Из опыта общения с такими прижимистыми руководителями я вынес твердое убеждение: они четко делятся на две категории. Первая – это та, где руководитель прекрасно понимает, что то, что ему предлагают, это нужно его предприятию, понимает, что это экономически оправдано, но… он не может и не хочет так вот сразу сдаваться. Он будет торговаться. Причем торговаться он будет до тех пор, пока он не сможет сказать себе: «Да, я молодец. Вот как я опустил этих ребят – почти задаром работать будут». Не понимая экономических оснований наших, с его точки зрения невыгодных нам, но выгодных ему, предложений, он решает, что его предприятие почему-то так нам нужно, что мы прямо из кожи вон лезем, чтобы взять его на абонементное обслуживание. А раз так, значит можно торговаться и сбивать цену в два, три и т.д. раза. На мой взгляд, такое поведение можно объяснить только одним: очень большой процент руководителей (а они же обычно являются и владельцами) мелких и средних предприятий выросли на обычной толкучке, на челночном бизнесе и т.п. Образование и некоторый опыт работы в доперестроечный период позволяют таким руководителям понять необходимость обслуживания компьютерной системы их предприятия, но рыночные привычки все равно берут верх. Страсть к сбиванию цены у них уже в крови и торгуются они до посинения. Вторая категория руководителей – это люди, которые считают, что все всегда их обманывают или пытаются обмануть. Обычно это бывшие партийные, профсоюзные и прочие функционеры. Высшего образования они не имеют. За плечами у них длительная практика интриг и подсиживания, но абсолютно никакого понимания, что такое компьютеры и зачем они вообще нужны (кроме компьютерных игр). Компьютерная система у них на предприятии внедряется только потому, что сейчас все так делают (да и главбух давно просит…). На рабочем столе у таких руководителей обязательно есть компьютер (престиж!), но где расположена кнопка включения знает далеко не каждый из них. Их психология проста как грабли. Пятьдесят долларов – это та сумма на которую они могут позволить обмануть себя. Но ни центом больше. Они готовы будут заплатить больше только в том случае, если после длительных поисков не найдут никого, кто бы согласился на эту цену (качество услуг в расчет не принимается – оценить его они просто не могут).

Вообще, разговоры с руководством предприятия-клиента – это тема для большой статьи или даже отдельной книги. Иногда я просто не могу понять, действительно ли директор, с которым ведутся переговоры глуп, или он просто искусно притворяется идиотом. Возьмем простой пример. Кажется, всем давно известно, что гарантия на изделие означает только то, что в период гарантийного срока это изделие поставщик обязан бесплатно отремонтировать или заменить в случае выхода его из строя. И действительно, все это понимают, пока дело касается автомобиля, холодильника, музыкального центра и т.п. Но, как только речь заходит о компьютерах, эти знания сразу улетучиваются из головы клиентов. Почему-то они пребывают в твердой уверенности, что «гарантийные обязательства» на поставляемую технику, смонтированную сеть и т.п. означают, что эти изделия не могут, ну просто не имеют права, сломаться в период действия гарантийного срока! Вы не представляете, каких усилий стоит убедить клиента (руководителя), что это не так. Но даже, если его все-таки удалось убедить – это еще не победа. Не дай Бог, что-то действительно выйдет из строя. Претензии будут выставляться не на тему бесплатного ремонта, а на тему покрытия убытков, вызванных поломкой оборудования, даже в случае, если убытков фактически не было. В такой ситуации спасательной палочкой является договор на поставку оборудования с прописанными в нем обязательствами поставщика (гарантийный ремонт, гарантийный срок) и четкой росписью, за что и в каком случае поставщик несет материальную ответственность.

Наглядным примером вышесказанному может послужить тот факт, что из всех клиентов нашей фирмы, только один имеет в горячем резерве сервер. Да и то этот резервный сервер был установлен только после того, как старый единственный сервер «упал» и его восстановление заняло целый рабочий день, что вылилось в несколько тысяч долларов убытка для клиента. Этот клиент был у нас на абонементном обслуживании, и нас спасло только то, что в дирекции предприятия-клиента имелась наша, соответствующим образом зарегистрированная, докладная записка с описанием возможности подобной аварийной ситуации и рекомендацией немедленной установки резервного сервера.

Теперь о программном обеспечении, в частности о ПО 1С:Предприятие. Здесь также имеются свои особенности. Чаще всего неприятности возникают не со специально написанными под клиента «настройками», а с типовыми конфигурациями, которые устанавливаются клиенту без внесения каких бы то ни было изменений. В случае написания индивидуальной настройки все обстоит достаточно просто: у нас есть индульгенция под названием «Акт о приемке работ». Если клиент подписал «Акт» - значит его все устраивает (конечно, если в договоре на разработку не оговорено иное). Все выявленные в последующей эксплуатации ошибки и недоработки исправляются нами либо бесплатно (если это действительно наша ошибка), либо за соответствующую оплату. Но в любом случае формально мы не обязаны это делать. В случае же типовых конфигураций, обычно конфликт возникает на почве того, что клиент не находит в конфигурации того, что ожидал там найти. Может быть, этого действительно там нет, хотя чаще случается, так, что клиент, просто не прочитав ужасно толстые книжки с описанием конфигурации, с помощью наезда на нас пытается получить бесплатное обучение или мелкие доработки. В такой ситуации от нас требуется особое упорство. Поскольку лицензионного соглашения на покупку ПО фирмы «1С» в прилагаемых к коробочкам документах не существует, то нам остается только твердо стоять на том, что «…программа полностью соответствует прилагаемой документации…». Хорошо если это действительно так. В противном случае приходится бесплатно исправлять ошибки в типовых конфигурациях или возвращать клиенту деньги и забирать коробочку. Такое случается не часто, но все же случается. Обычно, подобная ситуация возникает, когда будущие пользователи ПО 1С:Предприятие почему-то решили, что купив данный продукт, они избавят себя от необходимости вводить накладные и формировать счета, вбивать данные о сотрудниках и делать сложные проводки. Они мечтают о том, что квартальный баланс будет формироваться сам по себе одним щелчком мыши. Ясно, что такие представления об использовании бухгалтерского ПО произрастают на почве компьютерной безграмотности значительной части потенциальных пользователей и руководства предприятий. И, кроме того, они обильно подпитываются различными рекламными публикациями. Что ж, это, конечно, все преодолимо, но… стоит значительных усилий, нервов и денег.

Существует категория руководителей с которыми практически невозможно вести какие бы то ни было дела. Это – бывшие программисты. Они давно ушили в бизнес, превратились в администраторов (часто очень неплохих администраторов). Иногда они находят время почитать различные журнальчики по компьютерной тематике. Иногда они даже пытаются что-то запрограммировать на Access. И они считают, что уж в чем, в чем, а в компьютерах и в программном обеспечении они разбираются гораздо лучше, чем наши специалисты. Встретив такого руководителя Вы можете твердо быть уверены - работать они Вам не дадут. И денег не заплатят. Есть только один метод, который можно попробовать для борьбы с ними. Вероятность успеха – пятьдесят на пятьдесят. Нужно просто разговорить такого руководителя на техническую компьютерную тему и крепко посадить его в лужу. Если руководитель нормальный, здравомыслящий человек, то скорее всего он поймет все правильно и дальше уже все будет зависеть от Вашей работы. Если же Вы нарветесь на самодура – прощай клиент. Но жалеть не стоит – как я уже сказал, кроме головной боли, ничего иного Вы там не заработаете.

Есть еще один интересный факт, касающийся непосредственно системы 1С:Франчайзинга. Мы в своей компании всегда старались и стараемся поддерживать квалификацию сотрудников, как тех, которые занимаются прикладным программным обеспечением, так и тех, кто занимается системным ПО и аппаратной частью на достаточно высоком уровне. Такой подход, в общем, затрудняет работу – больше затраты на обучение и повышение квалификации, меньше «вал» выполненных (вернее наполовину выполненных или «криво» выполненных) заказов и т.д. Так вот, в последнее время на удивление легко стало договариваться с клиентами, у которых уже побывали сотрудники других фирм-франчайзи. В первую очередь это касается «кривых» недоделанных сетевых установок, недоустановленных обоновлений и апгрейдов на 2000 год, различных сетевых заморочек и т.п. Это не означает, что у нас все получается с первого раза, и по высшему разряду. Но если мы взялись за какую-то недоделанную другими задачу, то стараемся выполнить ее, во что бы то ни стало. И оплату берем за результат, а не за проведенное у клиента время. В конечном итоге – пополнение количества абонементных клиентов. Наилучшей рекомендацией, как оказалось, является не просто выполненная работа, а выполненная работа, которую не смогли выполнить другие.

Итак, какие же выводы можно сделать из всего сказанного. Главный вывод – у руководства потенциальных клиентов сохраняется «посткризисный» синдром, чему в немалой степени способствует огромный рынок незадействованной рабочей силы в той или иной степени знакомой с компьютером. Кризис сумели пережить только те предприятия, руководители которых вели жесткую финансовую политику, экономили каждую копейку. Продолжают они экономить и сейчас, хотя вполне могут позволить себе расслабиться. Пройдет еще немало времени, пока станет очевидным, что политика жесткой экономии, позволившая пережить кризис, стала теперь тормозом в развитии. Соответствует ситуации и положение внедренческих контор, которым приходится прилагать довольно значительные усилия не на разработку собственно заказа, а на «разработку» руководства предприятия-клиента, т.е. больше внимания уделяется вопросам нахождения и удержания клиента, а не самому внедрению, что естественно сказывается на качестве выполняемых работ. Вероятно, пройдет еще некоторое время, пока сменится поколение руководителей потенциальных заказчиков, а внедренцы найдут оптимальный баланс между маркетинговой деятельностью и техническим уровнем непосредственных исполнителей. Это непременно должно произойти в ближайшие 2-3 года. Если не будет нового кризиса…

Алексей Жедь

08.03.2000г.

© Copyright Alter Vita Ltd., 2000. All Rights Reserved.


1С-Предприятие. Документация | Управление распределенными ИБ. Введение

Введение

Настоящая книга является Руководством по использованию компоненты «Управление распределенными ИБ».

Компонента «Управление распределенными ИБ» является необязательной частью системы 1С:Предприятие. Она реализует механизм работы системы 1С:Предприятие с распределенной информационной базой при любом составе установленных компонент 1С:Предприятия.

Данное руководство описывает работу компоненты «Управление распределенными ИБ» со всеми компонентами 1С:Предприятия («Оперативный учет», «Расчет», «Бухгалтерский учет»).

Заметим, что в компонентах «Бухгалтерский учет» и «Расчет» используются дополнительные объекты, для которых приводится описание их работы в распределенной ИБ. Если какая-либо из компонент «Бухгалтерский учет» или «Расчет» не установлена, то соответствующие ей объекты не используются и никак не влияют на функционирование системы.

Структура Руководства

Настоящее Руководство состоит из разделов, каждый из которых описывает характерные особенности работы с компонентой «Управление распределенными ИБ».

В главе 1 рассматривается порядок установки компоненты.

Глава 2 дается представление о принципах работы компоненты и алгоритмах разрешения спорных ситуаций, возникающих в процессе функционирования распределенной ИБ.

Глава 3 описывает процесс создания распределенной информационной базы.

В главе 4 дается описание действий пользователя, необходимых для осуществления переноса данных между информационными базами распределенной системы.

Глава 5 описывает различные режимы миграции данных в распределенной системе и методику установки свойств миграции «ведущих» объектов.

В главе б дается описание функций встроенного языка системы 1С:Предприятие, предназначенных для работы с распределенной конфигурацией.

В главе 7 описываются особенности конфигурирования 1С:Предприятия для работы с распределенной информационной базой.

Что вы должны знать

Характер изложения данного Руководства предполагает, что Вы знакомы с операционной системой Microsoft Windows 95 (Microsoft Windows 98, Microsoft Windows NT 4.0), системой 1С:Предприятие, и владеете базовыми навыками работы с ними.

Вам должны быть знакомы следующие понятия и навыки:

  • использование меню «Пуск» («Start») для вызова программ;
  • приемы работы с окнами;
  • работа с меню;
  • использование управляющих элементов диалогов;
  • стандартные диалоги;
  • понятие «конфигурации» в системе 1С:Предприятие и ее состав;
  • запуск Конфигуратора и работа с ним.

Если Вы недостаточно хорошо владеете перечисленными понятиями и навыками, рекомендуем обратиться к документации по операционной системе Windows 95 (Microsoft Windows 98, Microsoft Windows NT 4.0) и системе 1С:Предприятие.

Принятые обозначения

Для лучшего понимания излагаемого материала в настоящем Описании приняты некоторые общие приемы выделения отдельных элементов текста. Соглашение о таких приемах приведено ниже.

Обозначения кнопок. Наименования кнопок в диалогах будут даваться их названиями в кавычках, например, «ОК», «Закрыть» и т.д.

Используемые термины и сокращения

В приведенной ниже таблице приводятся пояснения для терминов и сокращений, используемых в настоящем Руководстве.

Термин и/или сокращение

Пояснение

ИБ

Информационная база

Центральная ИБ

Привилегированная ИБ, исполняющая роль центра в рамках информационной системы всего предприятия. Как правило, территориально расположена в центральном офисе

Периферийная ИБ

ИБ территориально удаленного подразделения предприятия

«Ведущий» объект

Элемент данных системы - константа, элемент справочника, конкретный документ. Сама конфигурация также является «ведущим» объектом для центральной И Б

Файл переноса данных

Файл, содержащий совокупность измененных, добавленных и удаленных «ведущих» объектов

Файл первичной выгрузки

Файл переноса данных, формируемый центральной ИБ при создании образа новой периферийной ИБ

Какие задачи решает компонента «Управление распределенными ИБ»

В случаях, когда предприятие представляет собой группу территориально удаленных подразделений, которые могут, к тому же, выполнять различные функции (например, центральный офис, магазин, торговая база, склад и так далее), возникает задача упорядочивания их совместной работы в рамках одного предприятия - передачи необходимых документов между подразделениями, согласование состава справочников и констант, используемых в работе.

Компонента системы 1С:Предприятие «Управление распределенными ИБ» позволяет автоматизировать решение этих задач в рамках предприятия.

Перейти к оглавлению: Управление распределенными ИБ


1С-Предприятие. Документация | Управление распределенными ИБ. Глава 1

Глава 1 Установка и подключение компоненты

Требования к аппаратно-программному обеспечению

Компонента «Управление распределенными информационными базами» может быть «доустановлена» в любой момент к любому варианту продуктов семейства 1С: Предприятие 7.7. Наличие такой компоненты является обязательным только для центральной информационной базы. На периферийных информационных базах устанавливается только собственно 1С:Предприятие.

Для обеспечения переноса данных в распределенной системе необходимо иметь возможность физического переноса файлов между рабочими местами, на которых происходит функционирование центральной ИБ и любой периферийной ИБ. 1С:Предприятие предоставляет сервис посылки и приема файлов переноса, однако его использование не является обязательным. Для каждой пары способ физической передачи файлов переноса данных может быть выбран индивидуально.

В остальном требования к окружению компоненты и собственно системы 1С:Предприятие идентичны.

Установка

Установка компоненты «Управление распределенными информационными базами» выполняется при помощи специальной программы установки, которая находится на 1-й дискете комплекта поставки компоненты (эта дискета может быть единственной). Перед тем, как приступить к установке, следует убедиться, что жесткий диск не содержит ошибок и имеется достаточно свободного места для выполнения установки. Для установки компоненты требуется около 1,5 Мбайт свободного дискового пространства.

Запуск программы установки. Для установки компоненты необходимо выполнить следующие действия.

1. Вставьте 1-ю дискету комплекта поставки в дисковод А: (или В:).

2. Для запуска программы установки воспользуйтесь одним из следующих способов

• в меню «Пуск» выберите пункт «Выполнить», в выданном на экран запросе укажите имя программы установки, например:

и нажмите кнопку «ОК»:

или

• запустите программу Панель Управления (Пуск - Настройка - Панель Управления) и щелкните мышью на пиктограмме «Установка и удаление программ». Выполняйте дальнейшие действия по выдаваемым на экран указаниям.

После выполнения подготовительных действий на экран будет выдано главное окно программы установки компоненты «Управление распределенными информационными базами». Дальнейшие действия выполняйте по указаниям программы установки компоненты.

Защита от копирования

Для предотвращения возможности незаконного тиражирования компонента «Управление распределенными информационными базами» предоставляется пользователям в защищенном от копирования виде.

Одной из составных частей используемой системы защиты является аппаратный ключ, который необходимо вставить (разумеется, при выключенном компьютере) в разъем параллельного порта компьютера. Если вы используете принтер, кабель от него надо вставить в другой разъем ключа защиты. Наличие ключа не влияет на функционирование компьютера и его взаимодействие с принтером - вы можете использовать принтер так же, как обычно.

Рекомендуется размещать ключ защиты компоненты там же, где находится ключ защиты системы 1С:Предприятие.

Подключение

Подключение компоненты «Управление распределенными информационными базами» выполняется автоматически в момент запуска системы 1С:Предприятие. Признаком успешного подключения компоненты является доступность режима «Управление распределенными данными». Этот режим можно вызвать, выбрав пункт «Распределенная ИБ - Управление» из меню «Администрирование» главного меню Конфигуратора.

Перейти к оглавлению: Управление распределенными ИБ


1С-Предприятие. Документация | Управление распределенными ИБ. Глава 2

Глава 2

Основные принципы работы компоненты

Общие принципы

Распределенная информационная база состоит из центральной информационной базы и произвольного числа периферийных информационных баз. Передача изменений производится посредством файла переноса данных.

Списки пользователей ведутся в каждой И Б независимо.

Центральная информационная база - это единственная точка, где может модифицироваться конфигурация и откуда может осуществляться управление структурой распределенной информационной базы (составом входящих в нее периферийных информационных баз). Изменения данных (ввод и модификация документов, работа со справочниками и т.д.) могут производиться на любой ИБ распределенной информационной базы. Для синхронизации информационных баз между периферийными и центральной ИБ периодически производится перенос измененных данных. Периферийные ИБ, участвующие в процессе обмена данными, должны быть созданы на основе центральной ИБ (см. раздел «Создание образа периферийной ИБ») - в противном случае файл передачи данных компонентой обработан не будет.

Существует специальная возможность с . кия для периферийной ИБ признака «Только получатель», с этом случае будет выполняться перенос данных в периферийную информационную базу, но обратный перенос данных (из этой ИБ в центральную) выполняться не будет. Периферийные информационные базы с признаком «Только получатель» используются в специальных случаях. Например, чтобы иметь постоянно поддерживаемую в актуальном состоянии копию центральной ИБ, с возможностью внесения в нее любых изменений.

Перенос данных происходит «пообъектно», то есть единицей переноса информации является «ведущий» объект, документ, элемент справочника, константа. При использовании компоненты «Бухгалтерский учет» к таким объектам добавляются бухгалтерский счет, типовая операция, список корректных проводок (список корректных проводок, фактически, является одним объектом и при их изменении обновляется целиком). При использовании компоненты «Расчет» «ведущими» объектами также становятся календари (каждый календарь является самостоятельным «ведущим» объектом). Вместе с документом также переносятся все действия, которые он выполняет в процессе проведения: движения регистров, акты расчета, изменения в справочниках, бухгалтерские операции. При изменении в центральной информационной базе самой конфигурации системы в процессе переноса данных происходит также автоматическая реструктуризация данных во всех периферийных информационных базах.

При конфигурировании системы для различных видов объектов может быть определена область миграции: указаны те информационные базы, в которые должны попадать конкретные экземпляры объектов данного вида в зависимости от места их создания. Например, доверенности могут не участвовать в переносе информации, так как они обычно используются только "по месту выписки". Многие документы имеет смысл переносить только на центральную информационную базу для получения консолидированной отчетности. Каждая ИБ автоматически ведет внутренний список изменений "ведущих" объектов, постоянно пополняя его. В выгружаемый файл также помещается информация о загруженных изменениях объектов. При загрузке ИБ определяет, какие изменения приняты ее корреспондентом, и удаляет их пз списка изменений. Кроме обычного автоматического способа регистрации изменений ведущих объектов существует возможность управлять включением объекта в список измененных. Управление выполняется средствами встроенного языка и используется в специальных случаях. Например, с помощью такого управления можно исключить передачу изменений объекта, выполненных специальной обработкой, если они заведомо имеют смысл только в данной информационной базе. Реализация механизма передачи данных между ИБ обеспечивает корректную синхронизацию информационных баз в случаях, когда нарушается порядок загрузки файлов переноса данных, и даже в случае потери части выгрузок. Однако этот механизм подразумевает обмен файлами переноса данных в обоих направлениях, так как до тех пор, пока от ИБ, для которой производилась выгрузка, не вернется подтверждение приема изменений, ИБ, производившая выгрузку, будет включать, возможно, уже принятые изменения в каждый последующий файл переноса данных, что будет увеличивать размер файла.

Принципы разрешения спорных ситуаций

При работе распределенной системы с периодическим обменом данными могут возникать спорные ситуации (коллизии). Ниже дан перечень коллизий и алгоритмы их разрешения системой. Эту информацию следует иметь в виду при создании новой конфигурации и при проведении организационных мероприятий по внедрению распределенной ИБ на базе системы 1С:Предприятие.

Только после того, как все ИБ системы, которые поддерживают синхронизацию «ведущего» объекта, подтвердили его прием, информация о его изменении удаляется системой, и процедура корректировки распределенной ИБ заканчивается. Если же в течение этого промежутка времени другая ИБ внесла в объект свои изменения, то такие корректировки можно считать условно одновременными. Коллизии могут возникать при условно одновременном изменении «ведущего» объекта двумя или более ИБ единой распределенной информационной базы.

Коллизия | Алгоритм
Один и тот же объект изменен более чем в одной ИБ | Если одна из ИБ - центральная, то определяющими считаются изменения, сделанные в ней. В периферийных ИБ состояние объекта при следующей выгрузке-загрузке будет приведено в соответствие с центральной. В противном случае определяющими считаются изменения, дошедшие первыми до центральной ИБ.
Объект, удаленный в одной из ИБ, не может быть удален в другой, так как в другой ИБ на пего имеются ссылки | По окончании процедуры корректировки распределенной ИБ объект будет восстановлен всеми ИБ, поддерживающими его синхронизацию.
Объект, измененный в одной ИБ, был удален в Другой | Определяющим действием считается изменение. По окончании процедуры корректировки распределенной ИБ объект в измененном виде будет восстановлен всеми ИБ, поддерживающими его синхронизацию.

Значение на определенную дату периодического реквизита справочника или счета, а также значение периодической константы не является «ведущим» объектом: ими могут быть только константа, элемент справочника, счет, вместе со всей историей изменения периодических реквизитов. Поэтому, при условно одновременном изменении периодической константы, элемента справочника, счета, по окончании процесса корректировки распределенной ИБ принятым окажется только одно изменение, даже если корректировка периодического значения производилась для разных дат.

Перейти к оглавлению: Управление распределенными ИБ


1С-Предприятие. Документация | Управление распределенными ИБ. Глава 3

Глава 3

Инициализация распределенной информационной базы

Создание распределенной ИБ производится с помощью Конфигуратора системы 1С:Предприятие из нераспределенной информационной базы и выполняется в три этапа: инициализация центральной ИБ, создание образа(ов) распределенной(ых) ИБ, инициализация периферийной ИБ.

Наиболее важные действия управления распределенной ИБ (такие как инициализация центральной и периферийной информационных баз) не могут выполняться в разделенном режиме, то есть тогда, когда кто-либо работает с данной информационной базой в режиме "1С:Предприятие". При попытке вызвать режим управления распределенными данными будет выдаваться соответствующее сообщение.

Внимание! Инициализация распределенной ИБ - процесс необратимый, поэтому, при необходимости, создайте резервную копию нераспределенной информационной базы до создания распределенной.

Инициализация центральной ИБ

Инициализация распределенной ИБ и управление структурой распределенной информационной базы осуществляется в диалоге «Управление распределенными данными» Конфигуратора. Для его вызова закройте все открытые окна Конфигуратора и вызовите пункт меню «Операции/ Распределенная ИБ/ Управление».

Для инициализации центральной ИБ нажмите кнопку «Центральная ИБ». В появившемся диалоге введите код и описание центральной информационной базы:

Сделать информационную базу нераспределенной и поменять код в дальнейшем будет невозможно.

Конфигуратор запросит подтверждение инициализации. Если Вы планируете каким-либо образом использовать код ИБ (например, для определения типа ИБ при работе 1С:Предприятия: первый символ "С" - склад, "М" - магазин и т.д.) - заранее продумайте систему кодов информационных баз распределенной информационной базы.

В этом диалоге для центральной ИБ флажок «Только получатель» недоступен, так как центральная информационная база не может иметь такого признака.

Создание образа периферийной ИБ

Для создания образа новой периферийной ИБ нажмите кнопку «Новая периф. ИБ» в диалоге «Управление распределенными данными» Конфигуратора. Заметим, что эта операция недоступна, пока не проинициализирована центральная ИБ.

В появившемся диалоге введите код и описание новой периферийной информационной базы:

Поменять код периферийной информационной базы в дальнейшем будет невозможно, поэтому, если планируется каким-либо образом использовать код ИБ (например, для определения типа ИБ при работе 1С:Предприятия: первый символ «С» - склад, «М» - магазин и т.д.) - заранее продумайте систему кодов информационных баз распределенной конфигурации.

В диалоге инициализации периферийной информационной базы можно включить флажок «Только получатель». Если этот признак установлен, то обмен с данной информационной базой будет заключаться только в передаче в нее изменений из центральной ИБ. Изменения, выполняемые в этой периферийной ИБ, не будут передаваться в центральную информационную базу. При этом сам файл переноса выгружаться будет, и должен загружаться в центральной ИБ. Но он будет содержать только подтверждения получения изменений периферийной ИБ. Признак «Только получатель» также как и код ИБ I может быть изменен после инициализации периферийной информационной базы.

Повторите эту процедуру для всех периферийных ИБ, которые Вы планируете создать в данный момент. Изменить структуру информационных баз данных будет возможно позднее, в том числе и после

запуска распределенной ИБ в эксплуатацию. Подробнее об этом смотрите в разделе «Управление структурой распределенной информационной базы».

Нажмите на кнопку «Пар. автообмена» и в открывшемся диалоге задайте каталоги, имена файлов и режимы автообмена для созданных периферийных ИБ. Подробнее о работе с диалогом «Настройка параметров автообмена» и режимах автообмена смотрите в разделе «Автообмен. Настройка и использование».

Для первичной выгрузки данных выберите конкретную ИБ из списка периферийных информационных баз. нажмите кнопку «Выгрузить данные» и введите имя файла (расширение можно не указывать, по умолчанию -ZIP, в которую следует произвести выгрузку:

Установив опцию выгрузки данных «Выгружать сведения о пользователях», в первичную выгрузку можно включить информацию о пользователях центральной ИБ, определенных на момент первичной выгрузки. В дальнейшем информация о пользователях в файл переноса данных включаться не будет: список пользователей ведется на каждой ИБ индивидуально.

В диалоге выбора имени файла можно также ввести пароль ZIP. Пароль позволяет защитить файл переноса от несанкционированного использования. В качестве пароля может выступать любая последовательность символов.

Способ физической передачи файла переноса данных между центральной и периферийной ИБ системой жестко не определен и зависит от возможностей пользователя. Поэтому устройством для вывода может быть и стандартная дискета, и жесткий диск (если, например, осуществлять передачу планируется посредством электронной почты). Необходимо только, чтобы для обоих ИБ способ передачи файла был физически реализуем.

Файл первичной выгрузки находится на особом положении среди файлов переноса данных. Он формируется только центральной ИБ, только один раз, не должен быть утерян и обязательно должен быть введен первым при инициализации периферийной ИБ. Система помечает ИБ в списке значками яряч 1-я периферийная ИБ базы, для которых файл первичной выгрузки был создан, аЯ^2 2-я периферийная иб - для которых первичная выгрузка не проводилась.

Инициализация периферийной ИБ

Для инициализации периферийной ИБ необходимо на рабочем месте, предназначенном для работы в качестве периферийной ИБ, запустить Конфигуратор системы 1С:Предприятие. Работа со стартовым диалогом системы «Запуск 1С: Предприятия» не имеет характерных особенностей, связанных с тем, что инициализируемая ИБ - периферийная, и в данной книге не рассматривается.

Выберите пункт меню «Файл/Загрузить данные...» и введите спецификацию имени файла первичной выгрузки, сформированного центральной ИБ для данной периферийной.

Если при выгрузке использовался пароль ZIP, то при вводе имени файла необходимо также указать пароль.

После того, как Конфигуратор закончит обработку файла, откорректируйте список пользователей ИБ, назначив им соответствующие права и интерфейсы. Напомним, что список пользователей является локальным и должен быть определен для каждой ИБ индивидуально, в то время как наборы прав и пользовательские интерфейсы являются частью конфигурации и, следовательно, область их распространения вся распределенная ИБ.

Выберите пункт меню «Операции/Распределенная ИБ/Автообмен» и нажмите кнопку «Настройка» в появившемся диалоге «Автообмен». Задайте каталоги для файлов переноса данных при загрузке и выгрузке. Подробнее о работе с диалогом «Настройка параметров автообмена» и режимах автообмена смотрите в разделе «Автообмен. Настройка и использование».

Затем запустите систему 1С:Предприятие и заполните значения локальных констант и содержание локальных справочников. Конечно, эти действия будут иметь смысл только в том случае, если имеются константы или справочники, которые должны заполняться на периферийной ИБ и не переносятся из центральной.

Инициализацию каждой периферийной ИБ следует производить индивидуально. Пользоваться одним и тем же файлом начальной выгрузки недопустимо, т.к. он, помимо общих для всех сведений о конфигурации и содержимом «ведущих» объектов центральной ИБ, содержит также уникальную информацию для конкретной периферийной информационной базы (например, ее код).

Управление структурой распределенной информационной базы

В процессе эксплуатации распределенной информационной базы может потребоваться ее реструктуризация: введение новой или удаление существующей периферийной ИБ, изменение реквизита описания. Коды как центральной, так и периферийной базы изменены быть не могут.

Все изменения структуры производятся только на центральной информационной базе в диалоге «Управление распределенными данными».

Ввод новой периферийной ИБ сводится к созданию образа и инициализации новой периферийной информационной базы. Оба процесса описаны в предыдущих разделах.

Для удаления существующей периферийной ИБ в диалоге «Управление распределенными данными» выберите в списке ИБ удаляемую и нажмите кнопку "Удалить периф. ИБ». Удаление периферийной ИБ приводит к «вычеркиванию» ее из списка периферийных информационных баз на центральной. В ведущих объектах распределенной ИБ, мигрировавших с удаленной периферийной информационной базы, при этом никаких изменений не происходит. С удаленной ИБ можно продолжать работать, как с нераспределенной, однако, в дальнейшем будет уже невозможно снова «подключить» ее к распределенной ИБ, даже если ввести в ее состав новую периферийную информационную базу с аналогичным кодом и описанием.

Центральная ИБ не может быть удалена ни при каких обстоятельствах.

Для редактирования описания центральной ИБ в диалоге «Управление распределенными данными» нажмите кнопку «Центральная ИБ», в появившемся диалоге откорректируйте содержимое поля «Описание» и нажмите кнопку «ОК.».

Для редактирования описания периферийной ИБ в диалоге «Управление распределенными данными» выберите в списке ИБ редактируемую и нажмите кнопку «Выбран. периф. ИБ». В появившемся диалоге откорректируйте содержимое поля «Описание» и нажмите кнопку «ОК.».

Автообмен. Настройка и использование

Для облегчения и ускорения процесса загрузки-выгрузки файлов обмена данных и уменьшения вероятности ошибки при вводе имени файла, в особенности на центральной ИБ при большом количестве периферийных, система поддерживает специальный механизм обмена файлами переноса данных - автоматический обмен файлами переноса данных (автообмен).

Процедура автообмена заключается в автоматической загрузке и выгрузке изменений с определенными файлами. Кроме того, может выполняться автоматическая посылка и прием файлов переноса с использованием электронной почты.

Каждой периферийной ИБ могут быть установлены каталоги загрузки и выгрузки, имена файлов для загрузки и выгрузки и один из четырех возможных режимов автообмена:

фиксированный | то же, что и «автоматический», но имена файлов задаются пользователем;
автонумерация | то же, что и «автоматический», но расширс ние файла и первые четыре символа имени задаются системой автоматически, а последние 3 символа имени, представляющие собой порядковый номер файла по основанию 36 (О...9, А...2), могут быть заданы пользователем. В процессе проведения загрузок-выгрузок, «номер» в имени файла будет инкрементироваться, и новые файлы переноса данных не будут затирать старые. Таким образом, будет сохранена «история» обмена файлами переноса данных между данной периферийной и центральной информационными базами.
ручной | данная ИБ исключается системой из процесса автообмена, введенные имена файлов и каталоги будут использоваться как путь по умолчанию при ручной загрузке-выгрузке;
автоматический | ИБ включена в автообмен. Имена файлов задаются системой автоматически на основании кода ИБ и не редактируются. При ручной загрузке-выгрузке введенные имена файлов и каталоги будут использоваться как путь по умолчанию;

Имена файлов и режим могут быть установлены только на центральной ИБ и мигрируют на периферийную вместе с файлом переноса данных. Поэтому желательно произвести настройку параметров автообмена до проведения первичной выгрузки.

Каталоги могут быть различными для каждого рабочего места распределенной ИБ и поэтому не обладают свойством миграции. Они устанавливаются индивидуально для каждого рабочего места в отдельности. При выполнении автообмена сообщения об возникающих ошибках выводятся в окно сообщений, не прекращая выполнения всего пакета обменов.

Настройка параметров автообмена на центральной ИБ

Внешний вид диалога настройки параметров автообмена на центральной ИБ представлен на рисунке.

В левой части диалога расположен список информационных баз. Параметры задаются для информационной базы, на которой установлен в данный момент курсор.

Диалог содержит три закладки.

На первой закладке «Файлы, режимы» настраивается режим автообмена и имена файлов. В верхней части диалога настраиваются каталоги для размещения файлов переноса для выгрузки и загрузки. Установленные каталоги должны существовать во время выполнения переноса данных, в противном случае в процессе обмена файлами переноса данных будет выдано сообщение об отсутствии каталога. Установленный признак «Один для всех» вызывает присвоение соответствующего каталога всем информационным базам, созданным на текущий момент, а также тем, которые будут создаваться в дальнейшем в диалоге «Управление распределенными данными». Далее выбираются имена файлов и режим автообмена. Режим работы полей редактирования имен файлов зависит от текущего режима автообмена. При автоматическом режиме изменение их содержимого запрещено; при ручном и фиксированном отслеживается, чтобы имя файла содержало не более 8 символов, а расширение - 3. При автонумерации позиционирование курсора разрешено только на последние 3 символа, соответствующих «номеру» файла, и включается режим замены. Любая ошибка при вводе в этом режиме приводит к обнулению «номера». Установленный для режимов автообмена признак «Один для всех» вызывает присвоение соответствующего режима всем информационным базам, созданным на текущий момент, а также тем, которые будут создаваться в дальнейшем в диалоге «Управление распределенными данными».

На закладке «Электронная почта» настраиваются параметры автоматического приема и посылки файлов переноса с использованием электронной почты.

Группа управляющих элементов, расположенная внутри рамки «Центральная ИБ», задает используемые системой при автообмене параметры электронной почты для центральной информационной базы, их содержимое не зависит от выбранной в списке периферийной ИБ. Содержимое управляющих элементов, расположенных внутри рамки «Периферийная ИБ», определяет параметры электронной почты, которые будут использоваться системой при автообмене с конкретной ИБ и должны быть заданы для каждой периферийной информационной базы из списка индивидуально.

Принцип использования подсистемы обмена сообщениями (электронной почты) для автоматизации процесса обмена файлами переноса данных в распределенной информационной базе весьма прост. При запуске автообмена система проверяет наличие в почтовом ящике сообщений, имеющих атрибут «Тема» ("Subject"), отвечающих определенным правилам. Если таковые будут найдены, система автоматически читает сообщения, извлекает из них файлы переноса данных и помещает их в тот каталог и под тем именем, которые определены на закладке «Файлы, режимы». Обработка входящего файла переноса данных и формирование исходящего не имеют особенностей, связанных с применением подсистемы обмена сообщениями. По окончании работы с файлами переноса данных, система создает новое почтовое сообщение (сообщения) с заполненным по определенным правилам атрибутом «Тема» («Subject») и «присоединяет» к сообщению вновь сформированный файл переноса данных. Сообщение помещается в папку исходящих сообщений установленного в операционной системе клиента системы электронной почты (Microsoft Outlook, Netscape Mailer и т.д.).

Для центральной ИБ задаются следующие 4 параметра подсистемы обмена сообщениями:

Адрес | указанный адрес будет использоваться всеми периферийными И Б для посылки сообщений, содержащих файл переноса данных;
Конфигурация ЭП | установленный в операционной системе клиент электронной почты может поддерживать работу с набором конфигураций, определяющих параметры доступа к почтовому серверу. Данный управляющий элемент позволяет определить, какая конфигурация почтового клиента будет использоваться при автообмене;
Пароль | вызов установленного в операционной системе клиента электронной почты может быть защищен паролем от несанкционированного доступа. В таком случае, в данном поле необходимо указать пароль запуска почтового клиента;
Обновлять содержимое почтового ящика | если флажок установлен, то при каждом входе в диалог автообмена будет установлена связь с сервером электронной почты и содержимое папки входящих сообщений почтового клиента будет обновлено. Заметим, что, в зависимости от вариантов связи с почтовым сервером, эта операция может потребовать продолжительного времени.

Для каждой периферийной ИБ задаются следующие 3 параметра электронной почты:

Использовать электронную почту при автообмене | если данный флажок не установлен, подсистема обмена сообщениями при автообмене использоваться не будет. Заметим, что, хотя оставшиеся 2 параметра имеют значение только при установленном флажке, система хранит их значение и при выключении флага. Это позволяет временно отключать использование электронной почты при автообмене с данной периферийной ИБ, сохраняя значения остальных параметров, что может потребоваться, например, при ремонте телефонной линии, используемой периферийной ИБ для связи с почтовым сервером;
Адрес | указанный адрес будет использоваться центральной ИБ при посылке сообщений, содержащих файл переноса данных для данной периферийной информационной базы;
Способ передачи файлов по электронной почте | определяет, будет ли при передаче файла использоваться механизм присоединения (Attachment) к сообщению, либо кодирования в тексте сообщения. Устанавливается в зависимости от способности почтовых клиентов на обеих сторонах (центральной и периферийной ИБ) обрабатывать включение указанным способом файла в сообщение.

Примечание. В зависимости от установленного программного обеспечения, обслуживающего подсистему обмена сообщениями, может потребоваться различное задание параметров электронной почты. Существенным может оказаться, поддерживает ли почтовый клиент работу с конфигурациями, защиту от несанкционированного доступа. Особое внимание следует уделить формату задания адресов электронной почты. Некоторые почтовые клиенты способны использовать при работе несколько почтовых протоколов и требуют его явного указания в адресе (на приведенном выше рисунке - «SMTR:», т.е. протокол обмена сообщениями через Internet), другие работают только с одним протоколом, и его указание в явном виде может привести к невозможности доставки сообщения.

На закладке «Пароли ZIP» настраиваются пароли, устанавливаемые при записи файлов переноса.

Пароль позволяет защитить файл переноса от несанкционированного использования, что приобретает особую актуальность при передаче по открытым каналам связи. В качестве, пароля может выступать любая последовательность символов. Заданный пароль будет использоваться при создании файлов переноса для выбранной периферийной ИБ и при приеме файлов переноса от выбранной периферийной ИБ. Заметим, что при изменении пароля первый файл переноса не сможет быть принят периферийной ИБ автоматически, т.к. к ней информация об изменении пароля еще дошла и первый раз после изменения пароля прием файла переноса следует осуществить вручную, явно указав новый пароль.

Установленный признак «Один пароль для всех» вызывает присвоение пароля, присвоенного текущей ИБ, всем информационным базам, созданным на текущий момент, а также тем, которые будут создаваться в дальнейшем в диалоге «Управление распределенными данными».

Настройка параметров автообмена на периферийной ИБ

Внешний вид диалога настройки параметров автообмена на периферийной ИБ представлен на рисунке.

В нем настраиваются каталоги загрузки и выгрузки. Установленные каталоги, должны существовать во время выполнения переноса данных, в противном случае в процессе обмена файлами переноса данных будет выдано сообщение об отсутствии каталога.

Кроме того, настраиваются параметры автоматического приема и посылки файлов переноса с использованием электронной почты.

Использовать электронную почту при автообмене | если данный флажок не установлен, подсистема обмена сообщениями при автообмене использоваться не будет. Устанавливается только на центральной ИБ, доступен только для просмотра;
Адрес | указанный адрес используется Центральной ИБ при посылке сообщений, содержащих файл переноса данных для данной периферийной информационной базы. Устанавливается только на центральной ИБ, доступен только для просмотра;
Адрес центральной ИБ | указанный адрес используется периферийной ИБ для посылки сообщений, содержащих файл переноса данных. Устанавливается только на центральной ИБ, доступен только для просмотра;
Конфигурация ЭП | установленный в операционной системе клиент электронной почты может поддерживать работу с набором конфигураций, определяющих параметры доступа к почтовому серверу. Данный управляющий элемент позволяет определить, какая конфигурация почтового клиента будет использоваться при автообмене;
Пароль | вызов установленного в операционной системе клиента электронной почты может быть защищен паролем от несанкционированного доступа. В таком случае здесь необходимо указать пароль входа почтового клиента;
Обновлять содержимое почтового ящика | если флажок установлен, то при каждом входе в диалог автообмена будет установлена связь с почтовым сервером и содержимое папки входящих сообщений почтового клиента будет обновлено. Заметим, что, в зависимости от вариантов связи с почтовым сервером, эта операция может потребовать продолжительного времени;
Способ передачи | определяет, будет ли при передаче файла файлов по электронной почте использоваться механизм присоединения (Attachment) к сообщению, либо кодирования в тексте сообщения. Устанавливается в зависимости от способности почтовых клиентов на обеих сторонах (центральной и периферийной ИБ) обрабатывать включение указанным способом файла в сообщение.

Примечание. В зависимости от установленного программного обеспечения, обслуживающего подсистему обмена сообщениями, может потребоваться различное задание параметров электронной почты. Существенным может оказаться, поддерживает ли почтовый клиент работу с конфигурациями, защиту от несанкционированного доступа. Особое внимание следует уделить формату задания адресов электронной почты. Некоторые почтовые клиенты способны использовать при работе несколько транспортных протоколов и требуют его явного указания в адресе (как на приведенном выше рисунке - «SMTR:», т.е. протокол обмена сообщениями через Internet), другие работают только с одним протоколом, и его указание в явном виде может привести к невозможности доставки сообщения.

Перейти к оглавлению: Управление распределенными ИБ


1С-Предприятие. Документация | Управление распределенными ИБ. Глава 4.

Глава 4

Выгрузка и загрузка данных

Для осуществления переноса данных в системе необходимо организовать периодический обмен файлами переноса данных между центральной и периферийными информационными базами. Периодичность этого процесса, очередность обслуживания периферийных ИБ и физический носитель для файла переноса системой не регламентируются - решение этих вопросов остается за пользователем и зависит от конкретных обстоятельств: необходимости иметь в центральной ИБ полную картину состояния предприятия к определенным моментам времени, наличию аппаратных и программно-аппаратных средств, при помощи которых обмен организуется и т. д. Использование встроенной возможности автообмена с помощью электронной почты не является обязательным. Система ведет себя устойчиво при возможных сбоях в организации процесса переноса данных. Файлы можно загружать не в том порядке, в каком происходила их выгрузка, производить попытку повторной загрузки, пытаться принять файл, предназначенный для другой ИБ, даже «потерять» один или несколько файлов переноса данных (кроме файла первичной выгрузки) - распределенная ИБ будет функционировать корректно.

Данный раздел поясняет, как выгрузить и загрузить файл переноса данных, не касаясь вопросов, связанных с организацией доставки файла от одного рабочего места распределенной системы к другому.

Ручная выгрузка и загрузка файла переноса данных осуществляется в диалоге «Управление распределенными данными» Конфигуратора. Процесс автообмена запускается из диалога «Автообмен» Конфигуратора. Кроме того существует возможность выполнения автообмена в пакетном режиме, то есть без участия пользователя.

Режимы управления распределенной ИБ и автообмена не следует запускать параллельно с работающей в монопольном режиме системой 1С:Предприятие, так как при попытке вызвать диалог управления распределенными данными будет выдаваться сообщение об ошибке, связанной с блокировкой данных. Если 1С:Предприятие работает в разделенном режиме (в многопользовательских версиях), то существует возможность выполнения выгрузки и загрузки изменений. При обращении к режимам управления распределенной ИБ и автообмена будет выдаваться предупреждение об ограниченности выполняемых функций. Разумеется, загрузка изменений в разделенном режиме невозможна, если загружаемые изменения включают измененную конфигурацию.

Для вызова диалога «Управление распределенными данными» за кройте все открытые окна Конфигуратора и выберите пункт меню «Администрирование/ Распределенная ИБ/ Управление». Для вызова диалога «Автообмен» закройте все открытые окна Конфигуратора и выберите пункт меню «Администрирование / Распределенная ИБ/ Автообмен». В силу особого положения центральной базы враспределенной системе, вид диалогов для периферийной базы и процесс выгрузки-загрузки имеют существенные различия.

Ручная выгрузка и загрузка на периферийной ИБ

Общий вид диалога «Управление распределенными данными» для периферийной ИБ приводится ниже:

Изменение структуры распределенной информационной базы на периферийной запрещено и группы полей «Центральная информационная база» и «Текущая информационная база» носят чисто информационный характер.

Для осуществления выгрузки измененных данных на центральную ИБ нажмите кнопку «Выгрузить данные» диалога, в открывшемся окне введите спецификацию имени файла переноса данных и нажмите кнопку «ОК». В случае, если файл с таким именем уже существует, система выдаст предупреждение и запросит подтверждения.

При вводе имени файла можно указать пароль ZIP, защищающий файл переноса от несанкционированного использования.

Для осуществления загрузки измененных данных с центральной ИБ нажмите кнопку «Загрузить данные» диалога, в открывшемся окне введите спецификацию имени файла переноса данных и нажмите кнопку «ОК».

Если при выгрузке вводился пароль ZIP, то его необходимо указать при вводе файла.

В случае, если загрузку произвести невозможно (например, файл не является файлом переноса данных, сформированным Конфигуратором центральной ИБ), система выдаст предупреждение о причинах неудачной загрузки.

Ручная выгрузка и загрузка на центральной ИБ

Общий вид диалога «Управление распределенными данными» для центральной ИБ приводится ниже:

Для осуществления выгрузки измененных данных на периферийную ИБ в списке «Периферийные информационные базы» выберите ИБ, для которой готовится выгрузка (2-я периферийная ИБ на рисунке), нажмите кнопку диалога «Выгрузить данные», в открывшемся окне введите спецификацию имени файла переноса данных и нажмите кнопку «ОК». В случае, если файл с таким именем уже существует, система выдаст предупреждение и запросит подтверждения.

При вводе имени файла можно указать пароль ZIP, защищающий файл переноса от несанкционированного использования.

Для осуществления загрузки измененных данных с периферийной ИБ нажмите кнопку «Загрузить данные» диалога, в открывшемся окне введите спецификацию имени файла переноса данных и нажмите кнопку «ОК». Если при выгрузке вводился пароль ZIP, то его необходимо указать при вводе файла.

Производить выборку периферийной ИБ при загрузке необязательно - система определит сама, откуда пришла выгрузка. В случае, если загрузку произвести невозможно (например, файл не является файлом переноса данных, сформированным Конфигуратором периферийной ИБ), система выдаст предупреждение и загрузки.

Автообмен на периферийной ИБ

Общий вид диалога «Автообмен» для периферийной ИБ приводится ниже:

Нет рисунка

Автообмен в распределенной информационной базе может включать четыре действия:

• прием сообщений ЭП;

• загрузку изменений из центральной ИБ;

• выгрузку изменений в центральную ИБ;

• передачу сообщений ЭП.

Прием и передача сообщений ЭП предлагаются, если данная возможность определена в настройке автообмена.

При запуске диалога определяется, возможно ли произвести загрузку и выгрузку, и устанавливаются соответствующие признаки е диалоге. Если при настройке параметров автообмена каталог загрузки был установлен на сменный носитель, загрузку считается возможным произвести.

Указанные действия будут выполняться всегда в указанной последовательности. В диалоге следует отметить, какие из предложенных действий следует выполнять.

В окне имени файла выгрузки указывается ожидаемое имя. В процессе загрузки (а она происходит сначала) система может принять решение изменить имя файла выгрузки (например, если на центральной ИБ оно было изменено при настройке параметров автообмена).

Для старта операции автообмена нажмите кнопку «Выполнить».

Автообмен на центральной ИБ

Общий вид диалога «Автообмен» для центральной ИБ приводится ниже:

Автообмен в центральной информационной базе может включат;

для каждой периферийной И Б четыре действия:

• прием сообщений ЭП;

• загрузку изменений из периферийной ИБ;

• выгрузку изменений в периферийную И Б;

• передачу сообщений ЭП.

Прием и передача сообщений ЭП предлагаются, если данная возможность определена в настройке автообмена.

При запуске диалога определяется, для каких ИБ возможно произвести загрузку и выгрузку, и они помечаются в списках загрузки и выгрузки. Если при настройке параметров автообмена каталог загрузки был установлен на сменный носитель, загрузку считается возможным произвести.

Указанные действия будут выполняться всегда в указанной последовательности. В диалоге следует отметить, какие из предложенных действий следует выполнять.

В списке выгрузок указывается ожидаемое имя файла выгрузки. В процессе загрузки (а она происходит сначала) система может принять решение изменить имя файла выгрузки. Например, если ИБ имеет режим автообмена «автонумерация» и не произошло правильной загрузки, увеличения «номера» файла выгрузки не происходит и выгрузка производится в файл с прежним именем, в то время как в списке выгрузки указано имя файла с тем расчетом, что загрузка произойдет нормально.

Для начала операции автообмена нажмите кнопку «Выполнить».


1С-Предприятие. Документация | Управление распределенными ИБ. Глава 5.

Глава 5 Управление режимами миграции данных внутри распределенной ИБ

Настройка свойств миграции

Для организаций с небольшим количеством однотипных периферийных информационных баз наиболее простым, очевидно, будет являться режим полной миграции, при котором данные всех информационных баз полностью синхронизируются. В более сложных случаях может потребоваться настройка свойств миграции отдельных элементов метаданных конфигурации.

Свойства миграции могут быть настроены для следующих объектов метаданных:

• константы;
• справочники;
• документы;
• последовательности документов;
• планы счетов;
• операция;
• типовые операции (в целом);
• корректные проводки (в целом);
• регистры;
• календари.
Состав объектов метаданных может быть различным в зависимости от числа установленных компонент.

Сама конфигурация в целом не является объектом настройки и всегда имеет режим полной миграции, т.е. синхронизируется всеми ИБ системы.

Для настройки свойств миграции конкретного объекта метаданных нужно в окне «Конфигурация - Метаданные» выбрать объект метаданных и, вызвав палитру свойств, перейти к закладке «Миграция».

Область распространения. Группа переключателей «Область распространения» устанавливает режим миграции «ведущих» объектов, принадлежащих к данному объекту метаданных.

Режим «Все информационные базы» определяет полную миграцию, т.е. содержимое элемента будет синхронизироваться всеми ИБ системы.

Режим «Место создания»: объекты не мигрируют никуда; состав данных, принадлежащих к данному объекту метаданных, является строго индивидуальным для каждой ИБ системы и никак не синхронизируется.

Режим «Место создания и центр» устанавливает поведение системы, при котором вновь созданный на периферийной ИБ объект мигрирует на центральную ИБ и остается доступным только по месту создания и в центре (этот список можно расширить, см. описание поля ввода «Дополнительно»).

Дополнительно. Если установлен режим «Место создания и центр», в этом поле можно через запятую ввести коды дополнительных ИБ, расширив, таким образом, область распространения объектов данного типа. Все, что сказано в предыдущем абзаце для центральной ИБ, становится верным и для периферийных, включенных в этот список. опускается использование символов-заменителей: например, «W*» означает все периферийные ИБ, чей код начинается с символа «W».

Автоматическая регистрация изменений. Этот признак определяет режим, при котором система автоматически фиксирует все изменения объектов, чтобы выполнить затем перенос измененных данных в другие информационные базы. В большинстве случаев данный признак устанавливается. Отключение режима автоматической регистрации изменений производится в специальных случаях, когда объекты данного вида (в рассматриваемом примере - элементы справочника) не должны при изменениях автоматически переноситься в другие информационные базы. В этом случае регистрация изменений будет производиться только при определенных обстоятельствах, регулируемых средствами встроенного языка в конфигурации.

Заметим, что при включенном режиме автоматической регистрации средства встроенного языка позволяют, наоборот, отключить в определенных случаях регистрацию изменений. Управление регистрацией изменений из встроенного языка будет рассмотрено ниже.

Для документов миграция объектов настраивается аналогично рассмотренной настройке параметров миграции справочников.

Для констант разрешены только режимы «Все информационные базы» и «Место создания». Выбор режима миграции «Место создания и центра- запрещен как не имеющий смысла: в этом случае изменения константы мигрировали бы только в центр (или вообще никуда не мигрировали, если изменения произошли на центральной ИБ) и не оказывали бы влияния на содержимое соответствующей константы всех прочих периферийных ИБ. Если для элементов метаданных типа «Справочник» или «Документ», которым может соответствовать множество элементов данных (элементов справочника, документов) потребность в таком режиме миграции может возникнуть, то для константы, которой соответствует единичный элемент данных, очевидно, такой режим не нужен. Режим автоматической регистрации изменений для констант не может быть отключен.

Для планов счетов свойства миграции настраиваются аналогично документам и справочникам. Заметим, что настройка миграции выполняется для плана счетов в целом, а не для каждого счета в отдельности. Важной особенностью миграции бухгалтерских счетов является то, что счета, введенные непосредственно в метаданных, распространяются вместе с конфигурацией на все периферийные ИБ вне зависимости от настроек миграции плана счетов. Режим автоматической регистрации изменений для планов счетов не может быть отключен.

Для типовых операций свойства миграции настраиваются аналогично документам и справочникам. Так как типовые операции не имеют видов (то есть, фактически, для них не определено объектов метаданных), настройка миграции выполняется для всех типовых операций в целом. Режим автоматической регистрации изменений для типовых операций не может быть отключен.

Для списка корректных проводок, как и для констант, разрешены только режимы «Все информационные базы» и «Место создания», то есть, он может распространяться либо во всей распределенной информационной базе, либо вестись на каждой ИБ самостоятельно. При этом настройка миграции выполняется для списка корректных проводок в целом и сам список рассматривается системой как единый объект: при любых изменениях в списке корректных проводок обновляется весь список. Режим автоматической регистрации изменений для корректных проводок не может быть отключен.

Для календарей, как для констант и списка корректных проводок, допустимыми являются только два режима: «Все информационные базы» и «Место создания». То есть, каждый из календарей может распространяться либо во всей распределенной информационной базе, либо вестись на каждой ИБ самостоятельно.

Для последовательностей документов закладка «Миграция» имеет специальный вид.

Так как последовательности документов не являются собственно объектами данных, то для них настраивается не область распространения, а способ функционирования в распределенной информационной базе.

Последовательность документов предназначена для логического контроля проведения определенных документов в строгом хронологическом порядке. С точки зрения распределенной информационной базы, имеют смысл два принципиальных способа функционирования механизма последовательностей документов:

• единая последовательность в центральной ИБ;

• отдельные последовательности в каждой ИБ.

Первый вариант предполагает, что порядок проведения документов критичен только в центральной информационной базе, так как туда переносятся все документы с периферийных ИБ и они должны быть перепроведены в общей хронологической последовательности. При этом последовательность проведения документов на периферийных И Б не контролируется.

Второй вариант предполагает контроль порядка проведения на каждой информационной базе независимо. В этом случае документы, созданные в других информационных базах, не учитываются в этой последовательности в данной информационной базе.

Выбор варианта зависит от назначения последовательности документов. Например, если последовательность используется для контроля списания товаров по методу LIFO или FIFO, то выбор варианта определяется тем, соответствуют ли информационные базы отдельным юридическим лицам, или нет. Если каждая информационная база является отдельным юридическим лицом, имеет смысл использовать второй вариант, так как списание должно выполняться, исходя из данных именно этой информационной базы. Если, например, информационные базы являются отдельными складами, и вся система является одним юридическим лицом, то имеет смысл использовать первый вариант. Очевидно, что в этом случае списание себестоимости должно производиться в центральной ИБ на основании данных всех информационных баз.

Для регистров оперативного учета закладка имеет специальный вид.

Для регистров настройка миграции заключается в возможности полного отключения миграции движений. Для этого следует установить флажок «Запретить миграцию движений». Отключение миграции для регистров используется в специальных случаях, когда движения регистров имеют смысл только в тех информационных базах, в которых они записывались при проведении документов.

Например, миграция движений может быть отключена для регистра, отвечающего за списание себестоимости товаров в центральной информационной базе. Обычно в этом случае в модуле документа предусматривается алгоритм, который не создает движений по этому регистру в периферийных И Б. Отключение миграции регистра позволяет при переносе изменений в периферийную И Б из центральной не переносить движения по этому регистру.

Заметим, что при загрузке измененного документа существующие движения по регистру удаляются независимо от настройки миграции. То есть документ не может остаться с движениями, созданными до загрузки его изменений. В описанном примере после загрузки изменений в центральной ИБ из периферийных ИБ созданные при проведении в центральной ИБ движения регистра будут очищены. Для восстановления движений по тем документам, по которым загружались изменения, необходимо будет их снова провести.

Для операции бухгалтерского учета закладка «Миграция» имеет вид, аналогичный настройке миграции регистров.

Для операции настройка заключается в возможности полного отключения миграции. Для этого следует установить флажок «Запретить миграцию операций». Отключение миграции для операции используется в специальных случаях, когда данные бухгалтерского учета имеют смысл только в тех информационных базах, в которых он ведется. Например, периферийные информационные базы обеспечивают ведение складского учета с использованием возможностей компоненты «Оперативный учет», а в центральной ИБ документы, созданные в периферийных ИБ, записывают при проведении бухгалтерские операции. Отключение миграции операций позволяет не переносить записанные данные бухгалтерского учета в периферийную ИБ.

Заметим, что при загрузке измененного документа существующая операция удаляется, независимо от настройки миграции, то есть документ не может остаться с операцией, созданной до загрузки его изменений. В описанном примере после загрузки изменений в центральной ИБ из периферийных ИБ созданные при проведении в центральной И Б операции будут очищены. Для восстановления операций по тем документам, по которым загружались изменения, необходимо будет их снова провести.

Признак «Запретить миграцию операций» не может быть установлен, если в конфигурации существуют документы, для которых определена миграция и включен признак «Создавать операцию - Всегда».

Корректное использование свойств миграции

Процесс настройки свойств миграции требует глубокого понимания как принципов работы компоненты управления данными в распределенной ИБ и системы «1С:Предприятие» в целом, так и особенностей функционирования конкретной конфигурации. Для иллюстрации сказанного приведем два примера.

Документ имеет реквизит типа «Справочник», область миграции которого более ограничена, чем у самого документа. В таком случае, конкретный документ, переданный в другую ИБ, не синхронизирующую состояние справочника, в поле этого реквизита будет иметь пустую ссылку.

В расчете ресурсов регистра принимают участие несколько типов документов, имеющих различные свойства миграции (или свойства неполной миграции). В результате состояние регистров будет отличаться на разных И Б распределенной информационной базы.

Результаты такого «некорректного» использования средств управления миграцией данных могут быть различны и зависят от конкретной конфигурации. Вы можете пойти на это вполне осознанно и исключить «аварийные» ситуации за счет настройки пользовательских интерфейсов, прав, средств встроенного языка. Более подробно это рассмотрено в разделе «Методы исключения коллизий».

Перейти к оглавлению: Управление распределенными ИБ


1С-Предприятие. Документация | Управление распределенными ИБ. Глава 6.

Глава 6

Средства встроенного языка, ориентированные на работу с распределенной ИБ

Системные функции

Для отражения в конфигурации особенностей работы в распределенной информационной базе предназначены следующие системные фунвдии:

ТекущаяИБКод

Получить код текущей ИБ.

Синтаксис:

ТекущаяИБКод()

Англоязычный синоним:

CurrentIBCode()

Параметры:

Нет.

Возвращаемое значение:

Строковое выражение, состоящее из трех символов и содержащее код текущей ИБ так, как он задан в диалоге «Управление распределенными данными» Конфигуратора центральной ИБ.

Описание:

Функция ТекущаяИБКод возвращает код ИБ, на которой запущена система 1С:Предприятие.

Замечание. Функция возвращает строку, состоящую из трех пробелов, если ИБ нераспределенная.

Пример:

КодИБ = ТекущаяИБКод();

Если КодИБ = "ЦОФ" тогда

Предупреждение("Конфигурация исполняется на центральной ИБ", 3);

КонецЕсли ;

ТекущаяИБНаименование

Синтаксис:

ТекущаяИБНаименование ( )

Англоязычный синоним:

Параметры:

Нет.

Возвращаемое значение:

Строковое выражение, содержащее наименование текущей ИБ ч;

как оно задано в диалоге «Управление распределенными данным:

Конфигуратора центральной ИБ.

Описание:

Функция ТекущаяИБНаименование возвращает наименование ИБ, на которой запущена система 1С:Предприятие.

Замечание. Функция возвращает пустую строку, если ИБ нераспределенная.

Пример:

Предупреждение("Наименование текущей ИВ - " ТекущаяИВНаименование(), 2);

ЦентральнаяИБКод

Получить код центральной ИБ.

Синтаксис:

ЦентральнаяИБКод()

Англоязычный синоним:

Параметры:

Нет.

Возвращаемое значение:

Строковое выражение, состоящее из трех символов и содержащее код центральной И Б так, как он задан в диалоге «Управление распределенными данными» Конфигуратора центральной ИБ.

Описание:

Функция ЦентральнаяИБКод возвращает код центральной ИБ.

Замечание. Функция возвращает строку, состоящую из трех пробелов, если И Б нераспределенная.

Пример:

КодИБ = ТекущаяИБКод !) ;

Если КодИБ = ЦентральнаяИБКод() Тогда

Предупреждение("Конфигурация исполняется на центральной ИБ");

КонецЕсли;

ТекущаяИБЦентральная

Определить, является ли текущая ИБ центральной.

Синтаксис:

ТекущаяИБЦентральная()

Англоязычный синоним:

1зСиггепЫВСепЬег

Параметры:

Нет.

Возвращаемое значение:

Число: 1, если текущая ИБ центральная, или 0-в противном случае.

Описание:

Функция ТекущаяИБЦентральная возвращает 1, если ИБ, на которой загущена система 1С:Предприята-: - ^--п тральная, и 0 - если периферийная. _

Замечание. функЦИЯ возвращает 1. если ИБ нераспределенная.

Пример:

Если ТекущаяИБЦентральная() = 0 Тогда

Сообщ = "Конфигурация исполняется на периф" ;

Предупреждение(Сообщ, 3);

КонецЕсли;

ИБСозданияОбъекта

Определить ИБ, создавшую объект.

Синтаксис:

ИБСозданияОбъекта(<0бъект>)

Англоязычный синоним:

В1г^-ЫЗОЮЬзес1:

Параметры:

<0бъект> Элемент справочника, документ или бухгалтерский счет.

Возвращаемое значение:

Строковое выражение, состоящее из трех символов и содержащее код ИБ, создавшей переданный в качестве параметра объект, так, как он задан в диалоге «Управление распределенными данными» Конфигуратора центральной ИБ.

Описание:

Функция ИБСозданияОбъекта возвращает код ИБ, на которой был создан первоначально объект, переданный функции в качестве параметра.

Замечание. Если создание распределенной информационной базы происходило из эксплуатировавшейся нераспределенной, то для всех элементов справочника и документов, созданных в нераспределенной ИБ, функция вернет код центральной ИБ. В нераспределенной ИБ функция вернет строку, состоящую из трех пробелов.

Пример:

//• :гротивном случае с:

Процедура ПриОткрытик()

Док = ТекущийДокумент() ;

КдСозд - ИБСозданияОбъекта(Док! ;

Если КдСозд о ТекущаяИБКод() Тогда Форма.ТолькоПросмотр(1) ;

КонецЕсли;

КонецПрсцедуры

ТекущаяИБТолькоПолучатель

Определить имеет ли текущая информационная база признак «Только получатель».

Синтаксис:

ТекущаяИБТолькоПолучатель()

Англоязычный синоним:

1зСиггеп<:1ВКесер1еп1:Оп1у

Параметры:

Нет.

Возвращаемое значение:

Число: 1, если текущая ИБ центральная, или О-в противном случае.

Описание:

Функция ТекуэдаяИБТолькоПолучатель возвращает 1, если И Б, на которой запущена система 1 (^Предприятие - имеет признак «Только получатель», и 0 - если нет.

Замечание. Функция ишщыиргт 0. ггтп ИБ нераспределенная. Пример:

Методы агрегатных объектов

Для использования возможностей выборочной регистрации изменений объектов в распределенной информационной базе у агрегатных объектов типа «Справочник» и «Документ» существует метод Регист-рацияИзменений.

РегистрацияИзменений

Включить / выключить режим регистрации изменений объ екта.

Синтаксис:

РегистрацияИзменений ([ВклВыкл])

Англоязычный синоним:

ЕпаЫеР.ед1з1:егирс1а1:е

Параметры:

[Вкл/Выкл] Число 1 - если изменения должны регистрироваться, число 0 - если изменения не должны регистрироваться. Если параметр не указан, то режим не изменяется.

Возвращаемое значение:

Функция возвращает установленный до ее вызова режим. Число 1 - если режим регистрации для данного объекта установлен и число О,если нет.

Описание:

Метод РегистрацияИзменений доступен только у объектов типа «Справочник» и -«Документ» созданных функцией «СоздатьОбъект». Он применяется для установки режима регистрации изменений, выполняемых данным агрегатным объектом. Первоначально этот режим соответствует установленному для объектов данного вида режиму в метаданных.

Замечание. Особенностью вызова данного метода является то, что он действует с момента своего вызова и до перепозиционирования объекта. То есть, его следует вызывать после того, как объект выбран, и до записи изменений. После следующего позиционирования объекта режим снова будет установлен в соответствии с режимом выбранном в метаданных.

Пример:

//Специальное перепроведение

//без регистрации изменений Процедура СпециальиоеПерепроведение()

Док = Создать0бъект(«Документ.Накладная»);

Док.Вы5ратьДокументы('01.01.98','31.12.98');

Пока Док.ПолучитьДокумент() -•1 Цикл

Док. РегистрацияИзменений (0) ;

Док.провести() ;

КонецЦикла;

КонецПроцедуры

Перейти к оглавлению: Управление распределенными ИБ
[an error occurred while processing this directive]


1С-Предприятие. Документация | Управление распределенными ИБ. Глава 7.

Глава 7

Методические рекомендации по конфигурированию системы 1С:Предприятия для работы с распределенной информационной базой

Номера документов и коды элементов справочников

Синхронизация «ведущих» объектов распределенной информационной базы происходит в процессе обмена файлами переноса данных, в промежутках между обменами каждая ИБ работает автономно. Это может привести к тому, что созданному на одной из ИБ документу будет присвоен уникальный в пределах данной ИБ номер, который окажется не уникальным для всей распределенной информационной базы в целом. В таком случае, после обмена файлами переноса данных, в распределенной ИБ могут образоваться два (или больше) документа с одинаковыми номерами, даже если в свойствах номера документа установлены признаки «Контроль уникальности» и «Автоматическая нумерация». Аналогичная ситуация может возникнуть и для кода вновь созданного элемента справочника.

Рекомендуемый способ решения этой проблемы состоит в использовании префиксов номеров документов и кодов элементов справочников. В свойствах номера или кода при конфигурировании следует установить тип «Текстовый». В качестве префикса можно использовать значение локальной константы или код информационной базы. В случае использования локальной константы следует обеспечить уникальность ее значения для каждой ИБ в пределах распределенной ИБ. Если используется код информационной базы, уникальность обеспечивается автоматически, так как в одной информационной базе не может быть двух ИБ с одинаковым кодом - система следит за этим.

Для документов и справочников, имеющих свойство миграции «Место создания», обеспечивать уникальность номера или кода в пределах всей распределенной информационной базы не обязательно.

Пример:

// Установку префиксов производим в процедуре

// ПриКачалеРаботыСистемы глобального модуля

Процедура ПриНачалеРаботыСистемы() // Установка префиксов автонумерации

КодИБ = ТекущаяИБКодО ; // Использование кода ИБ ПрефиксАвтоНумерации("Справочник.Тов7'

// Использование значения локальной :•.

ПрефиксАвтоНумерации( "С-' --.--•--."•/ '•••-

Константа. Т.о'т ~ /I Использование кода :::

ПрефиксАвтоНумерации(•Г

КонецПроцедуры

Методы исключения коллизий

Компонента «Управление распределенными ИБ» обрабатывает спорные ситуации, возникающие в процессе работы распределенной информационной базы (см. «Принципы разрешения спорных ситуаций»). Однако возникновение коллизий остается нежелательным и их, по возможности, следует избегать.

Спорные ситуации не будут возникать в том случае, если редактирование и удаление «ведущего» объекта доступно только на одной из ИБ распределенной информационной базы. Достичь этого можно несколькими путями.

Настройка пользовательского интерфейса

Метод состоит в создании пользовательских интерфейсов, которые дают доступ только к «безопасным» с точки зрения возникновения коллизий командам системы. Например, интерфейс дает возможность пользователю только вводить новые документы. К сожалению, даже такие ограничения не являются гарантией от возникновения спорных ситуаций (см. ниже).

При использовании данного метода следует иметь в виду, что:

• доступ к корректировке и удалению «ведущих» объектов можно получить не только через пользовательский интерфейс. Например, если документ имеет реквизит типа «Справочник», то при вводе нового документа будет вызвана форма списка справочника, пользователь получает доступ к редактированию и удалению его элементов, и интерфейс перестает быть «безопасным»;

• метод не позволяет разрешать редактирование и удаление данных выборочно, в зависимости от ИБ, на которой выполняется 1С:Предприятие;

• па всех ИБ, кроме одной, должны быть зарегистрированы пользователи, имеющие только «безопасные» интерфейсы, что не всегда возможно в реальной ситуации;

• интерфейсы являются частью конфигурации и мигрируют все вместе, как «безопасные», так и «небезопасные». Поэтому, разработчик конфигурации не гарантирован, что администратор системы не назначит пользователям двух и более ЦБ, входящих в состав распределенной И Б, «небезопасные» интерфейсы.

Таким образом, применение данного метода накладывает существенные ограничения, он может быть рекомендован лишь в Простых случаях.

Настройка прав доступа

Настройка прав доступа к данным является более гибким средством для предотвращения коллизий, чем настройка пользовательских интерфейсов. Обеспечив с их помощью ситуацию, в которой любой «ведущий» объект системы может быть отредактирован или удален не более чем на одной ИБ, администратор добьется предотвращения возникновения коллизий.

Применение данного метода позволяет избежать некоторых ограничений, накладываемых методом настройки пользовательских интерфейсов. Однако следует иметь в виду:

• метод не позволяет разрешать редактирование и удаление данных выборочно, в зависимости от И Б, на которой выполняется 1 С:Предприятие;

• права доступа являются частью конфигурации и мигрируют все вместе, как «безопасные», так и «небезопасные». Поэтому разработчик конфигурации не гарантирован, что администратор системы не назначит пользователям двух и более ИБ, входя щи в состав распределенной ИБ, «небезопасные» права;

• возможность возникновения коллизий определяется не составом ИБ (что можно считать постоянным), а составом условно одновременно работающих пользователей (а, точнее, совокупность их прав доступа к данным). В силу этого обстоятельства безопасность зависит не от разработчика, а от администратора.

Заметим, что проблему с администрированием системы на периферийной ИБ можно решить, используя возможность проверки в глобальном модуле при запуске системы набора прав, с которым пользователь входит в систему: то есть в конфигурации можно исключить возможность запуска системы на периферийной ИБ с набором прав который не содержит требуемых ограничений. Возможность защит! конфигурации паролем позволяет предотвратить также и возможны случаи умышленной попытки обойти это ограничение на периферий ной ИБ.

Использование средств встроенного языка

Этот метод является наиболее гибким, а в ряде случаев, и мене трудоемким для разработчика, чем перечисленные выше. Суть его сводится к установке обработчиков действий пользователя, связанны с редактированием и/или удалением «ведущих» объектов, и, на основании доступной с помощью специальных функций информации принятия решения о разрешении или запрещении этого действия.

В таблице приведены некоторые примеры системных предопределенных процедур, предназначенных для «перехвата» действий пользователя.

Процедура | Перехватываемое действие
ПриУдаленииДокумента | Удаление пользователем документа
ПриУдаленииЭлемекта | Удаление пользователем элемент справочника
ПриУдаленииСчета | Удаление пользователем бухгалтерского счета
ПриЗаписиКонстанты | Изменение значения константы
ПриОткрытии | Открытие формы элемента справочника, документа или счета. Функция Выбран() должна вернуть 1, если форма открывается для редактирования.

Описание этих процедур, а также процедур и функций, приведенных ниже, смотрите в книге «1С:Предприятие. Описание встроенного языка».

Запретить или разрешить перехваченное действие пользователя возможно на основании обширного набора информации:

• место создания объекта;

• И Б, на которой исполняется 1:Предприятие;

• используемый интерфейс пользователя:

• название прав доступа.

Также допустимо использование любой комбинации этих данных, что обеспечивает максимальную гибкость в настройке конфигурации для исключения коллизий.

Запретить выполнение перехваченного действия можно с помощью процедуры СтатусВоз врата с параметром 0 (ноль). Если эту процедуру использовать в системной предопределенной процедуре ПриОткрытии, то форма не откроется вообще, для открытия формы только для просмотра используйте процедуру ТолькоПросмотр с параметром 1.

Примеры:

// Корректировка значения константы "Директор" разрешено

// только на центральной ИБ

Процедура ПриЗаписиКонстанты( Наин, Знач)

Если (ТекущаяИБЦентралькая() -= 0) И (Наим - "Директ- ,"'' Тогда

Сообщ ^ "Имя директора можно поменять только в центре!*;

Предупреждение(Сообщ, 2);

СтатусВозврата(0);

КонецЕсли;

КонецПроцедуры

Методы исключения некорректного использования свойств миграции

Как уже отмечалось ранее, вводя ограничения Миграции «ведущих» объектов, следует четко представлять себе последствия, к которым это может привести. При этом нужно обратить внимание на следующее.

Ссылочная целостность. «Ведущие» объекты, имеющие ссылки, как правило, имеют равную или более ограниченную миграцию, чем объекты, на которые имеют ссылку.

Особые свойства объекта типа «Документ». Миграция объектов типа «Документ» происходит вместе со всеми изменениями, произведенными им. Обычно, объекты, используемые в изменениях (например, измерения регистров или реквизиты проводок, используемых документом при проведении) должны иметь миграцию, большую или равную миграции документа.

Особые свойства объекта типа «Счет». Миграция объектов типа «Счет» настраивается для всего плана счетов в целом. Кроме того, счета, заданные в метаданных, распространяются на все периферийные ИБ вне зависимости от свойств миграции.

Заметим, что, в отличии от других объектов, свойства объектов типа «Счет» оказывают сильное влияние на другие данные - бухгалтерские операции и бухгалтерские итоги. Изменение настроек учета счетов (валютного, количественного, аналитического учета) влечет за собой пересчет бухгалтерских итогов и, если необходимо, корректировку проводок. Кроме того, счета в плане счетов более взаимосвязаны, чем, например, элементы справочника, и образуют целостную систему.

Вследствие этого, имеет смысл с особым вниманием отнестись к настройке свойств миграции и прав доступа планов счетов. В большинстве случаев рекомендуется средствами конфигурации запретить изменение счетов на периферийных информационных базах (при этом в свойствах миграции можно установить режим «Все информационные базы»).

Перейти к оглавлению: Управление распределенными ИБ


1С-Предприятие. Документация | Управление распределенными ИБ. Дополнение

Дополнение

  • Где взять (желательно "на халяву") компоненту УРБД?
  • Пример: Пакетный режим автообмена РБД.
  • Добавление информации по УРБД в "Синтаксис-Помощник" 1С:Конфигуратора.
  • Деинициализация УРБД.

Где взять (желательно "на халяву") компоненту УРБД?

Как ни странно, но компонента "1С:Предприятие 7.7. Управление распределенными базами данных" присутствует пактически в любом дистрибутиве 1С:Предприятия.

Если в каталоге установки системы 1С:Предприятие 7.7. присутствует файл DistrDB.dll (представляющий собой компоненту УРБД), то он обновляется в период инсталяции из дистрибутива.

Для установки УРБД при её отсутствии, достаточно создать любой файл с именем DistrDB.dll в каталоге ../1Cv77/BIN и переустановить 1С:Предприятие 7.7.

Если после этого вы не обнаружите УРБД в списке установленных компонент, то:

  1. Проверьте факт обновления файла DistrDB.dll. Сделать это можно просмотрев его свойства в "Проводнике Windows". В случае отрицательного ответа, прийдётся с прискорбием констатировать отсутствие компоненты УРБД на вашем дистрибутиве.
  2. Ваш ключ защиты HASP не поддерживает УРБД, и тогда либо купить "1С:Предприятие 7.7.УРБД" официально, либо незаконно пользовать подходящий HASP-эмулятор.

Пример: Пакетный режим автообмена УРБД

Наличие в системе "1С:Предприятие 7.7." пакетного режима запуска значительно облегчает осуществление автообмена ИБ. При этом исключается потребность лезть руками в "Конфигуратор" и снижается вероятность ошибки со стороны неопытных пользователей. Автообмен сводится к простому "клику" по ярлыку, например такого содержания:

"C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /DF:\База /NПупкин /Pмойпароль /@F:\База\paket.prm

Параметр | Значение | Описание
config |  | Запуск 1С:Предприятие в режиме конфигуратора
/D | F:\База | Путь к каталогу ИБ
/N | Пупкин | Имя зарегистрированного пользователя
/P | мойпароль | Пароль пользователя Пупкин. Если пароля нет, то параметр можно не указывать.
/@ | F:\База\paket.prm | Путь к файлу параметров пакетного режима запуска. Представляет собой текстовый файл по типу *.INI-файлов Windows

Пример содержания файла параметров пакетного режима:

[General] ;Общий раздел

AutoExchange=1 ;Выполнение раздела "AutoExchange (Автообмен)" (1-да, 0 -нет)
Quit=1 ;Выйти из Конфигуратора по завершении (1-да, 0 -нет)

[AutoExchange] ; Раздел"Автообмен"

SharedMode=1 ; Раздельный (1)/Монопольный (0) режим
WriteTo=РТ* ; Коды баз выгрузки (шаблон или через запятую)
ReadFrom=РТ* ; Коды баз загрузки (шаблон или через запятую)

Добавление информации по УРБД в "Синтаксис-Помощник" 1С:Конфигуратора.

Для того, чтобы в "Синтакс-Помощнике" появился раздел Встроенный язык - УправлениеРБД, в каталог установки 1С:Предприятия \BIN необходимо поместить файл rbd.als.

Деинициализация УРБД.

Согласно документации, процесс инициализации РБД - необратимый, но иногда возникает потребность удалить всякое упоминание о том, что база данных когда-то была распределенной. Что для этого необходимо сделать:

  1. В первую очередь, в файле 1SSYSTEM.DBF вручную очистить 3-х символьное поле DBSIGN (содержащее код ИБ). и в принципе этого достаточно. Но для возврата ИБ в первозданное состояние, нужно выполнить п.п.2-3.
  2. Удалить файлы 1SDBSET.DBF, 1SDWNLDS.DBF, 1SUPDTS.DBF и соответствующие индексные файлы (.CDX) .
  3. В файле 1SSYSTEM.DBF обнулить 36-ти символьную строку DBSETUUID: 00000000-0000-0000- 0000-000000000000.


1С-Предприятие. Документация. Внедрение | Методология внедрения пакета программ «1С-Предприятие» (Фирма АКВАРИУС-Консалтинг). Приложение 1

ПРИЛОЖЕНИЕ 1. Процессы и задачи выполнения проекта

МЕТОДОЛОГИЯ ВНЕДРЕНИЯ ПРИКЛАДНОЙ СИСТЕМЫ ( Версия 1.0 Март 2000 )

Процессы и задачи выполнения проекта
№ п/п | Код работы | Работа | Обяз. | Док. | Результат
1.2 01-БП
Моделирование бизнес процессов
1.2.2 | 01-БП-010 | Определить стратегию развития бизнеса и улучшения бизнес-процессов | Стратегия …
1.2.3 | 01-БП-020 | Подготовить аналитический обзор требуемых изменений | Аналитический …
1.2.4 | 01-БП-030 | Определить требования к исходным данным, условиям и порядку их получения | Обяз. | Док. | Требования …
1.2.5 | 01-БП-040 | Построить модель существующих процессов | Обяз. | Модель …
1.2.6 | 01-БП-050 | Проанализировать применимость передового опыта | Оценка применимости …
1.2.7 | 01-БП-060 | Подготовить видение процессов в новых условиях | Обяз. | ?Док. | Видение …
1.2.8 | 01-БП-070 | Выполнить высокоуровневое проектирование процессов | Высокоуровневый …
2.2.2 | 02-БП-080 | Разработать модель будущих процессов (в случае проведения преобразований) | Модель …
3.2.2 | ОЗ-БП-090 | Документировать бизнес-процедуры | Обяз. | ?Док. | Документированные бизнес-процедуры
1.3 | 01-БТ | Определение бизнес требований
1.3.1 | 01-БТ-010 | Обследовать текущую финансовую и операционную структуру | Обяз. | Описание текущей …
1.3.2 | 01-БТ-020 | Определить базовые показатели текущего состояния предприятия | Обяз. | Базовые показатели …
2.3.1 | 02-БТ-030 | Составить итоговый документ по процессам и их отображению | Обяз. | Док. | Итоговый документ …
2.3.2 | 02-БТ-040 | Собрать показатели информационной деятельности предприятия (типы транзакций, интенсивность потоков, объемы хранения данных) | Показатели деятельности
2.3.3 | 02-БТ-050 | Собрать бизнес-требования | Обяз. | Док. | Сценарии бизнес-требований
2.3.4 | 02-БТ-060 | Определить требования к аудиту и контролю | Требования …
2.3.5 | 02-БТ-070 | Определить требования к условиям функционирования бизнеса | Обяз. | Док. | Требования …
2.3.6 | 02-БТ-080 | Определить требования к отчетности и доступу к информации | Обяз. | Док. | Требования …
2.4 | 02-БО | Отображение бизнес
2.4.1 | 02-БО-010 | Выявить и проанализировать разрывы высокого уровня | Обяз | Анализ разрывов …
2.4.2 | 02-БО-020 | Подготовить среду для отображения бизнес-процессов | Сконфигурированная среда …
2.4.3 | 02-БО-030 | Отобразить бизнес-требования | Обяз | Док | Отображение …
2.4.4 | 02 БО-040 | Отобразить бизнес-данные | Обяз | ?Док | Отображение …
2.4.5 | 02 БО-050 | Провести интеграционный анализ и определить разрывы | Интеграционный анализ …
2.4.6 | 02-БО-060 | Построить информационную модель будущего бизнеса (в случае проведения преобразований бизнес-процессов) | Информационная …
2.4.7 | 02-БО 070 | Провести анализ выполнения требований к отчетности | Главный журнал отчетов
2.4.8 | 02 БО-080 | Протестировать решения по отображению бизнеса | Протестированные …
2.4.9 | 02-БО-090 | Подтвердить интегрированные решения по отображению бизнеса | Обяз | Док | Подтвержденные …
3.3.1 | 03-БО-100 | Определить настроечные параметры | Обяз | Описание настроечных параметров
3.3.2 | 03-БО-110 | Подготовить спецификации информационной защиты | Обяз | Док | Спецификации …
1.4 | 01-ТА | Построение технической архитектуры
1.4.1 | 01-ТА-010 | Определить стратегию и требования к архитектуре | Стратегия …
1.4.2 | 01-ТА-020 | Обследовать текущую техническую архитектуру | Обяз. | Описание текущей …
1.4.3 | 01-ТА-030 | Разработать предварительную концептуальную архитектуру | Предварительная …
2.5.1 | 02-ТА-040 | Определить архитектуру приложения | Обяз. | Архитектура …
2.5.2 | 02-ТА-050 | Определить стратегию обеспечения работоспособности приложения | Обяз. | Стратегия …
2.5.3 | 02-ТА-060 | Определить стратегию отчетности и доступа к информации | Стратегия …
2.&4 | 02-ТА-070 | Провести коррекцию концептуальной архитектуры | Концептуальная ..
3.4.1 | 03-ТА-080 | Определить архитектуру системы информационной защиты | Архитектура …
4.2.2 | 04-ТА-090 | Определить архитектуру серверов базы данных | Архитектура …
4.2.3 | 04-ТА-100 | Определить дополнительные подсистемы на уровне архитектуры | Предложения по дополнительным ….
4.2.4 | 04-ТА-110 | Составить план обеспечения производительности системы | План обеспечения …
4.2.5 | 04-ТА-120 | Определить платформу и сетевую архитектуру | Обяз. | Платформа …
4.2.6 | 04-ТА-130 | Составить план развертывания системы | Обяз. | Док. | План …
4.2.7 | Q4-TA-140 | Оценить риски недостижения требуемых характеристик | Обяз. | Оценка …
4.2.8 | 04-ТА-150 | Определить процедуры управления системой | Обяз. | Процедуры …
1.5 01-ПМ
Создание программных модулей
1.5.1 | 01-ПМ-010 | Определить стратегию расширения приложения | Обяз. | Стратегия …
2.6.1 | 02-ПМ-020 | Оценить целесообразность расширений | Обяз. | Оценка …
3.5.1 | 03-ПМ-030 | Определить стандарты проектирования | Стандарты …
3.5.2 | 03-ПМ-040 | Определить стандарты реализации | Стандарты …
3.5.3 | 03-ПМ-050 | Выполнить функциональное проектирование расширений | Обяз. | Функциональные проекты расширений
3.5.4 | 03-ПМ-060 | Выполнить проектирование расширений базы данных | Обяз. | Проект …
3.5.5 | 03-ПМ-070 | Подготовить технические спецификации на модули расширения | Обяз. | Технические …
3.5.6 | 03-ПМ-080 | Провести обзор функциональных и технических решений | Обяз. | Утвержденные функциональные …
4.3.1 | 04-ПМ-090 | Подготовить среду разработки | Обяз. | Среда …
4.3.2 | 04-ПМ-100 | Создать расширения базы данных | Обяз. | Пользовательские объекты базы данных
4.3.3 | 04-ПМ-110 | Создать модули расширения функциональности | Обяз. | Модули …
4.3.4 | 04-ПМ-120 | Создать процедуры установки | Процедуры …
1.6 | 01-ПД | Преобразование данных
1.6.1 | 01-ПД-010 | Определить стратегию и требования к преобразованию данных | Обяз. | Док. | Стратегия …
3.6.1 | 03-ПД-020 | Определить стандарты преобразования данных | Стандарты …
3.6.2 | 03-ПД-030 | Подготовить среду преобразования данных | Обяз. | Среда …
3.6.3 | 03-ПД-040 | Построить отображение данных для проведения преобразования | Обяз. | Схема отображения …
3.6.4 | 03-ПД-050 | Определить ручные процедуры преобразования данных | Обяз. | Описание ручных процедур …
3.6.5 | 03-ПД-060 | Разработать программы преобразования данных | Обяз. | Программы …
3.6.6 | 03-ПД-070 | Подготовить планы тестирования преобразования данных | Обяз. | Планы …
4.4.1 | 04-ПД-080 | Разработать программы преобразования данных | Обяз. | Программы …
4.4.2 | 04-ПД-090 | Выполнить автономные тесты программ преобразования данных | Обяз | Автономно протестированные …
4.4.3 | 04-ПД-100 | Выполнить сквозные тесты преобразования данных | Обяз. | Прошедшие сквозные тесты программы …
4.4.4 | 04-ПД-110 | Выполнить тесты правильной работы с преобразованными данными | Обяз. | Прошедшие заключительные тесты программы …
5.2.2 | 05-ПД-120 | Установить программы преобразования данных | Установленные программы …
5.2.3 | 05-ПД-130 | Конвертировать и верифицировать данные | Обяз. | Конвертированные …
1.7 | 01-ДО | Документирование
1.7.1 | 01-ДО-010 | Определить стратегию и требования к документированию | Стратегия и …
1.7.2 | 01-ДО-020 | Определить стандарты и процедуры документирования | стандарты и …
1.7.3 | 01-ДО-030 | Подготовить толковый словарь терминов | Толковый …
2.7.1 | 02-ДО-040 | Подготовить среду документирования | Среда …
2.7.2 | 02-ДО-050 | Создать прототипы и шаблоны документов | Прототипы и …
4.5.1 | 04-ДО-060 | Выпустить справочное руководство пользователя | Обяз. | Док. | Справочное …
4.5.2 | 04-ДО-070 | Выпустить руководство пользователя | Руководство …
4.5.3 | 04-ДО-080 | Выпустить справочное техническое руководство | Справочное …
4.5.4 | 04-ДО-090 | Выпустить руководство по управлению системой | Руководство …
1.8 | 01-ТС | Тестирование
1.8.1 | 01-ТС-010 | Определить стратегию и требования к тестированию | Обяз. | Док. | Стратегия …
3.7.1 | 03-ТС-020 | Подготовить методики автономного тестирования | Обяз. | Описания автономных тестов модулей
3.7.2 | 03-ТС-030 | Подготовить описания (скрипты) тестов межмодульных связей | Обяз | Описания …
3.7.3 | 03-ТС-040 | Подготовить системных тестов | Описания …
3.7.4 | 03-ТС-050 | Подготовить описания тестов интеграции с внешними приложениями | Описания …
4.6.1 | 04-ТС-060 | Подготовить среду тестирования | Среда …
4.8.2 | 04-ТС-070 | Выполнить автономные тесты | Обяз. | Модули, прошедшие автономные тесты
4.6.3 | 04-ТС-080 | Выполнить тесты межмодульных связей | Обяз. | Модули, прошедшие тесты связей
4.6.4 | 04-ТС-090 | Выполнить тест установки | Протестированные процедуры установки
4.6.5 | 04-ТС-100 | Отобрать ключевых пользователей для участия в тестировании | Обяз. | Ключевые пользователи …
4.6.6 | 04-ТС-110 | Провести общее тестирование системы | Обяз | Док. | общее тестирование системы
4.6.7 | 04-ТС-120 | Выполнить тесты интеграции с внешними приложениями | Система, прошедшая тесты …
5,3.1 | 05-ТС-130 | Выполнить приемочные тесты | Обяз. | Док. | Результаты …
1.9 | 01-ТР | Тестирование рабочих хар-к
1.9.1 | 01-ТР-010 | Определить стратегию тестирования рабочих характеристик | Обяз. | Стратегия …
2.8.1 | 02-ТР-020 | Определить сценарии тестирования рабочих характеристик | Обяз. | Сценарии …
2.8,2 | 02-ТР-030 | Построить транзакционные модели тестирования рабочих характеристик | Транзакционные …
3.8.1 | 03-ТР-040 | Подготовить описания тестов рабочих характеристик | Описания …
3.8.2 | 03-ТР-050 | Разработать транзакционные программы тестирования рабочих характеристик | Транзакционные …
3.8.3 | 03-ТР-060 | Подготовить данные для тестирования рабочих характеристик | Обяэ. | Данные …
3.8.4 | 03-ТР-070 | Разработать программы загрузки тестовых данных | Обяз. | Программы …
4.7.1 | 04-ТР-080 | Разработать транэакционные программы для тестирования рабочих характеристик | Обяз. | Транзакционные …
4.7.2 | 04-ТР-090 | Разработать программы загрузки тестовых данных | Программы …
4.7.3 | 04-ТР-100 | Создать базу данных для тестирования рабочих характеристик | База данных …
4.7.4 | 04-ТР-110 | Создать среду для тестирования рабочих характеристик | Среда …
4.7.5 | 04-ТР-120 | Провести тестирование рабочих характеристик | Обяз. | Результаты тестирования …
1.10 01-ОБ
Освоение и обучение
4.7.6 | 04-ТР-130 | Подготовить отчет о результатах тестирования рабочих характеристик | Обяз. | Док. | Отчет о …
1.10.1 | 01-ОБ-010 | Определить стратегию выполнения проекта, его основные направления, способы минимизации рисков | Стратегия выполнения проекта
1.10.2 | 01-ОБ-020 | Провести ориентирующий инструктаж группы проекта по ключевым аспектам проекта | Обяз. | Правильно ориентированная группа …
1.10.3 | 01-ОБ-030 | Составить план обучения группы проекта | План …
1.10.4 | 01-ОБ-040 | Подготовить среду для обучения группы проекта | Среда …
1.10.5 | 01-ОВ-050 | Провести обучение группы проекта | Обученная группа проекта
1.10.6 | 01-ОБ-060 | Составить план обеспечения готовности менеджеров бизнес-единиц | Обяз. | Док. | План …
1.10.7 | 01-ОБ-070 | Подготовить рекомендации по ключевым вопросам обеспечению готовности предприятия | Рекомендации …
1.10.8 | 01-ОБ-080 | Подготовить и провести разъяснительную компанию | Обяз. | Разъяснительная компания
2.9.1 | 02-ОБ-090 | Подготовить план обеспечения готовности менеджеров | Обяэ. | Док. | План обеспечения готовности менеджеров
3.9.1 | 03-ОБ-100 | Определить влияние изменений бизнес-процессов на организацию | Обяз. | Оценка …
3.9.2 | 03-ОБ-110 | Скорректировать средства и методы поддержки эффективной работы персонала | Обяз. | Средства и методы …
3.9.3 | 03-ОБ-120 | Наладить работу ИТ-подразделений в новых условиях | Обяз. | Подготовленные ИТ-подразделения …
3.9.4 | 03-06-130 | Провести анализ потребностей пользователей в обучении | Анализ …
3.9.5 | 03-ОБ-140 | Составить план обучения пользователей | Обяз | План …
4.8.1 | 04-ОБ-150 | Подготовить средства и методы обучения | Обяз. | Средства …
4.8.2 | 04-ОБ-160 | Подготовить среду обучения | Обяз. | Среда …
5.4.1 | 05-ОБ-170 | Провести обучение пользователей | Обяз. | Обученные …
6.2.2 | 06-ОБ-180 | Провести оценку эффективности | Оценка …
2.10 | 02-ПЭ | Переход к промышленной эксплуатации
2.10.1 | 02-ПЭ-010 | Определить стратегию перехода к промышленной эксплуатации | Стратегия …
4.9.1 | 04-ПЭ-020 | Подготовить проект создания инфраструктуры поддержки | Обяз. | Проект …
4.9.2 | 04-ПЭ-030 | Составить план перехода и обеспечения непрерывности бизнеса | Обяз. | План …
5.5.1 | 05-ПЭ-040 | Подготовить среду промышленной эксплуатации | Обяз. | Среда промышленной эксплуатации
5.5.2 | 05-ПЭ-050 | Установить прикладные программы | Обяз. | Установленные …
5.5.3 | 05-ПЭ-060 | Создать инфраструктуру поддержки | Обяз. | Инфраструктура поддержки
5.5.4 | 05-ПЭ-070 | Проверить готовность к промышленной эксплуатации | Обяз | Готовая к …
5.5.5 | 05-ПЭ-080 | Начать промышленную эксплуатацию | Обяэ. | Система в промышленной эксплуатации
6.3.1 | 06-ПЗ-090 | Измерить рабочие характеристики | Обяз. | Оценка рабочих характеристик
6.3.2 | 06-ПЭ-100 | Обеспечить сопровождение системы | Обяз | Среда сопровождения системы
6.3.3 | 06-ПЭ-110 | Внести улучшения в систему | Обяз. | Улучшенная система и среда эксплуатации
6.3.4 | 06-ПЭ-120 | Вывести из эксплуатации прежнюю систему | Списанная прежняя система
6.3.5 | 06-ПЭ-130 | Рассмотреть направления совершенствования бизнес-процессов | Рекомендации по совершенствованию …
63.6 | 06-ПЭ-140 | Рассмотреть направления развития информационной системы | Рекомендации по направлениям …


1С-Предприятие. Документация. Внедрение | Методология внедрения пакета программ «1С-Предприятие» (Фирма АКВАРИУС-Консалтинг).Приложение 2

ПРИЛОЖЕНИЕ 2. Процессы управления проектом

МЕТОДОЛОГИЯ ВНЕДРЕНИЯ ПРИКЛАДНОЙ СИСТЕМЫ ( Версия 1.0 Март 2000)

Процессы управления проектом

Код работы

Работа

Обяз.

Док.

Результат
nn-УО | Контроль и отчетность

Планирование
пп-УО-010 | Установить область рассмотрения, цели и подход к реализации проекта | Начальная версия плана управления проектом
пп-УО-020 | Определить стратегию, стандарты и процедуры контроля и отчетности | Стратегии, …
пп-УО-030 | Составить планы управления | План управления проектом (суммирует результаты предыдущих задач)
nn-ФК

Контроль

 Идентифицированные и решенные проблемы
пп-УО-040 | Управление рисками и урегулирование вопросов | Способы разрешения вопросов, мероприятия по нейтрализации рисков, запросы на изменения проекта
пп-УО-050 | Управление проблемами | Решенные проблемы и вопросы, реакция на риски, запросы на изменения проекта
пп-УО-060 | Управление изменениями | Принятые запросы на изменения проекта
пп-УО-070 | Мониторинг проекта и отчетность | Отчеты о ходе выполнения проекта
пп-УО-080 | Обеспечить приемку результатов клиентом | Акты приемки-передачи результатов
nn-УР | Управление работами

Планирование
пп-УР-010 | Определить стратегию, стандарты и процедуры управления работами | Стратегия, стандарты и процедуры управления работами
пп-УР-020 | Составить рабочий план проекта | Рабочий план проекта
nn-УР-ОЗО | Составить финансовый план проекта | Финансовый план проекта
nn-ФК

Контроль
ПП-УР-040 | Контролировать выполнение рабочего плана | Корректировки рабочего плана
ПП-УР-050 | Контролировать выполнение бюджета | Корректировки бюджета
nn-УС | Управление качеством

Планирование
пп-УС-010 | Определить стратегию, стандарты и процедуры управления ресурсами | Стратегию, стандарты и процедуры управления ресурсами
пп-УС-020 | Составить организационно-кадровый план | Организационно-кадровый план
пп-УС-025 | Создать руководство по административным процедурам для членов группы проекта | Руководство по административным процедурам
nn-УС-ОЗО | Создать организационную структуру проекта | Укомплектованная кадрами организационная структура проекта
ПП-УС-040 | Принять план физических ресурсов (необходимых сверх существующей инфраструктуры) | План физических ресурсов
ПП-УС-050 | Подготовить инфраструктуру проекта | Готовая инфраструктура проекта
nn-ФК

Контроль
nn.yC-060 | Контролировать персонал проекта (обеспеченность и использование) | Мероприятия и материалы по регулированию работы персонала
ПП-УС-070 | Контролировать физические ресурсы (обеспеченность и использование) | Мероприятия и материалы, связанные с получением и использованием физических ресурсов

Завершение
ПП-УС-080 | Высвободить персонал | Высвобожденный персонал
ПП-УС-090 | Высвободить физические ресурсы | Высвобожденные физические ресурсы
nn-УК | Управление качеством

Планирование
пп-УК-010 | Определить стратегию, стандарты и процедуры управления качеством | Стратегия, стандарты и процедуры управления качеством
nn-ФК

Контроль
пп-УК-020 | Рассмотрение результатов с точки соблюдения стандартов и соответствия требованиям проекта | Отчет о качестве результатов
пп-УК-030 | Аудит качества (действительное состояние, сравнение с планами, соблюдение процедур) | Отчет об аудите качества
пп-УК-040 | Сбор и анализ измеряемых показателей качества проекта (затраты, время, использование ресурсов, объем доработок и исправлений и т.д.) | Отчет о показателях качества
пп-УК-045 | Создание благоприятных условий для работы группы проекта (отношения с клиентом, обеспечение информацией, консультирование и т.д.) | Отчет об условиях работы

Завершение
пп-УК-050 | Комплексная оценка качества | Отчет о качестве
nn-УФ | Управление конфигурацией

Планирование
пп-УФ-010 | Определить стратегию, стандарты и процедуры управления конфигурацией | Стратегия, …
пп-ФК

Контроль
пп-УФ-020 | Контроль доступа к документам и их использования | Система контроля использования документов
пп-УФ-030 | Управление конфигурацией (идентификация, контроль и отслеживание всех элементов проекта - промежуточных и окончательных результатов) | Контролируемая конфигурация
пп-УФ-035 | Управление знаниями (обеспечение накопления и эффективного использования результатов внутри проекта, организации исполнителя и клиента) | Обновленная база знаний организации исполнителя и/или клиента
пп-УФ-040 | Управление релизами (доставкой промежуточных и окончательных результатов, иных материалов внутри проекта либо клиенту) | Доставленные релизы
пп-УФ-050 | Учет текущего состояния и изменений конфигурации | Отчет о состоянии и истории изменения конфигурации

Завершение
пп-УФ-060 | Провести аудит ключевых результатов | Аудированные результаты
пп-УФ-070 | Завершение управления конфигурацией и передача соответствующих функций клиенту | Работоспособная система управления конфигураций, переданная в использование клиенту


1С-Предприятие. Документация. Внедрение | Методология внедрения пакета программ «1С-Предприятие».Приложение 3

ПРИЛОЖЕНИЕ 3. Рабочий план проекта внедрения

МЕТОДОЛОГИЯ ВНЕДРЕНИЯ ПРИКЛАДНОЙ СИСТЕМЫ Версия 1.0 Март-2000

РАБОЧИЙ ПЛАН ПРОЕКТА ВНЕДРЕНИЯ
№ п/п | Код работы | Работа | Обяз. | Док. | Результат
1 | 01 | Постановка задачи
1.1 | 01-ПП | Планирование проекта
1.1.1 | 01-ПП-НАЧ | Начать планирование проекта
1.1.2 | 01-УО-010 | Установить область рассмотрения, цели и подход к реализации проекта | Обяз | Начальная версия плана управления проектом
1.1.3 | 01-УО-020 | Определить стратегию, стандарты и процедуры контроля и отчетности | Стратеги, …
1.1.4 | 01-УО-030 | Составить планы управления | План управления проектом (суммирует результаты предыдущих задач)
1.1.5 | 01-УР-010 | Определить стратегию, стандарты и процедуры управления работами | Стратегия, стандарты и процедуры управления работами
1.1.6 | 01-УР-020 | Составить рабочий план проекта | Обяз. | Док. | Рабочий план проекта
1.1.7 | 01-УР-030 | Составить финансовый план проекта | Обяз. | Док. | Финансовый план проекта
1.1.8 | 01-УС-010 | Определить стратегию, стандарты и процедуры управления ресурсами | Стратегию, стандарты и процедуры управления ресурсами
1.1.9 | 01-УС-020 | Составить организационно-кадровый план | Обяз. | Док. | Организационно-кадровый план
1.1.10 | 01-УС-025 | Создать руководство по административным процедурам для членов группы проекта | Обяз. | Док. | Руководство …
1.1.11 01-УС-030 Создать организационную структуру проекта Обяз. Док: Укомплектованная кадрами организационная структура проекта
1.1.12 | 01-УС-040 | Принять план физических ресурсов (необходимых сверх существующей инфраструктуры) | План физических ресурсов
1.1.13 | 01-УС-050 | Подготовить инфраструктуру проекта | Обяз. | Док. | Готовая инфраструктура проекта
1.1.14 | 01-УК-010 | Определить стратегию, стандарты и процедуры управления качеством | Стратегия, …
1.1.15 | 01-УФ-010 | Определить стратегию, стандарты и процедуры управления конфигурацией | Стратегия, …
1.1.16 | 01-ПП-КОН | Закончить планирование проекта
1.2 | 01-БП | Моделирование бизнес-процессов
1.2.1.,. | 01-ФВ-НАЧ | Начать выполнение фазы
1.2.2. | 01-БП-010 | Определить стратегию развития бизнеса и улучшения бизнес-процессов | Стратегия совершенствования бизнеса
1.2.3 | 01-БП-020 | Подготовить аналитический обзор требуемых изменении | Аналитический обзор требуемых изменений
1,2.4^, | 01-БП-030 | Определить требования к исходным данным, условиям и порядку их получения | Обяз. | Док. | Требования к исходным данным
1.2.5 | 01-БП-040 | Построить модель существующих процессов | Обяз. | Модель существующих процессов
1.2.е^ | 01-БП-050 | Проанализировать примененимость передового опыта | Оценка применимости передового опыта
1.2.7': 01-БП-060 Подготовить видение процессов в новых условиях Обяз. ?Док. Видение процессов в новых условиях
1.2.8 | 01-БП-070 | Выполнить высокоуровневое проектирование процессов | Высокоуровневый проект процессов
1.3 | 01-БТ | Определение бизнес-требований
1.3.1 | 01-БТ-010 | Обследовать текущую финансовую и операционную структуру | Обяз. | Описание текущей …
1.3.2 | 01-БТ-020 | Определить базовые показатели текущего состояния предприятия | Обяз. | Базовые …
1.4 01-ТА
Построение технической архитектуры
1.4.1 | 01-ТА-010 | Определить стратегию и требования к архитектуре | Стратегия и …
1.4.2 | 01-ТА-020 | Обследовать текущую техническую архитектуру | Обяз. | Описание текущей …
1.4.3 | 01-ТА-030 | Разработать предварительную концептуальную архитектуру | Предварительная …
1.5 | 01-ПМ | Создание программных модулей
1.5.1 | 01-ПМ-010 | Определить стратегию расширения приложения | Обяз. | Стратегия …
1.6 01-ПД
Преобразование данных
1.6.1 | 01-ПД-010 | Определить стратегию и требования к преобразованию данных | Обяз. | Док. | Стратегия и …
1.7 | 01-ДО | Документирование
1.7.1 | 01-ДО-010 | Определить стратегию и требования к документированию | Стратегия и …
1.7.2 | 01-ДО-020 | Определить стандарты и процедуры документирования | стандарты и …
1.7.3 | 01-ДО-030 | Подготовить толковый словарь терминов | Толковый …
1.8 | 01-ТС | Тестирование
1.8.1 | 01-ТС-010 | Определить стратегию и требования к тестированию | Обяз. | Док. | Стратегия и требования к тестированию
1.9 | 01-ТР | Тестирование рабочих характеристик
1.9.1 | 01-ТР-010 | Определить стратегию тестирования рабочих характеристик | Обяз. | Стратегия тестирования рабочих характеристик
1.10 01-ОБ
Освоение и обучение
 Освоение и обучение
1.10.1 | 01-ОБ-010 | Определить стратегию выполнения проекта, его основные направления, способы минимизации рисков | Стратегия выполнения проекта
1.10.2 | 01-ОБ-020 | Провести ориентирующий инструктаж группы проекта по ключевым аспектам проекта | Обяз. | Правильно ориентированная группа проекта
1.10.3 | 01-ОБ-030 | Составить план обучения группы проекта | План …
1.10.4 | 01-ОБ-040 | Подготовить среду для обучения группы проекта | Среда …
1.10.5 | 01-ОБ-050 | Провести обучение группы проекта | Обученная …
1.10.6 | 01-ОБ-060 | Составить план обеспечения готовности менеджеров бизнес-единиц | Обяз. | Док. | План …
1.10.7 | 01-ОБ-070 | Подготовить рекомендации по ключевым вопросам обеспечению готовности предприятия | Рекомендации …
1.10.8 | 01-ОБ-080 | Подготовить и провести разъяснительную компанию | Обяз. | Разъяснительная компания
1.10.9 | 01-ФВ-КОН | Закончить выполнение фазы
1.11 | 01 -ФК | Контроль фазы
1.11.1 | 01-ФК-НАЧ | Качать контроль выполнения фазы
1.11.2 | 01-ФК-ИНД | Контролировать выполнение фазы | Контролируемый ход выполнения проекта
1.11.3 | 01-ФК-РЕЗ | Контролировать неразмещенные резервы
1.11.4 | 01-ФК-КОН | Закончить контроль выполнения фазы
1.12 | 01.ФЗ | Завершение фазы
1.12.1 | 01-ФЗ-НАЧ | Начать процесс завершения фазы
1.12.2 | 01-УО-080 | Обеспечить приемку результатов клиентом. | Обяз | Док. | Акты приемки-передачи результатов
1.12.3 | 01-УС-080 | Высвободить персонал | Высвобожденный …
1.12.4 | 01-УС-090 | Высвободить физические ресурсы | Высвобожденные …
2.7.1 | 02-ДО-040 | Подготовить среду документирования | Среда документирования
2,7.2 | 02-ДО-050 | Создать прототипы и. шаблоны документов | Прототипы …
2.8 | 02-ТР | Тестирование рабочих характеристик
2.8.1 | 02-ТР-020 | Определить сценарии тестирования рабочих характеристик | Обяз. | Сценарии …
2.8.2 | 02-ТР-030 | Построить транзакционные модели тестирования рабочих характеристик | Транзакционные модели …
2.9 | 02-ОБ | Освоение и обучение | Освоение и обучение
2.9.1 | 02-ОБ-090 | Подготовить план обеспечения готовности менеджеров | Обяз. | Док. | План …
2.10 | 02-ПЭ | Переход к промышленной эксплуатации
2.10.1 | 02-ПЭ-010 | Определить стратегию перехода | Обяз. | Стратегия …
2.10.2 | 02-ФВ-КОН | Закончить выполнение фазы
2.11 | 02-ФК | Контроль фазы
2.11.1 | 02-ФК-НАЧ | Начать контроль выполнения фазы
2.11.2 | 02-ФК-ИНД | Контролировать выполнение фазы | Контролируемый ход выполнения проекта
2.11.3 | 02-ФК-РЕЗ | Контролировать неразмещенные резервы
2.11.4 | 02-ФК-КОН | Закончить контроль выполнения фазы
2.12 | 02-ФЗ | Завершение фазы
2.12.1 | 02-ФЗ-НАЧ | Начать процесс завершения фазы
2.12.2 | 02-УО-080 | Обеспечить приемку результатов клиентом | Обяз. | Док. | Акты приемки-передачи результатов
2.12.3 | 02-УС-080 | Высвободить персонал | Высвобожденный …
2.12.4 | 02-УС-090 | Высвободить физические ресурсы | Высвобожденные …
2.4 | 02-БО | Отображение бизнес-требований
2.4.1 | 02-БО-010 | Выявить и проанализировать разрывы высокого уровня | Обяз | Анализ разрывов высокого уровня
2.4.2 | 02-БО-020 | Подготовить среду для отображения бизнес-процессов | Сконфигурированная среда для …
2.4,3 | 02-БО-030 | Отобразить бизнес-требования | Обяз | Док. | Отображение …
2.4.4 | 02-БО-040 | Отобразить бизнес-данные | Обяз. | ?Док | . Отображение …
2.4.5 | 02-БО-050 | Провести интеграционный анализ и определить разрывы | Интеграционный …
2.4.6 | 02-БО-060 | Построить информационную модель будущего бизнеса (в случае проведения преобразований бизнес-процессов) | Информационная …
2.4.7 | 02-БО-070 | Провести анализ выполнения требований к отчетности | Главный журнал отчетов
2.4.8 | 02-БО-080 | Протестировать решения по отображению бизнеса | Протестированные …
2.4.9 | 02-БО-090 | Подтвердить интегрированные решения по отображению бизнеса | Обяз. | Док. | Подтвержденные …
2.5 | 02-ТА | Построение технической архитектуры
2.5.1 | 02-ТА-040 | Определить архитектуру приложения | Обяз. | Архитектура приложения
2.5,2 | 02-ТА-050 | Определить стратегию обеспечения работоспособности приложения | Обяз. | Стратегия …
2.5.3 | 02-ТА-060 | Определить стратегию отчетности и доступа к информации | Стратегия …
2.5.4 | 02-ТА-070 | Провести коррекцию концептуальной архитектуры | Концептуальная …
2.6 | 02-ПМ | Создание программных модулей
2.6.1 | 02-ПМ-020 | Оценить целесообразность расширений | Обяз. | Оценка целесообразности расширения
2.7 | 02-ДО | Документирование
1.12.5 | 01-УК-050 | Комплексная оценка качества | Обяз. | Док. | Отчет о качестве
1.12.6 | 01-УФ-060 | Провести аудит ключевых результатов | Обяз. | Док. | Аудированные результаты
1.12.7 | 01-ФЗ-КОН | Закончить процесс завершение фазы
2 | 02 | Анализ и оценка
2.1 | 02-ФП | Планирование фазы
2.1.1 | 02-ФП-НАЧ | Начать планирование фазы
2.1.2 | 02-ФП-ИНД | Провести обзор и ревизию планов | Обяз. | Док. | Скорректированные планы
2.1.3 | 02-ФП-КОН | Закончить планирование фазы
2.2 | 02-БП | Моделирование бизнес-процессов
2.2.1 | 02-ФВ-НАЧ | Начать выполнение фазы
2.2.2 | 02-БП-080 | Разработать модель будущих процессов (в случае проведения преобразований) | Модель будущих процессов
2.3 | 02-БТ | Определение бизнес-требований
2.3.1 | 02-БТ-030 | Составить итоговый документ по процессам и их отображению | Обяз. | Док. | Итоговый …
2.3.2 | 02-БТ-040 | Собрать показатели информационной деятельности предприятия (типы транзакций, интенсивность потоков, объемы хранения данных) | Показатели деятельности
2.3.3 | 02-БТ-050 | Собрать бизнес-требования | Обяз. | Док. | Сценарии бизнес-требований
2.3.4 | 02-БТ-060 | Определить требования к аудиту и контролю | Требования …
2.3.5 | 02-БТ-070 | Определить требования к условиям функционирования бизнеса | Обяз. | Док. | Требования …
2.3.6 | 02-БТ-080 | Определить требования к отчетности и доступу к информации | Обяз. | Док. | Требования …
2.12.5 | 02-УК-050 | Комплексная оценка качества | Обяз. | Док. | Отчет о качестве
2.12.6 | 02-УФ-060 | Провести аудит ключевых результатов | Обяз. | Док. | Аудированные результаты
2.12.7 | 02-ФЗ-КОН | Закончить процесс завершение фазы
3 | 03 | Техническое проектирование
3.1 | 03-ФП | Планирование фазы
3.1.1 | 03-ФП-НАЧ | Начать планирование фазы
3.1.2 | 03-ФП-ИНД | Провести обзор и ревизию планов | Обяз. | Док. | Скорректированные планы
3.1.3 | 03-ФП-КОН | Закончить планирование фазы
3.2 | 03-БП | Моделирование бизнес-процессов
32.1 | 03-ФВ-НАЧ | Начать выполнение фазы
3.2.2 | 03-БП-090 | Документировать бизнес-процедуры | Обяз. | ?Док | Документированные бизнес-процедуры
3.3 | 03-БО | Отображение бизнес-требований
3.3.1 | 03-БО-100 | Определить настроечные параметры | Обяэ. | Описание …
3.3.2 | 03-БО-110 | Подготовить спецификации информационной защиты | Обяз. | Док. | Спецификации …
3.4 | 03-ТА | Построение технической архитектуры
3.4.1 | 03-ТА-080 | Определить архитектуру системы информационной | Архитектура …
3.5 | 03-ПМ | Создание программных модулей
3.5.1 | 03-ПМ-030 | Определить стандарты проектирования | Стандарты …
3.5.2 | 03-ПМ-040 | Определить стандарты реализации | Стандарты …
3.5.3 | 03-ПМ-050 | Выполнить функциональное проектирование расширений | Обяз. | Функциональные проекты расширений
3.5.4 | 03-ПМ-060 | Выполнить проектирование расширений базы данных | Обяг | 1. | Проект …
3.5.5 | 03-ПМ-070 | Подготовить технические спецификации на модули расширения | Обя; | i. | Технические …
3.5.6 03-ПМ-080 Провести обзор функциональных и технических решений Обя: i. Утвержденные функциональные и …
3.6 | 03-ПД | Преобразование данных
3.6.1 | 03-ПД-020 | Определить стандарты преобразования данных | Стандарты …
3.6.2 | 03-ПД-030 | Подготовить среду преобразования данных | Обя; | i. | Среда …
3.6.3 03-ПД-040 Построить отображение данных для проведения преобразования Обя: i. Схема отображения …
3.6.4 | 03-ПД-050 | Определить ручные процедуры преобразования данных | Обя; | i. | Описание …
3.6.5 03-ПД-060 Разработать программы преобразования данных Обя: i. Программы …
3.6.6 | 03-ПД-070 | Подготовить планы тестирования преобразования данных | Обяг | i. | Планы …
3.7 | 03-ТС | Тестирование
3.7.1 03-ТС-020 Подготовить методики автономного тестирования Обя: i. Описание …
3.7.2 03-ТС-030 Подготовить описания (скрипты) тестов межмодульны: связей хОбя: ). Описание …
3.7.3 | 03-ТС-040 | Подготовить системных тестов | Описание …
3.7.4 | 03-ТС-050 | Подготовить описания тестов интеграции с внешними приложениями | Описание …
3.8 | 03-ТР | Тестирование рабочих характеристик
3.8.1 | 03-ТР-040 | Подготовить описания тестов рабочих характеристик | Описание …
3.8.2 | 03-ТР-050 | Разработать транзакционные программы тестирования рабочих характеристик | Транзакционные …
3.8.3 | 03-ТР-060 | Подготовить данные для тестирования рабочих характеристик | Обяз. | Данные …
3.8.4 | 03-ТР-070 | Разработать программы загрузки тестовых данных | Обяз. | Программы …
3.9 | 03-ОБ | Освоение и обучение | Освоение и обучение
3-9.1 | 03-ОБ-100 | Определить влияние изменений бизнес-процессов на организацию | Обяз. | Оценка влияния …
3.9.2 | 03-ОБ-110 | Скорректировать средства и методы поддержки эффективной работы персонала | Обяз. | Средства …
3.9.3 | 03-ОБ-120 | Наладить работу ИТ-подразделений в новых условиях | Обяз. | Подготовленные ИТ-подразделения …
3.9.4 | 03-ОБ-130 | Провести анализ потребностей пользователей в обучении | Анализ …
3.9,5 | 03-ОБ-140 | Составить план обучения пользователей | Обяз. | План …
3.9.6. | 03-ФВ-КОН | Закончить выполнение фазы
3.10 | 03-tPK | Контроль фазы
3.10.1 | 03-ФК-КАЧ | Начать контроль выполнения фазы
3.10.2 | 03-ФК-ИНД | Контролировать выполнение фазы | Контролируемый ход выполнения проекта
3.10.3 | 03-ФК-РЕЗ | Контролировать неразмещенные резервы
3.10.4 | 03-ФК-КОН | Закончить контроль выполнения фазы
3.11 | 03-ФЗ | Завершение фазы
3.11;1 | 03-ФЗ-НАЧ | Начать процесс завершения фазы
3.11:2 | 03-УО-080 | Обеспечть приемку результатов клиентом | Обяз. | Док. | Акты приемки-передачи результатов
3.11,3 | 03-УС-080 | Высвободить персонал | Высвобожденный …
3.11.4 | 03-УС-090 | Высвободить физические ресурсы | Высвобожденные …
3.11.5 | 03-УК-050 | Комплексная оценка качества | Обяз. | Док. | Отчет о качестве
3.11.6 | 03-УФ-060 | Провести аудит ключевых результатов | Обяз. | Док. | Аудированные результаты
3.11.7 | 03-ФЗ-КОН | Закончить процесс завершения фазы
4 | 04 | Рабочее проектирование
4.1 04-ФП
Планирование фазы
4.1.1 | 04-ФП-НАЧ | Начать планирование фазы
4.1.2 | 04-ФП-ИНД | Провести обзор и ревизию планов | Обяз. | Док. | Скорректированные планы
4.1.3 | 04-ФП-КОН | Закончить планирование фазы
4.2 | 04-ТА | Построение технической архитектуры
4.2.1 | 04-ФВ-КАЧ | Начать выполнение фазы
4.2.2 | 04-ТА-090 | Определить архитектуру серверов базы данных | Архитектура серверов базы данных
4.2.3 | 04-ТА-100 | Определить дополнительные подсистемы на уровне архитектуры | Предложения по дополнительным …
4.2.4 | 04-ТА-110 | Составить план обеспечения производительности системы | План …
4.2.5 | 04-ТА-120 | Определить платформу и сетевую архитектуру | Обяз. | Платформа и …
4.2.6 | 04-ТА-130 | Составить план развертывания системы | Обяз. | Док. | План …
4.2.7 | 04-ТА-140 | Оценить риски недостижения требуемых характеристик | :0бяз. | Оценка рисков …
4.2.8 | 04-ТА-150 | Определить процедуры управления системой | Обяз. | Процедуры …
4.3 | 04-ПМ | Создание программных модулей
4.3.1 | 04-ПМ-090 | Подготовить среду разработки | Обяз. | Среда …
4.3.2 | 04-ПМ-100 | Создать расширения базы данных | Обяз. | Пользовательские объекты базы данных
4.33 | 04-ПМ-110 | Создать модули расширения функциональности | Обяз. | Модули …
4.3.4 | 04-ПМ-120 | Создать процедуры установки | Процедуры …
4.4 | 04-ПД | Преобразование данных
4.4.1 | 04-ПД-080 | Разработать программы преобразования данных | Обяз. | Программы …
4.4.2 | 04-ПД-090 | Выполнить автономные тесты программ преобразования данных | Обяз. | Автономно протестированные …
4.4.3 | 04-ПД-100 | Выполнить сквозные тесты преобразования данных | Обяз. | Прошедшие сквозные тесты программы …
4.4.4 | 04-ПД-110 | Выполнить тесты правильной работы с преобразованными данными | Обяз. | Прошедшие заключительные тесты программы …
4.5 | 04-ДО | Документирование
4.5.1 | 04-ДО-060 | Выпустить справочное руководство пользователя | Обяз. | Док. | Справочное …
4.5.2 | 04-ДО-070 | Выпустить руководство пользователя | Руководство …
4.5.3 | 04-ДО-080 | Выпустить справочное техническое руководство | Справочное …
4.5.4 | 04-ДО-090 | Выпустить руководство по управлению системой | Руководство …
4.6 | 04-ТС | Тестирование
4.6.1 | 04-ТС-060 | Подготовить среду тестирования | Среда …
4.6.2 | 04-ТС-070 | Выполнить автономные тесты | Обяз. | Модули, прошедшие автономные тесты
4.6.3 | 04-ТС-080 | Выполнить тесты межмодульных связей | Обяз. | Модули, прошедшие тесты связей
4.6.4 | 04-ТС-090 | Выполнить тест установки | Протестированные процедуры установки
4.6.5 | 04-ТС-100 | Отобрать ключевых пользователей для участия в тестировании | Обяз. | Ключевые …
4.6.6 | 04-ТС-110 | Провести общее тестирование системы | Обяз. | Док | общее тестирование системы
4.6.7 | 04-ТС-120 | Выполнить тесты интеграции с внешними приложениями | Система, прошедшая тесты интеграции с …
4.7 | 04-ТР | Тестирование рабочих характеристик
4.7.1 | 04-ТР-080 | Разработать транзакционные программы для тестирования рабочих характеристик | Обяз. | Транзакционные …
4.7.2 | 04-ТР-090 | Разработать программы загрузки тестовых данных | Программы …
4.7.3 | 04-ТР-100 | Создать базу данных для тестирования рабочих характеристик | База данных …
4.7.4 | 04-ТР-110 | Создать среду для тестирования рабочих характеристик | Среда …
4.7.5 | 04-ТР-120 | Провести тестирование рабочих характеристик | Обяз. | Результаты тестирования …
4.7.6 | 04-ТР-130 | Подготовить отчет о результатах тестирования рабочих характеристик | Обяз. | Док. | Отчет …
4.8 | 04-ОБ | Освоение и обучение | Освоение и обучение
4.8.1 | 04-ОБ-150 | Подготовить средства и методы обучения | Обяз. | Средства и …
4.8.2 | 04-06-160 | Подготовить среду обучения | Обяз. | Среда …
4.9 | 04-ПЭ | Переход к промышленной эксплуатации
4.9.1 | 04-ПЭ-020 | Подготовить проект создания инфраструктуры поддержки | Обяз. | Проект …
4.9.2 | 04-ПЭ-030 | Составить план перехода и обеспечения непрерывности бизнеса | Обяз. | План …
4.9.3 | 04-ФВ-КОН | Закончить выполнение фазы
4.10 | 04-ФК | Контроль фазы
4.10.1 | 04-ФК-НАЧ | Начать контроль выполнения фазы
4.10.2 | 04-ФК-ИНД | Контролировать выполнение фазы | Контролируемый ход выполнения проекта
4.10.3 | 04-фк-рез | Контролировать неразмещенные резервы
4.10.4 | 04-ФК-КОК | Закончить контроль выполнения фазы
4.11 | 04-ФЗ | Завершение фазы
4.11.1 | 04-ФЗ-НАЧ | Начать процесс завершения фазы
4.11.2 | 04-УО-080 | Обеспечить приемку результатов клиентом | Обяз. | Док. | Акты приемки-передачи результатов
4.11.3 | 04-УС-080 | Высвободить персонал | Высвобожденный …
4.11.4 | 04-УС-090 | Высвободить физические ресурсы | Высвобожденные …
4.11.5 | 04-УК-050 | Комплексная оценка качества | Обяз. | Док. | Отчет о качестве
4.11.6 | 04-УФ-060 | Провести аудит ключевых результатов | Обяз. | Док. | Аудированные результаты
4.11.7 | 04-ФЗ-КОН | Закончить процесс завершение фазы
5 | 05 | Ввод в эксплуатацию
5.1 | 05-ФП | Планирование фазы
5.1.1 | 05-ФП-НАЧ | Начать планирование фазы
5.1.2 | 05-ФП-ИНД | Провести обзор и ревизию планов | Обяз. | Док. | Скорректированные планы
5.1.3 | 05-ФП-КОН | Закончить планирование фазы
5.2 | 05-ПД | Преобразование данных
5.2.1 | 05-ФВ-НАЧ | Начать выполнение фазы
5.2.2 | 05-ПД-120 | Установить программы преобразования данных | Установленные …
5.2.3 | 05-ПД-130 | Конвертировать и верифицировать данные | Обяз. | Конвертированные …
5.3 | 05-ТС | Тестирование
5.3.1 | 05-ТС^ЗО | Выполнить приемочные тесты | Обяз. | Док. | Результаты приемочных тестов
5.4 | 05-ОБ | Освоение и обучение | Освоение и обучение
5.4.1 | 05-ОБ-170 | Провести обучение пользователей | Обяз. | Обученные пользователи
5.5 | 05-ПЭ | Переход к промышленной эксплуатации
5.5.1 | 05-ПЭ-040 | Подготовить среду промышленной эксплуатации | Обяз. | Среда …
5.5.2 | 05-ПЭ-050 | Установить прикладные программы | Обяз. | Установленные …
5.5.3 | 05-ПЭ-060 | Создать инфраструктуру поддержки | Обяз. | Инфраструктура …
5.5.4 | 05-ПЭ-070 | Проверить готовность к промышленной эксплуатации | Обяз. | Готовая к …
5.5.5 | 05-ПЭ-080 | Начать промышленную эксплуатацию | Обяз. | Система в промышленной эксплуатации
5.5.6 | 05-ФВ-КОН | Закончить выполнение фазы
5.6 | 05-ФК | Контроль фазы
5.6.1 | 05-ФК-НАЧ | Начать контроль выполнения фазы
5.6.2 | 05-ФК-ИНД | Контролировать выполнение фазы | Контролируемый ход выполнения проекта
5.6.3 | 05-ФК-РЕЗ | Контролировать неразмещенные резервы
5.6.4 | 05-ФК-КОН | Закончить контроль выполнения фазы
5.7 | 05-ФЗ | Завершение фазы
5.7.1 | 05-ФЗ-НАЧ | Начать процесс завершения фазы
5.7.2 | 05-УО-080 | Обеспечть приемку результатов клиентом | Обяз. | Док. | Акты приемки-передачи результатов
5.7.3 | 05-УС-080 | Высвободить персонал | Высвобожденный …
5.7.4 | 05-УС-090 | Высвободить физические ресурсы | Высвобожденные …
5.7.5 | 05-УК-050 | Комплексная оценка качества | Обяз. | Док. | Отчет о качестве
5.7.6 | 05-УФ-060 | Провести аудит ключевых результатов | Обяз. | Док. | Аудированные результаты
5.7.7 | 05-ФЗ-КОН | Закончить процесс завершение фазы
6 | 06 | Промышленная эксплуатация
6.1 | 06-ФП | Планирование фазы
6.1.1 | 06-ФП-НАЧ | Начать планирование фазы
6.1.2 | 06-ФП-ИНД | Провести обзор и ревизию планов | Обяз. | Док. | Скорректированные планы
6.1.3 | 06-ФП-КОН | Закончить планирование фазы
6.2 | 06-ОБ | Освоение и обучение | Освоение и обучение
6.2.1 | 06-ФВ-НАЧ | Начать выполнение фазы
6.2.2 | 06-ОБ-180 | Провести оценку эффективности | Оценка эффективности
6.3 | 06-ПЭ | Переход к промышленной эксплуатации
6.3.1 | 06-ПЭ-090 | Измерить рабочие характеристики | Обяз. | Оценка рабочих характеристик
6.3.2 | 06-ПЭ-100 | Обеспечить сопровождение системы | Обяз. | Среда сопровождения системы
6.3.3 | 06-ПЭ-110 | Внести улучшения в систему | Обяз. | Улучшенная система и среда эксплуатации
6.3.4 | 06-ПЭ-120 | Вывести из эксплуатации прежнюю систему | Списанная прежняя система
6.3.5 | 06-ПЭ-130 | Рассмотреть направления совершенствования бизнес-процессов | Рекомендации по совершенствованию …
6.3.6 | 06-ПЭ-140 | Рассмотреть направления развития информационной системы | Рекомендации по направлениям …
6.3.7 | 06-ФВ-КОН | Закончить выполнение фазы
6.4 | 06.ФК | Контроль фазы
6.4.1 | 06-ФК-НАЧ | Начать контроль выполнения фазы
6.4.2 | 06-ФК-ИНД | Контролировать выполнение фазы | Контролируемый ход выполнения проекта
6,4.3 | 06-ФК-РЕЗ | Контролировать неразмещенные резервы
6.4.4 | 06-ФК-КОН | Закончить контроль выполнения фазы
6.5 | 06-ПЗ | Завершение проекта
6.5.1 | 06-ПЗ-НАЧ | Начать процесс завершения проекта
6.5.2 | 06-УО-080 | Обеспечть приемку результатов клиентом | Обяз. | Док. | Акты приемки-передачи результатов
6.5.3 | 06-УС-080 | Высвободить персонал | Высвобожденный …
6.5.4 | 06-УС-090 | Высвободить физические ресурсы | Высвобожденные …
6.5.5 | 06-УК-050 | Комплексная оценка качества | Обяз. | Док. | Отчет о качестве
6.5.6 | 06-УФ-060 | Провести аудит ключевых результатов | Обяз. | Док. | Аудированные результаты
6.5.7 | 06-УФ-070 | Завершение управления конфигурацией и передача соответствующих функций клиенту | Работоспособная система управления конфигураций, переданная …
6.5.8 | 06-ПЗ-КОН | Закончить процесс завершение проекта


1С-Предприятие. Документация. Внедрение | Методология внедрения пакета программ «1С-Предприятие». Приложение 4.

ПРИЛОЖЕНИЕ 4.

ГЛОССАРИЙ

А

Анализ разрывов. Процесс выявления, документирования и выработки рекомендации по устранению расхождений между бизнес-требованиями и возможностями приложения в конкретной ситуации внедрения. Учитывает функциональность приложения, денежные, ресурсные и иные ограничения клиента.

Аудит качества. Проверка соблюдения группой проекта планов, процедур и стандартов.

Б

Бизнес-модель. Целостный набор взаимосвязанных моделей, описывающих ключевые аспекты бизнеса, включая цели, структуру, показатели и т.д.

Бизнес-область. Конкретный набор бизнес-процессов, рассматриваемых в проекте.

Бизнес-объект. Любой физический либо логический объект, имеющий значение при ведении бизнеса, например, счет, организационное подразделение, баланс и т.п. Бизнес-объекту соответствует класс в объектно-ориентированном подходе.

Бизнес-ограничение. Любой внешний или внутренний фактор, который накладывает ограничения на развитие бизнеса. Обычно формулируется в терминах ресурсных, финансовых и временных ограничений либо в терминах связи с другими ограничивающими факторам.

Бизнес-организация. Любая целостная часть организационной структуры, например, отдел, управление, филиал, дочернее предприятие.

Бизнес-показатели. Четко определенные и допускающие объективную оценку цели деятельности.

Бизнес-процесс. Поток взаимосвязанных событий и действий. Событие трактуется как сигнал, поступающий извне либо генерируемый в процессе функционирования бизнес-области.

Наступление события вызывает реакцию - предопределенную последовательность действий, выполняемую при наступлении данного события. Действия, называемые шагами процесса, представляют собой различные операции, выполняемые с информационными и материальными объектами. Бизнес-процессы данного уровня допускают разбиение на составляющие бизнес-процессы более низкого уровня. Нулевой уровень детализации идентифицирует саму бизнес-область. Данному уровню соответствует корневой процесс. Корневой процесс состоит из первичных процессов. На нижнем уровне детализации находятся элементарные процессы.

Бизнес-решение. Целостный набор принципиальных решений по построению информационной системы, обеспечивающих выполнение бизнес-требований.

Бизнес-система. Бизнес-организация, рассматриваемая совместно с используемой в ней информационной системой.

Бизнес-требование. Четко сформулированное требование к условиям выполнения конкретных бизнес-функций либо конкретных шагов бизнес-процесса. Обычно формулируется в содержательных бизнес-терминах.

Бизнес-функция. Любая целостная деятельность, которая может быть достаточно точно определена, например, в терминах «вход-преобразование-выход».

Бизнес-цель. Описание целей коммерческой деятельности в качественных терминах, например, выйти на рынок, обеспечить приемлемые темпы роста, занять устойчивые конкурентные позиции. Обычно формулируется как стратегическая либо тактическая цель с горизонтом 3-5 лет.

В

Высокоуровневое описание бизнес-процессов. Укрупненное описание основных бизнес-процессов уровня предприятия.

З

Запрос на изменения. Запрос на внесение изменений в функционировании приложения. Обычно формируется клиентом по результатам использования приложения.

И

Интеграционный анализ. Детальная процедура по выявлению ц документированию разрывов и соответствия между внедряемым приложением и внешними информационными системами используемыми на предприятии.

Интеграционный тест. Тест на корректность интерфейсов между приложением и внешними системами.

К

Ключевой результат. Основной результат, который должен быть получен при выполнении фазы проекта и предъявлен клиенту в подтверждение выполнения запланированных работ.

Конфигурация. Именованный набор объектов (элементов конфигурации) произвольной природы, генерируемый в ходе выполнения проекта. Такими элементами могут быть документы, программы, вычислительное оборудование, обученный персонал и т.д.

Концептуальная архитектура. Обобщенная (высокоуровневая модель) приложения корпоративного уровня. Описывает основные прикладные и технологические компоненты информационной системы в привязке к организационной структуре и географическому размещению подразделений предприятия клиента. Определяет предмет более детального проектирования на последующих шагах проекта. Обычно отражает видение высших менеджеров перспектив развития предприятия в связи с использованием информационных технологий.

М

Модель бизнес-процессов. Представление бизнес-процессов в формальном виде. Обычно для описания бизнес-процессов используют различного рода диаграммы, например, диаграмм потоков данных и/или событий.

Модель бизнес-функций. Формализованное представление всех бизнес-функций некоторой области деятельности. Обычно при характеристике деятельности предприятия рассматривается иерархическая декомпозиция бизнес-функций.

Н

Наследуемая система. Существующая информационная система»^ которая должна быть заменена внедряемым приложением.

О

Объект базы данных. Логический объект, хранимый в базе данных. Может иметь специфическую структуру и использование в зависимости от приложения. Примерами объектов могут служить справочники, формы, процедуры, индексы и т.д.

Организационно-кадровый план. Основной организационный документ проекта, в котором определяется организационная структура группы проекта, распределение полномочий и ответственности, численность и требования к участникам, график привлечения к работам по проектам.

Отображение. Процедура установления степени соответствия между объектами различной природы по заданным критериям. Чаще всего рассматривается отображение бизнес-требований на конкретные ИТ-решения либо отображение существующей информации на структуры базы данных внедряемого приложения.

Отображение бизнес-данных. Отображение информационных объектов, используемых в бизнесе, на структуры базы данных приложения.

Отображение бизнес-требований. 1. Трансляция содержательных бизнес-требований в требования к возможностям либо особенностям возможного решения на уровне приложения. 2. Установление соответствия между бизнес-требованиями и особенностями/возможностями конкретного приложения.

П

План управления проектом. Внутренний руководящий документ проекта, в котором определяются стратегия, а также приводится перечень стандартов и процедур, используемых для управления проектом

План физических ресурсов. Описание потребности в ресурсах, необходимых для выполнения проекта. Содержит график поставки ресурсов, а также указания по распределению ответственности за обеспечение ресурсами и их использование.

Преобразование данных. Перенос данных из существующей системы в базу данных внедряемого приложения.

Пригодность приложения. Зафиксированное соответствие между некоторым аспектом бизнес-требования и возможностями приложения, которые обеспечивают его выполнение.

Прикладная система. Набор информационных объектов, программных модулей, технологических платформ и документации, который обеспечивает автоматизацию выполнения определенных бизнес-функций

Приложение. Набор совместно работающих программных модулей, которые поддерживают выполнение соответствующих бизнес-функций. В контексте проекта внедрения обозначает внедряемую информационную систему.

Р

Рабочие характеристики. Объективно измеряемые показатели функционирования приложения в конкретных условиях. К числу важнейших относятся: производительность, время реакции, надежность. Существенными также являются производные показатели, например, максимально допустимые потоки при заданных ограничениях на время реакции.

Рабочий план. Детальный структурированный перечень задач проекта, упорядоченных по времени выполнения. Обычно составляется на основе сетевого графика проекта.

Разрыв. Зафиксированное расхождение между каким-либо аспектом бизнес-требований и возможностями приложения

Расширение пользователя. Программные модули, выполненные на заказ, которые расширяют функциональность приложения без модификации его базового кода.

Расширение приложения. Собирательный термин, обозначающий любые программные разработки, выполняемые для удовлетворения бизнес-требованиям, которые не могут быть удовлетворены в рамках стандартной функциональности приложения. Включают в себя модификацию базового кода и/или разработку дополнительных программных модулей

Результат. Объект, который должен быть создан/модифицирован при решении определенной задачи в процессе выполнения проекта. Результатом может быть документ, программа, подготовленный персонал т.д. Результаты должны допускать объективную оценку.

С

Системный тест. Тест приложения по всему его жизненному циклу и всем операциям, включая генерацию (установку), рабочее использование, сохранение и восстановление.

Справочное руководство по административным процедурам. Методический материал, описывающий правила и процедуры текущей деятельности участников группы проекта. Может включать в себя правила оформления командировок, отчетности по расходам, оформления и прохождения заказов, доступа к информации, информационной безопасности и т.д.

Среда отображения бизнес-требований. Комплекс методических материалов и программных средств, используемых для решения задач по отображению бизнес-требований.

Среда приложения. Полностью установленное на компьютерах приложение наряду с другими утилитами, используемыми для моделирования бизнеса, разработок, тестирования и обучения. Обычно, среда приложения включает программы установки и тестовые данные, а также процедуры восстановления.

Среда тестирования. Стабильная совокупность программно-аппаратных средств и данных, поддерживающих проведение тестов программного обеспечения. Может включать в себя тестовые данные, шаблоны тест-скриптов, инструменты для подготовки тестов, средства сбора и анализа результатов тестирования.

Стратегия. Общие принципы решения задач определенного класса. В контексте проекта внедрения рассматривается стратегия решения задач для каждого процесса выполнения проекта.

Сценарий бизнес-требования. Четко сформулированные детальные требования к бизнес-процессу, источник требований, их обоснование, связь с другими требованиями, способы обеспечения его выполнения и проверки, другие существенные моменты.

Сценарий отображения. Полное описание процедуры отображения, включающее в себя: перечень рассматриваемых бизнес-процессов, критерии соответствия, алгоритм установления соответствия, процедуры и инструменты проверки полученного результата.

Т

Тест рабочих характеристик. Тест на соответствие рабочих характеристик приложения заданным требованиям.

Тестирование бизнес-решения. Формализованная многошаговая процедура, направленная на проверку того, что бизнес-требования будут удовлетворены при использовании конкретных решений по построению и использованию приложения

Тест-скрипт. Детальное описание алгоритма выполнения теста по шагам.

Техническая архитектура. Описание средств и методов, обеспечивающих использование информационных технологии. Включает в себя оборудование, программное обеспечение, протоколы, стандарты, методологию, специализированные ИТ-подразделения и т.д.

Транзакционные модели и программы. Описание потоков транзакций, имитирующих реальную работу для целей тестирования. Транзакционные программы разрабатываются на основе соответствующих моделей.

У

Управление конфигурацией. Комплекс мероприятий по учету, хранению и использованию элементов проекта любой природы, которые создаются и используются в ходе выполнения проекта, а также передаются клиенту.

Ф

Финансовый план. Основной финансовый документ проекта, включающий в себя: смету доходов и затрат, график поступлений и платежей, правила финансового учета.

Ц

Целевые показатели. Показатели деятельности, которые допускают объективную оценку.


1С-Предприятие. Документация. Внедрение | Методология внедрения пакета программ «1С-Предприятие». Приложение 5.

ПРИЛОЖЕНИЕ 5. Выдержки из ГОСТов

Выдержки из 34 комплекса государственных стандартов на автоматизированные системы

ПЗ.1. ГОСТ 34.601-90. Автоматизированные системы. Стадии создания

Настоящий стандарт распространяется на автоматизированные системы (АС), используемые в различных видах деятельности (исследование, проектирование, управление и т.п.), включая их сочетания, создаваемые в организациях, объединениях и на предприятиях (далее организациях). Стандарт устанавливает стадии и этапы создания AC, a также содержание работ на каждом этапе.

Процесс создания АС представляет собой совокупность упорядоченных во времени, взаимосвязанных, объединенных в стадии и этапы работ, выполнение которых необходимо и достаточно для создания АС, соответствующей заданным требованиям. Стадии и этапы создания АС в общем случае приведены ниже.

1. Формирование требований к АС

1.1. Обследование объекта и обоснование необходимости создания АС

1.2. Формирование требований пользователя к АС

1.3. Оформление отчета о выполненной работе и заявки на разработку АС (тактико-технического задания)

2. Разработка концепции АС

2.1. Изучение объекта

2.2. Проведение необходимых научно-исследовательских работ

2.3. Разработка вариантов концепции АС и выбор варианта концепции АС, удовлетворяющего требованиям пользователя

2.4. Оформление отчета о выполненной работе

3. Техническое задание

Разработка и утверждение технического задания на создание АС

4. Эскизный проект

4.1 Разработка предварительных проектных решений по системе и ее частям

4.2. Разработка документации на АС и ее части

5. Технический проект

5.1. Разработка проектных решений по системе и ее частям

5.2. Разработка документации на АС и ее части

5.3. Разработка и оформление документации на поставку изделий для комплектования АС и/или технических требований (технических заданий) на их разработку

5.4. Разработка заданий на проектирование в смежных частях проекта объекта автоматизации

6. Рабочая документация

6.1. Разработка рабочей документации на систему и ее части

6.2. Разработка или адаптация программ

7. Ввод в действие

7.1. Подготовка объекта автоматизации к вводу АС в действие

7.2. Подготовка персонала

7.3. Комплектация АС поставляемыми изделиями (программными и техническими средствами, программно-техническими комплексами, информационными изделиями)

7.4. Строительно-монтажные работы

7.5. Пусконаладочные работы

7.6. Проведение предварительных испытаний

7.7. Проведение опытной эксплуатации

7.8. Проведение приемочных испытаний

8. Сопровождение АС

8.1. Выполнение работ в соответствии с гарантийными обязательствами

8.2. Послегарантийное обслуживание

Допускается исключать стадию "Эскизный проект" и отдельные этапы работ на всех стадиях, объединять стадии "Технический проект" и "Рабочая документация" в одну стадию "Технорабочий проект". В зависимости от специфики создаваемых АС и условий их создания допускается выполнять отдельные этапы работ до завершения предшествующих стадий, параллельное во времени выполнение этапов работ, включение новых этапов работ.

На этапе 1.1 в общем случае проводят сбор данных об объекте автоматизации и осуществляемых видах деятельности; оценку качества функционирования объекта и осуществляемых видов деятельности, выявление проблем, решение которых возможно средствами автоматизации; оценку (технико-экономической, социальной и т. п.) целесообразности создания АС.

На этапе 1.2 проводят подготовку исходных данных для формирования требований к АС (характеристика объекта автоматизации, описание требований к системе, ограничения допустимых затрат на разработку, ввод в действие и эксплуатацию, эффект, ожидаемый от системы, условия создания и функционирования системы); формулировку и оформление требований пользователя к АС.

На этапе 1.3 проводят оформление отчета о выполненных работах на данной стадии и оформление заявки на разработку АС (тактико-технического задания) или другого замещающего ее документа с аналогичным содержанием.

На этапах 2.1 и 2.2 организация-разработчик проводит детальное изучение объекта автоматизации и необходимые научно-исследовательские работы (НИР), связанные с поиском путей и оценкой возможности реализации требований пользователя, оформляют и утверждают отчеты о НИР.

На этапе 2.3 в общем случае проводят разработку альтернативных вариантов концепции создаваемой АС и планов их реализации; оценку необходимых ресурсов на их реализацию и обеспечение функционирования; оценку преимуществ и недостатков каждого варианта; сопоставление требований пользователя и характеристик предлагаемой системы и выбор оптимального варианта; определение порядка оценки качества и условий приемки системы; оценку эффектов, получаемых от системы.

На этапе 2.4 подготавливают и оформляют отчет, содержащий описание выполненных работ на стадии, описание и обоснование предлагаемого варианта концепции системы.

На этапе 3.1 проводят разработку, оформление, согласование и утверждение технического задания на АС и, при необходимости, технических заданий на части АС.

На этапе 4.1 определяются функции АС; функции подсистем, их цели и эффекты; состав комплексов задач и отдельных задач; концепции информационной базы, ее укрупненная структура; функции системы управления базой данных; состав вычислительной системы; функции и параметры основных программных средств.

На этапе 5.1 обеспечивают разработку общих решений по системе и ее частям, функционально-алгоритмической структуре системы, по функциям персонала и организационной структуре, по структуре технических средств, по алгоритмам решений задач и применяемым языкам, по организации и ведению информационной базы, системе классификации и кодирования информации, по программному обеспечению.

На этапах 4.2 и 5.2 проводят разработку, оформление, согласование и утверждение документации в объеме, необходимом для описания полной совокупности принятых проектных решений и достаточном для дальнейшего выполнения работ по созданию АС.

На этапе 6.1 осуществляют разработку рабочей документации, одержащей все необходимые и достаточные сведения для

обеспечения выполнения работ по вводу АС в действие и ее эксплуатации, а также для поддержания уровня эксплуатационных характеристик (качества) системы в соответствии с принятыми проектными решениями, ее оформление, согласование и утверждение.

На этапе 6.2 проводят разработку программ и программных средств системы, выбор, адаптацию и/или привязку приобретаемых программных средств, разработку программной документации.

На этапе 7.1 проводят работы по организационной подготовке объекта автоматизации к вводу АС в действие, в том числе: реализацию проектных решений по организационной структуре АС; обеспечение подразделений объекта управления инструктивно-методическими материалами; внедрение классификаторов информации.

На этапе 7.2 проводят обучение персонала и проверку его способности обеспечить функционирование АС.

На этапе 7.6 осуществляют испытания АС на работоспособность и соответствие техническому заданию в соответствии с программой и методикой предварительных испытаний; устранение неисправностей и внесение изменений в документацию на АС, в том числе эксплуатационную в соответствии с протоколом испытаний; оформление акта о приемке АС в опытную эксплуатацию.

На этапе 7.7 проводят опытную эксплуатацию АС; анализ результатов опытной эксплуатации АС; доработку (при необходимости) программного обеспечения АС; дополнительную наладку (при необходимости) технических средств АС; оформление акта о завершении опытной эксплуатации.

На этапе 7.8 проводят испытание на соответствие техническому заданию в соответствии с программой и методикой приемочных испытаний; анализ результатов испытаний АС и устранение недостатков, выявленных при испытаниях; оформление акта о приемке АС в постоянную эксплуатацию.

На этапе 8.1 осуществляют работы по устранению недостатков, выявленных при эксплуатации АС в течение установленных гарантийных сроков, внесению необходимых изменений в документацию на АС.

На этапе 8.2 осуществляют работы по анализу функционирования системы; выявлению отклонений фактических эксплуатационных характеристик АС от проектных значений; установлению причин этих отклонений; устранению выявленных недостатков и обеспечению стабильности эксплуатационных характеристик АС; внесению необходимых изменений в документацию на АС.

ПЗ.2. РД 50-34.698-90. Автоматизированные системы. Требования к содержанию документов

Настоящие методические указания распространяются на автоматизированные системы (АС), используемые в различных сферах деятельности (управление, исследование, проектирование и т.п.), включая их сочетание, и устанавливают требования к содержанию док ументов, разрабатываемых при создании АС.

Содержание документов является общим для всех видов АС и, при необходимости, может дополняться разработчиком документов в зависимости от особенностей создаваемой АС. Допускается включать в документы дополнительные разделы и сведения, объединять и исключать разделы. Содержание каждого документа определяет разработчик в зависимости от объекта проектирования (системы, подсистема и т.д.).

1. Пояснительные записки к эскизному, техническому проектам содержат разделы: общие положения; описание процесса деятельности;

основные технические решения; мероприятия по подготовке объекта автоматизации к вводу системы в действие.

В разделе "Общие положения" приводят:

• наименование проектируемой АС и наименования документов, их номера и дату утверждения, на основании которых ведут проектирование АС;

• перечень организаций, участвующих в разработке системы, сроки выполнения стадий;

• цели, назначение и области использования АС;

• подтверждение соответствия проектных решений действующим нормам и правилам техники безопасности, пожаро- и взрывобезопасности и т.п.;

• сведения об использованных при проектировании нормативно-технических документах;

• сведения о НИР, передовом опыте, изобретениях, использованных при разработке проекта;

• очередность создания системы и объем каждой очереди.

В разделе "Описание процесса деятельности"

• отражают состав процедур (операций) с учетом обеспечения взаимосвязи и совместимости процессов автоматизированной и неавтоматизированной деятельности;

• формируют требования к организации работ в условиях функционирования АС.

В разделе "Основные технические решения" приводят:

• решения по структуре системы, подсистем, средствам и способам связи для информационного обмена между компонентами системы, подсистем;

• решения по взаимосвязям АС со смежными системами, обеспечению ее совместимости;

• решения по режимам функционирования, диагностированию работы системы;

• решения по численности, квалификации и функциям персонала АС, режимам его работы, порядку взаимодействия;

• сведения об обеспечении заданных в техническом задании (ТЗ) потребительских характеристик системы (подсистем), определяющих ее качество;

• состав функций, комплексов задач, реализуемых системой (подсистемой);

• решения по комплексу технических средств, его размещению на объекте;

• решения по составу информации, объему, способам ее организации, видам машинных носителей, входным и выходным документам и сообщениям, последовательности обработки информации и другим компонентам;

• решения по составу программных средств, языкам деятельности, алгоритмам процедур и операций и методам их реализации.

В разделе "Мероприятия по подготовке объекта автоматизации к вводу системы в действие" приводят:

• мероприятия по приведению информации к виду, пригодному для обработки на ЭВМ;

• мероприятия по обучению и проверке квалификации персонала;

• мероприятия по созданию необходимых подразделений и рабочих мест;

• мероприятия по изменению объекта автоматизации;

• другие мероприятия, исходящие из специфических особенностей создаваемых АС.

2. Схема функциональной структуры содержит:

• элементы функциональной структуры АС (подсистемы АС);

автоматизированные функции и/или задачи (комплексы задач);

совокупности действий (операций), выполняемых при реализации автоматизированных функций только техническими средствами (автоматически) или только человеком;

• информационные связи между элементами и с внешней средой с кратким указанием содержания сообщений и/или сигналов, передаваемых по связям, и при необходимости, связи других типов (входимости, подчинения и т. д.);

• детализированные схемы частей функциональной структуры (при необходимости).

3. Описание автоматизируемых функций содержит разделы: исходные данные; цели АС и автоматизированные функции; характеристика функциональной структуры; типовые решения (при наличии).

В разделе "Исходные данные" приводят:

• перечень исходных материалов и документов, использованных при разработке функциональной части проекта АС;

• особенности объекта управления, влияющие на проектные решения по автоматизированным функциям;

• данные о системах управления, взаимосвязанных с разрабатываемой АС, и сведения об информации, которой она должна обмениваться с абонентами и другими системами;

• описание информационной модели объекта вместе с его системой управления.

В разделе "Цели АС и автоматизированные функции" приводят описание автоматизированных функций, направленных на достижение установленных целей.

Раздел "Характеристика функциональной структуры" содержит:

• перечень подсистем АС с указанием функций и/или задач, реализуемых в каждой подсистеме;

• описание процесса выполнения функций (при необходимости);

• необходимые пояснения к разделению автоматизированных функций на действия (операции), выполняемые техническими средствами и человеком;

•требования к временному регламенту и характеристикам процесса реализации автоматизированных функций (точности, надежности и т.п.) и решения задач.

В разделе "Типовые решения" приводят перечень типовых решений с указанием функций, задач, комплексов задач, для выполнения которых они применены.

4. Описание постановки задачи (комплекса задач) содержит разделы: характеристики комплекса задач; выходная информация; входная информация.

В разделе "Характеристики комплекса задач" приводят:

• назначение комплекса задач;

• перечень объектов (технологических объектов управления, подразделений предприятия и т. п.), при управлении которыми решают комплекс задач;

• периодичность и продолжительность решения;

•условия, при которых прекращается решение комплекса задач автоматизированным способом (при необходимости);

• связи данного комплекса задач с другими комплексами (задачами) АС;

• должности лиц и/или наименования подразделений, определяющих условия и временные характеристики конкретного решения задачи (если они не определены общим алгоритмом функционирования системы);

• распределение действий между персоналом и техническими средствами при различных ситуациях решения комплекса задач.

Раздел "Выходная информация" содержит:

• перечень и описание выходных сообщений;

• перечень и описание имеющих самостоятельное смысловое значение структурных единиц информации выходных сообщений (показателей, реквизитов и их совокупностей, сигналов управления) или ссылку на документы, содержащие эти данные.

В описании по каждому выходному сообщению следует указывать:

• идентификатор;

• форму представления сообщения (документ, видеокадр, сигнал управления) и требования к ней;

• периодичность выдачи;

• сроки выдачи и допустимое время задержки решения;

• получателей и назначение выходной информации. В описании по каждой структурной единице информации следует указывать:

• наименование;

• идентификатор выходного сообщения, содержащего структурную единицу информации;

• требования к точности и надежности вычисления (при необходимости).

Раздел "Входная информация" должен содержать:

•перечень и описание входных сообщений (идентификатор, форму представления, сроки и частоту поступления);

•перечень и описание структурных единиц информации входных сообщений или ссылку на документы, содержащие эти данные.

В описании по каждой структурной единице информации входных сообщений следует указывать:

• наименование;

• требуемую точность ее числового значения (при необходимости);

• источник информации (документ, видеокадр, устройство, кодограмма, информационная база на машинных носителях и т. д.);

• идентификатор источника информации.

5. Общее описание системы содержит разделы: назначение системы; описание системы; описание взаимосвязей АС с другими системами; описание подсистем (при необходимости).

В разделе "Назначение системы" указывают:

• вид деятельности, для автоматизации которой предназначена система;

• перечень объектов автоматизации, на которых используется система;

• перечень функций, реализуемых системой. В разделе "Описание системы" указывают:

• структуру системы и назначение ее частей;

• сведения об АС в целом и ее частях, необходимые для обеспечения эксплуатации системы;

• описание функционирования системы и ее частей.

В разделе "Описание взаимосвязей АС с другими системами" указывают:

• перечень систем, с которыми связана данная АС;

• описание связей между системами;

• описание регламента связей;

• описание взаимосвязей АС с подразделениями объекта автоматизации.

В разделе "Описание подсистем" указывают:

• структуру подсистем и назначение ее частей;

• сведения об подсистемах и их частях, необходимые для обеспечения их функционирования;

• описание функционирования подсистем и их частей.

6. Программа и методика испытаний должна содержать перечни конкретных проверок (решаемых задач), которые следует осуществлять при испытаниях для подтверждения выполнения требований ТЗ, со ссылками на соответствующие методики (разделы методик) испытаний. Перечень проверок, подлежащих включению в программу испытаний, включает:

• соответствие системы ТЗ;

• комплектность системы;

• комплектность и качество документации;

• комплектность, достаточность состава и качество программных средств и программной документации;

• количество и квалификация обслуживающего персонала;

• степень выполнения требований функционального назначения системы;

• контролепригодность системы;

• выполнение требований техники безопасности, противопожарной безопасности, промышленной санитарии, эргономики;

• функционирование системы с применением программных средств.

Программа испытаний содержит разделы: объект испытаний; цель испытаний; общие положения; объем испытаний; условия и порядок проведения испытаний; материально-техническое обеспечение испытаний; метрологическое обеспечение испытаний; отчетность.

В разделе "Объект испытаний" указывают: полное наименование системы, обозначение; комплектность испытательной системы.

В разделе "Цель испытаний" указывают конкретные цели и задачи, которые должны быть достигнуты и решены в процессе испытаний.

В разделе "Общие положения" указывают:

• перечень руководящих документов, на основании которых проводят испытания;

• место и продолжительность испытаний;

• организации, участвующие в испытаниях;

• перечень ранее проведенных испытаний;

• перечень предъявляемых на испытания документов, откорректированных по результатам ранее проведенных испытаний.

В разделе "Объем испытаний" указывают:

• перечень этапов испытаний и проверок, а также количественные и качественные характеристики, подлежащие оценке;

• последовательность проведения и режимы испытаний;

• требования по испытаниям программных средств;

• перечень работ, проводимых после завершения испытаний, требования к ним, объем и порядок проведения.

В разделе "Условия и порядок проведения испытаний" указывают:

• условия проведения испытаний;

• условия начала и завершения отдельных этапов испытаний;

• имеющиеся ограничения в условиях проведения испытаний;

• требования к техническому обслуживанию системы;

• меры, обеспечивающие безопасность и безаварийность проведения испытаний;

• порядок взаимодействия организаций, участвующих в испытаниях;

• порядок привлечения экспертов для исследования возможных повреждений в процессе проведения испытаний;

• требования к персоналу, проводящему испытания, и порядок его допуска к испытаниям.

7. Схема организационной структуры содержит:

• состав подразделений (должностных лиц) организации, обеспечивающих функционирование АС либо использующих при принятии решения информацию, полученную от АС;

• основные функции и связи между подразделениями и отдельными должностными лицами, указанными на схеме, и их подчиненность.

8. Описание организационной структуры содержит разделы изменения в организационной структуре управления объектом организация подразделений; реорганизация существующие подразделений управления. В разделе "Изменения в организационной структуре управления объектом" указывают проектные решения по изменению организационной структуры управления объектом и их обоснование; описание изменений во взаимосвязях между подразделениями. В разделе "Организация подразделений" приводят: описание организационной структуры и функций подразделений, создаваемых с целью обеспечения функционирования АС; описание регламента работ; перечень категорий работников и число штатных единиц. В разделе "Реорганизация существующих подразделений управления" указывают описание изменений, обусловленных созданием АС, которые необходимо осуществить в каждом из действующих подразделений управления объектом в организационной структуре, функциях подразделений, регламенте работы, составе персонала подразделений.

9. Методика автоматизированного проектирования содержит разделы: общие положения; постановка задачи; методика проектирования; исходные данные; проектные процедуры; оценка результатов. В разделе "Общие положения" указывают класс объектов, на которые распространена методика, состав специалистов-пользователей, требования и ограничения на условия применения методики. В разделе "Постановка задачи" указывают основные пути и направления решения задачи, требования и ограничения на решение, критерии оценки результатов. В разделе "Методика проектирования" описывают выбранные математические методы, используемые при проектировании, указывают состав и назначение проектных процедур, порядок взаимодействия проектных процедур в процессе выполнения. В разделе "Исходные данные" определяют состав, порядок выбора, представления и формирования массивов используемой информации, перечень обозначений элементов, описывающих предметную область, с указанием их наименований, единиц измерений, диапазона изменения значений, критерии оценки исходных данных, выбирают методы и модели решения. В разделе "Проектные процедуры" указывают по каждой проектной процедуре состав нормативно-справочных входных данных, правила доступа к ним, порядок выполнения процедуры, состав и форму выходных сообщений. В разделе "Оценка результатов" приводят анализ полученного проектного решения на соответствие заданным критериям.

10. Перечень входных сигналов и данных содержит разделы: перечень входных сигналов; перечень входных данных.

В разделе "Перечень входных сигналов" указывают:

• для аналогового сигнала - наименование измеряемой величины, единицы измерения, диапазон изменения, требования точности и периодичности измерения, тип сигнала;

• для дискретного сигнала - наименование, разрядность и периодичность, тип сигнала;

• для сигнала "да-нет" - источник формирования и смысловое значение сигнала.

В разделе "Перечень входных данных" указывают:

• наименование, кодовое обозначение и значность реквизитов входных данных;

• наименования и кодовые обозначения документов или сообщений, содержащих эти данные.

11. Перечень выходных сигналов (документов) содержит разделы: перечень выходных сигналов; перечень выходных документов. Раздел "Перечень выходных сигналов" содержит перечень выходных сигналов с указанием их наименований, назначения, единиц измерения и диапазонов изменения, способа представления, пользователей информации. Раздел "Перечень выходных документов" содержит перечень выходных документов с указанием их наименований, кодовых обозначений, перечня и значности реквизитов, пользователей информации.

12. Описание информационного обеспечения системы содержит разделы: состав информационного обеспечения; организация информационного обеспечения; организация сбора и передачи информации; построение системы классификации и кодирования; организация внутримашинной информационной базы; организация внемашинной информационной базы.

В разделе "Состав информационного обеспечения" указывают наименование и назначение всех баз данных и наборов данных.

В разделе "Организация информационного обеспечения" приводят:

• принципы организации информационного обеспечения системы;

• обоснование выбора носителей данных и принципы распределения информации по типам носителей;

• описание принятых видов и методов контроля в маршрутах обработки данных при создании и функционировании внемашинной и внутримашинной информационных баз с указанием требований, на соответствие которым проводят контроль;

• описание решений, обеспечивающих информационную совместимость АС с другими системами управления по источникам, потребителям информации, по сопряжению применяемых классификаторов (при необходимости), по использованию в АС унифицированных систем документации.

В разделе "Организация сбора и передачи информации" приводят:

• перечень источников и носителей информации с указанием оценки интенсивности и объема потоков информации;

• описание общих требований к организации сбора, передачи, контроля и корректировки информации.

В разделе "Построение системы классификации и кодирования" приводят:

• описание принятых для применения в АС классификаций объектов во вновь разработанных классификаторах и в тех действующих классификаторах, из которых используется часть кода;

• методы кодирования объектов классификации во вновь разработанных классификаторах.

В разделе "Организация внутримашинной информационной базы" приводят:

• описание принципов построения внутримашинной информационной базы, характеристики ее состава и объема;

• описание структуры внутримашинной информационной базы на уровне баз данных с описанием характера взаимосвязей баз данных и указанием функций АС, при реализации которых используют каждую базу данных, характеристики данных, содержащихся в каждой базе данных.

В разделе "Организация внемашинной информационной базы" приводят характеристики состава и объема внемашинной информационной базы, принципы ее построения, в том числе основные положения по организации и обслуживанию фонда нормативно-справочной информации во взаимосвязи с автоматизированными функциями.

13. Описание организации информационной базы содержит описание логической и физической структуры базы данных и состоит из двух частей: описание внутримашинной информационной базы; описание внемашинной информационной базы. Части документа содержат следующие разделы: логическая структура; физическая структура (для внутримашинной информационной базы); организация ведения информационной базы. В разделе "Логическая структура" приводят описание состава данных, их форматов и взаимосвязей между данными. В разделе "Физическая структура" приводят описание избранного варианта расположения данных на конкретных машинных носителях. При описании структуры внутримашинной информационной базы должны быть приведены перечни баз данных и массивов и логические связи между ними. Для массива информации указывают логическую структуру внутри массива или дают ссылку на документ "Описание массива информации". При описании структуры внемашинной информационной базы приводят перечень документов и других информационных сообщений, использование которых предусмотрено в системе, с указанием автоматизируемых функций, при реализации которых формируют или используют данный документ. В разделе "Организация ведения информационной базы" при описании внутримашинной базы приводят последовательность процедур при создании и обслуживании базы с указанием, при необходимости, регламента выполнения процедур и средств защиты базы от разрушения и несанкционированного доступа, а также с указанием связей между массивами баз данных и массивами входной информации. При описании внемашинной информационной базы должна быть приведена последовательность процедур по маршруту движения групп документов до передачи их на ВЦ, а также описан маршрут движения выходных документов.

14. Описание систем классификации и кодирования содержит перечень применяемых в АС зарегистрированных классификаторов всех категорий по каждому классифицируемому объекту, описание метода кодирования, структуры и длины кода, указания о системе классификации и другие сведения по усмотрению разработчика.

15. Описание массива информации содержит:

• наименование массива;

• обозначение массива;

• наименование носителей информации;

• перечень реквизитов в порядке их следования в записях массива с указанием по каждому реквизиту: обозначения алфавита, длины в знаках и диапазона изменения (при необходимости), логических и семантических связей с другими реквизитами данной записи и другими записями массива;

• оценку объема массива;

• другие характеристики массива (при необходимости).

16. Отчет по ГОСТ 7.32 на стадии "Формирование требований к АС" содержит разделы:

• характеристика объекта и результатов его функционирования;

• описание существующей информационной системы;

• описание недостатков существующей информационной системы;

• обоснование необходимости совершенствования информационной системы объекта;

• цели, критерии и ограничения создания АС;

• функции и задачи создаваемой АС;

• выводы и предложения.

В разделе "Характеристика объекта и результатов его функционирования" описывают тенденции развития, требования к объему, номенклатуре и качеству результатов функционирования, а также характер взаимодействия объекта с внешней средой. Раздел "Описание существующей информационной системы" содержит описание функциональной и информационной структуры системы, качественных и количественных характеристик, раскрывающих взаимодействие ее компонентов в процессе функционирования. В разделе "Описание недостатков существующей информационной системы" приводят результаты диагностического анализа, при котором оценивают качество функционирования и организационно-технологический уровень системы, выявляют недостатки в организации и технологии функционирования информационных процессов и определяют степень их влияния на качество функционирования системы. В разделе "Обоснование необходимости совершенствования информационной системы объекта" при анализе соответствия показателей функционирования объекта предъявляемым требованиям оценивают степень соответствия прогнозируемых показателей требуемым, а также выявляют необходимость совершенствования информационной системы путем создания АС. Раздел "Цели, критерии и ограничения создания АС" содержит: формулировку производственно-хозяйственных, научно- технических и экономических целей и критериев создания АС; характеристику ограничений по созданию АС.

Раздел "Функции и задачи создаваемой АС" содержит:

• обоснование выбора перечня автоматизированных функций и комплексов задач с указанием очередности внедрения;

• требования к характеристикам реализации функций и задач в соответствии с действующими нормативно-техническими документами, определяющими общие технические требования к АС конкретного вида;

• дополнительные требования к АС в целом и ее частям, учитывающие специфику создаваемой АС.

Раздел "Ожидаемые технико-экономические результаты создания АС" содержит:

• перечень основных источников экономической эффективности получаемых в результате создания АС (в том числе – экономия производственных ресурсов, улучшение качества продукции, повышение производительности труда и т. д.) и оценку ожидаемых изменений основных технико-экономических и социальных показателей производственно-хозяйственной деятельности объекта (например, показателей по номенклатуре и объемам производства, себестоимости продукции, рентабельности, отчислениям в фонд экономического стимулирования, уровню социального развития);

• оценку ожидаемых затрат на создание и эксплуатацию АС с распределением их по очередям создания АС и по годам;

• ожидаемые обобщающие показатели экономической эффективности АС.

Раздел "Выводы и предложения" рекомендуется разделять на подразделы: выводы о производственно-хозяйственной необходимости и технико-экономической целесообразности создания АС; предложения по совершенствованию организации и технологии процесса деятельности; рекомендации по созданию АС. одраздел "Выводы о производственно-хозяйственной необходимости и технико-экономической целесообразности создания АС" содержит: сопоставление ожидаемых результатов создания АС с заданными целями и критериями создания АС (по целевым показателям и нормативным требованиям); принципиальное решение вопроса о создании АС (положительное или отрицательное). Подраздел "Предложения по совершенствованию организации и технологии процесса деятельности" содержит предложения по совершенствованию: производственно-хозяйственной деятельности; организационной и функциональной структур системы, методов деятельности, видов обеспечения АС. Подраздел "Рекомендации по созданию АС" содержит рекомендации:

• по виду создаваемой АС, ее совместимости с другими АС и неавтоматизируемой частью соответствующей системы;

• по организационной и функциональной структуре создаваемой АС;

• по составу и характеристикам подсистем и видов обеспечения АС;

• по организации использования имеющихся и приобретению дополнительных средств вычислительной техники;

• по рациональной организации разработки и внедрения АС;

• по определению основных и дополнительных, внешних и внутренних источников и видов объемов финансирования и материального обеспечения разработок АС;

• по обеспечению производственных условий создания АС;

• другие рекомендации по созданию АС.

17. Отчет по ГОСТ 7.32 на стадии "Разработка концепции АС" содержит:

• описание результатов изучения объекта автоматизации;

• описание и оценку преимуществ и недостатков разработанных альтернативных вариантов концепции создания АС;

• сопоставительный анализ требований пользователя к АС и вариантов концепции АС на предмет удовлетворения требованиям пользователя;

• обоснование выбора оптимального варианта концепции и описание предлагаемой АС;

• ожидаемые результаты и эффективность реализации выбранного варианта концепции АС;

• ориентировочный план реализации выбранного варианта концепции АС;

• необходимые затраты ресурсов на разработку, ввод в действие и обеспечение функционирования;

• требования, гарантирующие качество АС;

• условия приемки системы.

ПЗ.3. ГОСТ 234.003-90. Автоматизированные системы. Термины и определения

Настоящий стандарт устанавливает термины и определения основных понятий в области автоматизированных систем (АС) и распространяется на АС, используемые в различных сферах деятельности (управление, исследования, проектирование и т.п., включая их сочетание), содержанием которых является переработка информации.

Автоматизированная система. Система, состоящая из персонала и комплекса средств автоматизации его деятельности, реализующая информационную технологию выполнения установленных функций.

Интегрированная АС. Совокупность двух или более взаимоувязанных АС, в которой функционирование одной из них зависит от результатов функционирования другой (других) так, что эту совокупность можно рассматривать как единую АС.

Функция АС. Совокупность действий АС, направленная на достижение определенной цели.

Алгоритм функционирования АС. Алгоритм, задающий условия и последовательность действий компонентов автоматизированной системы при выполнении ею своих функций.

Пользователь АС. Лицо, участвующее в функционировании АС или использующее результаты ее функционирования.

Организационное обеспечение АС. Совокупность документов, устанавливающих организационную структуру, права и обязанности пользователей и эксплуатационного персонала АС в условиях функционирования, проверки и обеспечения работоспособности АС.

Методическое обеспечение АС. Совокупность документов, описывающих технологию функционирования АС, методы выбора и применения пользователями технологических приемов для получения конкретных результатов при функционировании АС.

Техническое обеспечение АС. Совокупность всех технических средств, используемых при функционировании АС.

Математическое обеспечение АС. Совокупность математических методов, моделей и алгоритмов, примененных в АС.

Программное обеспечение АС. Совокупность программ на носителях данных и программных документов, предназначенная для отладки, функционирования и проверки работоспособности АС.

Информационное обеспечение АС. Совокупность форм документов, классификаторов, нормативной базы и реализованных решений по объемам, размещению и формам существования информации, применяемой в АС при ее функционировании.

Лингвистическое обеспечение АС. Совокупность средств и правил для формализации естественного языка, используемых при общении и пользователей и эксплуатационного персонала АС с комплексом средств автоматизации при функционировании АС.

Правовое обеспечение АС. Совокупность правовых норм, регламентирующих правовые отношения при функционировании АС и юридический статус результатов ее функционирования.

Эргономическое обеспечение АС. Совокупность реализованных решений в АС по согласованию психологических, психофизиологических, антропометрических, физиологических характеристик и возможностей пользователей АС с техническими характеристиками комплекса средств автоматизации АС и параметрами рабочей среды на рабочих местах персонала АС.

Компонент АС – часть АС, выделенная по определенному признаку или совокупности признаков и рассматриваемая как единое целое.

Информационная база АС. Совокупность упорядоченной информации, используемой при функционировании АС.

Внемашинная информационная база АС. Часть информационной базы АС, представляющая собой совокупность документов, предназначенных для непосредственного восприятия человеком без применения средств вычислительной техники.

Машинная информационная база АС. Часть информационной базы АС, представляющая собой совокупность используемой в АС информации на носителях данных.

Автоматизированное рабочее место (АРМ). Программно-технический комплекс АС, предназначенный для автоматизации деятельности определенного вида.

Эффективность АС. Свойство АС, характеризуемое степенью достижения целей, поставленных при ее создании.

Совместимость АС. Комплексное свойство двух или более АС, характеризуемое их способностью взаимодействовать при функционировании (включающее техническую, программную, информационную, организационную и лингвистическую совместимость).

Адаптивность АС. Способность АС изменяться для сохранения своих эксплуатационных показателей в заданных пределах при изменениях внешней среды.

Надежность АС. Комплексное свойство АС сохранять во времени в установленных пределах значения всех параметров, характеризующих способность АС выполнять свои функции в заданных режимах и условиях эксплуатации.

Живучесть АС. Свойство АС, характеризуемое способностью выполнять установленный объем функций в условиях воздействий внешней среды и отказов компонентов системы в заданных пределах.

Жизненный цикл АС. Совокупность взаимосвязанных процессов создания и последовательного изменения состояния АС от формирования исходных требований к ней до окончания эксплуатации и утилизации комплекса средств автоматизации АС.

Сопровождение АС. Деятельность по оказанию услуг, необходимых для обеспечения устойчивого функционирования или развития АС.

Диалоговый режим выполнения функции АС. Режим выполнения функции АС, при котором человек управляет решением задачи, изменяя ее условия и/или порядок функционирования АС на основе оценки информации, представляемой ему техническими средствами АС.

Техническое задание на АС. Документ, оформленный в установленном порядке и определяющий цели создания АС, требования к АС и основные исходные данные, необходимые для ее разработки, а также план-график создания АС.

Технический проект АС. Комплект проектных документов на АС, разрабатываемый на стадии "Технический проект", утвержденный в установленном порядке, содержащий основные проектные решения по

системе в целом, ее функциям и всем видам обеспечения АС и достаточный для разработки рабочей документации на АС.

Рабочая документация на АС. Комплект проектных документов на АС, разрабатываемый на стадии "Рабочая документация", содержащий взаимоувязанные решения по системе в целом, ее функциям, всем видам обеспечения АС, достаточные для комплектации, монтажа, наладки и функционирования АС, ее проверки и обеспечения работоспособности.

Эксплуатационная документация на АС. Часть рабочей документации на АС, предназначенная для использования при эксплуатации системы, определяющая правила действия персонала и пользователей системы при ее функционировании, проверке и обеспечении ее работоспособности.

Технорабочий проект АС. Комплект проектных документов АС, утвержденный в установленном порядке и содержащий решения в объеме технического проекта и рабочей документации на АС.

Входная информация АС. Информация, поступающая в АС в виде документов, сообщений, данных, сигналов, необходимая для выполнения функций АС.

Выходная информация АС. Информация, получаемая в результате выполнения функций АС и выдаваемая на объект ее деятельности, пользователю или в другие системы.

Нормативно-справочная информация АС. Информация, заимствованная из нормативных документов и справочников и используемая при функционировании АС.


1С-Предприятие. Документация | Конфигурирование и администрирование. Введение

Введение

  • Структура Руководства_
  • Что вы должны знать_
  • Принятые обозначения

Настоящая книга является руководством по использованию Конфигуратора системы 1С:Предприятие.

Структура Руководства

Настоящее Руководство разделено на 2 части, каждая из которых оформлена в виде отдельной книги. Материал Руководства разделен на главы, каждая глава рассказывает об одном из режимов работы Конфигуратора.

Первая часть Руководства содержит описание общей концепции системы 1С:Предприятие и рассказывает о приемах работы с базовыми объектами системы, о создании индивидуальных пользовательских интерфейсов и наборов прав пользователей.

В главе 1 излагается концепция системы 1С:Предприятис: заложенные в нее принципы, общая схема работы, технологические компоненты и другое.

Глава 2 посвящена основным понятиям системы 1С:Предприятие, которые используются в настоящем Руководстве.

В главе 3 дается расшифровка ключевых понятий системы 1С:Предприятие — метаданные и конфигурация, рассказывается об основных приемах создания и редактирования объектов метаданных.

Глава 4 посвящена работе с конфигурацией в целом: редактирование свойств конфигурации, копирование объектов метаданных, сохранение конфигурации, объединение конфигураций, вспомогательные режимы работы.

Главы с 5 по 18 подробно рассказывают о работе с основными видами объектов метаданных, используемых в системе 1С:Предприятие. Глава 11 посвящена общим принципам организации ведения бухгалтерского учета в системе 1С:Предприятие.

Глава 19 дает представление о специализированном редакторе форм системы 1С:Предприятие.

Главы 20-22 рассказывают о создании индивидуальных пользовательских интерфейсов и об использовании специализированных редакторов; редакторе меню и редакторе панелей инструментов.

Глава 23 рассказывает о редактировании наборов пользовательских прав.

Вторая часть Руководства содержит описание принципов администрирования системы 1С:Предприятие, технологических компонент Конфигуратора и служебных режимов работы.

Главы с 24 по 26 рассказывают об использовании компонент специализированного редактора форм системы 1С:Предприятие: редактора диалогов, текстового редактора и редактора таблиц.

Глава 27 посвящена возможностям администрирования в системе 1С:Предприятие. Рассказывается о порядке создания и ведения списка пользователей системы 1С:Предприятие, о присвоении пользователям наборов пользовательских прав и назначении индивидуальных пользовательских интерфейсов.

В главе 28 рассматривается порядок сохранения резервной копии данных и восстановления данных в случае их повреждения.

Глава 29 рассказывает о служебных режимах Конфигуратора системы 1С:Предприятие: настройка параметров Конфигуратора, работа с Синтакс-Помощником, настройка шаблонов, использование встроенного калькулятора и календаря.

Глава 30 рассматривает вопросы перехода к системе 1С:Предприятие с предыдущих версий экономических программ фирмы «1С»: «1С:Бухгалтерия 6.0» и «1С:Зарплата».

Глава 31 посвящена работе с Отладчиком, облегчающим проектирование программных модулей системы 1С:Предприятие.

В Приложении 1 приводится детальное описание процесса реструктуризации информационной базы.

Что вы должны знать

Характер изложения данного Руководства предполагает, что вы знакомы с операционной системой Microsoft Windows 95 (Microsoft Windows 98, Microsoft Windows NT) и владеете базовыми навыками работы в ней.

Вам должны быть знакомы следующие понятия и навыки:

· использование меню «Пуск» («Start») для вызова программ;

· приемы работы с окнами;

· работа с меню;

· использование управляющих элементов диалогов;

· стандартные диалоги;

· понятие Буфера Обмена MS Windows и приемы работы с ним;

· настройка операционной системы Microsoft Windows 95, (Microsoft Windows 98, Microsoft Windows NT) с помощью Панели Управления.

Если вы недостаточно хорошо владеете перечисленными выше понятиями и навыками, рекомендуем обратиться к документации по операционной системе.

Принятые обозначения

Для лучшего понимания излагаемого материала в настоящем Руководстве приняты некоторые общие приемы выделения отдельных элементов текста. Соглашение о таких приемах приведено ниже.

Обозначения клавиш. Клавиши, такие как Enter, Esc, Del и подобные, будут обозначаться надписями на самих клавишах, без кавычек.

Для ссылок на клавиши управления курсором (клавиши со стрелками) будет использоваться фраза «клавиши управления курсором», когда необходимо сослаться сразу на все эти клавиши. Если необходимо упомянуть эти клавиши по отдельности, будут использоваться выражения «Стрелка Вверх», «Стрелка Вниз», «Стрелка Вправо» и «Стрелка Влево» (также без кавычек).

Комбинации клавиш. Когда для выполнения какой-либо команды необходимо нажать комбинацию из двух клавиш, она дается в виде Ctrl+FЗ. Такая запись означает, что необходимо сначала нажать первую клавишу (в нашем примере — Ctrl), затем, не отпуская ее, нажать вторую клавишу комбинации (в нашем примере — F3) для выполнения команды. Отпускать клавиши следует в обратном порядке.

Обозначения кнопок. Наименования кнопок в диалогах будут даваться их названиями в кавычках, например, «ОК» «Отмена» «Удалить» и так далее.

Ключевые слова встроенного языка. При написании ключевых слов встроенного языка системы 1С:Предприятие используются вперемешку прописные и строчные буквы, например: РабочаяДата


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 1

Глава 1.
Концепция системы 1С:Предприятие

  • Краткое описание понятий (объектов) системы
    • Базовые объекты
    • Компонента «Бухгалтерский учет»
    • Компонента «Оперативный учет»
    • Компонента «Расчет»
  • Типы данных, используемые системой
  • Технологические средства конфигурирования и администрирования системы 1С:Предприятие

1С:Предприятие является универсальной системой автоматизации деятельности предприятия. За счет своей универсальности система 1С:Предприятие может быть использована для автоматизации самых разных участков экономической деятельности предприятия: учета товарных и материальных средств, взаиморасчетов с контрагентами, расчета заработной платы, расчета амортизации основных средств, бухгалтерского учета по любым разделам и т. д.

Конфигурируемость

Основной особенностью системы 1С:Предприятия является ее конфигурируемость. Собственно система 1С:Предприятие представляет собой совокупность механизмов, предназначенных для манипулирования различными типами объектов предметной области. Конкретный набор объектов, структуры информационных массивов, алгоритмы обработки информации определяет конкретная конфигурация. Вместе с конфигурацией система 1С:Предприятие выступает в качестве уже готового к использованию программного продукта, ориентированного на определенные типы предприятий и классы решаемых задач.

Конфигурация создается штатными средствами системы. Конфигурация обычно поставляется фирмой «1С» в качестве типовой для конкретной области применения, но может быть изменена, дополнена пользователем системы, а также разработана заново.

Компонентная структура

Система 1С:Предприятие имеет компонентную структуру. Часть возможностей, предоставляемых системой для решения задач автоматизации, являются базовыми, то есть поддерживаются в любом варианте поставки системы. Это, прежде всего, механизмы поддержки справочников и документов. Другие возможности реализуются компонентами системы: например, ведение списка бухгалтерских счетов. Таким образом, состав установленный компонент определяет функциональные возможности системы.

Всего существуют три основных компоненты: «Бухгалтерский учет», «Оперативный учет», «Расчет». Каждая компонента расширяет возможности системы своим механизмом обработки информации. Эти механизмы нельзя однозначно сопоставить с конкретными задачами автоматизации предметной области, однако, они имеют достаточно четкую направленность, которая определяет выбор состава необходимых компонент, для создания конкретной конфигурации.

Компонента «Бухгалтерский учет» реализует отражение хозяйственных операций, происходящих на предприятии в бухгалтерском учете. Она манипулирует такими понятиями, как бухгалтерские счета, операции и проводки. Возможности компоненты «Бухгалтерский учет» позволяют вести учет параллельно в нескольких планах счетов, вести многомерный и многоуровневый аналитический учет, количественный и валютный учет.

Компонента «Бухгалтерский учет» предоставляет возможность ведения бухгалтерского учета для нескольких предприятий в одной информационной базе.

Компонента «Оперативный учет» предназначена для автоматизации оперативного учета наличия и движения средств. Возможности компоненты «Оперативный учет» позволяют регистрировать движения и получать информацию о движениях и остатках товарных, материальных, денежных и других средств предприятия в реальном времени в самых различных разрезах. Компонента «Оперативный учет» поддерживает механизм регистров, который и обеспечивает запись движений и получение остатков в различных разрезах. Использование этого механизма позволяет автоматизировать учет взаиморасчетов с клиентами, учет складских запасов товаров, и многое другое. Одна из главных областей применения данной компоненты — автоматизация учета складских и торговых операций.

Компонента «Расчет» предназначена для автоматизации сложных периодических расчетов. Возможности этой компоненты позволяют выполнять расчеты различной сложности, в том числе — с пересчетом результатов «задним числом», и вести архив расчетов за прошедшие периоды. Эти возможности реализуются журналами расчетов, поддерживаемыми данной компонентой. Одна из основных областей применения компоненты — расчет заработной платы.

Функционирование системы

Функционирование системы делится на два процесса — конфигурирование (описание модели предметной области средствами системы) и исполнение (обработку данных предметной области).

Результатом конфигурирования является конфигурация, которая представляет собой модель предметной области.

На этапе конфигурирования система оперирует такими универсальными понятиями (объектами), как «Документ», «Журнал документов», «Справочник», «Реквизит», «Регистр» и другие. Совокупность этих понятий и определяет концепцию системы.

На уровне системы определены сами понятия и стандартные операции но их обработке. Средства конфигурирования позволяют описать структуры информации, входящей в эти объекты, и алгоритмы, описывающие специфику их обработки, для отражения различных особенностей учета.

При конфигурировании максимально используются визуальные средства настройки, а для описания специфических алгоритмов используются языковые (программные) средства.

В процессе конфигурирования формируется структура информационной базы, алгоритмы обработки, формы диалогов и выходных документов. Информационная структура проектируется на уровне предусмотренных в системе типов обрабатываемых объектов предметной области (константы, справочники, документы, регистры, перечисления, журналы расчетов, бухгалтерские счета, операции, проводки и др.).

В процессе исполнения система уже оперирует конкретными понятиями, описанными на этапе конфигурирования (справочниками товаров и организаций, счетами, накладными и т. д.).

При работе пользователя в режиме исполнения конфигурации обработка информации выполняется как штатными средствами системы, так и с использованием алгоритмов, созданных на этапе конфигурирования.

Краткое описание понятий (объектов) системы

В этом параграфе перечислены основные типы объектов, поддерживаемых системой 1С:Предприятие. Как уже отмечалась, ряд объектов системы входит в набор базовых средств, которые доступны при любом наборе компонент. Кроме того, каждая компонента привносит в систему возможность работы со своими объектами, которые реализуют свойственные ей механизмы.

Базовые объекты

Константы

Для работы с постоянной и условно постоянной информацией в системе используются объекты типа «Константа». Наиболее часто используют такие константы, как «Наименование предприятия», «Ставка НДС», «ФИО главного бухгалтера» и др.

В системе может быть описано неограниченное количество констант. На этапе конфигурирования задается список констант и описываются их характеристики. Константы могут иметь признак периодичности для отслеживания истории изменения значения константы.

Справочники

Для работы с постоянной и условно постоянной информацией с некоторым множеством значений в системе используются объекты типа «Справочник».

Обычно справочниками являются списки материалов, товаров, организаций, валют, сотрудников и др.

Механизм поддержки справочников позволяет спроектировать и поддерживать самые различные справочники. На этапе конфигурирования можно описать, какими свойствами обладает каждый конкретный справочник. К настраиваемым свойствам относятся, например, длина и тип кода, количество уровней, поддержка уникальности кодов, набор реквизитов справочника.

Помимо кода и наименования, механизм работы со справочниками позволяет создавать набор реквизитов для хранения любой дополнительной информации об элементе справочника. Для реквизитов справочника возможно указание типа «Периодический» для отслеживания истории изменения значений реквизитов.

Для каждого справочника может быть задано несколько форм просмотра и редактирования.

Для описания соподчиненных сущностей можно использовать не многоуровневость справочника, а подчиненность справочников. В этом случае в подчиненном справочнике каждый объект относится к определенному объекту справочника-хозяина.

В конкретной конфигурации создается необходимое количество справочников, для хранения данных об объектах, используемых при автоматизации данной предметной области. Например, это могут быть справочники «Организации», «Товары», «Сотрудники» и т. д.

Перечисления

Перечисления используются в системе 1С:Предприятие для описания постоянных наборов значений, не изменяемых для конкретной конфигурации.

На этапе конфигурирования можно описать практически неограниченное количество видов перечислений. В отличие от справочника, значения перечислений задаются на этапе конфигурирования, и не могут быть изменены на этапе исполнения.

Типичными примерами перечислений являются виды оплаты (наличная, безналичная, бартер), статус клиента (постоянный, разовый).

Одним из главных особенностей перечислений является то, что конфигурация сама использует существующие значения перечислений. Например, алгоритм конфигурации может быть ориентирован на то, что каждый клиент имеет один из двух статусов — либо «постоянный», либо «разовый», в этом случае указание статуса клиента выполняется путем выбора одного из значений перечисления. Для справочников конфигурация обычно не использует конкретных значений (например, наименования товаров или организаций).

Документы

Документы предназначены для хранения основной информации о всех событиях, происходящих на предприятии, и, разумеется, имеющих смысл с точки зрения экономики. При помощи документов отражаются и платежи с расчетного счета, и операции но кассе, и кадровые перемещения, и движения по складу, и прочие подобные события.

В процессе конфигурирования настраивается произвольное количество видов документов. Типичными примерами видов документов являются такие документы, как «Платежное поручение», «Счет», «Приходная накладная», «Расходная накладная», «Накладная на внутреннее перемещение», «Приходный кассовый ордер» и так далее. Каждый вид документа предназначен для отражения своего типа событий. Это определяет его структуру и свойства, которые описываются в конфигурации.

Каждый вид документа может иметь неограниченное количество реквизитов в шапке и в многострочной части. Для документа создается форма ввода — экранный диалог. При настройке для документа задаются также общие характеристики: длина номера документа, условия поддержки уникальности номеров и другие. Все документы характеризуются номером, датой и временем.

Система автоматически поддерживает журналы перекрестных ссылок но документам.

Документы играют центральную роль для основных механизмов, реализуемых компонентами системы. Все документы (вне зависимости от вида) образуют единую последовательность. Фактически, эта последовательность отражает последовательность событий — так, как они происходили реально. Внутри даты последовательность документов определяется их временем, при этом время документа является не столько средством отражения реального (астрономического) времени ввода документа, сколько средством, позволяющим четко упорядочить документы внутри одной даты. Данные, вводимые в документ (реквизиты документа), обычно содержат информацию о происшедшем событии: например, в накладной — информацию о том, с какого склада, каких товаров и сколько отгружено; в приказе о приеме на работу — информацию о сотруднике, оклад, другие сведения. Кроме собственно записи, для документа весьма важным свойством является его проведение. При проведении документ может отразить зафиксированное им событие в механизмах, реализуемых компонентами. Например, если установлена компонента «Бухгалтерский учет», документ может записать бухгалтерскую операцию, отразив в виде проводок в бухгалтерском учете информацию, содержащуюся в документе.

Журналы документов

Журналы документов предназначены для просмотра документов. Каждый вид документа может быть отнесен к определенному журналу. Сам журнал документов не добавляет новых данных в систему, а служит только как средство просмотра списка документов одного или нескольких видов.

Например, может быть создан журнал «Складские документы», который будет содержать все приходные накладные и накладные на внутреннее перемещение.

Для журнала могут быть определены графы журнала, для удобства просмотра реквизитов различных видов документов, отнесенных к данному журналу.

Для журнала может быть описано несколько форм его визуального представления.

Отчеты и обработки

Для описания отчетов и процедур произвольной обработки на этапе конфигурирования может быть создано неограниченное количество форм отчетов. Каждая форма имеет свой диалог настройки, который позволяет определить набор параметров формирования отчетов. Например, для выдачи складской справки — выбрать конкретный склад.

Алгоритм получения отчета описывается с использованием встроенного языка, при этом может быть задействован встроенный язык запросов. Для вывода отчетов может быть использован как текстовый формат, так и специализированный табличный формат отчетов.

Система также поддерживает возможность разработки внешних отчетов (обработок), хранящихся не в самой конфигурации, а в отдельных файлах.

Компонента «Бухгалтерский учет»

Бухгалтерские счета

Бухгалтерские счета (далее «Счета») предназначены для хранения планов счетов бухгалтерского учета, то есть объектов синтетического учета средств предприятия. Суть данных объектов вполне соответствует общепринятому пониманию бухгалтерских счетов. В компоненте «Бухгалтерский учет» свойства бухгалтерских счетов могут гибко настраиваться в зависимости от принятой системы учета в конкретной стране и на конкретном типе предприятий.

Прежде всего, может поддерживаться одновременно несколько планов счетов, каждый из которых может иметь специфические свойства. Для плана счетов задается длина кода счета и количество уровней субсчетов, а также количество знаков в субсчете каждого уровня. Для счетов настраиваются дополнительные реквизиты, а также формы просмотра списка и редактирования счетов.

Бухгалтерские счета являются основой системы бухгалтерских итогов компоненты «Бухгалтерский учет». При их настройке задаются свойства дополнительных разрезов учета - валютного, аналитического и количественного.

Компонента «Бухгалтерский учет» поддерживает многомерный и многоуровневый аналитический учет.

Кроме того, настраивается возможность использования разделителя учета. Разделитель учета позволяет вести учет независимо по нескольким организациям в одной информационной базе.

Важной особенностью бухгалтерских счетов является возможность создания объектов как в конфигурации, так и в самой информационной базе. Введение конкретных счетов в конфигурацию целесообразно в том случае, если поведение самой конфигурации требует обязательного наличия самих счетов или конкретных свойств этих счетов.

Виды субконто

Виды субконто являются специальными объектами, поддерживаемыми компонентой «Бухгалтерский учет», для ведения аналитического учета по счетам бухгалтерского учета. Термин субконто используется для обозначения набора значений, используемых для ведения аналитического учета по счету. В качестве субконто могут выступать основные средства, организации, товары и другие наборы объектов, как реально существующих, так и абстрактных. Например, субконто могут быть виды бюджетов — федеральный, территориальный, местный.

Вид субконто идентифицирует совокупность объектов конкретного типа, которые в дальнейшем могут использоваться для ведения аналитического учета. Сам по себе вид субконто не описывает каких либо хранимых данных в системе 1С:Предприятие. При его настройке указывается один из существующих типов данных, который будет определять набор значений субконто этого вида - обычно это справочник или перечисление. Например, вид субконто «Товары» будет иметь тип «Справочник.Номенклатура».

Созданные виды субконто указываются для настройки аналитического учета по счетам. Для каждого счета допускается использование до 5 видов субконто, что позволяет вести многомерный аналитический учет. Ведение многоуровневого аналитического учета реализуется путем использования многоуровневых справочников.

Операции и проводки

Отражение движений средств в бухгалтерском учете записывается в виде операций и проводок. Операция является полным отражением в бухгалтерском учете хозяйственной операции, происшедшей на предприятии.

Операция может содержать несколько проводок. Проводки не существуют отдельно от операций. Каждая проводка принадлежит одной и только одной операции. Операция, в свою очередь, всегда принадлежит документу, причем у документа может быть только одна операция. Сама операция может записываться при записи документа или в момент проведения, но проводки по документу формируются только при его проведении. Кроме того, для обеспечения ручного ввода операций существует специальный вид документа «Операция», который не имеет собственных данных, а используется только в качестве «носителя» операции, введенной вручную. Порядок отражения проводок в бухгалтерском учете определяется последовательностью документов, которым принадлежат операции.

В конфигурации описываются различные свойства операций и проводок. И для операции, и для проводок могут быть заданы дополнительные реквизиты. Настраиваются формы просмотра журнала операций, журнала проводок, форма ввода самой операции.

Компонента «Оперативный учет»

Регистры

Для анализа остатков и движений средств в системе 1С:Предприятие используются регистры.

Регистр представляет собой многомерную систему хранения остатков или оборотов. Каждый регистр на этапе конфигурации описывается набором измерений и ресурсов.

Под измерением понимается набор значений, которые детализируют движения средств, и в разрезе которых хранятся остатки; под ресурсом — числовая величина, которая является количественным или суммовым значением, отражающим размер движения (остатка). Например, для складского запаса товаров может быть создан регистр «Товарный запас» с двумя измерениями — «Товар» и «Склад» и одним ресурсом — «Количество». В этом случае система будет поддерживать остатки товаров в разрезе складов в количественном выражении.

Изменение остатков и оборотов по регистрам производится движениями регистров. Движения регистров записываются документами в момент проведения и имеют четко определенное место на оси времени, определяемое датой и временем документа. Каждый документ может порождать неограниченное количество движений по регистрам любых видов. Движения, записанные документом, принадлежат ему и будут автоматически удаляться или изменяться при удалении или перепроведении документа.

Для работы в реальном времени система поддерживает точку актуальности итогов. Она может быть установлена принудительно, но ее могут изменять проводимые в потоке документы.

Проводимые в потоке документы получают мгновенный доступ к актуальным итогам по всем регистрам, например, для контроля складских остатков. Хотя, разумеется, существует возможность проведения документа задним числом, с одной стороны, и получения итогов на любой момент — с другой.

Итоги по регистрам могут быть построены с любым набором разрезов исходя из измерений регистра. Так, в приведенном примере можно построить отчет о движении по товарам в разрезе складов или по складам в разрезе товаров.

Компонента «Расчет»

Журналы расчетов

Журнал расчетов предназначен для хранения данных сложных периодических расчетов, поддерживаемых компонентой «Расчет», и их предыстории. Основным свойством журнала расчетов является его принадлежность тому или иному справочнику системы. Такой справочник называется справочником объектов расчета. Фактически, справочник определяет вид объектов, по которым ведется расчет. Например, это может быть: журнал расчетов зарплаты, причем списком объектов расчета будет выступать справочник сотрудников; журнал расчетов дивидендов, тогда списком объектов расчета будет выступать справочник акционеров; журнал расчетов амортизации — списком объектов расчета будет выступать справочник основных средств. В процессе конфигурирования настраивается неограниченное число журналов расчета, каждый из которых будет решать ту или иную задачу предметной области.

Непременными атрибутами каждой строки журнала расчетов являются: объект, для которого данный расчет проведен; вид расчета (см. ниже), по которому данный расчет проведен; дата начала и дата окончания действия данного расчета и результат расчета.

Для одного справочника могут быть созданы несколько журналов расчетов, каждый из которых будет содержать данные определенной предметной области. Например, в том случае, если предприятие — акционерное общество закрытого типа, справочник сотрудников может выступать списком объектов расчета для журнала расчетов заработной платы и для журнала расчетов дивидендов акционеров.

Виды расчетов

Для описания алгоритмов, по которым выполняются те или иные вычисления, служит понятие виды расчетов. На этапе конфигурирования можно описать неограниченное количество видов расчетов. В отличие от справочников, журналов расчета и документов, за понятием «вид расчета» не лежит реальных данных — это не более чем алгоритм вычисления, оперирующий данными журналов расчета, документов и справочников.

Алгоритм вида расчета описывается с помощью встроенного языка. Типичными примерами видов расчетов являются «начисление по окладу», «подоходный налог», «амортизация».

Группы расчетов

Для того чтобы при тех или иных расчетах можно было оперировать не только результатами расчетов по конкретным видам, но и результатами по нескольким видам расчетов, объединенных по определенному принципу, служит понятие групп расчетов. В системе может быть определено неограниченное число групп расчетов, примерами которых могут служить: «начисления, облагаемые налогом», «входящие в расчет средней зарплаты», «облагаемые исполнительным листом» и другие.

Календари

Для ведения рабочего графика предприятия или сторонних организаций, для учета рабочего времени сотрудников разных категорий в системе 1 (^Предприятие служат календари. При конфигурировании можно определить неограниченное число календарей, описав правила их заполнения. Примерами календарей могут служить: календарь рабочего графика предприятия (где отмечены выходные и рабочие дни); календарь работы банка, через который осуществляются взаиморасчеты; календарь работы служащих; календарь, в котором проставлена продолжительность рабочих дней для рабочих.

Заметим, что объект «Календарь» компоненты «Расчет» не следует путать с календарем, вызываемым в системе 1С:Предприятия из меню «Сервис» и при редактировании полей типа «дата». Это календарь является аналогом «карманного» календаря и служит для быстрого поиска и выбора нужной даты. В свою очередь, календарь компоненты «Расчет» является специальным объектом для хранения данных о структуре периода расчетов.

Типы данных, используемые системой

Многие значения, обрабатываемые системой (константы, реквизиты справочников, реквизиты документов, измерения регистров, реквизиты форм отчетов, реквизиты журналов расчетов, бухгалтерских счетов, операций, проводок и другие), описываются одним из доступных типов данных.

К базовым типам данных, поддерживаемых системой, относятся «число», «строка» и «дата». Однако, кроме базовых типов, заданные в конфигурации документы, справочники, перечисления, бухгалтерские счета, виды расчетов, календари также образуют тины данных. Например, после введения справочника «Склады» в системе появляется тип данных «Склады», что дает возможность ввести в документ реквизит такого типа. Значение такого реквизита будет являться не номером склада, а собственно ссылкой на определенный элемент справочника «Склады».

Кроме того, все справочники образуют общий тин данных — справочник неопределенного вида. Все документы также образуют тип данных — документ неопределенного вида. Все планы счетов образуют тип данных «счет неопределенного вида».

Технологические средства конфигурирования и администрирования системы 1С:Предприятие

Для описания специфических алгоритмов обработки информации и создания интерфейса, ориентированного на удобное представление описанных в конфигурации данных, в системе 1С:Предприятие используется несколько технологических механизмов.

Встроенный программный язык. Необходимость наличия встроенного языка определена концепцией настраиваемости системы.

Синтаксис встроенного языка вполне отвечает стандартам высокоуровневых языков.

Язык является предметно-ориентированным. Он поддерживает специализированные типы данных предметной области, определяемые конфигурацией системы. Работа с этими типами данных в языке организована с использованием объектной техники. Язык ориентирован на пользователей различной квалификации. В частности, его отличает мягкая типизация данных (обеспечивающая быстрое написание программных модулей) и жесткий контроль синтаксических конструкций, уменьшающий вероятность ошибок.

Так как система сочетает в себе визуальные и языковые средства конфигурирования, использование встроенного языка в системе имеет событийно-зависимую ориентацию, то есть языковые модули используются в конкретных местах для отработки отдельных алгоритмов, настраиваемых в процессе конфигурации. Так, например, для документа можно описать алгоритм автоматического заполнения реквизитов при вводе нового документа. Данная процедура будет вызвана системой в нужный момент.

Механизм запросов. Для получения произвольных отчетов сложной структуры в системе предусмотрен предметно-ориентированный механизм запросов. Данное средство опирается на существующую условно-переменную структуру информационной базы системы, что позволяет сравнительно просто описывать достаточно сложные запросы.

Встроенный текстовый редактор используется системой для создания программных модулей на встроенном языке и для редактирования документов в текстовом виде.

Одной из особенностей редактора является возможность контекстного выделения цветом синтаксических конструкций встроенного языка.

Благодаря тому, что встроенный язык системы имеет мощные средства манипулирования текстами, текстовый формат может быть успешно использован для обмена с другими системами самой различной информацией.

Встроенный редактор диалогов. Работа с настраиваемыми структурами данных и работа в интерфейсе операционной системы MS Windows вызывает необходимость произвольной настройки форм ввода и редактирования информации. Для этого в системе 1С:Предприятие существует встроенный редактор экранных диалогов.

Редактор позволяет оформить большинство окон, которые используются в системе для ввода и просмотра предметной информации (формы документов, справочников, настройки отчетов).

Встроенный редактор табличных документов. Для всех выходных документов (первичных документов и отчетов) в системе предусмотрен единый формат — формат табличных документов. Это мощное средство, сочетающее в себе оформительские возможности табличной структуры и векторной графики. Таким образом, он может быть использован как для создания небольших документов с очень сложной структурой линий (типа платежного поручения), так и для объемных ведомостей, журналов и других подобных документов.

Редактор табличных документов предоставляет пользователям богатый набор оформительских возможностей (шрифты, цвета, линии, узоры). Имеется возможность вывода информации в графическом виде (диаграммы).

Одной из главных особенностей табличного редактора является ориентация на формирование отчетов при помощи встроенного языка системы 1С:Предприятие. Гибкое построение отчетов с его помощью становится возможным благодаря наличию механизма манипулирования секциями (областями документа). Редактор таблиц позволяет манипулировать не только горизонтальными, но и вертикальными секциями, что делает возможным создание отчетов, масштабируемых не только в высоту, но и в ширину.

С другой стороны, реализована и возможность создания отчета в виде интерактивной таблицы, являющейся одновременно инструментом ввода данных, их обработки и отображения результатов.

Конструкторы. Конструкторы — вспомогательные инструменты, облегчающие разработку стандартных элементов системы 1С:Предприятие. В системе имеются конструкторы справочника, документа, журнала документов, отчета и вида субконто. Еще пять конструкторов облегчают разработку программных модулей в стандартных случаях.

Система настройки пользовательских интерфейсов. Для того чтобы интерфейс конкретной конфигурации системы полностью отражал настроенные структуры данных и алгоритмы, в системе , помимо редактора диалоговых форм и табличных документов, предусмотрена возможность настройки общих интерфейсных компонент системы: меню, панелей инструментов, комбинаций клавиш.

На этапе конфигурирования может быть создано несколько пользовательских интерфейсов для разных категорий пользователей (руководителей, менеджеров, кладовщиков и других).

Система настройки прав пользователей и авторизации доступа. Данная система позволяет описывать наборы прав, соответствующие должностям пользователей. Структура прав определяется конкретной конфигурацией системы. Например, могут быть введены такие наборы прав, как «Главный бухгалтер», «Кладовщик», «Менеджер», «Начальник отдела».

Сам список пользователей создается уже для конкретной организации. Каждому пользователю назначается роль, включающая набор прав и пользовательский интерфейс.

Отладчик. Для удобства разработки конфигурации в системе предусмотрен отладчик. Отладчик позволяет прослеживать исполнение программных модулей конфигурации, замерять сравнительное время исполнения, просматривать содержимое переменных.

Администрирование работы пользователей. Для отслеживания текущего состояния работы системы используется монитор пользователей. Он позволяет просмотреть, кто из пользователей в настоящий момент работает с конкретной информационной базой, и в каком режиме.

Журнал регистрации изменений ведется системой автоматически. В нем отражаются все факты изменений данных пользователями.


1С-Предприятие. Документация | Конфигурирование и администрирование. Приложение 1

Приложение 1.
Реструктуризация информационной базы

В данном приложении описывается последовательность действий системы при сохранении измененной конфигурации. Данная информация предназначена для специалистов и может быть использована для анализа нештатных ситуаций.

Конфигурация программ семейства «1С:Предприятие» хранится в одном файле 1CV7.MD в каталоге информационной базы данных. При работе в конфигураторе для хранения временной копии конфигурации программа использует каталог MS Windows для хранения временных файлов.

При нехватке места на соответствующем диске может выдаваться предупреждение.

При сохранении измененной конфигурации программа определяет, были сделаны изменения в метаданных или только в модулях, таблицах, диалогах, описаниях. Эту информацию можно посмотреть в статусной строке (БД, Документ). Звездочка рядом с символами «БД» отмечает, что изменены метаданные, звездочка рядом с «Документ» — что изменено что-либо, кроме метаданных.

Если метаданные не изменялись, а конфигурация изменена, то при сохранении происходит просто перезапись файла конфигурации.

Если метаданные изменялись, программа переходит к процедуре реструктуризации данных.

Опишем последовательность выполнения данной процедуры.

1. Для проведения реструктуризации создается каталог NEW_STRU, подчиненный каталогу информационной базы (если он еще не существует).

2. В каталоге NEW_STRU создается файл RESTRUCT.LOG, в котором записывается протокол действий системы при реструктуризации. Его можно использовать при анализе в случае возникновения сбоев.

3. В каталоге NEW_STRU создастся файл словаря данных 1CV7.DD, соответствующий новой структуре метаданных. Файл 1CV7.DD содержит описание структур данных и не должен изменяться пользователем.

4. Выполняется попытка открыть всю существующую информационную базу в основном каталоге, при этом, если отсутствует файл 1CV7.DD, то он создастся. Если какие-либо файлы информационной базы отсутствуют, они создаются.

5. Выполняется сравнение старых и новых метаданных. Изменения, не влияющие на структуру и состав данных, не анализируются и не отмечаются в списке изменений.

6. При обнаружении изменений, влияющих на структуру или содержание информационной базы, выполняется перенос необходимых для изменения файлов из основного каталога в каталог NEW_STRU и их реструктуризация.

При этом в файле RESTRUCT.LOG могут накапливаться сообщения: например, если при преобразовании типа значения преобразование не может быть выполнено однозначно.

Могут также возникнуть ситуации, при которых будет выдано сообщение о невозможности изменения структуры данных. Например, при уменьшении количества уровней в справочнике, если есть элементы тех уровней, которые в новой конфигурации для данного справочника не доступны.

7. После выполнения всех действий по реструктуризации выводится диалог со списком сделанных изменений.

При нажатии кнопки «Отмена» процедура реструктуризации прерывается, при этом информационная база и конфигурация, записанная на диске в основном каталоге, никак не изменяются, а текущее состояние конфигурации в Конфигураторе остается таким, каким оно было до начала реструктуризации.

Таким образом, после отказа от принятия изменений можно повторить процесс сохранения конфигурации (при этом будет заново запущена процедура реструктуризации), либо закрыть окно метаданных без сохранения.

При нажатии кнопки «Принять» продолжается процедура реструктуризации.

8. В каталог NEW_STRU записывается новый файл 1CV7.MD.

Далее система будет выполнять перенос всех сделанных изменений в основной каталог. Данный момент в процедуре реструктуризации является очень важным. До этого момента ни один файл в основном каталоге не изменяется, и любой сбой системы приведет только к потере изменений, сделанных в конфигурации. Однако к этому моменту в каталоге NEW_STRU уже содержатся все файлы, которые необходимо было изменить.

9. Далее выполняется перенос всех файлов в основной каталог.

Начало данного процесса отмечается в протоколе реструктуризации строкой «Copy new files to main directory progress…». Окончание данного процесса отмечается в протоколе строкой «Copy new files to main directory complete…».

Таким образом:

· если процесс перезаписи еще не начинался, то все данные в основном каталоге являются корректными и соответствуют состоянию до изменения конфигурации;

· если процесс перезаписи закончился, то все данные в основном каталоге являются корректными и соответствуют сделанным изменениям в конфигурации;

· если перезапись началась и не закончилась, то все измененные файлы в корректном виде находятся в каталоге NEW_STRU и для приведения системы в рабочее состояние их необходимо переписать в основной каталог.

Однако система при запуске Конфигуратора сама определяет ситуацию с неоконченной перезаписью изменений при реструктуризации и выполняет перезапись всех файлов из каталога NEW_STRU в основной каталог. Поэтому после процесса реструктуризации следует запустить Конфигуратор.

Кроме того, при проведении реструктуризации система диагностирует некоторые изменения, которые требует дополнительного пересчета информации. Например, реквизиту многострочной части документа назначен признак «Итог по колонке». Подобного рода действия не влекут изменений в структуре данных и обрабатываются системой следующим образом.

В процессе реструктуризации при анализе изменений в метаданных при обнаружении подобных изменений они записываются в файл 1SRECALC.CMD. При перезаписи сделанных изменений в основной каталог данный файл также переписывается. После перезаписи, если данный файл содержит информацию о необходимости пересчета, система выполняет нужные действия, после чего данный файл удаляется из основного каталога. Также анализ наличия такого файла выполняется при входе в Конфигуратор для отработки варианта сбоя в процессе пересчета или реструктуризации. В этом случае также выполняются необходимые действия и файл также удаляется.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 2

Глава 2.
Основные понятия системы 1С:Предприятия

  • Понятие «метаданные»
    • Объект метаданных
    • Свойства объекта метаданных
    • Форма объекта метаданных
    • Агрегатные объекты метаданных
    • Основные виды объектов метаданных
    • Типизированные и типообразующие объекты метаданных
    • Метаданные
  • Конфигурация
  • Модуль

В этой главе рассматриваются основные понятия, которыми оперирует система 1С:Предприятие. Данная глава будет полезна тем, кто еще не знаком с системой 1С:Предприятие.

Описание тех или иных механизмов будет сопровождаться примерами. Возможно, что в описании примеров будут встречаться еще незнакомые вам понятия и термины. Продолжайте чтение: смысл используемых терминов будет ясен в процессе изложения, а для более подробной информации всегда можно обратиться к соответствующим главам настоящего Руководства.

Понятие «метаданные»

Основу концепции системы 1С:Предприятие составляет понятие метаданные. Однако прежде чем дать расшифровку этого понятия, введем понятие объекта метаданных.

Объект метаданных

Под объектом метаданных в системе 1С:Прсдприятие понимается формальное описание группы понятий предметной области со сходными характеристиками и одинаковым предназначением.

Приведем такой пример. Объект метаданных «Справочник» в системе 1С:Предприятие предназначен для ведения списков однородных элементов данных — справочников, картотек, нормативных сборников и тому подобное. Использование объектов метаданных этого типа позволяет организовать ведение любых справочников, необходимых для автоматизации деятельности предприятия.

Как правило, объекты метаданных типа «Справочник» являются компьютерными аналогами реально существующих на предприятии справочников, например, справочника сотрудников или номенклатуры товаров, хотя могут использоваться и для организации списков, не имеющих явных физических аналогов.

Реализованный в системе 1С:Предприятис при помощи объекта метаданных компьютерный аналог конкретного понятия предметной области будем называть объектом данных.

Свойства объекта метаданных

Каждый объект метаданных обладает уникальным набором свойств. Этот набор описан на уровне системы и не может быть изменен в процессе настройки конфигурации задачи. Набор свойств объекта метаданных определяется, в основном, его назначением в системе 1С:Предприятие.

Главным свойством любого объекта метаданных является идентификатор — краткое наименование объекта метаданных. При создании нового объекта метаданных ему автоматически присваивается условный идентификатор, состоящий из слова «Новый» и цифры. Этот идентификатор можно изменить в процессе редактирования свойств объекта метаданных, при этом система отслеживает уникальность идентификаторов. Однако идентификатор не может быть удален без удаления самого объекта метаданных.

Некоторые свойства из всего набора свойств, присущих объекту метаданных, доступны для редактирования и могут быть так или иначе изменены в процессе конфигурирования системы 1С:Предприятие. Характер изменений и их пределы также задаются на уровне системы. Целенаправленным изменением свойств объекта метаданных специалист, осуществляющий конфигурирование системы, может добиться требуемого поведения объекта при работе системы. Однако такие изменения не затрагивают сущности объекта и не позволяют добиться от него действий, не свойственных объектам данного типа.

Приведем такой пример.

Объект метаданных «Константа» в системе 1С:Предприятие предназначен для хранения информации, которая не изменяется во времени или изменяется очень редко. Простым примером константы может служить название предприятия: оно, как правило, не меняется о процессе деятельности предприятия.

Константа обладает следующим набором редактируемых свойств:

· идентификатор — «имя» константы;

· комментарий;

· тип значения;

· длина значения;

· точность значения (для числовых констант);

· периодичность.

Еще 2 свойства — «автоматическая проверка на неотрицательность при вводе значения в константу» и «разделение триад цифр при показе числовой константы» — носят, скорее, вспомогательный характер и не оказывают существенного влияния на поведение константы.

В наиболее общем случае информация в константу заносится один раз (как, например, все то же название предприятия). Информацию, записанную в константу, можно многократно извлекать, просто указывая имя константы. Конкретное значение константы в этом случае несущественно, а наиболее важным является то, что константа сохранила когда-то записанное в нее значение и возвратила его.

Способность сохранять и возвращать значение — неотъемлемая особенность любой константы в системе 1С:Предприятие. Никакое редактирование свойств константы на эту способность не влияет.

Форма объекта метаданных

Большинство объектов метаданных в системе 1С:Предприятие могут иметь визуальное представление. В самом общем случае визуальное представление состоит из следующих частей:

· экранный диалог, используемый для ввода и редактирования информации, хранящейся в объекте метаданных;

· печатная форма объекта метаданных (печатных форм может быть несколько);

· модуль формы — программа на встроенном языке системы 1С:Предириятие. Как правило, модуль формы содержит алгоритм построения печатной формы объекта метаданных, а также может выполнять обработку вводимой в диалог информации для целей входного контроля, выполнения расчетов и т. п.

Совокупность экранного диалога, печатной формы и модуля называется формой.

Способность иметь визуальное представление позволяет объекту метаданных организовать интерактивное взаимодействие с пользователем. Характер такого взаимодействия разрабатывается специалистом, осуществляющим конфигурирование системы 1С:Предприятие, и определяется, в основном, типом объекта метаданных.

Для разработки форм в Конфигураторе применяется комплексный редактор форм, позволяющий редактировать все компоненты формы во взаимосвязи.

Агрегатные объекты метаданных

Объекты метаданных в системе 1С:предприятие могут быть как независимыми, так и подчиняться друг другу.

Например, независимым объектом метаданных является константа. Константа самодостаточна: она может содержать какое-либо значение, и этим полностью исчерпывается ее назначение в системе 1С:Предприятие. Более того: константа может присутствовать в системе и даже может содержать какое-либо значение, но при этом не использоваться другими объектами метаданных. Правда, на практике такое встречается редко.

Теперь — прямо противоположный пример.

Объект метаданных «Реквизит справочника», который содержит какую-либо дополнительную информацию об элементе справочника, может существовать только в составе объекта метаданных «Справочник». Сам по себе, отдельно от справочника, реквизит справочника никогда не используется. Объект метаданных «Справочник» может вообще не содержать объектов типа «Реквизит справочника», но если такие объекты существуют, то они «живут» только внутри справочника.

Объекты метаданных, которые могут иметь в своем составе подчиненные объекты, называются агрегатными объектами метаданных.

Основные виды объектов метаданных

Все объекты метаданных, которые существуют в системе 1С:Прсднриятис, образуют несколько основных видов. Каждый вид объектов метаданных представляет собой как раз те «строительные элементы», из которых будет создаваться конфигурация.

Формально объекты метаданных объединяются в виды в дереве метаданных. Названия видов пользователь видит на первом уровне дерева метаданных, когда открывает окно «Конфигурация» в Конфигураторе.

Несмотря на отсутствие формального определения, названия видов объектов метаданных широко используются при работе с системой 1С:Преднриятие.

Например, специалист, осуществляющий конфигурирование системы 1С:Предприятие, видит свою цель в разработке необходимого набора справочников, документов, отчетов, журналов, которые будут реализовывать требуемую систему учета. Конечный пользователь системы 1С:Предприятие — руководитель, бухгалтер, менеджер, кладовщик — также оперирует конкретными справочниками, документами и т. д. для решения стоящих перед ним задач. Общение между двумя этими категориями пользователей также будет происходить в понятиях видов объектов метаданных.

Ниже приведена краткая характеристика основных видов объектов метаданных системы 1С:Предприятие (см. таблицу). Подробная информация об объектах метаданных, объединяемых в каждом из этих видов, будет изложена далее в настоящем Руководстве.

Наименование | Краткая характеристика
Константы | Постоянные (условно-постоянные) величины. Константы хранят информацию, которая не изменяется или изменяется достаточно редко: название организации, се почтовый адрес и так далее.
Справочники | Списки однородных элементов данных. Используются для храпения нормативно-справочной информации.
Документы | Служат для ввода информации о совершенных хозяйственных операциях.
Журналы документов | Списки объектов данных типа «Документ». Служат для работы с документами.
Перечисления | Списки значений, задаваемые на этапе конфигурирования.
Отчеты | Средство получения выходной информации. Источником данных для построения отчетов служат документы, справочники и регистры, также используется информация, хранящаяся в константах.
Обработка | Объекты метаданных этого вида используются для выполнения различных действий над информационной базой.

Планы Счетов | Списки объектов данных типа «бухгалтерский счет» — учетных регистров, по которым будет выполняться группировка средств при работе с системой 1С:Прсдприятие. Понятие «план счетов» в системе 1С:Предприятис вполне соответствует общепринятому пониманию аналогичного термина в бухгалтерском учете.
Виды Субконто | Списки объектов аналитического учета. Используются для организации аналитического учета средств предприятия, в совокупности с бухгалтерскими счетами.
Операция | Средство отражения в бухгалтерском учете хозяйственных операций, происходящих на предприятии. Объектами данных этого типа являются «операции» — совокупности бухгалтерских проводок, выполняющие изменения в остатках и оборотах по бухгалтерским счетам.
Проводка | Бухгалтерские проводки. Используются только совместно с объектами данных «Операция» и предназначены для отражения в бухгалтерских итогах результатов хозяйственных операций.
Регистры | Средство накопления оперативной информации о наличии и движении средств.
Журналы расчетов | Средство проведения периодических расчетов и хранения результатов расчета прошлых периодов. Каждый журнал связан с одним из справочников, который называется справочником объектов расчета. Каждая строка журнала — единичный акт расчета, который производится для определенного объекта по определенному алгоритму, имеет протяженность во времени и результат.
Виды расчетов | Алгоритмы, по которым могут проводиться расчеты записей журналов расчета.
Группы расчетов | Средство логического объединения видов расчета по тем или иным признакам.
Календари | Средство построения графиков работы предприятия, внешних организаций или отдельных категорий работников.

Элемент данных какого-либо вида является уже конкретным документом, отчетом, журналом, константой и так далее. Как правило, каждый элемент используется для работы со вполне определенной информацией предметной области.

Типизированные и типообразующие объекты метаданных

Одним из свойств объекта метаданных является тип значения, которое может принимать объект. Тип значения определяет, какого рода информацию может содержать объект метаданных. Тип значения объекта метаданных назначается при создании или редактировании свойств объекта в процессе настройки конфигурации задачи.

Свойство «Тип значения» существует не у всех объектов метаданных: как правило, агрегатные объекты метаданных — типа «Справочник», «Документ», «Журналы» и тому подобные — не обладают этим свойством, так как содержат «комплексную» информацию, то есть хранят одновременно данные разных типов.

Объекты метаданных, для которых может быть указан тип информации, содержащейся в объекте, в системе 1С:Предприятие называются типизированными объектами метаданных.

Типы значений, которые может принимать объект метаданных, можно разделить на 2 группы.

Первую группу составляют базовые типы значений: «число», «строка» и «дата». Соответственно, информация, хранящаяся в объекте метаданных, может быть числом, произвольной строкой символов или датой.

Кроме этого, некоторые объекты метаданных системы 1С:Предприятие также могут образовывать типы значений. Например, константе может быть назначен тип значения «Документ». В этом случае значение константы будет представлять собой ссылку на один из существующих в системе 1С:Предприятие документов.

Объекты метаданных, которые могут образовывать типы значений других объектов метаданных, в системе 1С:Предприятие называются типообразующими объектами метаданных. Такими объектами в системе 1С:Предприятие являются:

· справочники;

· документы;

· перечисления;

· бухгалтерские счета;

· планы счетов;

· виды субконто;

· виды расчетов;

· календари.

Необходимо обратить внимание, что типообразующие объекты метаданных образуют тип значения сразу после создания в Конфигураторе объекта любого из таких типов. Например, когда в Конфигураторе создается новый справочник, то в списке типов значений появляется наименование созданного справочника. Такой тип значения может быть присвоен любому из типизированных объектов метаданных.

Метаданные

Итак, теперь можно дать расшифровку самого понятия «метаданные».

Метаданными («данными о данных») в системе 1С:Предприятие называется совокупность объектов метаданных, настроенных на хранение и обработку информации о хозяйственной деятельности конкретного предприятия.

Наряду с понятием метаданные, в настоящем Руководстве будет широко использоваться термин «структура метаданных». Данный термин более точно отражает суть метаданных, как сложной структуры взаимодействующих объектов метаданных. Фактически, структура метаданных является моделью предметной области.

Конфигурация

Конфигурацией в системе 1С:Предприятие называется совокупность трех взаимосвязанных составных частей:

· структуры метаданных;

· набора пользовательских интерфейсов;

· набора прав.

Создание конфигурации выполняется при помощи Конфигуратора. Созданная конфигурация используется системой 1С:Предприятие для реализации программного окружения, пригодного для выполнения необходимых учетных задач.

Расшифровка понятия метаданные была дана ранее в этой главе.

Пользовательским интерфейсом в системе 1С:Предприятие называется совокупность команд главного меню и панелей инструментов, настроенных на работу с конкретными объектами данных — документами, справочниками, журналами и т. д. Как правило, пользовательский интерфейс создастся для конкретной категории пользователей. Цель создания интерфейса — обеспечить быстрый доступ пользователей к той информации, которая необходима им в соответствии с их обязанностями.

Права в системе 1С:Предприятие определяют полномочия пользователей на работу с информацией, которая обрабатывается в системе. Совокупность предоставляемых пользователю прав определяется, как правило, кругом его обязанностей.

Операция назначения прав пользователю решает две основные задачи.

С одной стороны, ограничивается круг пользователей конфиденциальной информации, которая, безусловно, всегда присутствует в любой системе учета.

С другой стороны, запрет выполнения определенных операций (в первую очередь, операций удаления и корректировки данных) позволяет в какой-то степени предотвратить возможные потери информации.

Все три составные части конфигурации тесно связаны между собой и требуют, как правило, согласованного внесения изменений (особенно это касается пользовательских прав).

Так, назначение прав может выполняться только для существующих объектов метаданных (конкретных документов, журналов, справочников, отчетов). Добавление в структуру метаданных нового объекта должно сопровождаться внесением соответствующих изменений в права.

Команды, которые можно связать с элементами пользовательского интерфейса, управляют конкретными объектами метаданных. Очевидно, что нет смысла включать в пользовательский интерфейс команды по работе с информацией, доступ к которой пользователю запрещен.

Модуль

Модулем называется программа на встроенном языке системы 1С:Предприятие. Модули располагаются в заданных точках структуры метаданных и вызываются для выполнения в заранее известные моменты работы системы 1С:Предприятие. Специалист, выполняющий конфигурирование системы, может использовать модули для описания сложных алгоритмов взаимодействия объектов метаданных, для которых недостаточно имеющихся в Конфигураторе визуальных средств.

Приведем такой пример.

В системе 1С:Предприятис может быть организован удобный для пользователей режим ввода новых документов — «ввод на основании». Суть этого режима проста: за основу берется документ-образец (например, счет на оплату), из которого в новый создаваемый документ (например, расходную накладную) переносится информация о получателе, товарах, ценах, количестве.

Перенос информации из документа-образца во вновь создаваемый документ выполняется при помощи специальной процедуры ВводНаОсновании(), содержащейся в модуле последнего.

Предварительная настройка режима «ввода на основании» для конкретного документа выполняется в Конфигураторе диалоговыми средствами. Однако алгоритм переноса информации из документа-образца в новый документ должен создать специалист, выполняющий конфигурирование системы. Этот алгоритм хранится в модуле, «привязанном» к форме документа, и выполняется всякий раз при показе документа.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 3

Глава 3.
Метаданные

  • Управление объектами метаданных
  • Создание объекта метаданных
  • Конструкторы объектов метаданных
  • Редактирование объекта метаданных
    • Окно редактирования
    • Палитра свойств
    • Редактирование списков объектов метаданных
  • Свойства объектов метаданных
  • Удаление объекта метаданных
  • Редактирование форм объекта метаданных
    • Работа с формами списка
  • Создание описания объекта метаданных

В этой главе будут рассмотрены общие приемы работы с объектами метаданных, которые применимы к объектам любых типов. Особенности создания и редактирования объектов метаданных различных типов рассматриваются далее в соответствующих главах Руководства.

В данной главе в основном рассматриваются визуальные средства управления объектами метаданных, имеющиеся в Конфигураторе. Для изучения возможностей встроенного языка следует обратиться к книге «1С:Предприятие. Описание встроенного языка».

Управление объектами метаданных

Доступ к структуре метаданных текущей конфигурации осуществляется через закладку «Метаданные» окна «Конфигурация». Окно «Конфигурация» вызывается на экран выбором пункта «Открыть конфигурацию» в меню «Конфигурация» главного меню Конфигуратора.

Структура метаданных представлена в виде дерева и позволяет получить доступ ко всем объектам метаданных. Объекты метаданных в дереве метаданных представлены своими идентификаторами.

Корневые ветви дерева объединяют объекты метаданных, логически связанные между собой и имеющие общее назначение.

Например, ветвь «Документы» объединяет объекты типа «Общий реквизит документов», «Нумератор» и «Документ». Все эти объекты предназначены для организации ввода документов в системе 1С:Преднриятие.

Приемы работы с деревом метаданных не отличаются от приемов работы с другими «древовидными» списками в MS Windows 95 (например, со структурой папок, изображаемой на левой панели программы Проводник). Кратко напомним эти приемы.

Для удобства просмотра и работы дерево имеет способность раскрываться и сворачиваться. Знак «+», расположенный на дереве, указывает на узел дерева и обозначает, что эту ветвь можно развернуть и получить доступ к нижележащим уровням ветви. Для раскрытия ветви достаточно щелкнуть мытью на знаке «+» или дважды щелкнуть мышью на слове или фразе, расположенной возле этого знака. Ветвь откроет для просмотра следующий уровень, а знак «+» изменится на «–».

Развернутую ветвь можно свернуть, для этого необходимо щелкнуть мышью на знаке «–» или дважды щелкнуть мышью на слове или фразе, расположенной возле этого знака. Ветвь будет свернута, а знак «–» изменится на «+».

Существует одна удобная возможность при работе с деревом метаданных: если выделить наименование конфигурации, расположенное в корневом узле дерева метаданных, и нажать клавишу «*» на правой цифровой клавиатуре, дерево раскроется полностью. Однако повторным нажатием клавиши «*» также полностью свернуть дерево нельзя — это придется делать отдельно для каждой ветви.

Совет. Если дерево метаданных «разросшееся», то, чтобы не закрывать отдельно каждую ветвь, достаточно закрыть окно «Конфигурация» и вновь открыть его. Если необходимо, при закрытии окна «Конфигурация» не забудьте выполнить сохранение сделанных изменений.

Полностью раскрытое дерево позволяет просмотреть все объекты метаданных, существующие в конфигурации. Для перехода к нужному объекту метаданных можно использовать средство быстрого поиска в дереве: достаточно набрать несколько первых букв идентификатора объекта метаданных. Набирать буквы следует быстро (насколько быстро — определяется экспериментально), в противном случае нажатие каждой новой буквы будет восприниматься как начало нового поиска.

Наименование объектов метаданных в пределах «своей» группы объектов метаданных можно расставить в требуемом порядке. В таком же порядке наименования объектов метаданных будут выдаваться в различных списках. В отдельных случаях порядок расстановки определяется структурой данных и влияет на нее.

Для перестановки наименования объекта метаданных необходимо выделить его в окне «Конфигурация — Метаданные» и использовать кнопки [image] («Переместить вверх»), [image] («Переместить вниз»), [image] («Сортировать») в панели инструментов окна или аналогичные функции контекстного меню объекта метаданных.

Создание объекта метаданных

Управление большинством объектов метаданных выполняется в окне «Конфигурация», закладка «Метаданные». В этом параграфе будут изложены общие приемы создания объектов метаданных, применимые к метаданным любых типов.

Для создания нового объекта метаданных необходимо выполнить следующие действия:

· в дереве метаданных выделите наименование типа метаданных или любого из существующих объектов метаданных того типа, который должен быть у создаваемого объекта;

· нажатием правой кнопки мыши вызовите контекстное меню;

· в контекстном меню выберите функцию «Новый...» («...справочник», «...документ», «...реквизит» и т. п.): конкретное наименование этого пункта зависит от типа создаваемого объекта метаданных.

В результате этих действий на текущей ветви дерева метаданных появится новый объект, а на экран будет автоматически вызван диалог для редактирования свойств этого объекта. Форма диалога зависит от типа редактируемого объекта.

Для некоторых объектов в системе имеются конструкторы — вспомогательные инструменты, облегчающие разработку стандартных элементов системы 1С:Предприятие. Для этих объектов при создании нового объекта описанным способом может вызываться первое окно соответствующего Конструктора (см. ниже раздел «Конструкторы объектов метаданных»). В этом случае уже после работы Конструктора появится новый объект на ветви дерева метаданных и будет вызван диалог редактирования свойств объекта.

Новому объекту метаданных присваивается условный идентификатор, состоящий из слова «Новый» и числа — порядкового номера нового объекта метаданных. Диалог для редактирования свойств объекта будет содержать установки, задаваемые по умолчанию.

Например, для создания нового справочника следует выделить на дереве метаданных ключевое слово «Справочники» или наименование любого из существующих в конфигурации справочников. Выделение слова «Справочники» обычно требуется, когда в конфигурации еще не существует ни одного справочника.

Команды контекстного меню объекта метаданных типа «Справочник» позволяют редактировать отдельные свойства текущего объекта. Для объектов метаданных других типов набор команд контекстного меню может различаться, однако можно сказать, что команды с одинаковыми наименованиями выполняют аналогичные функции и для объектов метаданных других типов. Диалог для редактирования свойств справочника будет содержать свойства, задаваемые по умолчанию. После того, как объект метаданных создан, рекомендуется сразу задать для него хотя бы минимум необходимых свойств.

Окончательную «доводку» объекта метаданных можно будет провести позже. Как правило, для этого потребуется несколько «подходов», так как зачастую в процессе разработки структуры метаданных возникает необходимость внести изменения в свойства уже существующих объектов метаданных.

Сохранение изменений. Необходимо учитывать, что все изменения в структуре метаданных, связанные с созданием объекта метаданных, не оказывают немедленного влияния на информационную базу. Для сохранения сделанных изменений в конфигурации и реорганизации информационной базы данных следует выполнить процедуру сохранения так, как это описано в п. «Сохранение конфигурации», стр. Ошибка! Закладка не определена..

Конструкторы объектов метаданных

Конструкторы объектов метаданных — вспомогательные инструменты, облегчающие создание объектов метаданных системы 1С:Предприятие.

Конфигуратор включает конструкторы:

· справочника;

· документа;

· журнала документов;

· отчета;

· вида субконто;

· журнала расчетов.

Конструктор «ведет пользователя за руку» по этапам создания объекта метаданных, снабжая подсказками и позволяя, если необходимо, возвращаться к предыдущим этапам и переопределять ранее заданные параметры.

При создании нового объекта метаданных одного из перечисленный выше типов соответствующий Конструктор запускается автоматически. Автоматический запуск Конструктора может быть отключен, в этом случае при создании нового объекта метаданных будет автоматически открыто окно редактирования нового объекта метаданных (см. выше).

Работа с Конструкторами объектов метаданных изложена в главах, посвященных конкретным объектам метаданных.

Для отключения автоматического запуска Конструктора служит флажок «Использовать конструкторы для создания новых объектов».

Этот флажок — общий для всех конструкторов объектов метаданных. Установка или снятие его в первом окне любого из них приведет к аналогичному результату в окнах остальных конструкторов. Снятие флажка приводит к тому, что при создании нового объекта метаданных вызывается соответствующее окно редактирования свойств объекта. Для установки флажка нужно вызвать окно любого из конструкторов объектов метаданных с помощью меню «Конструкторы» или пункта «Новый элемент» меню «Действия» главного меню Конфигуратора. Установка или снятие флажка запоминается системой вне зависимости от способа выхода из окна Конструктора (например, по кнопке «Отмена» или клавише Esc).

Кроме флажка, в нервом окне каждого из конструкторов объектов метаданных имеются поля ввода для задания идентификатора нового объекта, его синонима и комментария.

Редактирование объекта метаданных

Процесс редактирования заключается в изменении свойств объекта метаданных с целью добиться требуемого поведения объекта в процессе использования конфигурации.

Вызов диалога редактирования объекта метаданных. Редактирование объекта метаданных выполняется в специальном диалоге. Для вызова этого диалога на экран необходимо дважды щелкнуть левой кнопкой мыши на идентификаторе объекта метаданных, свойства которого требуется отредактировать.

Для редактирования свойств объекта метаданных в Конфигураторе используются диалоги 2-х типов — окно редактирования и палитра свойств.

Окно редактирования

Диалог первого типа — окно редактирования — характеризуется тем, что в нем доступны сразу все редактируемые свойства объекта метаданных. Окна редактирования используются в основном для редактирования агрегатных объектов метаданных — справочников, документов, журналов, регистров и тому подобное.

Помимо того, что окно редактирования вызывается автоматически при двойном щелчке мыши на идентификаторе объекта метаданных в дереве метаданных, такой же диалог может быть вызван выбором пункта «Редактировать» из контекстного меню объекта метаданных.

Форма самого окна редактирования и состав редактируемых свойств зависят от типа объекта метаданных.

Одновременно может быть открыто несколько окон редактирования. Изменения, вносимые в свойства объекта метаданных в окне редактирования, сразу отражаются в структуре метаданных.

Палитра свойств

Диалог второго типа — палитра свойств — организован в виде картотеки: свойства, которые можно определить для объекта метаданных, объединены в несколько групп. Количество групп зависит от типа редактируемого объекта метаданных, но обязательно будет присутствовать группа «Общие». Наиболее часто в палитре свойств также присутствует группа «Дополнительные».

Для доступа к управляющим элементам конкретной группы необходимо щелкнуть мышью на соответствующей закладке палитры свойств. Палитра свойств также может быть вызвана и для тех объектов метаданных, для которых но умолчанию (двойным щелчком мыши) вызывается окно редактирования. Для вызова палитры свойств необходимо выбрать пункт «Свойства» из контекстного меню объекта метаданных.

Свойства объекта метаданных, редактируемые в палитре свойств, как правило, взаимоувязаны: в зависимости от выбранных установок отдельные управляющие элементы могут закрываться для редактирования — в этом случае они выдаются серым цветом.

В палитре свойств всегда присутствуют 5 кнопок.

Кнопка [image] служит для вызова встроенного справочника системы 1С:Предприятие. Действие этой кнопки аналогично действию клавиши F1.

Кнопка [image] («Прикрепить») служит для «закрепления» палитры свойств на экране. Эта кнопка действует как переключатель, то есть может находиться в нажатом или отжатом состоянии.

Назначение этой кнопки стоит пояснить подробнее.

В отличие от окон редактирования, которые могут быть открыты одновременно для нескольких объектов метаданных, палитра свойств открывается только один раз и позволяет редактировать свойства того объекта метаданных, который выделен в окне «Конфигурация».

Если кнопка [image] «Прикрепить» находится в отжатом состоянии (как на рисунке), при выделении в дереве метаданных другого объекта палитра свойств будет закрыта, и для редактирования свойств объекта метаданных ее придется открыть вновь.

Если кнопка «Прикрепить» нажата, то при выделении в дереве метаданных другого объекта палитра свойств останется на экране, а состав закладок и управляющих элементов на каждой закладке изменится в зависимости от типа выбранного объекта метаданных.

В отличие от окна редактирования, изменения, вносимые в свойства объекта метаданных через палитру свойств, не сразу переносятся в структуру метаданных. Для этого используются кнопки палитры свойств «ОК», «Отмена», «Обновить».

Кнопка «ОК» вносит изменения в структуру метаданных и закрывает палитру свойств.

Нажав кнопку «Отмена», можно отказаться от внесения изменений в структуру метаданных. Палитра свойств при этом также закрывается.

Кнопка «Обновить» вносит изменения в структуру метаданных, при этом палитра свойств остается на экране.

Закладка «Права» палитры свойств. Палитра свойств, вызванная для объекта метаданных в окне «Конфигурация — Метаданные», для некоторых типов объектов метаданных будет содержать закладку «Права» для редактирования наборов прав в части прав на работу с конкретным объектом метаданных.

На закладке «Права» расположены 2 окна. В левом окне выдается список существующих наборов прав (см. п. «Ведение списка наборов прав» на стр. Ошибка! Закладка не определена.). Один из наборов прав в списке можно выделить, щелкнув мышью его название.

В правом окне выдается список всех операций, которые можно осуществлять над выбранным объектом метаданных. Состав этого списка зависит от типа редактируемого объекта метаданных.

В зависимости от выбранного в левом окне закладки наименования наборов прав, в правом окне закладки у тех или иных операций слева от наименования операции будет стоять галочка. Этот символ означает, что выполнение этой операции разрешено для выбранного набора нрав. Соответственно, выполнение этой операции будет разрешено и тому пользователю, которому назначен такой набор прав (см. п. «Назначение прав» на стр. Ошибка! Закладка не определена.).

Вы можете отредактировать список разрешенных операций. Чтобы разрешить выполнение конкретной операции, необходимо щелкнуть мышью на рамке слева от названия операции. В рамке появится галочка, означающая, что эта операция над выбранным элементом данных разрешена. Повторным щелчком мыши отметку можно снять и, таким образом запретить выполнение выбранной операции.

Подробно о редактировании наборов прав можно прочитать в п. «Определение прав» на стр. Ошибка! Закладка не определена..

Закладка «Миграция» палитры свойств. Если на компьютере установлена компонента «Управление распределенными информационными базами», то палитра свойств, вызванная для объекта метаданных в окне «Конфигурация — Метаданные», для типов объектов метаданных, связанных с хранением данных (Константа, Справочник, Документ, План счетов, Календарь) будет содержать закладку «Миграция» для редактирования области распространения конкретного объекта метаданных.

Описание работы с ней находится в Руководстве пользователя по компоненте «Управление распределенными информационными базами».

Редактирование списков объектов метаданных

Как уже говорилось выше, агрегатные объекты метаданных могут содержать в своем составе другие объекты метаданных. Работа с такими подчиненными объектами может выполняться как в окне «Конфигурация — Метаданные», так и в окнах редактирования тех объектов метаданных, которым они подчинены. Для этого в окне редактирования предусмотрена специальная группа управляющих элементов. Такая группа всегда состоит из:

· окна просмотра списка объектов метаданных;

· кнопок управления списком объектов метаданных;

· кнопки вызова палитры свойств, с помощью которой редактируются свойства объектов метаданных из этого списка.

Как правило, такая группа управляющих элементов заключена в рамку с заголовком группы. В зависимости от типа агрегатного объекта метаданных, в окне редактирования которого присутствует такая группа управляющих элементов, заголовок может быть различным — «Реквизиты», «Графы», «Измерения», «Ресурсы» и т.д., однако в любом случае управляющие элементы этих групп работают одинаковым образом и служат для выполнения сходных операций.

Ниже будут изложены приемы использования управляющих элементов этих групп для работы со списками подчиненных объектов метаданных.

Создание нового объекта метаданных. Для создания нового объекта метаданных следует нажать кнопку «Новый». В списке объектов метаданных появится новый объект, а на экран будет автоматически вызвана палитра свойств для редактирования свойств созданного объекта.

Вновь созданному объекту метаданных присваивается условное имя, состоящее из слова «Новый», и числа — порядкового номера нового объекта метаданных. Палитра свойств для редактирования свойств объекта метаданных будет содержать установки, задаваемые по умолчанию.

Редактирование свойств объекта метаданных. Для редактирования свойства объекта метаданных, уже существующего в списке, необходимо вызвать палитру свойств, дважды щелкнув левой кнопкой мыши на наименовании объекта метаданных. Также для вызова палитры свойств может использоваться кнопка «Изменить».

Редактирование свойств объекта метаданных при помощи палитры свойств выполняется по общим правилам, которые изложены ниже, в п. «Свойства объектов метаданных».

Удаление объекта метаданных. Для удаления объекта метаданных необходимо выбрать его наименование в списке мышью или клавишами и нажать кнопку «Удалить». После подтверждения указанный объект метаданных будет удален.

Упорядочивание списка объектов метаданных. Идентификаторы объектов метаданных в списке при необходимости можно расставить в нужном порядке. Для перестановки идентификатора необходимо выделить его в списке и использовать кнопки [image] («Переместить вверх»), [image] («Переместить вниз») и [image] («Упорядочить»), расположенные справа от списка реквизитов.

Свойства объектов метаданных

Свойства, которыми может обладать объект метаданных, можно условно разделить на несколько групп.

Первую группу образуют свойства, которые присущи любому объекту метаданных. Такие свойства для всех объектов метаданных имеют одинаковое наименование и одинаковый физический смысл. К таким свойствам относятся, прежде всего, идентификатор, синоним и комментарий.

Во вторую группу можно объединить свойства, которые могут встречаться у большинства объектов метаданных. Так же, как и свойства из первой группы, они имеют одинаковое наименование и одинаковый физический смысл для всех объектов метаданных, у которых они встречаются. К этой группе можно отнести такие свойства, как тип значения, длина значения, точность значения и др.

Наконец, в третью группу можно объединить свойства, специфические для конкретного типа объектов метаданных.

В этом параграфе будут описаны свойства объектов метаданных, которые можно отнести к 1-й и 2-й группам. Описания специфических свойств объектов метаданных следует читать в главах настоящего Руководства, посвященных конкретным типам объектов метаданных.

Идентификатор

Идентификатором называется краткое наименование объекта метаданных. Идентификатор используется для обозначения объекта метаданных в списках и диалогах, а также используется в программных модулях для обращения к объекту метаданных.

Идентификатор представляет собой строку длиной не более 128 символов, состоящую из букв, цифр и знаков подчеркивания. Идентификатор не должен начинаться с цифры и содержать пробелы. В идентификаторе допускается смешивать прописные и строчные буквы.

Для ввода и редактирования идентификатора в окнах редактирования объектов метаданных и палитре свойств используется поле ввода.

Синоним

Для объекта метаданных можно указать также синоним идентификатора. Если существует синоним, то при работе с системой 1С:Предприятие он будет выдаваться во всех диалогах и списках вместо идентификатора.

В отличие от идентификатора, синоним не имеет ограничений на использование символов.

Комментарий

Комментарий служит для расшифровки идентификатора объекта метаданных. При работе с системой 1С:Предприятие комментарий выдастся в скобках вслед за идентификатором (или синонимом) объекта метаданных в различных диалогах и списках.

Комментарий представляет собой произвольную строку символов и может содержать любой текст, раскрывающий смысл идентификатора. Каких-либо ограничений на длину комментария не накладывается, здесь следует руководствоваться принципом разумной достаточности.

Тип значения

Тип значения определяет, какого рода информацию может содержать объект метаданных. Тип значения может указываться только для типизированных объектов метаданных (см. п. «Типизированные и типообразующие объекты метаданных», стр. Ошибка! Закладка не определена.).

Объекты метаданных могут принимать следующие типы значений (см. таблицу).

Тип значения

Характеристика

Неопределенный

Тип значения объекта метаданных заранее неизвестен и может быть назначен средствами встроенного языка системы 1С:Предприятие непосредственно при работе пользователя с системой.

Число

Значение объекта метаданных представляет собой положительное или отрицательное число. При вводе используются цифры от 0 до 9, десятичная точка и знак «-» (минус).

Строка

Значение объекта метаданных представляет собой произвольную последовательность символов.

Дата

Значение объекта метаданных представляет собой дату в формате ДД.ММ.ГТ (число, порядковый номер месяца и две последние цифры года).

Справочник

В качестве значения объекта метаданных используется элемент из какого-либо существующего в системе 1С:Предприятие справочника. При вводе значения такого типа на экран будет выдан указанный справочник, из которого потребуется вы брать конкретный элемент справочника.

Кроме указания в качестве типа значения наименования конкретного справочника, можно также указать справочник «вообще», то есть справочник заранее неизвестного вида (но, конечно, только из числа существующих в конфигурации справочников). В этом случае ввод значения объекта метаданных будет выполняться следующим образом: сначала из списка справочников необходимо будет выбрать требуемый справочник, а затем из этого справочника выбрать конкретный элемент справочника.

Документ

В качестве значения объекта метаданных используется ссылка на документ определенного вида При вводе значения этого типа на экран будет выдан список документов указанного вида, из которого необходимо выбрать конкретный документ.

Кроме указания в качестве типа значения наименования конкретного документа, можно также указать документ «вообще», то есть документ заранее неизвестного вида (из числа существующих в конфигурации видов документов). В этом случае ввод значения объекта метаданных будет выполняться следующим образом: сначала из списка видов документов необходимо будет выбрать требуемый вид документов, а затем из списка документов этого вида выбрать конкретный документ.

Перечисление

В качестве значения объекта метаданных используется элемент перечисления. При вводе значения этого типа из выданного на экран списка значений перечисления необходимо выбрать конкретное значение.

Счет

В качестве значения объекта метаданных используется бухгалтерский счет из конкретного плана счетов. При вводе значения такого типа на экран будет выдан указанный план счетов, из которого потребуется выбрать конкретный счет.

Кроме указания в качестве типа значения наименования конкретного плана счетов, из которого будет выбираться счет, можно также указать счет «вообще», то есть заранее неизвестный план счетов (из числа существующих в конфигурации планов счетов). В этом случае для ввода значения такого типа счет необходимо будет выбрать среди всех планов счетов, существующих в системе.

План счетов

В качестве значения объекта метаданных используется ссылка на один из введенных в систему планов счетов. При вводе значения этого типа из выдаваемого на экран списка необходимо выбрать идентификатор конкретного плана счетов.

Вид субконто

В качестве значения объекта метаданных используется ссылка на один из введенных в систему видов субконто. При вводе значения этого типа из выдаваемого на экран списка необходимо выбрать идентификатор конкретного вида субконто.

Календарь

В качестве значения объекта метаданных используется ссылка иа один из введенных в систему календарей. При вводе значения этого типа из выдаваемого на экран списка необходимо выбрать наименование конкретного календаря.

Вид расчета

В качестве значения объекта метаданных используется ссылка на один из введенных в систему видов расчетов. При вводе значения этого типа из выдаваемого на экран списка необходимо выбрать наименование конкретного вида расчета.

При создании нового типизированного объекта метаданных ему по умолчанию присваивается тип значения «Строка», как наиболее «общий» из существующих типов значений. Редактирование свойства «Тип значения» выполняется путем выбора необходимого типа значения из выпадающего списка. Обратите внимание, что в этом списке строки, обозначающие типы значений «Число» и «Неопределенный» расположены выше строки «Строка».

Для удобства поиска в списке выбора перед идентификаторами справочников, документов и перечислений стоит соответствующее ключевое: «Справочник», «Документ» или «Перечисление».

Длина и точность значения

Свойство «Длина значения» задает количество позиций, отводимое в информационной базе для хранения значения объекта метаданных. Это свойство требуется устанавливать только для значений типа «строка» и «число».

Свойство «Точность» задается только для значений типа «число» и определяет максимально возможное количество знаков в дробной части. В этом случае длина целой части числового значения определяется следующим образом: длина числового значения минус одна позиция десятичной точки и минус точность числового значения. Максимальная точность числового значения — 9 знаков.

Для значений типа «строка» может быть включен признак «Неограниченная длина». В этом случае длина текста, используемого в качестве значения объекта метаданных, не ограничивается.

Внимание! Работа со строковыми значениями, у которых включен признак «Неограниченная длина», выполняется несколько медленнее, чем со строковыми значениями, у которых не включен этот признак, даже если реально такие значения имеют одинаковую длину. Поэтому используйте строковые значения неограниченной длины только тогда, когда это действительно необходимо, и для таких объектов метаданных, доступ к которым будет выполняться достаточно редко.

Для иллюстрации вышесказанного можно привести такой пример.

Бланк платежного поручения имеет поле, в котором необходимо указывать содержание платежа: за что выполняется платеж, на каком основании, включает ли уплачиваемая сумма налог на добавленную стоимость и сумма этого налога, другие сведения. Можно утверждать, что содержание — это произвольный текст с неизвестной заранее длиной.

В системе 1С:Предприятие можно создать документ «Платежное поручение» для подготовки платежных поручений. Документ «Платежное поручение» будет, очевидно, иметь реквизит «Содержание» для указания содержания платежа. Для реквизита «Содержание» вполне допустимо включить признак «Неограниченная длина». Обычно при работе с платежными поручениями частого доступа к таким документам не требуется, а поиск но содержанию платежа можно считать вообще исключительным случаем (на практике чаще всего поиск выполняется по дате, получателю платежа или сумме).

Разделять триады

Полностью данное свойство объекта метаданных можно именовать «Разделять триады цифр при показе числового значения объекта метаданных». Это свойство доступно для редактирования только для объектов метаданных с типом значения «число».

Если это свойство включено, то при вводе и показе значения объекта метаданных будут автоматически вставляться разделители между тройками цифр, разделяя тысячи, миллионы, миллиарды и так далее.

Неотрицательный

Это свойство также доступно для редактирования только для объектов метаданных с типом значения «число».

Если это свойство включено, система 1С:Предприятие будет автоматически проверять, чтобы в качестве значения объекта метаданных было указано только неотрицательное число.

Удаление объекта метаданных

Для удаления объекта метаданных необходимо выполнить следующие действия:

· в окне «Конфигурация — Метаданные» выделите объект метаданных, который предполагается удалить;

· нажмите клавишу Del.

В выданном на экран запросе подтвердите необходимость удаления объекта метаданных. После подтверждения указанный объект метаданных будет удален.

Если удаляемый объект метаданных используется другими объектами, на экран будет выдано предупреждение, и выбранный объект метаданных удален не будет.

Такая ситуация может возникать, например, если удаляемый объект метаданных типа «Справочник» указан в качестве типа значения объекта метаданных типа «Реквизит справочника» или «Реквизит шапки документа».

Если действительно необходимо удалить выбранный объект метаданных, следует исключить его использование другими объектами. В нашем примере для этого необходимо найти все реквизиты документов, где в качестве типа значения указан удаляемый справочник, и указать для этих реквизитов использование в качестве типа значения либо другого справочника, либо установить тип значения «Справочник» (вообще).

Для поиска ссылок на удаляемый объект метаданных из других объектов можно использовать информацию из сообщений, выдаваемых при попытке удаления объекта метаданных, или воспользоваться режимом поиска ссылок на объект метаданных (см. и. «Поиск ссылок на объект метаданных» на стр. Ошибка! Закладка не определена.).

Следует иметь в виду, что физическое удаление объекта метаданных из структуры метаданных и реорганизация информационной базы происходит при выполнении процедуры сохранения сделанных изменений (см. и. «Сохранение конфигурации» на стр. Ошибка! Закладка не определена.). Поэтому, если эта процедура еще не выполнялась, существует возможность восстановить удаленный объект метаданных.

Для восстановления удаленного объекта метаданных следует закрыть окно «Конфигурация — Метаданные», отказавшись от сохранения сделанных изменений и реорганизации информационной базы, и затем вновь открыть это окно. При этом следует учитывать, что будут утеряны все изменения в метаданных, которые были сделаны с момента предыдущего сохранения.

Внимание! Помните, что перед любыми изменениями в метаданных и в структуре информационной базы необходимо выполнить сохранение архивной копии информационной базы. О том, как это сделать, см. главу «Сохранение и восстановление данных».

Редактирование форм объекта метаданных

Для разработки форм представления объектов метаданных используется комплексный редактор форм, который можно вызвать одним из следующих способов:

· из контекстного меню объекта метаданных в окне «Конфигурация — Метаданные» — выбором пунктов «Редактировать форму», «Редактировать форму группы» и аналогичных;

· из окна редактирования объекта метаданных — нажатием кнопок «Форма», «Форма группы» и аналогичных.

Некоторые типы объектов метаданных могут иметь более одной формы визуального представления. В этом случае в контекстном меню таких объектов в окне «Конфигурация — Метаданные» будут присутствовать несколько пунктов «Редактировать...».

Например, объекты метаданных типа «Справочник» имеют отдельные формы для элемента справочника и для заголовка группы (элементов справочника). В контекстном меню объекта типа «Справочник» будут присутствовать пункты «Редактировать форму» и «Редактировать форму группы».

Работа с формами списка

Объекты метаданных, ориентированные на работу со списками (например, справочники), наряду с формой визуального представления элементов списка могут иметь также отдельные формы для представления списка.

Форм для представления списка может быть несколько, и в процессе настройки конфигурации задачи можно указать, какая конкретно форма списка в каком случае должна использоваться.

Для работы с формами списка объекта метаданных служит диалог «Формы списков». Этот диалог можно вызвать либо из контекстного меню объекта метаданных в окне «Конфигурация — Метаданные», либо из окна редактирования объекта метаданных. Непосредственно вызов диалога «Формы списков» выполняется выбором пункта «Редактировать» из подменю, в котором также содержатся пункты, соответствующие уже существующим формам списка.

Диалог «Формы списков» содержит окно со списком существующих форм списка, а также управляющие элементы — кнопки — для управления списком и вызова редактора форм.

Для вновь созданного объекта метаданных по умолчанию создается одна форма с идентификатором «ФормаСписка», которая используется и при редактировании списка, и при выборе из него нужного элемента.

Создание формы списка

Для создания новой формы списка необходимо нажать кнопу «Новый» и ввести в поля появившегося запроса идентификатор — краткое наименование создаваемой формы. Идентификатор представляет собой строку длиной не более 128 символов, состоящую из букв, цифр и знаков подчеркивания. Идентификатор не должен начинаться с цифры и содержать пробелы. В идентификаторе допускается смешивать прописные и строчные буквы.

При необходимости можно задать также и комментарий, но, кроме как в этом запросе, комментарий больше нигде появляться не будет.

После нажатия кнопки «ОК» имя новой формы появится в списке.

Редактирование формы списка

Для разработки форм списка используется комплексный редактор форм. Для его вызова необходимо выбрать имя формы в списке и нажать кнопку «Открыть». Диалог «Формы списков» будет убран с экрана, а на экран будет вызван редактор форм.

Подробно работа с редактором форм описана в главе «Редактор форм».

Редактор форм для редактирования конкретной формы списка можно вызвать также из контекстного меню объекта метаданных в окне «Конфигурация — Метаданные» или из окна редактирования объекта метаданных. Из подменю с перечнем существующих форм следует выбрать идентификатор формы списка, которую требуется редактировать.

Изменение идентификатора формы

Для изменения идентификатора и (или) комментария у уже существующей формы необходимо в списке форм выбрать идентификатор формы, нажать кнопку «Изменить» и в появившемся запросе отредактировать идентификатор и комментарий.

Для сохранения сделанных изменений нажмите кнопку «ОК».

Удаление формы списка

Для удаления формы списка необходимо выбрать наименование формы в диалоге «Формы списков» и нажать кнопку «Удалить».

Внимание! Удаление формы из списка производится без дополнительного предупреждения.

Последняя оставшаяся форма списка не удаляется.

Выбор формы списка

В системе 1С:Предприятие существует 2 основных режима работы со списками:

· просмотр и редактирование;

· выбор элемента из списка.

В режиме просмотра и редактирования в основном выполняется работа по вводу информации в список. В режиме выбора список используется для ввода значений в объекты метаданных: реквизиты документа, дополнительные реквизиты другого справочника и т. д. Необходимо отметить, что в режиме выбора можно выполнять и все функции редактирования списка, которые доступны в режиме просмотра и редактирования: ввод новых элементов в список, корректировка и удаление существующих элементов.

В общем случае, в режиме выбора из списка нужного элемента нет необходимости выдавать пользователю всю информацию об элементах списка. Например, при выборе организации из справочника организаций (например, при заполнении счета-фактуры) достаточно выдать в списке только наименования организаций, еще, может быть, несколько других реквизитов.

Для удобства использования списков, Конфигуратор позволяет назначить различные формы выдачи списка: для режима просмотра и редактирования и для режима выбора. Для назначения формы выдачи списка используются кнопки «Основная» и «Для выбора».

Для указания, какая форма будет использоваться при выдаче списка на экран для его просмотра и редактирования, необходимо выделить идентификатор нужной формы в списке и нажать кнопку «Основная». Идентификатор выбранной формы будет выдан слева от кнопки, кроме того, будет проставлена отметка в левой узкой колонке списка форм.

Для указания, какая форма будет использоваться при выдаче списка на экран для выбора из него требуемого элемента, необходимо выделить идентификатор формы в списке и нажать кнопку «Для выбора». Идентификатор выбранной формы будет выдан слева от кнопки, кроме того, будет проставлена отметка в правой узкой колонке списка форм.

Устанавливать отметки также можно двойным щелчком мыши, при этом указатель мыши должен быть установлен в соответствующей узкой колонке напротив имени формы.

В одной колонке можно поставить только одну отметку. Это значит, что по умолчанию одна из форм будет использоваться для просмотра и редактирования списка, и еще одна — когда список выдается на экран для выбора из него нужного элемента. Обе отметки могут быть поставлены возле одной и той же формы, тогда в обоих случаях будет использоваться одна форма.

Нельзя убрать отметку совсем — при выборе новой формы отметка с ранее выбранной формы снимается и устанавливается у новой выбранной формы.

Создание описания объекта метаданных

К любому объекту метаданных можно «прикрепить» текст, объясняющий назначение и порядок использования созданного объекта метаданных. Такой текст называется пользовательским описанием. При работе с системой 1С:Предприятие пользователь системы 1С:Предприятие может вывести описание на экран для просмотра.

Создание и корректировка пользовательского описания выполняется при помощи встроенного текстового редактора, который можно вызвать следующим способом:

· в дереве метаданных выделите наименование объекта метаданных, для которого требуется редактировать описание;

· нажмите кнопку [image] в палитре инструментов окна «Конфигурация».

В окнах редактирования объектов метаданных также обычно присутствует кнопка «Описание», нажатием которой можно вызвать текстовый редактор для редактирования описания.

Подробно работа с редактором текстов описана в главе «Редактор текстов».


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 4

Глава 4.
Работа с конфигурацией

  • Свойства конфигурации
  • Глобальный модуль
  • Общие таблицы
  • Библиотека картинок
  • Копирование объектов метаданных
  • Конструкторы
  • Поиск в конфигурации
    • Поиск в дереве метаданных
    • Поиск во всех текстах
    • Поиск ссылок на объект метаданных
  • Описание структуры метаданных
  • Сохранение конфигурации
  • Загрузка изменений
  • Сравнение и объединение конфигураций
    • Условия сравнения
    • Запуск режима сравнения и объединения конфигураций
    • Окно «Объединение конфигураций»
    • Режим объединения
    • Просмотр изменений
    • Отбор объектов и запуск процесса объединения
  • Сведения об авторе конфигурации
    • Редактирование информации об авторе конфигурации
    • Изменение заставки системы 1С:Предприятие
    • Защита паролем информации об авторе конфигурации
    • Сохранение информации об авторе конфигурации
  • Поддержка национальных языков
    • Задание кодовой страницы и порядка сортировки информационной базы
    • Изменение кодовой страницы и порядка сортировки информационной базы
    • Отрицательные последствия смены порядка сортировки
    • Проверка совпадения установок

В этой главе рассказывается о работе с конфигурацией в целом и о тех режимах и механизмах, которые используются для всех объектов метаданных.

Свойства конфигурации

Конфигурация имеет свои свойства, которые можно редактировать. Для редактирования свойств конфигурации используется палитра свойств, которую можно вызвать на экран двойным щелчком мыши на идентификаторе конфигурации — он расположен у корня дерева метаданных.

Закладка «Общие»

Управляющие элементы закладки «Общие» предназначены для редактирования идентификатора, синонима и комментария конфигурации.

Идентификатор. В отличие от идентификатора объекта метаданных, о котором говорилось в п. «Свойства объекта метаданных» на стр. Ошибка! Закладка не определена., на идентификатор конфигурации не накладывается практически никаких ограничений: это может быть произвольная строка символов, включающая пробелы и специальные символы. Единственное назначение идентификатора конфигурации — в режиме запуска «1С:Предприятис» он выдается в заголовке окна системы 1С:Предприятие.

Синоним. Для конфигурации, помимо идентификатора, можно указать также синоним идентификатора. Если существует синоним то при работе с системой 1С:Предприятие он будет выдаваться вместо идентификатора в заголовке окна.

Как и идентификатор конфигурации, синоним не имеет ограничений на использование символов.

Комментарий. Комментарий — также произвольная строка символов. Кроме палитры свойств, нигде больше не отображается.

Закладка «Задача»

Управляющие элементы закладки «Задача» служат для установки общих свойств конфигурации.

Основной язык. Указанный язык будет использоваться для выдачи фиксированных терминов, когда такие термины выдаются системой 1С:Предприятие.

Например, во встроенном языке системы 1С:Предприятие существует функция ТипЗначенияСтр(), которая возвращает тип выражения, указанного в качестве параметра этой функции, в виде строки символов. Например, если параметром является значение типа «дата», функция ТипЗначенияСтр() возвратит слово «Дата», если установлен русский язык, и слово «Date» — если английский.

«Сменить пароль». Назначает пароль, который пользователь должен указать при открытии окна «Конфигурация».

При нажатии кнопки «Сменить пароль» на экран будет выдан запрос для ввода пароля, в котором необходимо указать пароль на конфигурацию. Пароль представляет собой произвольную строку длиной не более 10 символов, состоящую из букв и цифр. Пароль не должен содержать пробелов и специальных символов.

При вводе пароль отображается звездочками, поэтому будьте внимательны.

После ввода пароля нажмите кнопку «ОК». Для надежности программа запрашивает пароль еще раз. Повторите ввод пароля и для подтверждения нажмите кнопку «ОК». Запрос для ввода пароля будет закрыт, и будет назначен новый пароль. Если пароль на конфигурацию уже существовал, старый пароль будет удален и заменен новым.

Если вы передумали устанавливать пароль, нажмите кнопку «Отмена».

Внимание! Присвоенный пароль нельзя посмотреть, поэтому будьте внимательны при установке пароля и твердо запомните его.

Для снятия пароля с конфигурации нажмите кнопку «Сменить пароль» и, не указывая нового пароля, дважды нажмите кнопку «ОК» в запросе ввода пароля.

Округление. Устанавливает правила округления результатов числовых выражений.

Если выбрана установка «Округлять 1,5 до 1», то при округлении, например, денежных сумм до целых рублей, суммы до 50 копеек включительно будут отбрасываться, а свыше 50 копеек — округляться до целого рубля.

При такой установке сумма 1 рубль 50 копеек будет округлена до 1 рубля, а сумма 1 рубль 51 копейка — до 2 рублей.

Если выбрана установка «Округлять 1,5 до 2», то суммы до 50 копеек будут отбрасываться, а свыше 50 копеек включительно — округляться до целого рубля.

Соответственно, сумма 1 рубль 49 копеек будет округлена до 1 рубля, а сумма 1 рубль 50 копеек — до 2 рублей.

Правило округления, установленное в свойствах конфигурации, при вычислении конкретного выражения можно изменить, используя функцию Окр() встроенного языка системы 1С:Предприятие.

Разрешить непосредственное удаление объектов. Данная опция включает или отключает механизм контроля ссылочной целостности.

Если опция отключена, в системе 1С:Предприятие задействуется механизм контроля ссылочной целостности. В этом случае непосредственное удаления объектов данных заменяется пометкой их на удаление, а удаление помеченных объектов выполняется в специальном режиме.

Внимание! Средства встроенного языка позволяют выполнять непосредственное удаление объектов данных, независимо от установок в конфигурации. Поэтому элементы конкретной конфигурации могут выполнять непосредственное удаление в обход механизма контроля ссылочной целостности. В этом случае ответственность за целостность данных лежит на специалисте, выполнявшем конфигурирование системы.

Если опция «Разрешить непосредственное удаление объектов» включена, механизм контроля ссылочной целостности в системе 1С:Предприятие отключен. В этом случае, если это необходимо, возможность непосредственного удаления объектов может быть ограничена определенным категориям пользователей с помощью настройки прав доступа к конкретным видам объектов метаданных.

Кроме того, если признак «Разрешить непосредственное удаление объектов» включен, и у пользователя установлены права на непосредственное удаление объектов, то он может выбрать режим удаления в режиме настройки параметров (закладка «Общие» меню «Сервис» главного меню системы 1С:Прсдприятие). Для этого переключатель «Режим удаления объектов» должен быть установлен соответственно в состояние «Непосредственное удаление». Если переключатель установлен в состояние «Пометка на удаление», то также будет задействован механизм контроля ссылочной целостности.

Подробнее о механизме контроля ссылочной целостности смотри в Руководстве пользователя по системе 1С:Прсдприятие.

Закладки «Автор» и «Заставка»

Закладки «Автор» и «Заставка» предназначены, соответственно, для просмотра и редактирования сведений об авторе конфигурации и для назначения заставки системы 1С:Предприятие.

Подробнее о редактировании сведений об авторе конфигурации см. ниже п. «Сведения об авторе конфигурации».

Глобальный модуль

Глобальным модулем называется модуль, который автоматически выполняется при старте системы 1С:Предприятие в момент загрузки конфигурации.

В глобальном модуле помещаются процедуры и функции, которые необходимо выполнять при запуске системы 1С:Предприятис, а также глобальные процедуры и функции, которые могут вызываться из любого другого модуля конфигурации.

Процедуры и функции глобального модуля являются одной из составных частей глобальною контекста. Подробнее о глобальном модуле можно узнать из книги «1С:Предприятие. Описание встроенного языка».

Для редактирования глобального модуля необходимо, находясь в окне «Конфигурация — Метаданные», выбрать пункт «Глобальный модуль» из меню «Действия» главного меню Конфигуратора. Текст глобального модуля будет выдан для редактирования в редакторе текстов системы 1С:Предприятие в режиме редактирования текста программного модуля.

Глобальный модуль, являясь частью конфигурации, сохраняется только в составе конфигурации. Использование пункта «Сохранить» из меню «Файл» главного меню Конфигуратора приведет к выполнению процедуры сохранения сделанных изменений, как это описано в п. «Сохранение конфигурации», стр. 7.

Общие таблицы

Механизм общих таблиц позволяет создавать шаблоны печатных форм, доступные из любого модуля текущей конфигурации. Например, использование общих таблиц позволяет формировать табличные документы из глобального модуля.

Для редактирования общих таблиц следует выбрать пункт «Общие таблицы» из меню «Действия» главного меню Конфигуратора. На экран будет выдано окно редактора таблиц, содержащее существующие общие таблицы.

Если в текущей конфигурации не существует общих таблиц, окно редактора таблиц будет содержать пустой лист.

Подробно порядок работы с редактором таблица см. в главах «Редактор форм» и «Редактор таблиц».

Замечание. Не рекомендуется использовать разные исходные таблицы для создания одного табличного документа. В процессе формирования табличного документа из шаблона печатной формы в готовый документ переносится, в том числе, и ширина ячеек таблицы. При «сборке» готового документа из секций разных таблиц результирующий документ может иметь непредсказуемый внешний вид.

Библиотека картинок

Конфигуратор позволяет включать в конфигурацию графические изображения — картинки. Картинки можно размещать в элементах диалогов объектов метаданных, а также обращаться к ним при помощи встроенного языка системы 1С:Предприятие.

Для работы с картинками предназначен диалог «Библиотека картинок». Для вызова диалога необходимо перейти в окно «Конфигурация — Метаданные» и выбрать пункт «Библиотека картинок» из меню действия главного меню Конфигуратора.

Этот же диалог вызывается для вставки картинки в элемент диалога при редактировании экранной формы объекта метаданных в редакторе диалогом (см. главы «Редактор форм» и «Редактор диалогов»).

Диалог «Библиотека картинок» содержит окно для просмотра картинок в библиотеке и кнопки управления библиотекой.

В окне для просмотра библиотеки картинок можно использовать линейку прокрутки для вывода на экран «скрытых» картинок или изменить размер окна, потянув мышью одну из сторон или угол диалога.

Добавление, удаление и сохранение картинок. Для добавления картинок в библиотеку используется кнопка [image] («Добавить»). При ее нажатии будет открыт стандартный диалог открытия файла, при помощи которого необходимо найти файл картинки на диске и выбрать этот файл для вставки картинки в библиотеку.

Для удаления картинки из библиотеки необходимо щелкнуть мышью на картинке и нажать кнопку [image] («Удалить»).

Кнопка [image] («Сохранить») позволяет сохранить выбранную картинку в графический файл. В открывшемся стандартном диалоге сохранения файла необходимо указать имя файла и папку, в которую будет сохранен файл.

Вставка картинок в диалог. Чтобы выбрать картинку для вставки в элемент диалога, необходимо щелкнуть мышью на картинке и нажать кнопку [image] («Выбрать»). Эта кнопка становится доступной, когда диалог «Библиотека картинок» вызывается для вставки, замены или удаления картинки в элементе диалога.

Кнопка [image] («Очистить») также становится доступной, когда диалог «Библиотека картинок» вызывается для вставки, замены или удаления картинки в элементе диалога. При нажатии этой кнопки картинка, размещенная в элементе диалога ранее, будет удалена.

Нажатие кнопки «Очистить» не оказывает никакого влияния на библиотеку картинок.

«Закрыть». Нажатие кнопки «Закрыть» закрывает библиотеку картинок.

«Идентификатор». Любой картинке из библиотеки может быть присвоен идентификатор. Наличие идентификатор позволит обращаться к картинке при помощи встроенного языка системы 1С:Предприятие.

Чтобы назначить идентификатор, необходимо выделить нужную картинку в окне просмотра диалога «Библиотека картинок», нажать кнопку «Идентификатор» и в появившемся диалоге вести идентификатор картинки. Идентификатор представляет собой символьную строку. Идентификатор не должен начинаться с цифры и содержать пробелы и специальные символы.

Идентификатор будет присвоен картинке после нажатия кнопки «ОК». Присвоенный картинке идентификатор будет отображаться под картинкой в диалоге «Библиотека картинок».

Если при вводе идентификатора была допущена ошибка, то при нажатии кнопки «ОК» запрос ввода идентификатора будет закрыт, но для картинки будет сохранен предыдущий идентификатор

Копирование объектов метаданных

Конфигуратор системы 1С:Предприятис имеет возможность копирования объектов метаданных как внутри текущей конфигурации, так и между конфигурациями. Для копирования используются возможности Буфера Обмена MS Windows.

Копирование. Чтобы скопировать объект метаданных, необходимо сначала «запомнить» его в Буфере Обмена MS Windows, используя команды «Копировать» или «Вырезать» из меню «Действия» главного меню Конфигуратора.

Затем необходимо выделить идентификатор любого объекта метаданных на той ветви дерева метаданных, куда требуется вставить копию объекта, и использовать команду «Вставить». Если копирование возможно, на выбранной ветви дерева метаданных появится новый объект.

Правила копирования. При выполнении копирования Конфигуратор соблюдает ряд правил, поэтому не всегда копирование объекта метаданных будет возможно. Формальный признак возможности копирования — доступность пункта «Вставить» в меню «Действия» главного меню Конфигуратора или соответствующей кнопки в панели инструментов.

Ниже будут в общем виде изложены правила копирования объектов метаданных.

Замечание. Для лучшего понимания этих правил желательно ознакомиться с главами настоящего Руководства, посвященными видам объектов метаданных

Вместе с объектом метаданных копируются все его свойства: подчиненные объекты метаданных (для агрегатных объектов), формы объекта метаданных, описание и т. д.

Скопированный объект метаданных пытается «привязаться» к конфигурации, насколько это возможно. Привязка осуществляется по идентификаторам объектов метаданных.

Например, если в копируемом объекте метаданных типа «Документ» присутствует реквизит с типом значения «Справочник.Сотрудпики», то в повой конфигурации будет выполнен поиск справочника с таким же идентификатором — «Сотрудники». Если такой справочник будет найден, у реквизита документа будет соответствующим образом установлен тип значения, если не найден — реквизиту документа будет присвоен тип значения «Справочник (вообще)».

При невозможности выполнения «привязки» у объекта метаданных сохраняется тип значения, насколько это возможно, как это проиллюстрировало выше. Аналогичным образом корректируются и другие тины значений, образованные объектами метаданных: тип «Конкретный вид документа» заменяется типом «Документ (вообще)» и так далее. Исключение составляет значение типа «Перечисление»: если перечисление не найдено, тип значения копируемого объекта метаданных преобразуется в строку.

Если копируемый журнал имеет дополнительные графы, он преобразуется в общий журнал. Для такого журнала будет выполнена также привязка дополнительных граф. Те графы, которые не удастся привязать, будут удалены из журнала.

Конструкции встроенного языка системы 1С:Предприятие в форме и модулях объекта метаданных не привязываются.

При копировании возможно преобразование объектов метаданных, но это тоже выполняется «в разумных пределах». Например, запомненный реквизит документа можно попытаться вставить в справочник, регистр или журнал документов. При вставке реквизит документа будет преобразован в реквизит справочника или в измерение регистра, но преобразовать его в графу журнала документов невозможно.

Также невозможно преобразование агрегатных объектов метаданных. Например, нельзя скопировать запомненный объект метаданных типа «Документ» на ветвь «Справочники».

Конструкторы

Конфигуратор системы 1С:Предприятие включает набор Конструкторов — вспомогательных инструментов, облегчающих и ускоряющих создание типовых элементов конфигурации. О конструкторах объектов метаданных говорилось в предыдущей главе. Краткие сведения об остальных конструкторах приведены ниже.

Конструктор печати предназначен для облегчения процесса создания печатной формы справочника (элемента и списка), документа и журнала документов.

Назначение Конструктора макета отчета — автоматическое создание шаблона печатной формы объекта метаданных.

Назначение Конструктора бухгалтерских запросов — автоматическое создание отчета или алгоритма обработки для получения бухгалтерских итогов в одном из нескольких возможных разрезов.

Конструктор запросов облегчает разработку модулей, в которых используется механизм запросов системы 1С:Предприятие. Конструктор запросов позволяет сформировать текст нового запроса в полуавтоматическом режиме, последовательно заполняя выдаваемые на экран диалоги.

Конструктор ввода на основании предназначен для создания процедуры ввода на основании в модуле формы документа.

Конструктор движений регистров помогает создать в модуле документа оперативного учета алгоритм формирования изменений в регистрах, которые необходимо выполнить при проведении данного документа;

Конструктор формирования операции упрощает оформление в модуле документа бухгалтерского учета бухгалтерской операции генерируемой этим документом.

Поиск в конфигурации

Дерево метаданных, представленное в окне «Конфигурация», может представлять собой разветвленную структуру, содержащую множество ветвей и информацию о многих десятках объектов метаданных. Это особенно справедливо для сложных конфигураций, использующих возможности двух и более компонент системы 1С:Предприятие, и предназначенных для автоматизации учета по многим направлениям деятельности предприятия.

Конфигуратор содержит ряд режимов и механизмов, облегчающих поиск нужной информации в метаданных.

Поиск в дереве метаданных

Конфигуратор позволяет выполнять поиск объекта метаданных по вхождению последовательности символов в идентификатор, синоним или комментарий объекта метаданных.

Для осуществления поиска необходимо, находясь в окне «Конфигурация—Метаданные», выбрать пункт «Искать» из подменю «Поиск» меню «Действия» главного меню Конфигуратора. На экран будет выдан диалог для установки параметров поиска.

В поле «Искать» этого диалога следует ввести образец для поиска или нажать кнопку [image] раскрытия списка и выбрать один из образцов, которые были использованы ранее в операциях поиска.

Группа флажков «Использовать» позволяет ограничить область поиска строки символов. Устанавливать флажки в этой группе можно в любых сочетаниях, однако, если не установлен ни один флажок, поиск все равно будет выполняться по идентификаторам объектов метаданных.

Группа «Направление» позволяет указать направление поиска:

«Назад» — вверх по дереву метаданных от текущей позиции курсора;

«Вперед» — вниз по дереву метаданных.

Если установлен флажок «Искать целые слова», поиск будет производиться по полному совпадению указанной строки символов с идентификатором, синонимом или комментарием объекта метаданных (в зависимости от установок группы «Использовать»).

После установи необходимых параметров для выполнения поиска следует нажать кнопку «Искать». Диалог будет закрыт и будет выполнен поиск в дереве метаданных, поиск будет выполняться не только в открытых (как «быстрый» поиск), по и в закрытых ветвях дерева метаданных.

Если указанная последовательность символов будет найдена, курсор в дереве метаданных будет установлен на идентификатор соответствующего объекта метаданных. Если необходимо, ветвь дерева метаданных, содержащая найденный объект, будет раскрыта автоматически.

Для повторения поиска можно использовать следующие клавиши и комбинации клавиш:

F3 повторяет поиск с прежними параметрами;

Shift+F3 повторяет поиск вперед по дереву метаданных;

Alt+F3 повторяет поиск назад по дереву метаданных.

Поиск во всех текстах

Режим поиска во всех текстах предназначен для поиска строки во всех модулях, диалогах, таблицах и описаниях конфигурации. Этот режим может быть использован, например, для поиска всех вызовов некоторой глобальной процедуры или обращения к какому-либо реквизиту в разных модулях.

Для вызова этого режима следует выбрать пункт «Поиск во всех текстах» в меню «Конфигурация» главного меню Конфигуратора. На экран будет выдан диалог для задания параметров поиска.

В поле «Найти» этого диалога следует ввести образец для поиска или нажать кнопку [image] раскрытия списка и выбрать один из образцов, которые были использованы ранее в операциях поиска.

Чтобы различать при поиске прописные и строчные буквы, установите флажок «Учитывать регистры». При установленном флажке «Искать целые слова» будут найдены только целые слова, а не части слов.

Группа «Искать в» позволяет указать, где следует искать указанный образец. Если все флажки отключены, поиск производиться не будет.

Нажатие кнопки «Дополн.>>» открывает управляющие элементы для включения в поиск внешних отчетов и обработок.

Флажки «Искать в конфигурации» и «Искать во внешних отчетах и обработках» позволяют выбрать область поиска. Если оба флажка сняты, поиск выполняться не будет.

Если флажок «Искать во внешних отчетах и обработках» установлен, в поле «Путь» необходимо указать имя каталога, в котором располагаются внешние отчеты. Нажав кнопку «…», можно открыть стандартный диалог выбора каталога.

Для начала поиска следует нажать кнопку «Искать». В процессе поиска в окно «Список найденных вхождений» будут выдаваться строки, содержащие указанную последовательность символов.

В любого момента можно процесс поиска прервать, нажав клавишу Esc. На экран будет выдан запрос «Прервать выполнение обработки?», в котором можно подтвердить прекращение поиска, ответив «Да», или продолжить его.

По окончании поиска в окне «Список найденных вхождений» будет выдан список найденных вхождений искомой строки.

Если дважды щелкнуть мышью одну из строк в списке найденных вхождений, то текст, содержащий выбранную строку, будет открыт для редактирования. Если выбрана строка, содержащая ссылку на внешний отчет (обработку), то соответствующий внешний отчет (обработка) будет автоматически загружен в Конфигуратор.

Из списка найденных вхождений можно также выполнить замену найденной строки. Для этого необходимо выделить строку, в которой требуется произвести замену, нажатием правой кнопки мыши вызвать контекстное меню и выбрать пункт «Заменить».

На экран будет выдан диалог «Замена во всех текстах».

В верхней части диалога для информации выдастся название модуля (таблицы, диалога, описания), содержащего строку, в которой будет производиться замена. В не редактируемом поле «В строке» выдается строка, в которой будет производиться замена. Содержимое этих двух полей диалога соответствует выбранной строке списка найденных вхождений.

Поле «заменить» содержит образец для замены: это тот образец для поиска, который был указан в диалоге «Поиск во всех текстах».

Наконец, в поле «на:» диалога следует ввести строку замены или нажать кнопку [image] раскрытия списка и выбрать одну из строк, которые были использованы для замены ранее.

Назначение кнопок этого диалога достаточно простое:

· кнопка «Закрыть» закрывает диалог;

· кнопка «Заменить» выполняет замену в текущей строке и переходит к следующей строке списка найденных вхождений;

· кнопка «Пропустить» выполняет переход к следующей строке списка найденных вхождений без выполнения замены в текущей строке;

· кнопка «Для всех» выполняет замену сразу для всех строк списка найденных вхождений.

Поиск ссылок на объект метаданных

Объекты конфигурации, как правило, тесно связаны друг с другом. Такая связь закладывается разработчиком конфигурации на этапе проектирования и затем реализуется в процессе создания объектов конфигурации и разработке модулей. Наличие подобных связей требует согласованного внесения изменения во все взаимосвязанные элементы конфигурации.

Поиск ссылок на объект метаданных позволяет выявить подобные связи между объектами метаданных.

Чтобы воспользоваться режимом поиска ссылок, необходимо перейти в окно «Конфигурация — Метаданные» и выделить объект, ссылки на который требуется найти. Затем необходимо выбрать пункт «Поиск ссылок на объект» из меню «Действия» главного меню Конфигуратора.

В результате на экране будет выдан диалог «Ссылки на объект...», содержащий список объектов метаданных, ссылающихся на выбранный объект. Если на выбранный объект метаданных нет ссылок из других объектов, будет выдано соответствующее сообщение.

Диалог позволяет перейти к любому объекту метаданных из этого списка. Для этого необходимо либо дважды щелкнуть мышью наименование объекта метаданных в списке, либо выделить наименование объекта метаданных и нажать кнопку «Перейти» диалога. В результате этих действий будет активизировано окно «Конфигурация», а выбранный объект будет выделен в дереве метаданных.

Описание структуры метаданных

Конфигуратор позволяет вывести в виде текста информацию обо всех объектах метаданных конфигурации. Для этого следует выбрать пункт «Описание структуры метаданных» из меню «Конфигурация» главного меню программы. Создание описания объектов метаданных для сложных конфигураций может занимать продолжительное время.

После окончания создания описания конфигурации будет открыто окно текстового редактора с описанием. Описание можно сохранить в текстовом файле, воспользовавшись меню «Файл» главного меню Конфигуратора.

Сохранение конфигурации

Редактирование объектов метаданных, интерфейсов и пользовательских нрав не оказывает немедленного влияния на информационную базу. Для «переноса» в информационную базу изменений, сделанных в конфигурации, следует выполнить процедуру сохранения, которая, при необходимости, будет сопровождаться реструктуризацией информационной базы.

Внимание! Перед выполнением любых операций с информационной базой рекомендуется выполнить сохранение данных. Как это сделать — см. в главе «Сохранение и восстановление данных».

Перед выполнением сохранения конфигурации убедитесь в наличии достаточного свободного пространства на жестком диске: если ожидается реорганизация информационной базы, размер свободного пространства должен быть не меньше текущего размера информационной базы.

Чтобы выполнить сохранение конфигурации, выберите пункт «Сохранить» в меню «Файл» главного меню Конфигуратора.

Автоматическая проверка на не сохраненную информацию выполняется также при закрытии окна «Конфигурация» или при выходе из Конфигуратора. Если необходимо, запускается процедура сохранения конфигурации.

Процесс сохранения конфигурации сопровождается выдачей различных предупредительных и информационных сообщений.

Если изменения не затрагивают структуры метаданных — например, были отредактированы только печатные формы документов, — реорганизация базы данных не требуется. В этом случае выдается запрос «Данные были модифицированы. Сохранить?».

Окно запроса содержит 2 кнопки. Для сохранения всех сделанных изменений нажмите кнопку «Да». Для отказа от сохранения сделанных изменений нажмите кнопку «Нет».

Если в процессе редактирования конфигурации изменялись объекты метаданных; добавлялись новые документы, справочники, константы и так далее; редактировались свойства у существующих объектов метаданных, — процесс сохранения таких изменений требует реорганизации информационной базы и может занять длительное время. В этом случае выдается запрос о сохранении метаданных. Для отказа от сохранения изменений в конфигурации следует нажать кнопку запроса «Нет». Если нажать кнопку запроса «Да», то программа начнет анализ изменений, произведенных в конфигурации. Через некоторое время на экран будет выдан запрос, в котором будут перечислены те изменения, которые предстоит сделать в информационной базе.

Если в нем нажать кнопку «Отмена», никаких изменений сделано не будет и произойдет возвращение в программу. После нажатия кнопки «Принять» будет произведена реорганизация информационной базы и, в случае ее успешного завершения, на экран будет выдано соответствующее сообщение.

Загрузка изменений

Конфигурация задачи (структура метаданных, наборы прав и пользовательские интерфейсы) сохраняется на диске в каталоге с базой данных (определяется параметром /D в командной строке запуска 1 С: Конфигуратора) в файле с именем 1CV7.MD.

Система 1С:Предприятие не позволяет одновременно использовать созданную конфигурацию и вносить в нес изменения при помощи Конфигуратора — при попытке сохранить сделанные изменения будет выдано соответствующее сообщение о блокировке метаданных.

Однако система 1С:Прсдприятие позволяет разделить процесс создания конфигурации задачи и использования созданной конфигурации, и выполнять эти действия на разных компьютерах. Однако в результате информация в файле конфигурации 1CV7.MD и структура информационной базы, созданная по этому файлу, будут различными на разных компьютерах. Для загрузки измененного файла конфигурации и реорганизации информационной базы в соответствии с этими изменениями существует функция загрузки измененной конфигурации.

Для переноса изменений на другой компьютер необходимо любым путем перенести на этот компьютер (например, при помощи дискет) файл 1CV7.MD, содержащий новую конфигурацию структуры метаданных, и выполнить загрузку изменений.

Для успешной загрузки изменений необходимо соблюдать следующие условия:

· загружаемая конфигурация должна быть прямым потомком той конфигурации, в которую выполняется загрузка;

· конфигурация, в которую выполняется загрузка, не должна была модифицироваться.

Для загрузки изменений необходимо в меню «Конфигурация» главного меню программы выбрать пункт «Загрузить измененную конфигурацию». Перед вызовом этой функции необходимо закрыть все открытые окна в Конфигураторе.

На экран будет выдан стандартный диалог открытия файла, при помощи которого следует найти и открыть новый файл метаданных. После этого начнется процесс анализа различий старой и новой структур метаданных и выполнение необходимых преобразований.

Сравнение и объединение конфигураций

Режим сравнения и объединения конфигураций позволяет детально сравнить две конфигурации и объединить их. Возможно выборочное объединение по результатам сравнения. Существенно, что этот режим не требует, чтобы одна из сравниваемых конфигураций была потомком другой, как при загрузке изменений, описанной в предыдущем разделе.

Этим режимом можно воспользоваться, например, в случае, когда одну конфигурацию параллельно разрабатывают несколько человек. Время от времени им необходимо объединять результаты работы (или хотя бы один раз объединить все результаты в конце разработки). Тогда, если даже в начале у разработчиков и была некая одинаковая исходная конфигурация, невозможно воспользоваться описанной в предыдущем разделе загрузкой изменений. Точнее, с ее помощью можно внести в исходную конфигурацию изменения, сделанные только одним разработчиком.

Режим сравнения и объединения конфигураций можно также использовать для сравнения двух конфигураций без объединения.

Наконец, в ситуации, когда в исходную конфигурацию нужно загрузить сделанные изменения, также полезно предварительно просмотреть и оценить их, воспользовавшись режимом сравнения и объединения конфигураций.

Сравнению в этом режиме подвергается как общие свойства агрегатных объектов метаданных, таких как справочники, документы, журналы, так и их отдельные реквизиты. Отдельно сравниваются формы объектов: тексты, таблицы и диалоги. При этом результаты сравнения общих свойств и текстов можно просмотреть детально, а по таблицам и диалогам — только зафиксировать наличие различий.

Внимание! Не рекомендуется использовать этот режим для объединения конфигураций, существенно отличающихся друг от друга. К сожалению, степень «существенности» различий конфигураций нельзя описать количественно, их можно оценить по какими-либо косвенным признакам. Например, в результате сравнения какого-либо модуля процедуры оказались одна «внутри» другой. В этом случае, скорее всего, корректного слияния конфигураций не произойдет, от слияния следует отказаться и выполнить необходимые изменения вручную.

Условия сравнения

Сравниваются объекты метаданных, имеющие одинаковые идентификаторы, например, Справочник.Товары в одной конфигурации и Справочник.Товары в другой считаются одним справочником и будут сравниваться.

В частности, ссылки также сравниваются по идентификаторам. (Сравнение ссылок с одинаковыми идентификаторами необходимо потому, что, кроме идентификатора, у ссылки есть внутреннее программное содержание, которое и позволяет «правильно попадать» по ссылке в нужное место, и программе, возможно, придется изменить это содержание при объединении конфигураций). Например, не будут сравниваться ссылки в случае, когда в графу журнала нужно поместить сумму, являющуюся реквизитом документа Накладная, а идентификатор ссылки записан в текущей конфигурации как Накладная.Сумма, а в загружаемой — как Накладная.Итого. Такая ссылка считается двумя разными ссылками. Первая ссылка считается присутствующей только в текущей конфигурации, а в загружаемой конфигурации — удаленной. Вторая ссылка считается отсутствующей в текущей конфигурации, а в загружаемой конфигурации — новой.

Запуск режима сравнения и объединения конфигураций

Как будет видно ниже, хотя сравниваемые конфигурации можно считать в основном равноправными (приоритет при объединении можно отдать любой из них), в определенном аспекте именно текущая конфигурация считается основной, в которую вносятся не повреждающие ее изменения из загружаемой конфигурации. Исходя из этих соображений, рекомендуется выбирать, какую из двух конфигураций сделать текущей.

Выбранная конфигурация становится текущей, когда с ней запускается 1 С Предприятие в режиме Конфигуратора. Для загрузки второй конфигурации, которую можно будет сравнить и объединить с текущей, нужно в меню «Конфигурация» выбрать пункт «Объединение конфигураций». Появится стандартный диалог «Открыть файл конфигурации», в котором нужно найти и открыть файл 1CV7.MD загружаемой конфигурации (см. о файле 1CV7.MD в предыдущем разделе).

Совет. Если загружаемая конфигурация установлена на компьютере, путь к файлу 1CV7.MD можно предварительно посмотреть, например, в окне «Запуск 1С:Прсднриятия»: выбрать в нем эту конфигурацию и нажать «Изменить»).

Процесс загрузки и сравнения загружаемой конфигурации с текущей сопровождается сообщениями в строке состояния Конфигуратора. В этих сообщениях указываются объекты метаданных, сравниваемые в настоящий момент.

Окно «Объединение конфигураций»

Процесс загрузки и сравнения продолжается несколько секунд, после чего открывается окно «Объединение конфигураций». Оно позволяет:

· ознакомиться с тем, какие объекты метаданных в двух конфигурациях отличаются,

· выбрать объекты, по которым необходимо детально изучить различия,

· вызвать выбранные объекты в специальное окно просмотра,

· установить один из двух возможных режимов объединения конфигураций,

· задать, какие из объектов включить в объединение,

· запустить процесс объединения конфигураций.

Первая колонка окна «Объединение конфигураций» — «Объект» — содержит дерево, на вид отличающееся от дерева в окне «Конфигурация — Метаданные» только тем, что можно установить (или снять) флажок около каждого объекта (см. пункт «Отбор объектов и запуск процесса объединения» ниже).

Вторая колонка — «Статус объекта» — может для конкретного объекта содержать указание «Объект изменен», «Объект добавлен» или не содержать никакого указания. Последнее означает, что различий непосредственно по данному объекту метаданных в сравниваемых конфигурациях не найдено. Однако, нужно иметь в виду, что, в отличие от окна «Конфигурация», в окне «Объединение конфигураций» показаны только те объекты метаданных, по которым найдены какие-либо изменения. Поэтому отсутствие статуса изменения или добавления объекта означает, что это агрегатный объект, и что изменения найдены для какого-то из составляющих его элементов. Чтобы обнаружить измененный или добавленный элемент, нужно развернуть соответствующую агрегатному объекту ветвь дерева.

Третья колонка, «Дополнение», для некоторых объектов содержит сообщение «Возможна потеря данных!!!». Такое сообщение выдастся, если есть вероятность, что изменения могут привести к потере данных.

Например, если у справочника сменилось подчинение, то, вероятно, это может привести к потере данных, что и вызовет такое сообщение. Если же у справочника поменялся комментарий, то к потере данных это привести не может, и сообщения не будет.

Нужно иметь в виду, что данное сообщение ориентировано на выбор загружаемой конфигурации в качестве приоритетной (см. переключатель в нижней части окна): в этом случае оцениваются потери данных в текущей конфигурации. Например, если некоторому параметру в текущей конфигурации определена длина 9 символов, а в загружаемой конфигурации — 5 символов, присвоение приоритета загружаемой конфигурации приведет при объединении к потере данных; именно эта ситуация отражена в колонке «Дополнение». Если же ситуация обратная, то есть, параметру в загружаемой конфигурации определена длина 9 символов, а в текущей конфигурации — 5 символов, то назначение текущей конфигурации приоритетной приведет при объединении к потере данных загружаемой конфигурации; но эта ситуация сообщениями в колонке «Дополнение» не учитывается. То есть, основным режимом работы в режиме объединения конфигураций считается такой, когда приоритет отдается загружаемой конфигурации и оценивается ущерб, который это может причинить текущей.

Режим объединения

В нижней части окна «Объединение конфигураций» можно установить режим объединения, задаваемый методом объединения и приоритетом одной из конфигураций.

Выбор метода «Замещать объекты» означает, что объект метаданных будет добавлен, если он новый, или замещен, если он измененный. Причем переносится вся структура объекта, модули, описания, формы. При этом приоритет однозначно отдается загружаемой конфигурации.

При выборе метода «Объединять объекты» происходящее при объединении конфигураций зависит от установленного приоритета.

Если из пришедшей конфигурации необходимо взять только новое и максимально сохранить старое, необходимо в рамке «Приоритет конфигурации» выбрать текущую конфигурацию. В этом режиме добавляются только новые объекты метаданных.

Тексты объединяются следующим образом:

· удаленное (то есть то, что имеется в текущей конфигурации, по отсутствует в загружаемой) остается в тексте,

· новое (то есть присутствующее в загружаемой конфигурации и отсутствующее в текущей) добавляется,

· измененное (то, что есть в обоих конфигурациях, но различается в них) добавляется в виде комментариев из загружаемой конфигурации и остается неизменным то, что было в текущей.

Таблицы объединяются следующим образом:

· таблица текущей конфигурации остается,

· таблица загружаемой конфигурации добавляется, но, если ее имя совпадает с именем таблицы текущей конфигурации, оно изменяется (например, «Таблица» à «Таблица!»); таким образом, по этому имени в объединенной конфигурации будет вызываться таблица текущей конфигурации, но таблица загружаемой тоже не потеряна.

Диалоги объединяются следующим образом:

· новые элементы добавляются,

· те элементы диалога, что в двух конфигурациях отличаются, остаются такими, какие они в текущей.

Если приоритет у загружаемой конфигурации, объединение происходит следующим образом.

Добавляются новые объекты метаданных и меняются измененные.

Тексты:

· удаленное превращается в комментарии,

· новое добавляется,

· измененное в текущей конфигурации превращается в комментарии, а из загружаемой конфигурации добавляется.

Таблицы объединяются следующим образом:

· таблица загружаемой конфигурации добавляется,

· таблица текущей конфигурации остается, но, если се имя совпадает с именем таблицы загружаемой конфигурации, имя таблицы текущей конфигурации изменяется (тем самым, таблица текущей конфигурации не потеряна, но вызываться будет та, что из загружаемой).

Диалоги объединяются следующим образом:

· новые элементы добавляются,

· те элементы диалога, что в двух конфигурациях отличаются, становятся такими, какие они в загружаемой.

Просмотр изменений

Перед объединением конфигураций полезно просмотреть конкретные различия их объектов. Для этого нужно, установив выделение на строке, соответствующей интересующим объектам, нажать кнопку «Сравнить».

Кнопка недоступна, если объекты не текстовые и не объекты метаданных непосредственно: формы и таблицы визуально не сравниваются, по ним только фиксируется наличие изменений. Можно с помощью кнопки «Открыть» посмотреть, как они выглядят в текущей конфигурации. Для их просмотра в загружаемой конфигурации придется отдельно запустить с ней 1С:Предприятие в режиме Конфигуратора.

Кнопка «Сравнить» недоступна также в случае, если объект не имеет статуса «Объект изменен» или «Объект добавлен» (просмотр не имеет смысла, поскольку нет изменений).

Если кнопка «Сравнить» доступна, ее нажатие открывает окно «Различие между: ...». Если сравниваемые тексты большие, перед открытием окна может пройти несколько секунд.

В двух колонках окна просмотра различий помещены тексты, относящиеся в сравниваемых конфигурациях к выбранному объекту. В текстах разными цветами выделены удаленные, измененные и добавленные (новые) строки. В окне имеется панель инструментов со стандартными для текстового редактора 1С:Предприятия кнопками поиска и закладок, а также двумя кнопками, специфическими для данного окна. Это большие желто-зеленые стрелки, направленные одна вверх, другая вниз, служащие для перехода на начало ближайшего предыдущего или последующего измененного текста. Они полезны в том случае, если попался большой кусок текста без изменений. Для закрытия окна просмотра различий достаточно нажать Esc.

Отбор объектов и запуск процесса объединения

Указать, какие объекты при объединении конфигураций следует включить в процесс объединения, а какие выключить, позволяет флажок около каждого объекта в окне «Объединение конфигураций». Установленный флажок показывает, что данные объекты двух конфигураций будут объединяться. Те объекты, в строке которых текст написан серым, не могут быть самостоятельно включены в объединение конфигураций, так как являются элементами других (агрегатных) объектов. Элементы агрегатного объекта могут быть включены или выключены вместе с самим объектом. Можно включить все и выключить все объекты кнопками «Вкл. все» и «Выкл. все».

После просмотра изменений, выбора режима объединения и установки или снятия «флажков включения в процесс объединения» объектам конфигураций можно запустить процесс объединения кнопкой «ОК».

Сведения об авторе конфигурации

Система 1С:Предприятие является совокупностью двух тесно связанных частей: технологической платформы и конфигурации. Технологическая платформа разрабатывается фирмой «1С». Можно сказать, что на всех предприятиях, использующих систему «1С:Предриятие», работают одинаковые копии этой технологической платформы (естественно, с учетом различия разных версий).

Конфигурация, в отличие от технологической платформы, может произвольно изменяться конечным пользователем — специалистом по конфигурированию системы 1С:Предприятие. Обычно изменения выполняются в процессе внедрения системы 1С:Преднриятие с целью настройки на особенности учета предприятия, на котором внедряется система. При внедрении может браться за основу типовая конфигурация, поставляемая с системой 1С:Предприятие, или создаваться «с нуля» новая конфигурация. В последнем случае конфигурация уже вполне может считаться объектом авторского нрава.

Конфигуратор позволяет записать в конфигурацию информацию об авторе конфигурации и его логотип, и, если необходимо, защитить эту информацию паролем от несанкционированного изменения. Просмотр информации об авторе конфигурации выполняется при помощи пункта «О программе» из меню «Помощь» главного меню системы 1С:Преднриятие — как в режиме запуска «1С:Прсдприятис», так и в режиме Конфигуратора.

Кроме этого, Конфигуратор позволяет также заменить центральную часть заставки системы в режиме запуска «1С:Прсдприятие». Это может быть использовано для отражения в заставке особенностей конкретной конфигурации. О том, как это выполняется, будет рассказано ниже.

Редактирование информации об авторе конфигурации

Ввод и редактирование информации об авторе конфигурации выполняется в диалоге «Автор конфигурации», который вызывается из палитры свойств конфигурации. Для вызовы диалога:

· откройте палитру свойств конфигурации двойным щелчком мыши на идентификатор конфигурации (он расположен у корня дерева метаданных);

· перейдите к закладке «Автор». Закладка показывает текущее содержание информации об авторе конфигурации;

· нажмите кнопку «Изменить».

Диалог «Автор конфигурации» также можно вызвать, нажав кнопку «Изменить» на закладке «Заставка» палитры свойств конфигурации.

Если сведения об авторе конфигурации были защищены паролем, будет выдан запрос на ввод пароля. После указания пароля диалог «Автор конфигурации» будет открыт.

Диалог содержит текущую информацию об авторе конфигурации, а также управляющие элементы для редактирования этой информации.

Краткая информация. В это поле следует ввести текст, который будет выдаваться в заставке системы в режиме запуска «1С:Предприятие». Длина текста в этом поле ограничена примерно 60-ю символами.

Развернутая информация. В это поле вводится текст, который будет выдаваться в диалоге «О программе». Длина вводимого текста ограничена размерами поля.

Логотип. Управляющие элементы этой группы позволяют выбрать графический файл, содержащий логотип автора конфигурации.

Логотип автора конфигурации будет выдаваться в диалоге «О программе».

Логотип должен представлять собой картинку размером 64х64 пикселя с палитрой 256 цветов. Для создания файла логотипа рекомендуется использовать палитры, входящие в комплект поставки системы 1С:Предприятие. Файлы палитр для различных средств редактирования графических файлов располагаются в каталоге BIN каталога, выбранного для установки (но умолчанию это каталог C:\Program Files\lCv77):

main.cpl для Corel Photo-Paint;

main.act для Adobe Photoshop;

main.pal для Microsoft Paint.

Для выбора файла логотипа необходимо нажать кнопку «Выбрать» и в стандартном диалоге открытия файла найти и открыть файл. Выбранный логотип будет показан в диалоге «Автор конфигурации ».

Для отказа от вставки логотипа следует нажать кнопку «Очистить».

Изменение заставки системы 1С:Предприятие

Кроме информации об авторе конфигурации, Конфигуратор позволяет изменить центральную часть заставки системы 1С:Предприятие, которая выдается в режиме запуска «1С:Предприятие».

Файл заставки. Заставка представляет собой файл формата BMP 460х105х256 цветов (не компрессированный).

Файл должен иметь определенную цветовую палитру. Для создания файла заставки используйте палитры, входящие в комплект поставки системы 1С:Предприятие. Файлы палитр для различных средств редактирования графических файлов располагаются в каталоге BIN системы (см. выше).

В качестве образца для создания собственной заставки можно взять файл SLICE.BMP, входящий в комплект поставки системы 1С:Предприятие. При установке системы он помещается в подкаталог BIN каталога, выбранного для установки (по умолчанию это каталог C:\Program Files\lCv77).

Выбор заставки. Для изменения заставки предназначены управляющие элементы группы «Заставка» в диалоге «Автор конфигурации».

Для выбора файла заставки необходимо нажать кнопку «Выбрать» и в стандартном диалоге открытия файла найти и открыть файл. Выбранная файл будет заменять собой центральную часть заставки системы 1С:Предприятие. Для отказа от смены заставки следует нажать кнопку «Очистить».

Файл заставки для информационной базы. Индивидуальная заставка может быть назначена для конкретной информационной базы, с которой работает система 1С:Предприятие. Эта заставка будет использоваться, если не назначена заставка для конфигурации в целом (см. выше).

Для замены заставки конкретной информационной базы следует создать файл заставки, как рассказано выше, и поместить его в каталог информационной базы под именем lcv7Splh.dib.

Последовательность использования заставок. В общем случае, система 1С:Предириятие при запуске в режиме «1С:Предприятие» может выдавать одну из 3-х заставок. Поиск заставок выполняется в следующем порядке:

· если существует заставка, назначенная для конфигурации в целом (в диалоге «Автор конфигурации»), выдается эта заставка;

· если она отсутствует, выдается заставка конкретной информационной базы (файл lcv7Splh.dib);

· если обе эти заставки отсутствуют, выдается системная заставка. Ее вид зависит от наличия компонент системы 1С:Преднриятие («Бухгалтерский учет», «Оперативный учет», «Расчет»).

Защита паролем информации об авторе конфигурации

Информацию об авторе конфигурации, его логотип и заставку конфигурации можно защитить от несанкционированного изменения при помощи пароля. Если пароль назначен, его необходимо будет указывать всякий раз при вызове диалога «Автор конфигурации».

Для назначения пароля следует в диалоге «Автор конфигурации» нажать кнопку «Пароль». На экран будет выдан запрос для ввода пароля, в котором необходимо указать пароль на сведения об авторе конфигурации. Пароль представляет собой произвольную строку длиной не более 10 символов, состоящую из букв и цифр. Пароль не должен содержать пробелов и специальных символов.

При вводе пароль отображается звездочками, поэтому будьте внимательны.

После ввода пароля нажмите кнопку «ОК». Для надежности программа запрашивает пароль еще раз. Повторите ввод пароля и для подтверждения нажмите кнопку «ОК». Запрос для ввода пароля будет закрыт, и будет назначен новый пароль. Если пароль уже существовал, он пароль будет удален и заменен новым.

Если вы передумали устанавливать пароль, нажмите кнопку «Отмена».

Внимание! Присвоенный пароль нельзя посмотреть, поэтому будьте внимательны при установке пароля и твердо запомните его.

Для снятия пароль нажмите кнопку «Пароль» и, не указывая нового пароля, дважды нажмите кнопку «ОК» в запросе ввода пароля.

Сохранение информации об авторе конфигурации

Сведения об авторе конфигурации являются одними из свойств конфигурации. Поэтому, чтобы сведения об авторе были внесены в конфигурацию, следует закрыть диалог «Автор конфигурации» нажатием кнопки «ОК» и затем в палитре свойств конфигурации нажать кнопку «ОК» или «Обновить».

Сохранение информация об авторе конфигурации выполняется в процессе сохранения конфигурации, как это описано в п. «Сохранение конфигурации» на стр. 7.

Поддержка национальных языков

В системе 1С:Предприятие реализованы средства поддержки национальных языков, позволяющие корректно работать с различными национальными языками с обеспечением правильной сортировки символьных строк. Данные средства построены на использовании различных кодовых страниц с учетом порядка сортировки алфавитных символов, принятого в том или ином национальном языке. Средства поддержки национальных языков можно разделить на два уровня:

· уровень программы,

· уровень информационной базы.

На уровне программы для определения порядка сортировки и сравнения строк используются текущие установки операционной системы, в среде которой работает система 1С:Предприятие. В частности, данные установки используются для сравнения строковых величин во встроенном языке системы.

Кодовая страница и порядок сортировки символов для уровня информационной базы должен быть задан при создании новой информационной базы. При этом задаваемая сортировка алфавитно-цифровых символов должна совпадать с установками операционной системы, в среде которой будет запускаться система 1С:Предприятие. В случае несовпадения установок запуск невозможен, так как в этом случае высока вероятность неправильного функционирования системы 1С:Прсдприятис.

Следует помнить, что система 1С:Предприятие не приспособлена для работы одновременно с несколькими кодовыми страницами. Поэтому в процессе работы с одной информационной базой недопустимо переключение национальных настроек операционной системы, приводящее к смене кодовых страниц.

Задание кодовой страницы и порядка сортировки информационной базы

При инициализации новой информационной базы, то есть в том случае, когда в качестве рабочего каталога ИБ предполагается использовать вновь созданный или пустой каталог, имеется возможность задания кодовой страницы и порядка сортировки символьных строк для таблиц базы данных. При первом запуске Конфигуратора с указанием в качестве рабочего каталога, в котором отсутствуют файлы информационной базы системы 1С:Предприятие, на экран будет выведено диалоговое окно, в котором можно выбрать желаемую кодовую страницу и порядок сортировки.

При этом в предлагаемом списке будет выделена строчка, отображающая вариант настройки кодовой страницы и порядка сортировки, соответствующий настройке операционной системы. Рекомендуется выбрать именно его.

Возможен случай, когда система 1С:Предприятие, проанализировав настройки операционной системы и сравнив их со списком, не найдет в списке соответствующей настройки (оригинальная настройка операционной системы не совпадает ни с одной из рекомендуемых Microsoft). Тогда 1С:Предприятие создает для информационной базы настройки, соответствующие настройкам операционной системы, запоминает их в файле 1CV7.0RD, и добавляет в список предлагаемых настроек кодовой страницы и порядка сортировки новую строчку: «+ Текущая системная установка». Именно ее рекомендуется выбирать для создаваемой информационной базы. Следует отметить, что, хотя и существует возможность выбора кодовой страницы и порядка сортировки, отличных от установленных в системе на текущий момент, этого делать не рекомендуется, так как полностью корректное функционирование системы 1С:Предприятие в таком случае невозможно.

Изменение кодовой страницы и порядка сортировки информационной базы

Для выбора кодовой страницы и порядка сортировки в уже имеющейся информационной базе необходимо запустить Конфигуратор и выбрать в меню «Администрирование» пункт «Кодовая страница таблиц ИБ...». На экране появится диалоговое окно «Кодовая страница таблиц информационной базы». В нем можно выбрать желаемую кодовую страницу и порядок сортировки.

Как и при создании информационной базы, 1С:Предприятие в предлагаемом списке выделяет строчку, соответствующую настройке кодовой страницы и порядка сортировки операционной системы. Рекомендуется выбрать именно ее.

Отрицательные последствия смены порядка сортировки

Следует предупредить, что при изменении кодовой страницы и порядка сортировки в информационной базе с имеющимися данными существует вероятность нарушений (речь идет о случае, когда соответствие установок MS Windows и 1С:Предприятия не нарушается!). Вероятность эта чрезвычайно мала и обусловлена, в частности, тем, что порядок сортировки алфавитных символов в отдельных случаях может оказывать влияние на хронологический порядок следования документов. Причем, это влияние скажется только в распределенных информационных базах, и только том случае, если в информационной базе присутствуют два или более документов, у которых полностью совпадают дата и время. При соблюдении этих условий коды информационных баз, в которых были созданы документы, могут определять взаимный порядок следования указанных документов. Само собой, что изменение порядка следования документов произойдет только в том случае, если изменится взаимный порядок следования буквенных символов, составляющих код информационной базы. Но, несмотря на малую вероятность такого совпадения, кодовую страницу и порядок сортировки в информационной базе с имеющимися данными не рекомендуется изменять без необходимости.

Проверка совпадения установок

Как уже указывалось, для правильности функционирования системы 1С:Предприятие важно, чтобы порядок сортировки, выбранный для таблиц информационной базы, совпадал с принятым в операционной системе порядком сортировки. Поэтому при запуске система 1С:Предприятие производит проверку на совпадение порядков сортировки на критическом для правильности функционирования подмножестве символов, включающем пробел, алфавитные и цифровые символы.

В случае, если сравнение показало различия в порядке сортировки на указанном подмножестве, будет выдано сообщение «Порядок сортировки строк, установленный для Базы Данных, отличается от системного!», после чего работа системы 1С:Предприятие будет завершена. В этом случае следует либо изменить установки операционной системы, либо изменить кодовую страницу информационной базы, как это описано выше.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 5

Глава 5.
Константы

  • Константы в системе 1С:Предприятие
  • Управление списком констант
  • Свойства константы

В настоящей главе будут рассмотрены вопросы использования констант в системе 1С:Преднриятие.

Константы в системе 1С:Предприятие

В системе 1С:Предприятие константы предназначены для хранения постоянной или условно-постоянной информации. Такая информация либо совсем не изменяется в процессе деятельности предприятия, либо изменяется достаточно редко. Наиболее простой пример подобной информации — название организации, которое, как правило, не меняется.

Основная причина использования констант заключается в том, что в них один раз заносится какая-либо информация, которая затем может многократно использоваться при формировании документов, в расчетах, при построении отчетных форм. Информация, внесенная в константу время от времени может редактироваться, но сути константы это не меняет: единожды введенное в систему, значение константы используется многократно.

Рассмотрим такой пример. Наиболее часто на документах предприятия встречается подпись директора и главного бухгалтера. Естественно, что подписи эти должностные лица должны ставить самостоятельно. Но помимо самой подписи, в документах требуется ее расшифровка — фамилия подписавшего документ. Конечно, можно ввести фамилии директора и главного бухгалтера непосредственно в формы документов. Но, если какая-либо из фамилий изменится, то придется вновь редактировать все бланки документов и исправлять фамилии. Поэтому гораздо удобнее создать в Конфигураторе 2 константы — для хранения фамилий директора и главного бухгалтера, ввести эти фамилии в константы один раз, а в многочисленных бланках документов использовать идентификаторы констант для получения их значений. При смене директора или главного бухгалтера достаточно внести изменения только в константы — ввести и них новые фамилии — и все изменения автоматически будут отражены в тех местах, где эти константы используются.

Конфигуратор системы 1С:Предприятие позволяет создавать практически неограниченное количество констант для хранения любой нужной информации.

Следует обговорить, что в Конфигураторе создастся только описание константы как места для хранения какой-либо информации. Но в данном контексте для простоты будет использоваться термин «константа».

Управление списком констант

Вся работа с объектами метаданных типа «Константа» ведется в окне «Конфигурация — Метаданные». Для констант отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Константы». Приемы создания, редактирования свойств и удаления констант совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. 16.

Свойства константы

В этом параграфе будут описаны специфические свойства константы, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. 21.

Свойства константы редактируются при помощи палитры свойств «Свойства Константы». Необходимо обратить внимание, что константа является типизированным объектом метаданных (см. и. «Типизированные и типообразующие объекты метаданных», стр. 16).

Закладка «Дополнительные»

Периодический. Включение опции «Периодический» позволяет указать для константы хранение истории изменений значения константы. Такая константа в системе 1С:Предприятие называется периодической и обладает следующим свойством: в отличие от «обычных» (не периодических) констант, система 1С:Предприятие хранит значения такой константы но датам их изменения. При обращении к значению такой константы на некоторую дату выдается ее значение на эту дату, либо, если таковое отсутствует, — на ближайшую предыдущую дату, на которую устанавливалось значение константы.

К периодической константе можно обращаться при помощи встроенного языка системы 1С:Предприятие — получать и записывать значение константы на указываемую дату. Однако следует иметь в виду, что при получении значения константы на какую-то дату извлекается ее значение на указанную или (если значение константы на указанную дату отсутствует) на ближайшую предыдущую дату, а запись значения периодической константы выполняется всегда на указанную дату.

При использовании конфигурации для периодической константы можно вызвать окно «История», отражающее изменение значения константы по датам. Окно представляет собой таблицу, состоящую из двух граф: дата изменения значения константы и значение на эту дату. Окно «История» позволяет редактировать историю изменений значения константы напрямую: вводить новые строки, редактировать или удалять существующие.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 6

Глава 6.
Справочники

  • Справочники в системе 1С:Предприятие
  • Управление списком справочников
  • Свойства справочника
  • Работа с реквизитами справочника
    • Свойства реквизита справочника
  • Создание форм справочника
  • Конструктор справочника

В этой главе рассматриваются вопросы использования справочников в системе 1С:Прсдприятие.

Справочники в системе 1С:Предприятие

Справочник является списком возможных значений того или иного реквизита документа (в широком смысле слова «документ»).

Справочники используются в тех случаях, когда необходимо исключить неоднозначный ввод информации.

Например, для того, чтобы покупатель, продавец, кладовщик, директор понимали, о каком товаре идет речь, каждый должен называть его одинаково. И в этом случае необходим справочник. Обычно в торговом предприятии он имеет вид прайс-листа, а если такой справочник хранится в компьютере, то в него заносят всю возможную номенклатуру товаров, с которыми работает торговая фирма.

Система 1С:Предприятие позволяет вести практически неограниченное количество необходимых справочников. Каждый справочник представляет собой список однородных объектов: сотрудников, организаций, товаров и т. д. Каждый такой объект будем называть элементом справочника.

В качестве обязательных реквизитов каждый справочник имеет код и наименование. Код элемента справочника может быть как числовым, так и текстовым.

Система 1С:Предприятие предоставляет широкие возможности по работе с кодами элементов справочника: автоматическое присвоение кодов, автоматический контроль уникальности кода и другие.

Список элементов справочника в системе 1С:Предприятие может быть многоуровневым. В этом случае все строки справочника будут разделяться на 2 вида: «просто» элементы справочника и группы справочника. Группы позволяют переходить на нижележащие уровни многоуровневого справочника.

Использование многоуровневых справочников позволяет организовать ввод информации в справочник с нужной степенью детализации. Элементы и группы элементов в многоуровневом справочнике можно переносить из одной группы в другую.

Помимо кода и наименования, в справочниках системы 1С:Предприятие может храниться любая дополнительная информация об элементе справочника. Для хранения такой информации в справочнике может быть создан список реквизитов.

Используя механизм реквизитов справочника, легко организовать, например, картотеку сотрудников. Для этого достаточно для справочника «Сотрудники» создать реквизиты для хранения сведений об образовании, паспортных данных и прочей кадровой информации. Используя встроенные средства поиска в справочнике, при использовании конфигурации нужная информация о сотруднике может быть легко найдена.

Для удобства работы пользователей со справочником на этапе конфигурирования можно создать несколько видов экранных форм для показа справочника. В зависимости от контекста вызова справочника можно задать использование определенного диалога для работы с ним.

Следует иметь в виду, что в Конфигураторе создается не сам справочник, как список значений, а разрабатывается заготовка справочника, его шаблон. В процессе конфигурирования описывается структура информации, которая будет храниться в справочнике, разрабатывается экранное и, если необходимо, печатное представление справочника, задаются различные особенности его «поведения».

Ниже в настоящем Руководстве будет использоваться термин «справочник», под которым будет пониматься описание структуры, формы и поведения справочника.

Управление списком справочников

Вся работа с объектами метаданных типа «Справочник» ведется в окне «Конфигурация — Метаданные». Для справочников отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Справочники». Приемы создания, редактирования свойств и удаления справочников совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

Свойства справочника

В этом параграфе будут описаны специфические свойства справочника, в дополнение к общим свойствам объектов метаданных, о которых говорилось в н. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства справочника редактируются в окне редактирования «Справочник». Если справочник создастся при помощи Конструктора справочника, окно редактирования будет вызвано автоматически в конце работы Конструктора.

Подчинен. Подробного объяснения требует элемент «Подчинен».

Любой справочник может использоваться как сам по себе, так и быть подчиненным какому-либо другому справочнику. Например, справочник договоров может использоваться отдельно, а может быть связан со справочником организаций.

Чтобы подчинить справочник какому-либо из справочников, уже существующих в системе, в поле «Подчинен» следует выбрать наименование этого справочника. Такой справочник в системе 1С:Предприятие называется владельцем.

В отличие от многоуровневого справочника, в котором все элементы имеют одинаковую структуру, использование механизма подчиненных справочников позволяет связать элементы разной структуры. В этом случае каждый элемент подчиненного справочника будет связан с одним из элементов справочника-владельца.

Внешне работа с подчиненным справочником в системе 1С:Предприятие будет выглядеть следующим образом.

Если для подчиненного справочника установлен режим показа в виде иерархического списка, то перед использованием справочника сначала должен быть выбран элемент справочника-владельца. При показе на экране подчиненный справочник будет содержать в своем заголовке наименование элемента-владельца, а список элементов подчиненного справочника будет содержать только элементы, относящие к элементу-владельцу. При смене элемента-владельца информация в окне подчиненного справочника будет соответствующим образом обновлена.

Если открыть подчиненный справочник, не выбрав элемент-владелец, то в окне подчиненного справочника не будет отображаться ни одного элемента, а в заголовке окна будет выдано сообщение «Не задан элемент-владелец».

При работе с системой 1С:Преднриятие для подчиненного справочника может быть отключен показ в виде иерархического списка. В этом случае в окне подчиненного справочника будут отображаться все элементы этого справочника, то есть элементы, починенные разным владельцам, будут показываться вперемешку. Тем не менее, любой элемент подчиненного справочника «знает» своего владельца: если для справочника включен режим «Редактировать в диалоге» (см. ниже п. «Создание форм справочника»), наименование элемента-владельца будет выдаваться в заголовке окна редактирования элемента справочника.

Размещать группы сверху. Если флажок установлен, то при работе с системой 1С:Предприятие при отображении справочника в виде иерархического списка группы окажутся в верхних строчках списка, а элементы справочника будут располагаться ниже. Если этот флажок снят, расположение групп и элементов будет подчиняться установленным правилам сортировки (по коду, наименованию и пр.). Например, при создании новой группы с кодом, большим, чем у всех имеющихся групп и элементов (при сортировке по коду), в первом варианте эта подгруппа окажется нижней среди групп, но выше остальных элементов справочника; во втором варианте она займет самую нижнюю строчку.

Следует отметить, что установка или снятие флажка «Размещать группы сверху» не влияет на показ справочника в виде не иерархического списка.

Реквизиты. Необходимо пояснить, что имеется в виду под словом «реквизиты» в применении к справочникам.

Любой новый справочник можно представить в виде таблицы, которая имеет 2 колонки: код элемента справочника и его наименование. Система 1С:Предприятие, помимо кода и наименования, позволяет хранить дополнительную информацию об элементе справочника. При редактировании справочника можно описать набор дополнительных реквизитов — своеобразных ячеек, предназначенных для хранения таких дополнительных сведений.

При показе справочника на экране эти реквизиты могут представляться в виде дополнительных, помимо кода и наименования, колонок в таблице справочника. Кроме этого, сведения, хранящиеся в реквизитах, можно использовать при формировании документов, в различных расчетах, при формировании отчетов и так далее.

Группа «Реквизиты» объединяет управляющие элементы, предназначенные для ведения списка дополнительных реквизитов справочника и определения их свойств. Подробно о работе с реквизитами справочника рассказывается ниже в п. «Работа с реквизитами справочника»

Количество уровней. Справочники в системе 1С:Предприятие могут иметь более одного уровня вложенности. Возможное количество уровней вложенности справочника устанавливается при помощи реквизита «Кол-во уровней».

Длина кода. Реквизит диалога «Длина кода» устанавливает максимальную длину кода элемента справочника. Длина кода, наряду с другими характеристиками, определяет, какое максимальное количество элементов может храниться в справочнике.

Конфигуратор позволяет установить длину кода, равной 0. Это может понадобиться в тех случаях, когда код элемента справочника не используется. Отсутствие кода экономит ресурсы системы 1С:Преднриятие и незначительно ускоряет работу системы при записи элементов справочника.

При назначении этого свойства желательно реально определить возможную длину кода, так как длина кода, установленная «с запасом», приведет к лишнему расходу дискового пространства. Однако, следует иметь в виду, что в процессе эксплуатации конфигурации, если потребуется, длину кода можно увеличить.

Длина наименования. Максимальная возможная длина наименования элемента справочника устанавливается в реквизите «Длина наименования».

Конфигуратор позволяет установить длину наименования, равной 0. Отсутствие наименования экономит ресурсы системы 1С:Преднриятие и незначительно ускоряет работу системы при записи элементов справочника.

Сказанное выше относительно длины кода справедливо и по отношению к наименованию элемента справочника.

Автоматическая нумерация. Включение опции «Автоматическая нумерация» устанавливает, что вновь введенному элементу в справочнике код будет присваиваться автоматически. Автоматически присвоенный код можно исправить.

Контроль уникальности. Если код используется для однозначной идентификации конкретного элемента в справочнике, он должен быть уникальным (не должен повторяться). Если флажок «Контроль уникальности» установлен, проверка кода на уникальность будет проводиться автоматически при вводе в справочник нового элемента.

Серии кодов. Группа «Серии кодов» позволяет установить диапазон проверки кода на уникальность и автоматического присвоения кодов.

Если выбрана установка «Во всем справочнике», то при автоматическом присвоении кода или при вводе кода пользователем вручную уникальность кода будет проверяться среди всех элементов справочника.

Установка «В пределах подчинения» справедлива только для многоуровневых справочников. В этом случае уникальность кода будет проверяться системой только в пределах той группы, в которую вводится новый элемент справочника или редактируется уже существующий элемент.

При установке «Серии кодов — В пределах подчинения» нормальной является ситуация, когда находящиеся в разных группах элементы справочника имеют одинаковые коды. Однако это следует учитывать, если требуется переносить элементы многоуровневого справочника из одной группы в другую. При совпадении кода переносимого элемента с кодом уже существующего элемента в группе будет выдано предупреждение, и элемент перенесен не будет.

Тип кода. Группа «Тип кода» позволяет выбрать тип значения для кода элемента справочника — числовой или текстовый. Выбор текстового типа кода бывает полезен, когда используется сложная система кодирования, и код может включать, помимо цифр, также буквы и символы-разделители. Наиболее характерный пример — использование в качестве кодов артикулов для швейных изделий.

Следует обратить внимание, что выбор текстового типа кода не исключает возможности автоматического присвоения таких кодов.

Для самого первого элемента система формирует код вида «001» (количество нулей зависит от установленной длины кода), то есть код представляет собой строку символов, но все символы в этой строке являются цифрами. При вводе других элементов в справочник система будет продолжать присваивать коды аналогичным образом — «002», «003» и т. д.

Если требования к ведению справочника предполагают непременное использование смешанных буквенно-цифровых кодов, то для целей автоматической нумерации можно использовать коды вида «АА001». Здесь первая часть кода — символы «АА» — является текстовым префиксом, а вторая часть — символы «001» — будет интерпретироваться системой как число и использоваться при автоматическом присвоении очередного кода.

Например, если самым первым кодом в справочник введен код «АА001», то следующим автоматически присвоенным кодом будет код «АА002», затем — «АА003» и так далее по возрастающей.

Текстовый префикс можно задать вручную (при вводе в справочник нового элемента ввести такой «составной» код) или использовать возможности установки префикса из встроенного языка системы 1С:Предприятие (метод УстановитьПрефикс).

Основное представление. Смысл установок группы «Основное представление» заключается в следующем: что будет выводиться, например, в поле реквизита документа, если этот реквизит заполняется путем выбора значения из данного справочника. Можно установить показ результата выбора в виде кода элемента справочника или в виде наименования.

Работа с реквизитами справочника

Любой справочник можно представить как таблицу, которая имеет 2 обязательные графы: код элемента справочника и наименование элемента справочника. Однако, часто бывает полезно (а зачастую и необходимо) хранить для элементов справочника какую-либо дополнительную информацию: например, банковские реквизиты — для организаций, паспортные данные — для сотрудников, и так далее.

Система 1С:Предприятис позволяет назначить для справочника набор реквизитов, в которых будет храниться такая дополнительная информация.

Для управления списком реквизитов справочника и редактирования их свойств служат управляющие элементы группы «Реквизиты» окна редактирования «Справочник». Назначение и порядок использования управляющих элементов группы «Реквизиты» можно посмотреть в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства реквизита справочника

В этом параграфе будут описаны специфические свойства реквизитов справочника, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства реквизита справочника редактируются при помощи палитры свойств «Свойства Реквизита».

Закладка «Дополнительные»

Периодический. Включение опции «Периодический» позволяет указать для реквизита справочника хранение истории изменений его значения. Такой реквизит в системе 1С:Предприятие называется периодическим и обладает следующим свойством: в отличие от «обычных» (не периодических) реквизитов, система 1С:Предприятие хранит значения такого реквизита но датам их изменения. При обращении к значению такого реквизита на некоторую дату выдается его значение на эту дату, либо, если таковое отсутствует, — на ближайшую предыдущую дату, на которую устанавливалось значение реквизита.

Подобное свойство реквизита справочника позволяет, например, легко организовать хранение истории изменения курсов в справочнике валют.

Замечание. Текстовый реквизит неограниченной длины не может быть периодическим.

К периодическому реквизиту можно обращаться при помощи встроенного языка системы 1С:Предприятие — получать и записывать значение реквизита на указываемую дату. Однако, следует иметь в виду, что при получении значения реквизита на какую-то дату извлекается его значение на указанную или (если значение на указанную дату отсутствует) на ближайшую предыдущую дату, а запись значения периодического реквизита выполняется всегда на указанную дату.

В режиме использования конфигурации для периодического реквизита можно вызвать окно «История». Это окно представляет собой таблицу, состоящую из двух граф: дата изменения значения реквизита справочника и значение на эту дату. Окно «История» позволяет редактировать историю изменений значения реквизита напрямую: вводить новые строки, редактировать или удалять существующие.

Сортировка. Установка флажка «Сортировка» предоставляет две возможности.

Если эта опция включена для реквизитов типа «число», «строка» и «дата», то содержимое справочника можно будет отсортировать но этим реквизитам при просмотре справочника.

Для реквизитов всех типов значений включение этой опции позволит осуществлять поиск элемента справочника по этому реквизиту средствами встроенного языка системы 1С:Предприятие.

«Поиск по символам» но реквизиту справочника, для которого включена опция «Сортировка», выполняется значительно быстрее, чем по реквизитам, для которых такая опция отключена.

Признак сортировки не может быть установлен для периодических реквизитов и текстовых реквизитов неограниченной длины.

Не рекомендуется использовать возможность сортировки по реквизиту без достаточных оснований, так как включение этой опции приводит к дополнительному расходу дискового пространства и некоторому общему снижению быстродействия.

Отбор по реквизиту. Если для реквизита установлен флажок «Отбор по реквизиту», в режиме запуска «1С:Предприятие» появляется возможность просматривать только те элементы справочника, которые имеют заданное значение этого реквизита.

Признак отбора не может быть установлен для периодических реквизитов и текстовых реквизитов неограниченной длины.

Не рекомендуется использовать возможность отбора по реквизиту без достаточных оснований, так как включение этой опции приводит к дополнительному расходу дискового пространства и некоторому общему снижению быстродействия.

Использовать. Управляющий элемент «Использовать» устанавливает, будет редактируемый реквизит справочника использоваться в качестве дополнительной характеристики только для группы, только для элемента справочника или в обоих случаях.

Более подробно поясним смысл установки «Использовать».

Как уже упоминалось, справочники в системе 1С:Предприятие могут иметь многоуровневую структуру. Чтобы начать вложенный уровень в таком справочнике, необходимо создать так называемый заголовок группы — элемент справочника, через который будет осуществляться вход на нижний уровень. В таблице справочника такой элемент будет помечен знаком [image].

Как и для «простого» элемента справочника, для группы также может быть определен список дополнительных реквизитов (помимо обязательных реквизитов «Код» и «Наименование»). Однако, зачастую набор таких реквизитов должен быть различным для заголовка группы и для элемента справочника. Например, для группы товаров не имеет смысла реквизит «Цена», так как это, скорее, характеристика отдельного товара.

Изменяется документами. Включение опции «Изменяется документами» разрешает изменять значение периодического реквизита справочника из модулей документов. Изменение выполняется процедурой УстановитьРеквизитСправочника, которая вносит запись об изменении в историю реквизита и связывает эту запись с породившим се документом.

В истории изменения периодического реквизита записи, введенные документами, будут особым образом помечены, и, в отличие от записей, введенных вручную, содержать ссылку на породивший их документ.

Записи в истории реквизита, порожденные документами, не могут быть изменены «вручную». Такие записи будут «помнить» о породивших их документах и будут автоматически удаляться при удалении документа или выполнении операции «Сделать документ непроведенным» (см. п. «Модуль документа» на стр. Ошибка! Закладка не определена.)

Ручное изменение. Опция «Ручное изменение» всегда включена для периодических реквизитов справочника. Однако, ее можно отключить, тогда изменение значения периодического реквизита справочника можно будет выполнять только из модулей документов. Отключить обе опции «Изменяется документами» и «Ручное изменение» одновременно нельзя.

Создание форм справочника

Для работы с формами справочника служат управляющие элементы, расположенные в нижней части окна редактирования «Справочник».

Редактировать. Реквизит «Редактировать» устанавливает способ редактирования элемента справочника. Поясним, что это означает.

Для просмотра справочник всегда выдается в виде таблицы. В общем случае, в левой колонке такой таблицы выводится код элемента справочника, затем — наименование, и, наконец, дополнительные колонки, связанные с дополнительными реквизитами справочника. Редактировать конкретный элемент справочника — изменять его наименование, значения дополнительных реквизитов и так далее, — можно двумя способами: непосредственно в ячейках таблицы справочника либо в специально созданном диалоге.

Система 1С:Предприятие предоставляет возможность просмотра и редактирования справочника двумя различными способами.

Если для реквизита «Редактировать» выбрано значение «В списке», то редактирование кода, наименования и реквизитов элемента справочника будет проводиться непосредственно в ячейках таблицы справочника. Такое представление удобно тем, что можно видеть сразу несколько строк справочника.

С другой стороны, если таблица справочника имеет много вспомогательных колонок, при просмотре не всегда удается показать их на экране все сразу — потребуется горизонтально прокручивать окно справочника. В этом случае можно использовать режим редактирования в диалоге.

Если выбрана установка «Редактировать» — «В диалоге», то для редактирования будет вызываться специально разработанный диалог, куда будет помещаться информация из текущей строки справочника. Редактирование в диалоге удобно тем, что видны сразу все реквизиты выбранного элемента справочника. Кроме того, в информационных полях диалога можно вывести разнообразную дополнительную информацию из других справочников, регистров, журналов и так далее,

При установке «Редактировать» — «Обоими способами» выбор конкретного способа редактирования — в таблице или в диалоге — будет производиться конечным пользователем при работе с системой 1С:Предприятие.

Одна форма для элемента и группы. Опция «Одна форма для элемента и группы» устанавливает использование одной формы при редактировании и элемента справочника, и заголовка группы. В этом случае будет использоваться форма элемента справочника.

«Форма элемента». Эта кнопка вызывает редактор форм для редактирования формы элемента справочника.

«Формы группы». При использовании справочника группа представляется особой строкой, помеченной знаком [image], и служит для «входа» на следующий уровень справочника. Фактически, такая строка является заголовком для совокупности элементов справочника, имеющих какой-то общий признак. Например, группой может являться строка «Продовольственные товары», которая открывает доступ к списку таких товаров.

Если опция «Одна форма для элемента и группы» отключена, то для ввода группы в справочник можно создать специальную форму. Для создания формы группы используется комплексный редактор форм, который вызывается на экран нажатием кнопки «Форма группы».

«Формы списка». Эта кнопка служит для вызова на экран диалога «Формы списков» и для редактирования уже существующих форм списка справочника. Порядок работы с диалогом «Формы списков» изложен в и. «Работа с формами списка» на стр. Ошибка! Закладка не определена..

Конструктор справочника

Вызов Конструктора для создания объектов метаданных описан в главе «Метаданные», как и задание в нервом окне Конструктора таких параметров объекта, как идентификатора, синонима и комментария (стр. Ошибка! Закладка не определена.).

При использовании Конструктора справочника, если установлена компонента «Бухгалтерский учет» (см. главу «Организация бухгалтерского учета в системе 1С:Предприятие», стр. Ошибка! Закладка не определена.), и, кроме того, в конфигурации существует хотя бы один план счетов, в котором уже имеются какие-то счета (см. главу «Планы счетов», стр. Ошибка! Закладка не определена.), Конструктор предлагает сразу создать соответствующий справочнику вид субконто (см. главу «Виды субконто», стр. Ошибка! Закладка не определена.).

Если компонента «Бухгалтерский учет» не установлена, или в конфигурации нет плана счетов, или есть, но пустой, новый вид субконто не создается.

Далее появляется окно Конструктора справочника, в котором предлагается вставить команду вызова справочника в пользовательское меню.

При выборе варианта «Создать новый вид субконто» следующем шаге Конструктор предлагает указать синоним и комментарий создаваемого вида субконто.

Для создания справочника (и нового вида субконто, если это указано) необходимо нажать кнопу «Готово». В дереве метаданных появится новая ветвь, соответствующая созданному справочнику, и будет автоматически вызвано окно редактирования свойств справочника. В этом окне часть свойств будет заполнена значениями, заданными по умолчанию, или указанными в процессе работы Конструктора справочника.

Собирая действия по созданию нового справочника в один процесс, и предоставляя пояснения к каждому из них, Конструктор справочника облегчает начальный этап создания справочника.

Например, вид субконто, соответствующий новому справочнику, можно было бы создать и впоследствии, в том числе с помощью Конструктора вида субконто (см. п. «Конструктор вида субконто»). Так же, команду вызова нового справочника можно вставить в пользовательское меню с помощью редактора меню (см. главу «Редактор меню»), в том числе с помощью Конструктора меню. Однако, использование Конструктора справочника ускоряет эти действия и не позволяет что-либо пропустить.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 7

Глава 7.
Документы

  • Документы в системе 1С:Предприятие
  • Управление списком документов
  • Свойства документа
  • Разработка структуры документа
    • Свойства реквизита документа
  • Документ «Операция»
  • Модуль документа
  • Общие реквизиты
    • Управление списком общих реквизитов
    • Свойства общего реквизита
  • Нумераторы
    • Управление списком нумераторов
    • Свойства нумератора
  • Последовательности документов
    • Управление списком последовательностей документов
    • Свойства последовательности документов
    • Работа с последовательностями документов
  • Ввод документов «на основании»
    • Организация ввода документов «на основании»
    • Конструктор ввода на основании
  • Подчиненные документы
  • Конструктор документа

Документ — одно из основных понятий системы 1С:Предприятие. При помощи документов организуется ввод в систему информации о совершаемых хозяйственных действиях, ее просмотр и, если необходимо, корректировка.

В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумажных документов, однако, использование этого типа данных может выходить далеко за рамки простой фиксации информации о хозяйственных операциях.

Документы в системе 1С:Предприятие

В системе 1С:Предприятие документ является основной учетной единицей. Каждый документ содержит информацию о конкретной хозяйственной операции и характеризуется своим номером, датой и временем. Дата и время — наиболее важные характеристики документов, так как позволяют устанавливать строгую временную последовательность совершения операций.

Следует заранее уточнить, что в Конфигураторе создается, строго говоря, не сам документ, а средство ввода документа в компьютер — шаблон документа. Каждый создаваемый в конфигураторе документ является описанием множества документов одного вида. Например, созданный в Конфигураторе документ «Накладная» при работе с системой 1С:Предприятие позволит формировать накладные, которые будут иметь разное содержание, по одинаковый набор реквизитов, одинаковую логику поведения и так далее.

Ниже для простоты будут использоваться оба эти термина — «шаблон документа» или слово «документ», подразумевая под этим средства для ввода и визуализации документа.

Конфигуратор позволяет описать структуру документа, организовать диалог для ввода информации в документ и описать алгоритм построения печатной формы документа.

При создании структур документов в Конфигураторе допускается определенный уровень абстракции. Так, в большинстве документов можно выделить две основные части: заголовочная часть и табличная, или многострочная, часть. Как правило, в заголовочной части содержатся реквизиты, которые являются общими для всего документа. Например, в счете на оплату в заголовочную часть помещаются установочные данные документа — номер и дата, а также сведения о плательщике и получателе платежа.

Термин «заголовочная часть» — достаточно условный и может относиться не только к реквизитам документа, которые физически находятся в верхней части бумажного бланка документа. Поэтому, в наиболее общем случае, реквизитом заголовочной части будет считаться любой реквизит, который встречается в документе только один раз.

Для обозначения заголовочной части документа в системе 1С:Предприятие используется термин шапка (документа)».

Табличная часть документа представляет собой список однотипных строк с информацией. Например, в уже упоминавшемся счете на оплату табличная часть — это перечень товаров или услуг, подлежащих оплате. Помимо наименований, табличная часть документа может содержать также разнообразную дополнительную информацию — стоимость товаров или услуг, количество, объем, вес и многое другое. В большинстве случаев табличная часть используется для формирования общей суммы документа. Структура документа в системе 1С:Предприятие может содержать только одну табличную часть.

При разработке документов в Конфигураторе может быть создано необходимое количество общих реквизитов документов. Такие реквизиты, будучи созданными один раз, становятся доступными для всех документов: общие реквизиты можно размещать в формах документов, к значениям общих реквизитов можно обращаться из встроенного. языка системы 1С:Преднриятие. Работая с системой 1С:Предприятие, пользователь может выполнять отбор документов в журналах по значениям общих реквизитов документов.

Для работы с документами в Конфигураторе может быть создано необходимое количество журналов. При создании документа можно указать наименование журнала, в котором будет осуществляться работа с документам этого вида. Для документов разных видов можно указывать один журнал, что позволяет произвольным образом группировать документы в журналах. Назначенный документам журнал можно менять.

Для работы с документами могут использоваться специально созданные общие журналы. От «обычных» журналов документов их отличает возможность отбора документов по значению, указанному пользователем.

Управление списком документов

Вся работа с объектами метаданных типа «Документ» ведется в окне «Конфигурация — Метаданные». Для документов отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Документы». На этой же ветви располагаются служебные объекты метаданных — нумераторы и общие реквизиты документов, — которые используются только в составе объектов метаданных типа «Документ».

Приемы создания, редактирования свойств и удаления объектов метаданных типа «Документ» совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена.. В том числе, для создания документа можно воспользоваться Конструктором документа (см. ниже, стр. 9).

Свойства документа

В этом параграфе будут описаны специфические свойства документа, в дополнение к общим свойствам объектов метаданных, о которых говорилось в и. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства документа редактируются в окне редактирования «Документ».

Журнал. В поле «Журнал» можно указать идентификатор журнала, в который будут помещаться документы данного вида при работе с системой 1С:Предприятие. Журнал необходимо создать либо заранее, как это сделать — см. п. «Создание объекта метаданных» на стр. Ошибка! Закладка не определена., — либо в процессе создания документа Конструктором (см. ниже «Конструктор документа», стр. 9), либо, наконец, совсем не указывать, и поместить документ в журнал при создании журнала Конструктором (см. п. «Конструктор журнала документов», стр. Ошибка! Закладка не определена.). При создании нового документа по умолчанию предлагается журнал «Прочие».

Помимо журнала, указанного в поле «Журнал», в системе 1С:Предириятие все документы автоматически помещаются в журнал с условным наименованием «Полный».

Реквизиты. Управляющие элементы, объединенные в группы «Реквизиты табличной части» и «Реквизиты шапки», позволяют управлять, соответственно, списком реквизитов табличной части и списком реквизитов шапки документа, а также редактировать свойства этих реквизитов. О работе с реквизитами документа см. п. «Разработка структуры документа» на стр. 4.

Номер. Управляющие элементы диалога «Документ», объединенные в группу «Номер», используются для назначения правил нумерации документов.

У любого документа существует 3 обязательных реквизита, которые создаются автоматически и которые удалить нельзя — это дата, время и номер документа. В отличие от даты и времени, для номера документа можно задать несколько параметров, которые будут управлять поведением этого реквизита при работе с документами создаваемого вида. Совокупность этих параметров будет определять правила нумерации документов при работе системы 1С:Предприятие.

Нумератор. Документу может быть назначен нумератор из числа уже существующих в конфигурации. В этом случае прочие элементы группы «Номер», за исключением признака «Автоматическая нумерация», станут недоступны, то есть правила нумерации документов данного вида будут полностью определяться назначенным нумератором.

Для назначения документу нумератора из числа существующих в конфигурации следует выбрать идентификатор нумератора в реквизите «Нумератор».

Использование нумераторов позволяет организовать сквозную нумерацию документов разных видов. Для этого всем документам, для которых требуется иметь сквозную нумерацию, должен быть назначен одинаковый нумератор. Контроль уникальности и присвоение очередного номера будет выполняться с учетом всех документов, для которых назначен этот нумератор.

Периодичность. Данный реквизит устанавливает пределы контроля уникальности номеров документов и период повторяемости номеров. Если документу назначен нумератор, данный реквизит диалога становится недоступным.

Если включен признак контроля уникальности номеров документов (см. ниже), реквизит «Периодичность» устанавливает, в каких пределах осуществлять этот контроль.

При включенном признаке автоматической нумерации система 1С:Предприятие будет присваивать очередной порядковый номер каждому новому документу. После завершения периода, установленного в реквизите «Периодичность», нумерация документов начнется с 1.

Длина. Устанавливает максимальную длину номера документа. Если документу назначен нумератор, данный реквизит диалога становится недоступным.

Тип. Группа «Тип» позволяет выбрать тип значения для номера документа — числовой или текстовый. Выбор текстового типа номера бывает полезен, когда используется сложная система нумерации документов, и номер документа может включать, помимо цифр, также буквы и символы-разделители.

Следует обратить внимание, что выбор текстового типа номера не исключает возможности автоматического присвоения таких номеров.

Для самого первого документа с текстовым номером система формирует код вида «001» (количество нулей зависит от установленной длины номера), то есть номер представляет собой строку символов, но все символы в этой строке являются цифрами. При вводе новых документов система будет продолжать присваивать номера аналогичным образом — «002», «003» и т. д.

Если требования к нумерации документов предполагают непременное использование смешанных буквенно-цифровых номеров, то для целей автоматической нумерации можно использовать номера вида «АА001». Здесь первая часть номера — символы «АА» — является текстовым префиксом, а вторая часть — символы «001» — будет интерпретироваться системой как число и использоваться при автоматическом присвоении очередного номера документа.

Например, если самый первый документ введен с номером «АА001», то следующим автоматически присвоенным номером будет «АА002», затем — «ААООЗ» и так далее по возрастающей.

Текстовый префикс можно задать вручную (при вводе нового документа присвоить ему такой «составной» помер) или использовать возможности встроенного языка системы 1С:Преднриятие (метод ПрефиксНомера).

Замечание. Если документу назначен нумератор, реквизит «Тип» окна редактирования становится недоступным.

Автоматическая нумерация. Реквизит «Автоматическая нумерация» устанавливает, будет ли система 1С:Прсдприятие автоматически присваивать очередной порядковый номер каждому новому документу. Автоматически присвоенный документу номер можно будет исправить.

Контроль уникальности. Если эта опция включена, то при вводе нового документа его помер проверяется на уникальность в пределах, установленных в реквизите «Периодичность».

Если документу назначен нумератор, данный реквизит диалога становится недоступным.

Разрешить проведение документа. Этот признак определяет, могут ли проводиться документы данного вида.

В простейшем случае, документы в системе 1С:Предприятие могут использоваться только как средство ввода и записи некоторых данных и формирования печатной формы.

Однако, чаще всего документы используются для отражения событий, происходящих в хозяйственной жизни организации, в различных механизмах учета, поддерживаемых системой 1С:Предприятие. Отражение данных документа в различных видах учета выполняется при проведении документа.

Если создаваемый вид документа не должен влиять ни на какие механизмы учета, то признак «Разрешить проведение документа» должен быть выключен, в этом случае документ не будет проводиться. Однако, если документы данного вида предполагается использовать для отражения событий хозяйственной жизни хотя бы в одном из механизмов учета, то документы данного вида должны иметь возможность проводиться, и признак «Разрешить проведение документа» должен быть установлен. Заметим, что если признак выключен, то признаки «Оперативный учет» и «Расчет» становятся недоступными, так как участие документа в этих механизмах может быть задействовано только при проведении. Однако, признак «Бухгалтерский учет», остается доступным, так как документ может записывать операцию не только при проведении, но и при записи документа, хотя возможности записывать проводки в этом случае не будет (об объектах метаданных «Операция» и «Проводка» см. главу «Операции и проводки»,стр. Ошибка! Закладка не определена.).

Автоматическое удаление движений. В большинстве случаев этот признак включен для всех видов документов, которые будут проводиться. Он определяет автоматическое удаление всех записей, отражающих документ в различных механизмах учета, которые документ записал в процессе проведения.

Автоматическое удаление производится системой при выполнении повторного проведения уже проведенного документа (перед записью новых движений), при удалении документа и при отмене проведения документа.

Режим автоматического удаления является основным, однако, для некоторых видов документов данный признак может быть отключен. Это позволяет в процессе повторного проведения уже проведенного документа выборочно удалять те движения, которые были сделаны при прошлом проведении документа. Выборочное удаление движений выполняется средствами встроенного языка в модуле документа.

Отключение режима автоматического удаления движений выполняется в специальных случаях для отдельных видов документов. Например, это позволяет при проведении расходной накладной записать движения только по последней введенной строке, оставив без изменений движения, сделанные по ранее введенным строкам.

Другой возможностью является организация перепроведения документов с изменением только формируемых ими проводок, и без изменения записанных документами движений регистров. При отмене проведения документа и при удалении (пометке на удаление) документа отключение признака автоматического удаления движений позволяет в предопределенной процедуре ОбработкаУдаленияПроведения() модуля документа, вызываемой в этих случаях, получить доступ к движениям документа, например, для анализа правомерности отмены проведения. Разумеется, после окончания выполнения процедуры все движения, не удаленные в ней средствами встроенного языка, будут удалены, так как помеченный на удаление или не проведенный документ не может иметь движений. Если признак автоматического удаления движений установлен, то в момент вызова процедуры все движения уже удалены.

Автоматическая нумерация строк. Этот признак устанавливает режим, при котором номера строк табличной части документа всегда устанавливаются системой автоматически. Если этот режим включен, то при редактировании документа в форме и при работе с ним средствами встроенного языка существует возможность изменения порядка расположения строк. Однако, при любых перестановках строк номера всегда будут отражать последовательность расположения строк, от 1 до количества строк, без пропусков и нарушения порядка номеров. Если режим «Автоматическая нумерация строк» отключен, то номера строк могут редактироваться при вводе документа в форме и средствами встроенного языка. При редактировании номеров строк система будет автоматически располагать строки в порядке возрастания номеров, однако, номера строк могут иметь пропуски.

Бухгалтерский учет. Включение этой опции означает возможность документа формировать операции и проводки (см. главу «Операции и проводки»). Опция становится доступной, если в конфигурации существует хотя бы один план счетов. Одновременно становится возможным вызов Конструктора формирования операции (см. главу «Редактор текстов»).

Внимание. Включение каждой из опций «Оперативный учет», «Расчет», «Бухгалтерский учет» вызывает со стороны системы 1С:Предприятие выполнение определенных процедур при работе с документом, на что, естественно, расходуются дополнительные ресурсы. Поэтому, если документ имеет ограниченную область применения, следует отключить для него «ненужную» опцию. Это исключит выполнение системных процедур и несколько повысит общую производительность системы.

Оперативный учет. Включение этой опции означает возможность документа изменять регистры. Одновременно становится возможным вызов Конструктора движений регистров по документу (см. главу «Редактор текстов»).

Расчет. Включение этой опции означает возможность документа работать с журналами расчетов.

Создавать операцию. Это управляющий элемент становится доступным, если для документа включена опция «Бухгалтерский учет». Он определяет режим записи операции для документов конкретного вида, для которых включена опция «Бухгалтерский учет».

Параметр «Создавать операцию» может иметь три значения:

«Всегда» | все документы данного вида будут иметь операции, то есть операция будет записываться в момент записи документа и документ будет всегда присутствовать в журнале операций;
«Выборочно» | конкретные документы данного вида могут при записи или при проведении создавать операцию. Наличие операции для конкретного документа может быть задано вызовом метода СуществуетОперация;
«Только при проведении» | для документов данного вида операция может быть записана средствами встроенного языка только в процедуре ОбработкаПроведения. То есть только проведенные документы этого вида могут иметь операцию.

Алгоритм формирования операции по документу должен быть записан в модуле документа. Для облегчения создания алгоритма формирования операции можно использовать Конструктор формирования (см. главу «Редактор текстов»).

Редактировать операцию. Флажок «Редактировать операцию» становится доступен, когда в свойствах объекта метаданных «Операция» выбран режим «Редактировать операции документов — выборочно» (см. п. «Свойства операции» на стр. Ошибка! Закладка не определена.).

Установка или снятие этого флажка, соответственно, разрешает или запрещает пользователю редактировать вручную операции, сформированные документами этого вида.

При установке этого флажка следует иметь в виду, что при перепроведении документов операции формируются заново, следовательно, отредактированные пользователем операции будут удалены и заменены на автоматически сформированные.

«Ввод на основании». Нажатие этой кнопки вызывает на экран диалог для настройки режима «Ввод на основании» (см. ниже п. «Ввод документов «на основании»»).

В этом диалоге можно указать 2 группы документов: документы, на основании которых будет вводиться редактируемый документ, и документы, которые будут вводиться на основании редактируемого документа.

Включение опции «Может являться основанием для любого документа» равносильно тому, что в списке «Является основанием для» будут выбраны все документы.

Выбор двух групп документов, выполненный в этом диалоге, позволяет ограничить список документов, выдаваемый пользователю при выполнении ввода документа «на основании».

Разработка структуры документа

Разработка структуры документа заключается в создании наборов реквизитов шапки и табличной части. Эта работа выполняется при помощи управляющих элементов групп «Реквизиты табличной части» и «Реквизиты шапки». С функциональной точки зрения элементы этих групп одинаковы, их использование для управления списками реквизитов выполняется по общим правилам, изложенным в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства реквизита документа

В этом параграфе будут описаны специфические свойства объектов метаданных типа «Реквизит документа», в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства реквизита документа редактируются в палитре свойств «Свойства Реквизита».

Закладка «Общие»

Назначение и порядок использования управляющих элементов закладки «Общие» палитры свойств в основном совпадает с общими принципами редактирования свойств объекта метаданных, описанными в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойство «Неограниченная длина» может быть установлено только для реквизитов шапки документа. При этом имейте в виду те ограничения, о которых говорилось в главе «Метаданные» (возможное замедление работы и др.).

Закладка «Дополнительные»

Управляющие элементы закладки «Дополнительные» используются для установки различных дополнительных характеристик реквизита документа.

Итог по колонке. Опция «Итог но колонке» появляется в закладке «Дополнительные» только для реквизитов табличной части документа, а становится доступной только для числовых реквизитов. Если эта опция включена, то для указанной колонки автоматически вычисляется сумма значений во всех строках табличной части.

Включение данной опции позволяет получать итог по данной колонке из встроенного языка системы 1С:Прсдприятие. Кроме того, такой реквизит может быть включен в журнал документов в качестве дополнительной графы журнала (см. в главе «Журналы документов» раздел «Графы журнала документов», стр. Ошибка! Закладка не определена.).

Документ «Операция»

Если в системе 1С:Предприятие установлена компонента «Бухгалтерский учет» и в структуре метаданных существует хотя бы один план счетов, в дерево метаданных на ветвь «Документы» добавляется предопределенный документ «Операция», предназначенный для ввода информации о хозяйственных операциях.

Назначение этого вида документов будет кратко изложено ниже, а подробнее об этом можно узнать в главе «Операции и проводки».

Для ввода информации о хозяйственных операциях в системе 1С:Преднриятие используется специальный объект метаданных — «Операция». Он позволяет занести в систему информацию о хозяйственной операции и зафиксировать дату и время совершения операции, сумму операции, и некоторые дополнительные сведения, состав которых можно определить в Конфигураторе.

Операции могут вводится в систему автоматически на основе документов или вручную.

На основе документа операция вводится путем ввода соответствующего документа: алгоритм формирования операции для конкретного документа должен быть записан в модуле документа. Все необходимые реквизиты операции в этом случае заполняются автоматически.

Если операция вводится пользователем «вручную», система 1С:Предприятис автоматически создает документ «Операция» и открывает для редактирования форму операции. В этом случае все реквизиты операции пользователь вводит самостоятельно. Для ввода таких операции предназначен документ «Операция».

Документ «Операция» обладает особыми свойствами.

В отличие от прочих объектов метаданных, его структура не редактируется. Структурой этого документа является структура объекта метаданных «Операция».

В отличие от объектов метаданных типа «Документ», формой документа «Операция» является форма операции. Кроме этого, документ «Операция» не имеет формы списка.

Для редактирования свойств документа «Операция» используется окно редактирования «Документ Операция», который можно вызвать двойным щелчком мыши на ключевом слове «Операция».

Свойства, которые редактируются в данном окне, совпадают с аналогичными свойствами объектов метаданных типа «Документ». Подробнее о редактировании этих свойств можно узнать в п. «Свойства документа» (см. выше).

Следует обратить внимание, что журнал документов, который будет указан для работы с документами типа «Операция», при работе с системой 1С:Предприятие будет содержать только операции, введенные пользователем «вручную». Для доступа ко всему списку операций — и сформированных автоматически, и введенных вручную — следует использовать журнал операций (см. в главе «Операции и проводки» п. «Графы журнала операций», стр. Ошибка! Закладка не определена., и «Форма журнала операции», стр. Ошибка! Закладка не определена.).

Модуль документа

Модуль документа представляет собой программу на встроенном языке системы 1С:Предприятие. В отличие от модуля формы, он имеет несколько особенностей.

Модуль документа вызывается для исполнения при проведении документа, при этом выполняется предопределенная процедура ОбработкаПроведения.

Только из модуля документа можно изменять регистры, периодические реквизиты справочников (для которых включено свойство «Изменяется документами») и журналы расчетов. Все эти изменения выполняются средствами встроенного языка.

Также только из модуля документов можно формировать операции и проводки операций. Проводки вызывают изменения в бухгалтерских итогах.

Для изменения регистров при выполнении модуля документа создаются особые записи, называемые движениями регистров. Эти записи указывают: как в результате проведения документа должны измениться сводные остатки или обороты, хранящиеся в регистрах.

Документ «помнит» о тех изменениях, которые он выполнил в регистрах, справочниках, журналах расчетов и бухгалтерских операциях. При удалении документа или отмене его проведения (команда «Сделать документ непроведенным» в меню «Действия» главного меню системы 1С:Предприятие) выполненные документом изменения будут корректно удалены.

Для редактирования модуля документа используется текстовый редактор, который можно вызвать на экран одним из следующих способов:

· в окне редактирования «Документ» нажмите кнопку «Модуль Документа»;

или

· в окне «Конфигурация — Метаданные» выделите наименование документа;

· нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в этом меню выберите пункт «Модуль Документа».

Подробно порядок работы с текстовым редактором описан в главе «Редактор текстов».

Общие реквизиты

Механизм общих реквизитов служит для создания реквизитов, которые должны существовать во всех создаваемых документах. Кроме того, механизм общих реквизитов позволяет организовать отбор документов в журналах по содержимому таких реквизитов.

Необходимость в создании общих реквизитов может возникать, например, в следующем случае.

Представим такую ситуацию. В процессе работы системы 1С:Предприятис при большом документообороте возникла проблема определения авторства: кто из сотрудников ввел или последний раз редактировал конкретный документ. Подобная задача может быть решена, например, путем ввода в структуру каждого документа реквизита «Автор» и описания алгоритма его автоматического заполнения при вводе или редактировании документа. Однако, используя механизм общих реквизитов, достаточно создать реквизит «Автор» один раз. Общий реквизит не появляется в структуре каждого документа, но он будет доступен при редактировании формы документа и к нему можно обращаться при помощи встроенного языка из модуля документа.

Отбор документов в журналах по содержимому общих реквизитов включается автоматически, если для общего реквизита включена опция «Сортировка». Такая установка дает возможность пользователю системы 1С:Предприятие выводить список документов, имеющих указанное значение общего реквизита. В приведенном выше случае, например, руководитель отдела продаж может получить список всех Документов, выписанных конкретным продавцом.

Управление списком общих реквизитов

Вся работа с объектами метаданных типа «Общий реквизит документа» ведется в окне «Конфигурация — Метаданные». Для общих реквизитов отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Общие реквизиты». Приемы создания, редактирования свойств и удаления общих реквизитов совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр..

После того, как общий реквизит создан, он становится доступен при редактировании формы документа и к нему можно обращаться из модуля документа.

Свойства общего реквизита

Свойства общего реквизита редактируются в палитре свойств «Свойства Реквизита». Набор свойств общего реквизита документа совпадает со свойствами «обычного» реквизита документа, за одним исключением.

Для общих реквизитов в закладке «Дополнительные» появляется опция «Отбор». Если для общего реквизита установлен этот признак, то при использовании конфигурации по содержимому такого реквизита можно будет выполнять отбор документов в общих журналах.

Внимание! Работа с общими реквизитами, у которых включен признак «Отбор», требует дополнительных ресурсов со стороны системы 1С:Предприятие. Поэтому используйте отбор по общим реквизитам документов только тогда, когда это действительно необходимо.

Нумераторы

Нумератор представляет собой объект метаданных, описывающий правила нумерации документов: тип и длина номера документа, его периодичность, необходимость контроля уникальности.

Основное назначение нумератора — обеспечить возможность сквозной нумерации документов разного вида, для этого таким документам назначается одинаковый нумератор.

Управление списком нумераторов

Вся работа с объектами метаданных типа «Нумератор» ведется в окне «Конфигурация — Метаданные». Для нумераторов отведена отдельная ветвь дерева метаданных, которая расположена «внутри» ветви «Документы» и начинается у ключевого слова «Нумераторы». Приемы создания, редактирования свойств и удаления нумераторов совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

Свойства нумератора

В этом параграфе будут описаны специфические свойства нумераторов, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства нумератора редактируются в палитре свойств «Свойства Нумератора».

Закладка «Нумератор»

Закладка «Нумератор» предназначена для определения правил нумерации документов.

Периодичность. Данный реквизит устанавливает 2 важные характеристики нумератора: пределы контроля уникальности номеров документов и период повторяемости номеров.

Если включен признак контроля уникальности номеров документов (см. ниже), реквизит «Периодичность» устанавливает, в каких пределах осуществлять этот контроль.

Например, если установлена периодичность «В пределах дня», то уникальность номеров документов будет контролироваться в пределах суток: на следующие сутки номера документов могут повторяться, но в пределах суток они будут уникальны.

При включенном признаке автоматической нумерации (см. п. «Свойства документа», стр. 1) система 1С:Предприятие будет присваивать очередной порядковый номер каждому новому документу. После завершения периода, установленного в реквизите «Периодичность», нумерация документов начнется с 1.

Длина. Устанавливает максимальную длину номера документа.

Тип. Группа «Тип» позволяет выбрать тип значения для номера документа — числовой или текстовый. Выбор текстового типа номера бывает полезен, когда используется сложная система нумерации документов, и номер документа может включать, помимо цифр, также буквы и символы-разделители.

Контроль уникальности. Если эта опция включена, то при вводе нового документа его номер проверяется на уникальность в пределах, установленных в реквизите «Периодичность».

Последовательности документов

«Последовательности документов» являются вспомогательными объектами метаданных. Они предназначены для обеспечения проведения определенных документов в строгой хронологической последовательности.

Последовательности документов могут быть использованы при работе с компонентами «Оперативный учет» и «Бухгалтерский учет».

Все документы в системе 1С:Предприятие образуют единую хронологическую последовательность. Для этого каждый документ имеет дату и время. Даже если два документа имеют одинаковую дату и одинаковое время, они все равно располагаются в определенной последовательности, определяемой порядком их ввода в систему. Дата и время документа могут быть изменены. Таким образом, независимо от порядка ввода документов, они могут быть, расположены в последовательности, отражающей реальною последовательность происходивших в хозяйственной жизни предприятия событий, которые данные документы отражают.

В системе 1С:Предприятис в процессе проведения документ выполняет некоторые действия, которые отражают данный документ в различных механизмах учета, поддерживаемых 1С:Предприятием. Например, для отражения в регистрах оперативного учета документ выполняет запись движений регистров, а для отражения в бухгалтерском учете документ выполняет запись проводок.

Алгоритм проведения документа, как правило, отражает в учете данные, записанные в самом документе (в его реквизитах). Однако в некоторых случаях алгоритм проведения документа анализирует также и текущие итоги, используя их при проведении. Например, если документ списывает товары или материалы по средней себестоимости, то для определения суммы списания алгоритм проведения будет анализировать остатки товаров (материалов) на момент документа. Если списание выполняется по методам LIFO или FIFO, то алгоритм проведения будет анализировать существующие остатки товаров (материалов) в разрезе партий на момент (позицию) документа.

Очевидно, что документы, основывающиеся при проведении на данных итогов, должны проводиться строго последовательно. Однако на практике, из-за ошибок при вводе информации и несвоевременного поступления документов, часто приходится вводить или исправлять документы «задним числом». Разумеется, в этом случае движения регистров или проводки, сформированные всеми последующими документами (расположенными после того, который был исправлен), становятся некорректными. Например, если выяснилось, что в одной из приходных накладных, введенных в начале месяца, было неверно указано количество товара, то во всех последующих расходных накладных, списывающих имеющиеся в наличии партии, необходимо заново проанализировать остатки с учетом внесенных изменений и заново записать движения регистров или проводки. То есть, все документы, анализирующие остатки и расположенные после измененного документа, должны быть перепроведены.

Для автоматического контроля необходимости перепроведения документов используются «Последовательности документов». Каждая введенная в метаданных «Последовательность документов» обеспечивает контроль за порядком проведения документов указанных видов. Таким образом, в системе может существовать несколько независимых последовательностей.

Управление списком последовательностей документов

Вся работа с объектами метаданных типа «Последовательность документов» ведется в окне «Конфигурация — Метаданные». Для нумераторов отведена отдельная ветвь дерева метаданных, которая расположена «внутри» ветви «Документы» и начинается у ключевого слова «Последовательности». Приемы создания, редактирования свойств и удаления последовательностей документов совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

Свойства последовательности документов

В этом параграфе будут описаны специфические свойства последовательностей документов, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства последовательности документов редактируются в окне редактирования «Последовательность».

Движения, влияющие на последовательность. Одним из основных параметров настройки «Последовательности документов» является параметр «Движения, влияющие на последовательность». Он определяет, какие из изменений итогов будут влиять на необходимость перепроведения документов данной последовательности, то есть итоги каких механизмов учета используются документами данной последовательности при проведении.

В качестве таких движений могут выступать движения регистров или бухгалтерские проводки. Для настройки данного параметра следует в списке «Возможные значения» выбрать (щелчком мыши или нажатием клавиши Enter) те виды регистров, движения которых будут нарушать данную последовательность, и те бухгалтерские счета, проводки по которым также будут нарушать данную последовательность. Выбранные виды движений выводятся в списке «Выбранные значения».

Последовательность влияет на проведение документов. В нижней части диалога настройки «Последовательности документов» указываются виды документов, которые относятся к данной последовательности. Для выбора видов документов следует указать их в списке «Возможные значения» (щелчком мыши или клавишей Enter). Выбранные виды будут выводиться в списке «Выбранные значения».

Например, для организации правильного списания товаров следует в качестве движения, влияющего на последовательность, указать регистр оперативного учета, на котором ведется стоимостной учет товаров или, если учет ведется на бухгалтерских счетах, указать счет, на котором ведется учет товаров. В качестве документов, на проведение которых будет влиять данная последовательностей, следует выбрать те виды документов, которые при проведении будут анализировать указанный регистр или остатки по указанному счету. Например, такими документами могут быть расходные накладные, накладные на передачу на реализацию и т. д.

Работа с последовательностями документов

При работе в режиме «1С:Предприятие» для каждой введенной в метаданных последовательности документов система будет автоматически поддерживать границу последовательности. В качестве границы последовательности будет выступать позиция документа. При последовательном проведении документов, входящих в данную последовательность, граница последовательности будет устанавливаться на каждый вновь проведенный документ. Однако, если будет проводиться документ, относящийся к данной последовательности, но расположенный позже другого проведенного документа, относящегося к той же последовательности и находящего после текущей границы последовательности, то граница последовательности сдвигаться не будет, так как нарушается последовательность проведения документов. Эта ситуация может быть проанализирована алгоритмом проведения документа.

При проведении документов задним числом, а также отмене проведения или удалении документов, если удаляются или записываются движения регистров или проводки по счетам, указанным как влияющие на данную последовательность, граница последовательности отодвигается на момент измененного документа.

Таким образом, граница последовательность будет продвигаться вперед при последовательном проведении относящихся к данной последовательности документов, и будет отодвигаться назад при изменении задним числом относящихся к данной последовательности движений регистров и проводок.

В режиме пересчета документов (вызывается выбором пункта «Проведение документов» из меню «Операции» главного меню программы) существует специальная возможность восстановления последовательности проведения документов. При се использовании система автоматически выполняет перепроведение всех документов, относящихся к данной последовательности от границы последовательности, до указанного момента.

В приведенном нами примере с учетом товаров, проводимые расходные накладные будут сдвигать границу последовательности вперед. Любое изменение в движениях регистра на котором ведется стоимостной учет товаров или в проводках но счету на котором ведется учет товаров, если оно выполнено документом, располагающемся раньше границы последовательности, будет отодвигать границу последовательности назад, на момент этого документа. После этого проводимые документы, находящиеся позже границы последовательности уже не будут двигать ее вперед, если между границей последовательности и проводимым документом окажутся проведенные документы из этой последовательности. Режим восстановления последовательности будет перепроводить все расходные накладные. Заметим, что приходные накладные, хотя и влияют своими движениями на границу последовательности перепроводиться не будут, так как они не используют в алгоритме проведения остатков и не включены в список документов, относящихся к данной последовательности. После выполнения восстановления последовательности проводимые после границы последовательности документы снова будут двигать границу вперед.

Режим восстановления последовательности позволяет автоматически выполнить перепроведение всех документов, относящихся к последовательности от текущей позиции границы последовательности, до указанного момента. В верхней части диалога следует выбрать позицию, до которой будет выполняться перепроведение документа. При использовании компоненты «оперативный учет» наиболее целесообразным является выбор варианта «но точку актуальности». В этом случая будут перепроведены все документы до «ТА» включительно. При выборе варианта «по дату» следует указать дату. Вы этом случае будут перепроведены все документы до указанной даты включительно.

В поле «Последовательности документов» выводится список всех существующих в конфигурации последовательностей. Следует отметить те последовательности, которые должны быть восстановлены. В списке для каждой последовательности выводится текущее позиция границы последовательности. Для выбора всех последовательностей можно нажать кнопку «Вкл. все».

Для выполнения восстановления последовательностей следует нажать кнопку «Выполнить». При атом система будет перепроводить все документы относящиеся к выбранным последовательностям, начиная с позиции наиболее ранней границы из выбранных последовательностей и до указанно позиции (ТА или даты) включительно.

Восстановление последовательностей может выполняться только в монопольном режиме, так как система должна гарантировать неизменность итогов на момент перепроведения документов.

Ввод документов «на основании»

Одним из режимов ввода новых документов в процессе работы пользователя с системой 1С:Предприятие является режим ввода «на основании». С точки зрения пользователя, режим ввода «на основании» позволяет вводить документы, заполняя их реквизиты путем копирования информации из выбранного документа-образца. В отличие от простого копирования документов, в результате которого создается документ того же вида, что и документ-образец, режим ввода «на основании» позволяет создавать и переносить информацию в документ другого вида.

Организация ввода документов «на основании»

Для организации ввода документа «на основании» необходимо в модуле формы документа создать процедуру с зарезервированным именем ВводНаОсновании(). Эта процедура выполняется после выбора команды «Ввести на основании» из меню «Действия» главного меню системы 1С:Предприятие и последующего выбора из списка нужного вида документов, либо после выбора пункта пользовательского меню, выполняющего команду «Ввод на основании». При вызове процедуры в качестве параметра ей передастся документ-образец.

Текст этой процедуры должен быть разработан специалистом, осуществляющим конфигурирование системы. В тексте процедуры следует предусмотреть выполнение тех или иных операций по переносу информации — в зависимости от вида документа-образца, а также любые другие необходимые действия.

Если при работе пользователей с системой 1С:Предприятие предполагается частое применение режима ввода «на основании» (при большом документообороте), можно ввести в пользовательский интерфейс пункты меню или кнопки панелей инструментов, выполняющие команду «Ввод на основании» для конкретных документов. Использование таких пунктов меню (кнопок) позволит при вводе документа «на основании» исключить этап выбора вида документа из выдаваемого на экран списка и, таким образом, ускорить работу.

Конструктор ввода на основании

Конструктор ввода на основании облегчает задачу разработки процедуры ВводНаОсновании().

Конструктор можно вызвать, выбрав пункт «Ввод на основании...» из меню «Конструкторы» главного меню программы или нажав кнопку [image] на панели инструментов «Конструкторы». При этом должна быть открыта форма документа.

При запуске открывается диалог «Конструктор ввода на основании». Он содержит список документов-оснований, список реквизитов документа и список (в виде дерева) реквизитов документа-основания, выбранного в первом списке.

В список документов-оснований входят:

· документы, отмеченные в правом списке в окне «Ввод на основании». (Это окно открывается при нажатии соответствующей кнопки в окне свойств данного документа);

· документы, никак не отмеченные в свойствах данного документа, если для самих этих документов в том же окне «Ввод на основании» установлен флажок «Может являться основанием для документов любого вида».

Кнопки «Назад» и «Далее» перемещают курсор вверх и вниз по списку реквизитов документа. При достижении конца списка появляется запрос «Перейти к следующему документу-основанию?», и при выборе «Да», курсор в списке документов-оснований смещается на следующую строку. Такой порядок обеспечивает перебор всех реквизитов документов для каждого документа-основания. Можно также для выделения строки в любом списке пользоваться мытью.

В список реквизитов документа нужно поместить формулы, определяющие, как заполнять реквизиты документа по выбранным реквизитам документа-основания.

Эти формулы можно создавать «вручную» следующим образом. Формула определяется в поле ввода «Формула заполнения реквизита» для реквизита документа, выделенного в списке. Можно вручную набрать ее в этом поле (а также вручную редактировать в нем созданную ранее формулу). Правильность написания формул Конструктор не проверяет.

Можно также двойным щелчком в списке реквизитов документа-основания помещать данные соответствующего реквизита в поле «Формула заполнения реквизита», причем сразу в правильной записи, например, реквизит документа-основания «Товар» — в записи «ДокОснование.Товар». Конструктор не проверяет соответствия типов выбранных реквизитов.

Возможна и комбинация двух описанных способов: данные из списка реквизитов документов-оснований при помещении в поле ввода замещают не всю имеющуюся там информацию, а только выделенные символы.

По кнопке «Заполнить формулы автоматически», после запроса и подтверждения, программа сама создаст формулы для заполнения по реквизитам документа-основания. Ранее заполненные формулы при автоматическом заполнении не изменяются. Подбор среди реквизитов документа-основания соответствий реквизитам документа осуществляется с учетом имен реквизитов, их идентификаторов и типов.

По кнопке «Очистить формулы», после запроса и подтверждения, очищаются все формулы, созданные как автоматически, так и вручную.

Формулы, созданные для документа-основания, выбранного в списке документов-оснований, запоминаются при переходе к другому документу-основанию этого списка. Поэтому можно, не прекращая работы Конструктора, создать процедуры ввода на основании для нескольких документов-оснований. Можно также возвращаться к редактированию процедуры для какого-либо документа-основания, снопа выбирая его в списке.

Для прекращения работы Конструктора служат кнопки «ОК» и «Отмена» (соответственно, с сохранением и без сохранения сделанных изменений).

Кнопка «Обновить» позволяет отразить в модуле формы сделанные изменения без выхода из окна Конструктора.

В результате работы Конструктора в модуле формы документа создается процедура ВводНаОсновании(ДокОснование). В начало процедуры Конструктор помещает предупреждение: «Данный фрагмент построен Конструктором. При повторном использовании Конструктора внесенные вручную изменения будут потеряны!».

При повторном использовании Конструктора все формулы, сформированные ранее для какого-либо документа-основания, будут появляться в списке реквизитов документа при выделении соответствующего документа-основания в списке документов-оснований. Конструктор предъявит для просмотра и редактирования формулы, сформированные при предыдущем его запуске, как с помощью кнопки «Заполнить формулы автоматически», так и вручную. Более того, он учтет и формулы, вручную внесенные в модуль документа, если они помещены в формируемую им процедуру. Правильность этих формул Конструктор не проверяет. Например, если для какого-то реквизита документа указано заполнение двумя различными реквизитами документа-основания, Конструктор для показа выберет один из них (но алфавиту). Именно он останется в модуле после обновления результатов работы Конструктора, вторая строка, соответствующая тому же реквизиту, будет удалена.

Подчиненные документы

Система 1С:Предприятие позволяет устанавливать между документами отношения подчиненности типа «один ко многим». Использование механизма подчиненности дает пользователю возможность автоматически формировать список документов, подчиненных выбранному документу. Кроме того, к списку подчиненных документов можно обращаться из встроенного языка системы 1С:Предприятие.

Чтобы сделать какой-либо документ (назовем его условно «Документ 2») подчиненным другому документу («Документ 1»), необходимо:

· в структуре документа «Документ 2» создать реквизит типа «документ» (указав конкретный вид документов или «документ вообще»);

· при использовании конфигурации при вводе документа «Документ 2» в качестве значения этого реквизита выбрать документ «Документ 1».

Для работы со списком документов, подчиненных какому-либо документу, используется журнал специального типа — журнал подчиненных документов.

Конструктор документа

Вызов Конструкторов для создания объектов метаданных описан в главе «Метаданные».

Для иллюстрации работы Конструктора документа можно создать с его помощью, например, документ «Поступление материалов». В первом окне Конструктора нужно заполнить поля ввода примерно так: Идентификатор — «ПостМатериалов», Синоним — «Пост. мат.», Комментарий — «Поступление материалов». Введенные данные появятся потом в окне редактирования свойств документа, имеющем такие же поля ввода.

Далее Конструктор спросит, в частности, формировать ли документ «от проводки». Если на это согласиться, появится окно Конструктора, в котором нужно сформировать список проводок. В начале список проводок пуст. Заполняется он нажатием кнопки «Добавить», по которой открывается окно «Опишите проводку». В этом окне нужно задать счета дебета и кредита проводки. Кнопки выбора дают доступ к списку счетов. В нем выбирается счет кредита и счет дебета. После выбора счета его код попадает в окно «Опишите проводку» и затем в список проводок. Если выбрать наверху списка счетов «Счет будет вводиться в документе» (т. е., в документе будет определяться счет для проводки), то такие счета определяются как переменные «Сч1», «Сч2» и т. д.

В следующем окне Конструктор предлагает список реквизитов связанных со сформированным списком проводок. Если среди счетов были бы переменные, каждая из них стала бы реквизитом документа, например, Сч2, и к ней добавились бы еще реквизиты для аналитического учета, в данном случае это были бы Сч2_Субконто1, Сч2_Субконто2 и Сч2_Субконто3, в соответствии с максимальным количеством субконто, установленным в плане счетов (можно установить до 5, обычно же установлено 3). Это максимальное количество применительно к конкретной ситуации как раз в данном окне можно сократить: отменить часть реквизитов, сняв флажки. Вызывая кнопкой «Изменить» окно «Реквизит документа», можно изменить идентификаторы и их синонимы для реквизитов списка.

В следующем окне можно какие-то из реквизитов поместить в табличную часть документа (тогда проводки по ним будут формироваться по каждой строке табличной части документа).

В следующем окне Конструктора, появляющемся и в том случае, когда документ не формировался «от проводок» (тогда оно появляется сразу вслед за тем окном, в котором этот путь формирования документа был отменен), можно включить документ в один из журналов. Можно также выбрать создание нового журнала или не выбрать ничего. В последнем случае документ попадет в журнал «Общий» и журнал «Прочие». Журнал можно назначить и позднее, при редактировании свойств документа. Новый журнал создастся, если его создание выбрано, в данном окне, и называется но умолчанию так же, как сам документ. Если в конфигурации есть дополнительные журналы, документ может быть включен и в них.

После назначения создаваемому документу журнала предлагается поместить команду вызова для него в меню «Документы» пользовательского интерфейса.

Если был выбран вариант «Создавать новый журнал», на следующем шаге Конструктор предлагает указать синоним и комментарий создаваемого журнала, а также выбрать пользовательские интерфейсы, в которые должна быть помещена команда для вызова нового журнала.

После нажатия кнопки «Готово» открывается окно редактирования свойств документа» с частично заполненными параметрами. Для документа создается форма диалога и модуль, содержащий алгоритм проводок по документу.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 8

Глава 8.
Журналы документов

  • Журналы в системе 1С:Предприятие
  • Ведение списка журналов
  • Создание журнала
  • Редактирование журнала
  • Графы журнала документов
    • Редактирование графы журнала документов
  • Графы отбора
    • Назначение граф отбора
    • Управление списком граф отбора
    • Редактирование графы отбора
  • Создание формы журнала документов
  • Организация отбора документов
    • Отбор по общим реквизитам
    • Отбор по графам отбора
    • Закладки отбора
  • Конструктор журнала документов

В данной главе рассказывается о конфигурировании журналов документов.

Журналы в системе 1С:Предприятие

В системе 1С:Предприятие журналы являются средством для работы с документами. Работая с журналом, пользователь может вводить документы, просматривать их, редактировать и удалять. Журналы позволяют группировать документы для просмотра и быстрого доступа к ним.

Конфигуратор позволяет создавать любое необходимое число журналов.

Все журналы в системе 1С:Предприятие можно подразделить на несколько типов, отличающихся друг от друга способами создания и функциональными возможностями. Однако, в журнале любого типа можно работать с документами — вводить, просматривать, редактировать и так далее.

Обычный журнал — основное средство для работы с документами. При создании документа в Конфигураторе можно указать, в каком журнале будет осуществляться работа с документами этого вида при использовании конфигурации. Один обычный журнал может быть назначен одновременно нескольким видам документов, но документы одного вида всегда будут доступны только в одном обычном журнале.

В дальнейшем под словом «журнал» будет пониматься обычный журнал, а для обозначения журналов прочих типов будет использоваться соответствующий термин.

Общий журнал позволяет работать со всеми документами. Помимо этого, он позволяет выполнять отбор документов но значениям их реквизитов. Такой отбор организуется при помощи общих реквизитов документов (см. п. «Общие реквизиты» на стр. Ошибка! Закладка не определена.) и при помощи граф отбора.

Дополнительный журнал, как и обычный журнал, также позволяет работать с документами разных видов. Но, если назначение документу обычного журнала выполняется в процессе редактирования документа, то выбор документов, которые будут доступны в дополнительном журнале, выполняется при редактировании дополнительного журнала. В отличие от обычных журналов, документы одного вида могут быть доступны одновременно в нескольких дополнительных журналах.

Например, в процессе настройки конфигурации задачи было создано 3 обычных журнала: для приходных накладных, расходных накладных и для накладных на перемещение. Кроме этого, для удобства работы с этими документами был создан также дополнительный журнал «Складские документы», объединивший документы трех видов.

Различие между дополнительным и общим журналом можно кратко сформулировать так: дополнительный журнал служит для разделения документов по видам, а общий журнал позволяет разделять документы по значениям их реквизитов.

В дополнительном журнале нельзя выполнять отбор документов, однако, в конфигурации может быть создано необходимое число общих журналов для группировки документов в соответствии с требованиями учета и желаниями пользователей.

Журнал подчиненных документов предназначен для работы с документами, подчиненными выбранному документу.

Система 1С:Предприятие позволяет устанавливать между любы ми документами отношения подчиненности типа «один ко многим» (см. п. «Подчиненные документы» на стр. Ошибка! Закладка не определена.). При работе с системой 1С:Предприятие пользователь имеет возможность открыть журнал подчиненных документов, содержащий документы, подчиненные выбранному документу.

В качестве журнала подчиненных документов может быть назначен один из общих журналов, существующих в конфигурации. Если журнал подчиненных документов не назначен, он создается системой автоматически при работе в режиме «1С:Предприятие». Автоматически создаваемый журнал подчиненных документов имеет только экранную форму, которая также создается автоматически и не может настраиваться в Конфигураторе.

Полный журнал позволяет работать со всеми документами любых видов, существующих в конфигурации. По своим свойствам он схож с журналом подчиненных документов.

Полным журналом может быть назначен один из общих журналов, существующих в конфигурации. Если полный журнал не назначен, он создается системой автоматически при работе в режиме «1С:Предприятие».

Перечисленные выше типы журналов могут быть созданы в процессе разработки конфигурации. При их создании специалист, осуществляющий конфигурирование, может настраивать состав колонок журнала, разрабатывать его экранное и печатное представления.

Кроме этих журналов, в системе 1С:Предприятие существует 1 системный журнал.

Журнал «Прочие» используется для работы с документами, для которых в процессе создания конфигурации не указаны конкретные журналы. В отличие от журнала подчиненных документов и полного журнала, журнал «Прочие» всегда создается автоматически и имеет только экранную форму, которая также не может настраиваться.

При создании любого журнала для него автоматически создается экранная форма в виде таблицы, содержащей графы для отображения обязательных реквизитов документов — названия вида документа, номера, даты и времени. Помимо этого, для журнала может быть задано произвольное количество дополнительных граф для отображения значений любых других реквизитов документов из числа доступных в этом в журнале.

Журналы документов в системе 1С:Предприятие предоставляют пользователю развитые средства для работы с документами. Помимо операций, уже упоминавшихся выше, пользователь может искать любой документ в журнале по содержимому граф, выполнять поиск документов но их номерам.

Ведение списка журналов

Вся работа с объектами метаданных типа «Журнал» ведется в окне «Конфигурация — Метаданные». Для журналов отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Журналы». Помимо журналов, на ветви «Журналы» располагаются служебные объекты метаданных — графы отбора. Приемы создания, редактирования свойств и удаления журналов совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

В этой главе будут описаны специфические свойства журнала, в дополнение к общим свойствам объектов метаданных (см. главу «Метаданные», раздел «Свойства объектов метаданных», стр. Ошибка! Закладка не определена.).

Создание журнала

В системе 1С:Предприятие процессы создания журналов и размещения документов по конкретным журналам тесно связаны между собой.

Так, при редактировании документа (см. п. «Свойства документа» на стр. Ошибка! Закладка не определена.) можно указать, в какой журнал будут помещаться документы этого вида. Следовательно, к этому моменту необходимый журнал уже должен существовать в конфигурации. Но, с другой стороны, при редактировании состава дополнительных граф журнала необходим список реквизитов документов, помещаемых в журнал. Значит, эти документы также уже должны существовать.

Существует три способа создания журналов и документов: вручную, с помощью Конструктора документа и с помощью Конструктора журнала.

Создание журнала «вручную». При создании и журнала, и документов вручную для обеспечения привязки документов к журналу рекомендуется придерживаться следующего порядка действий:

· сначала создать необходимое число журналов; при создании журналов для них достаточно задать идентификатор и, если необходимо, комментарий;

· затем создать документы, при этом настраивая их распределение по журналам;

· и, наконец, выполнить окончательную настройку журналов — установку типа журнала, формирование списка дополнительных граф и определение их состава, разработку форм журналов, создание пользовательского описания.

Создание журнала с помощью Конструктора документов. В процессе создания документа с помощью Конструктора документа (см. п. «Конструктор документа», стр. 165), можно создать новый журнал для документов этого вида. Свойства этого журнала можно отредактировать, используя окно редактирования журнала.

Создание журнала с помощью Конструктора журнала. В этом случае можно вручную создать документы, нс распределяя их по журналам, а затем для создания журнала воспользоваться Конструктором журнала документов. При создании журнала с помощью Конструктора можно установить тип журнала и определить список документов, к которым он дает доступ.

Редактирование журнала

В этом параграфе будут описаны уникальные свойства журналов, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена., и приемы редактирования объектов метаданных типа «Журнал», отличные от общих приемов редактирования объектов метаданных.

Установка типа журнала, формирование списка дополнительных граф и определение их состава выполняется в окне редактирования «Журнал». Назначение управляющих элементов окна редактирования «Журнал»:

Тип журнала. Управляющие элементы этой группы позволяют назначить тип журнала.

Тип журнала «Обычный» устанавливается по умолчанию для каждого вновь создаваемого журнала. Журналы этого типа в основном и используются для работы с документами. Для того, чтобы документы какого-либо вида были доступны в обычном журнале, он должен быть назначен для работы с документами этого вида в окне редактирования документа. Документ может быть доступен только в одном обычном журнале.

Журнал типа «Общий» позволяет, помимо обычной работы, с документами, выполнять отбор документов по значениям их реквизитов. Общим журналом может быть назначен любой журнал (или несколько журналов), существующий в конфигурации.

Если общим журналом назначается один из существующих в конфигурации обычных журналов, который, в свою очередь, уже назначен для работы с документами какого-либо вида, то у тех документов, для которых был назначен этот журнал, установка «Журнал» в окне редактирования документа очищается. Таким документам может потребоваться назначить другой обычный журнал.

Журнал типа «Дополнительный» позволяет указать при редактировании журнала, документы какого вида будут доступны в этом журнале. В отличие от обычного журнала, документы одного вида могут быть доступны одновременно в нескольких дополнительных журналах.

Внимание! Не следует злоупотреблять созданием дополнительных журналов. Для поддержки таких журналов система 1С:Предприятие тратит определенные системные ресурсы, поэтому большое число журналов способно снижать общую производительность системы.

Использовать как журнал подчиненных документов. Один из общих журналов, существующих к конфигурации, может быть назначен в качестве журнала подчиненных документов. Этот журнал будет использоваться при работе пользователя со списком документов, подчиненных выбранному документу (см. п. «Подчиненные документы» на стр. Ошибка! Закладка не определена.).

Использовать как полный журнал документов. Один из общих журналов, существующих к конфигурации, может быть назначен для показа полного журнала. Такое назначение позволяет определить состав граф и форму полного журнала.

Полный журнал может быть вызван пользователем при работе в режиме запуска «1С:Предприятие» из меню «Операции», пункт «Журналы документов».

Помимо работы с документами, полный журнал используется системой в некоторых служебных режимах, например, при поиске в табличных частях форм по значению типа «Документ» для выбора значения поиска среди документов всех видов.

Документы. Управляющие элементы, объединенные в группу «Документы», выполняют различные функции в зависимости от типа редактируемого журнала.

Если редактируется обычный журнал документов, в окне «Документы» для информации выдается список документов, которые будут доступны при работе с этим журналом. Изменить этот список в окне редактирования свойств журнала нельзя: включение в него документа определяется свойствами самого документа и задается в окне редактирования документа.

Если редактируется общий журнал, то в окне «Документы» для информации выдастся список всех документов, существующих в конфигурации. Изменить этот список также нельзя.

Если редактируется дополнительный журнал, то управляющие элементы группы «Документы» используются для выбора видов документов, которые будут доступны в редактируемом журнале.

Чтобы указать, какие документы будут доступны в редактируемом дополнительном журнале, следует нажать кнопку «Состав» и в появившемся диалоге «Состав документов» отметить наименования требуемых документов.

После нажатия кнопки «ОК» диалог «Состав документов» будет закрыт, а наименования выбранных документов будут перенесены в список «Документы».

Графы. Группа «Графы» объединяет управляющие элементы, предназначенные для ведения списка дополнительных колонок журнала и определения их свойств. Подробно об использовании управляющих элементов этой группы будет рассказано ниже в параграфе «Графы журнала документов».

Графы журнала документов

Когда в Конфигураторе создается новый журнал документов, для работы с ним автоматически создается форма журнала. Форма журнала представляет собой таблицу, содержащую набор граф для показа различных реквизитов документов.

В форме журнала, созданной автоматически, всегда присутствуют следующие 4 графы (колонки): «Дата» — дата документа, «Время» — время документа, «Документ» — краткое наименование вида документа и «Номер» — номер документа. Краткое наименование позволяет определить вид документа, номер и дата являются обязательными реквизитами любого документа, время документа позволяет однозначно установить момент актуальности документа.

Кроме этого, в таблицу журнала будут добавлены графы, соответствующие общим реквизитам документов, существующим в конфигурации к моменту создания нового журнала.

Помимо перечисленных выше граф, в журнал можно добавить практически неограниченное количество дополнительных граф. Как правило, такие графы служат для показа значений любых других реквизитов документов, помещаемых в журнал. Наличие в журнале дополнительных граф дает возможность пользователю получить наиболее важные сведения о документе уже при просмотре журнала, не открывая сам документ.

Так как журнал может хранить документы разных видов, при создании дополнительной графы журнала требуется указать, значение какого реквизита того или иного документа будет помещаться в данную графу.

Для управления списком дополнительных граф журнала и редактирования их свойств служат управляющие элементы группы «Графы» диалога «Журнал». Порядок использования этих управляющих элементов можно посмотреть в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Редактирование графы журнала документов

Свойства и состав дополнительной графы журнала редактируются в окне редактирования «Графа». При создании новой графы это окно вызывается на экран нажатием кнопки «Новый» в диалоге «Журнал». Если необходимо отредактировать уже существующую графу журнала, следует выделить имя этой графы в диалоге «Журнал» и нажать кнопку «Изменить». На экран будет выдано окно редактирования «Графа», содержащее текущие установки для выбранной графы.

В этом параграфе будут описаны специфические свойства графы журнала, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Состав дополнительной графы. Для редактирования состава дополнительной графы журнала используются окна «Выбранные Значения» и «Возможные Значения», расположенные ниже ноля «Комментарий».

В окне «Возможные значения» в виде дерева выдается список документов, для которых назначен редактируемый журнал. Знак «+» в узле ветви дерева означает, что данная ветвь имеет подуровни, и щелчком мыши на «+» можно раскрыть следующий уровень. На самом нижнем уровне дерева находятся наименования реквизитов документов.

Окно «Выбранные Значения» содержит список реквизитов документов, значения которых будут отображаться в данной графе при работе с редактируемым журналом. Если редактируется только что созданная дополнительная графа, список «Выбранные значения» будет пуст.

Выбор реквизитов документа для показа в графе журнала выполняется одним из следующих способов:

· дважды щелкните левой кнопкой мыши на наименовании нужного реквизита в окне «Возможные значения»;

или

· выделите наименование нужного реквизита в окне «Возможные значения» и нажмите кнопку [image].

Полное наименование реквизита будет помещено в окно «Выбранные значения», а сам реквизит будет помечен знаком [image].

Для показа в графе журнала можно указать любой реквизит шапки документа или реквизит табличной части документа, для которого включен признак «Итог но колонке» (см. п. «Свойства реквизита документа» на стр. Ошибка! Закладка не определена.).

Для показа в графе журнала можно выбрать только один реквизит документа. Если один из реквизитов документа уже был ранее выбран для отображения в журнале, то выбор другого реквизита того же документа приведет к тому, что имя ранее выбранного реквизита будет удалено из списка «Выбранные значения», а имя нового выбранного реквизита будет помещено в список, и возле него появится отметка [image].

Удаление наименования реквизита из списка «Выбранные значения» выполняется одним из следующих способов

· дважды щелкните левой кнопкой мыши на наименовании нужного реквизита в окне «Выбранные значения»;

или

· выделите наименование нужного реквизита в окне «Выбранные значения» нажмите кнопку [image].

Наименование реквизита будет удалено из списка «Выбранные значения», а в окне «Возможные значения» с этого реквизита будет снята отметка [image].

Графы отбора

Назначение граф отбора

Графы отбора — одна из составляющих механизма отбора документов в журналах. С помощью граф отбора специалист, осуществляющий конфигурирование системы, создает предопределенные критерии отбора. При использовании конфигурации по этим критериям будет выполняться отбор документов п журналах.

Для лучшего понимания этого механизма ниже излагается схема организации отбора документов с использованием граф отбора.

Чтобы графа отбора выполняла свои функции, в Конфигураторе для нее должен быть создан список, состоящий из реквизитов документов, измерений регистров и реквизитов регистров. На состав списка не накладывается практически никаких ограничений: например, в отличие от дополнительной графы журнала, для графы отбора можно выбрать несколько реквизитов одного документа и реквизиты табличной части документа.

Созданный для графы отбора список реквизитов документов, измерений регистров и реквизитов регистров определяет, где будет осуществляться поиск требуемой информации при отборе документов: для реквизитов документов поиск будет проводиться в соответствующих реквизитах документов, для измерений и реквизитов регистров — в движениях регистров.

Графа отбора не имеет визуального представления: ее нельзя поместить в форму журнала для просмотра значений реквизитов графы.

Отбор документов может выполняться только в общих журналах и полном журнале (см. п. «Журналы в системе 1С:Предприятие» на стр. 1). Отбор осуществляется по указанному пользователем условию отбора.

При работе пользователей с системой 1С:Предприятие для указанных выше журналов может быть вызван диалог «Отбор документов», в котором будут выданы наименования видов отбора, которыми являются графы отбора и общие реквизиты документов.

В этом диалоге для графы отбора можно получить список всех существующих значений реквизитов документов, измерений регистров и реквизитов регистров, указанных для этой графы в Конфигураторе. Указав конкретное значение из полученного списка, пользователь назначает условие отбора документов в журнале. В отбор подадут документы, у которых выбранное значение встретится хотя бы в одном из реквизитов документа, измерений или реквизитов регистра.

Если в графе отбора указан реквизит табличной части, то документ попадет в отбор, если в какой-либо из строк табличной части встретится выбранное значение реквизита.

Управление списком граф отбора

Вся работа с объектами метаданных типа «Графа отбора» ведется в окне «Конфигурация — Метаданные». Для граф отбора отведена отдельная ветвь дерева метаданных, которая расположена на ветви «Журналы» и начинается у ключевого слова «Графы отбора». Приемы создания, редактирования свойств и удаления справочников совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

Редактирование графы отбора

В процессе редактирования графы отбора создастся список реквизитов документов (измерений и реквизитов регистров). Значения этих реквизитов будут составлять список возможных значений графы отбора.

Свойства графы отбора редактируются в диалоге «Графа». Диалог можно вызвать на экран, дважды щелкнув левой кнопкой мыши на наименовании графы отбора в окне «Конфигурация — Метаданные»

Необходимо отметить, что набор свойств и порядок редактирования графы отбора несколько отличается от графы журнала. В этом параграфе будут описаны специфические свойства и порядок редактирования графы отбора.

Тип значений отбора. В этом поле определяется тип данных, по которым будет строиться графа отбора.

При создании новой графы отбора в этом поле стоит тип данных «Неопределенный». Это означает, что в графе отбора могут быть использованы значения реквизитов с любым типом данных.

Если в этом поле будет выбран, например, тип «Справочник», то это значит, что в данной графе отбора будут использоваться только значения, имеющие тип «Справочник», вне зависимости от вида справочника.

Если в данном поле будет выбран конкретный тип данных, например, «Справочник.Контрагенты», то это значит, что в графе отбора будут использованы только значения, являющиеся элементами справочника «Контрагенты».

Назначение графе отбора конкретного типа данных имеет важную особенность: если при редактировании состава графы отбора в состав графы будут включены реквизиты, имеющие тип «Справочник», или «документ» неопределенного вида, или «Неопределенный», то в графу отбора будут записываться значения, соответствующие установленному для графы типу.

Например, предположим, что при создании графы отбора «Контрагенты» для нее был указан тип значений отбора «Справочник.Контрагенты». Если при редактировании состава графы отбора включить в нее, например, реквизит «Клиент» документа «ПриходныйОрдер», имеющий тип «Справочник» неопределенного вида, то при работе системы 1С:Предприятие в данную графу будут включаться только те документы «ПриходныйОрдср», у которых в реквизите «Клиент» указан элемент справочника «Контрагенты».

Разумеется, при использовании в графах отбора реквизитов, имеющих тип «Неопределенный», также имеет смысл указывать для графы отбора конкретный тип значений отбора. Если конкретный тип значений для графы установлен, то не будет возможности включить в список выбранных значений реквизиты, которые не могут иметь значений заданного для графы отбора типа.

Отбор пустых значений. Если опция включена, то при использовании конфигурации в список значений графы отбора будут также включаться пустые значения реквизитов документов.

Состав графы отбора. Для редактирования состава графы отбора используются окна «Выбранные Значения» и «Возможные Значения», расположенные ниже поля «Комментарий». Состав графы отбора определяет, где будет осуществляться поиск требуемой информации при отборе документов (см. п. «Организация отбора документов» на стр. 7).

Процесс редактирования графы отбора похож на процесс редактирования дополнительной графы журнала (см. п. «Редактирование графы журнала документов» на стр. 4). Но, так как графа отбора не имеет визуального представления, употребляемые фразы «показ в графе отбора», «помещение в графу отбора» в достаточной степени условны.

В окне «Возможные значения» в виде дерева выдается список существующих в конфигурации документов, видов субконто, реквизитов операции, реквизитов проводки и регистров. Состав объектов метаданных в этом списке зависит от состава установленных компонент системы 1С:Предприятие.

Знак «+» в узле ветви дерева означает, что данная ветвь имеет подуровни, и щелчком мыши на знаке «+» можно раскрыть следующий уровень. На самом нижнем уровне дерева находятся наименования реквизитов документов, видов субконто, реквизитов операции реквизитов проводки, измерений и реквизитов регистров.

Окно «Выбранные Значения» содержит список объектов метаданных перечисленных видов, значения которых будут помещаться в графу отбора. Если редактируется только что созданная графа отбора, список «Выбранные Значения» будет пуст.

Выбор объектов метаданных для помещения в графе отбора выполняется одним из следующих способов:

· дважды щелкните левой кнопкой мыши на наименовании объекта метаданных в окне «Возможные значения»;

или

· выделите наименование нужного реквизита документа, измерения или реквизита регистра в окне «Возможные значения» и нажмите кнопку [image].

В результате этих действий полное наименование объекта метаданных будет помещено в окно «Выбранные Значения», а сам объект метаданных будет помечен знаком [image].

Помните, что выбор объектов метаданных для помещения в список выбранных значений будет выполняться в соответствии с установкой «Тип значения отбора».

Для графы отбора могут быть выбраны несколько реквизитов одного документа. В этом случае документ будет включен в отбор, если хотя бы один из указанных реквизитов содержит выбранное пользователем значение.

В список выбранных значений также могут быть включены любые реквизиты табличной части документа. Для выбранного реквизита в графу отбора попадут значения из всех строк табличной части. Соответственно, документ попадет в отбор, если хотя бы в одной строке табличной части документа этот реквизит имеет выбранное значение.

Если для графы отбора указаны измерения и реквизиты регистра, то поиск указанного пользователем значения будет выполняться в движениях регистров.

Удаление наименования реквизита из списка «Выбранные значения» выполняется одним из следующих способов

· дважды щелкните левой кнопкой мыши на наименовании нужного реквизита в окне «Выбранные значения»;

или

· выделите наименование нужного реквизита в окне «Выбранные значения» и нажмите кнопку [image].

Наименование реквизита будет удалено из списка «Выбранные значения», а в окне «Возможные значения» с этого реквизита будет снята отметка [image].

Совет. Рекомендуется создавать графы отбора из реквизитов одного типа.

Предположим, у Конфигурации существует журнал «Складские документы», в котором хранятся приходные и расходные накладные.

Естественным будет создание графы отбора «По организациям» и выбор для помещения в эту графу реквизита «Поставщик» из приходной накладной и реквизита «Получатель» из расходной накладной.

С другой стороны, создание графы отбора «По поставщикам и товарам» и выбор для нее реквизитов «Поставщик» и «Наименование товара» из приходной накладной приведет, скорее всего, к непредсказуемым результатам.

Создание формы журнала документов

Конфигуратор позволяет создать несколько форм представления журнала документов — для различных случаев использования, и указать, какая форма в каком случае будет применяться.

Для работы со списком форм журнала служит диалог «Формы списков», который можно вызвать на экран одним из следующих способов:

· в окне редактирования журнала нажмите кнопку «Формы»;

или

· в окне «Конфигурация — Метаданные» выделите наименование журнала;

· нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в этом меню выберите пункт «Формы списков» и из открывшегося подменю выберите пункт «Редактировать».

Диалог «Формы списков» содержит окно со списком созданных форм вывода журнала, а также управляющие элементы — кнопки — для управления списком и редактирования форм. Порядок работы с диалогом «Формы списков» изложен в п. «Работа с формами списка» на стр. Ошибка! Закладка не определена..

Когда в Конфигураторе создается новый журнал документов, для него автоматически создается форма для показа журнала на экране. Эта форма имеет идентификатор ФормаСписка. В качестве единственного элемента она будет содержать табличную часть для отображения списка документов.

При первом обращении к новой форме журнала на экран может быть вызван диалог автоматической вставки колонок табличной части, соответствующих графам журнала.

В общем случае, диалог содержит 4 графы, соответствующих обязательным реквизитам документов: «ДатаДок» — дата документа, «ВремяДок» — время документа, «ВидДок» — наименование вида документа и «НомерДок» — номер документа. Если к моменту создания журнала в структуре метаданных существуют общие реквизиты документов (см. п. «Общие реквизиты» на стр. Ошибка! Закладка не определена.), то в список граф будут добавлены графы для показа таких реквизитов.

Если диалоге автоматической вставки граф табличной части снят флажок «Вызывать для новых форм», при обращении к новой форме журнала в табличную часть будут автоматически вставлены перечисленные выше колонки.

Созданная Конфигуратором форма журнала документов может быть отредактирована. Например, для возможности работы с дополнительными графами журнала в табличную часть создаваемого диалога можно вставить колонки, соответствующие таким графам.

Организация отбора документов

Одним из важных механизмов, существенно расширяющих функциональность системы 1С:Прсдприятие, является возможность отбора документов в журналах. Используя механизм отбора, пользователь может формировать списки документов, объединенных но произвольному критерию, и работать только с этими документами.

Для организации отбора документов используются сортируемые общие реквизиты и графы отбора. Отбор документов можно осуществлять только в общих журналах.

Отбор по общим реквизитам

Чтобы организовать отбор документов по содержимому каких-либо общих реквизитов, следует для таких реквизитов включить признак сортировки (см. п. «Свойства общего реквизита» на стр. Ошибка! Закладка не определена.).

При работе с системой 1С:Предприятие для сортируемых общих Реквизитов пользователь может получить список значений таких Реквизитов. Указав наименование общего реквизита и выбрав его Качение из списка существующих значений, пользователь формирует условие отбора. Результатом отбора будет являться список документов, у которых указанный общий реквизит имеет выбранное значение.

Отбор по графам отбора

Использование граф отбора позволяет организовать отбор документов по значениям нескольких реквизитов. Этим отбор по графам отбора отличается от отбора по значениям общих реквизитов.

При создании графы отбора в Конфигураторе указывается, из каких реквизитов документов будут извлекаться значения для графы отбора.

При работе с системой 1С:Предприятие для графы отбора пользователь может получить список всех значений реквизитов документов, указанных для этой графы отбора. Выбрав какое-либо значение из списка существующих значений, пользователь составляет условие отбора документов. Результатом отбора будет являться список документов, у которых выбранное значение встречается хотя бы в одном реквизите из числа указанных для этой графы отбора в Конфигураторе.

Так же, как и для общих реквизитов, при работе со списком отобранных документов по графе отбора в заголовке журнала выдается слово «Отбор» и указывается условие отбора.

Закладки отбора

Закладки отбора предоставляют пользователю возможность быстрого переключения между списками документов, отобранных но заранее назначенным условиям. Закладки отбора создаются средствами встроенного языка и используют критерии отбора, созданные при помощи общих реквизитов документов и граф отбора.

Специалист, осуществляющий конфигурирование системы 1С:Предприятие, может использовать закладки отбора для разделения документов в общем журнале на несколько списков. В качестве условия разделения документов могут служить значения одного из общих реквизитов документов или значения графы отбора. Каждый новый документ, введенный пользователем в систему, будет автоматически попадать в соответствующий отбор.

Конструктор журнала документов

Вызов Конструкторов для создания объектов метаданных описан в главе «Метаданные».

Первый экран Конструктора журнала документов служит для ввода идентификатор, синонима и комментария нового объекта метаданных.

На следующем шаге необходимо определить тип журнала и список документов, к которым дает доступ этот журнал.

При выборе обычного журнала в списке справа будут выданы все документы, не отнесенные пока ни к какому обычному журналу (их можно найти в журнале «Прочие»). Нужно установить флажки тем документам, которые требуется включить в создаваемый журнал.

При выборе общего журнала в списке будут для справки помещены все документы конфигурации. Установленные для них флажки обозначают, что в общем журнале можно работать со всеми документами; снять флажки нельзя.

При выборе дополнительного журнала в списке также окажутся все документы конфигурации, но по умолчанию они не включаются в создаваемый журнал. Для включения нужным документам требуется установить флажки.

На последнем шаге работы Конструктора журнала можно вставить команду вызова создаваемого журнала в существующие пользовательские интерфейсы конфигурации.

После нажатия кнопки «Готово» в конфигурации появится новый журнал, а на экране откроется окно редактирования его свойств.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 9

Глава 9.
Перечисления

  • Перечисления в системе 1С:Предприятие
  • Управление списком перечислений
  • Редактирование перечисления
    • Управление значениями перечисления
    • Редактирование свойств значения перечисления

Перечисления в системе 1С:Предприятие

Перечисление представляет собой служебный тип данных, который не используется самостоятельно, а применяется, в основном, в совокупности с другими типами данных. Определить перечисление можно как «список возможных значений реквизита».

Перечисления используются при вводе значений реквизитов документов, справочников, при вводе значений констант, и тех случаях когда необходимо исключить неоднозначный ввод информации.

Рассмотрим в качестве примера такое понятие, как «статус покупателя». В простейшем случае покупатели бывают розничные и оптовые. Со статусом покупателя обычно связывают уровень предоставляемых скидок с продажной цены товаров.

Такой список «статусов» — «розничный», «оптовый» — может служить примером простого перечисления. При выписке расходной накладной от пользователя системы требуется указать статус покупателя, выбрав его из этого списка. Выбранный статус покупателя, в свою очередь, определяет размер продажных цен.

Если статус покупателя вводится в процессе настройки конфигурации задачи как перечисление, то специалист, выполняющий конфигурирование системы 1С:Предприятие, может заранее ввести варианты расчета продажных цен в зависимости от указанного статуса.

По своим свойствам перечисление похоже на справочник, однако имеет ряд существенных отличий.

Прежде всего, перечисление не может пополняться в процессе работы с ним: список его значений задается при настройке перечисления в Конфигураторе.

Перечисление не имеет вложенности — все его значения находятся на одном уровне.

Основное отличие состоит в том, что список значений перечисления известен и доступен в Конфигураторе — сама конфигурация использует конкретные значения перечисления.

С функциональной точки зрения, перечисление проще в настройке и в использовании.

Использование перечисления позволяет ограничить число возможных вариантов, например, при вводе реквизита документа. Так как список значений перечисления создается в Конфигураторе, то тут же, в Конфигураторе, можно организовать проверку выбранного значения и описать действия, которые должны за этим выбором последовать.

Управление списком перечислений

Вся работа с объектами метаданных типа «Перечисление» ведется в окне «Конфигурация - Метаданные». Для перечислений отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Перечисления». Приемы создания, редактирования свойств и удаления перечислений совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. 18.

Редактирование перечисления

Редактирование перечисления заключается в создании списка значений перечислений. Для редактирования перечисления используется окно редактирования «Перечисление».

Назначение управляющих элементов диалога объясняется ниже.

Значения. Группа «Значения» объединяет управляющие элементы, предназначенные для ведения списка значений перечисления и редактирования их свойств. Подробно об использовании управляющих элементов этой группы будет рассказано ниже в параграфе «Управление значениями перечисления».

Описание. Кнопка «Описание» предназначена для вызова текстового редактора, в котором можно описать назначение и порядок использования перечисления.

Управление значениями перечисления

Перечисление, как самостоятельный объект метаданных, в системе 1 (^Предприятие не применяется, а используется, в основном, при работе с объектами данных других типов: при заполнении реквизитов документов или справочников, при вводе значений констант и в Других аналогичных случаях. Использование перечисления позволяет ограничить выбор пользователя заранее заданным списком значений перечисления и дает возможность уже в процессе настройки конфигурации задачи предусмотреть все ситуации в зависимости от выбора пользователя.

Управление списком значений перечисления и определение свойств этих значений производится при помощи управляющих элементов группы «Значения» диалога «Перечисление». Порядок использования этих управляющих элементов можно посмотреть в п. «Редактирование списков объектов метаданных» на стр. 21.

Редактирование свойств значения перечисления

В этом параграфе будут описаны специфические свойства значения перечисления, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. 21.

В отличие от других объектов метаданных, значение перечисления не имеет свойства «Синоним». В этом качестве выступает свойство значения перечисления «Представление».

Представление. В поле «Представление» можно ввести произвольную строку символов. Эта строка будет отображаться в списке возможных значений перечисления, когда перечисление выдается на экран для выбора значения перечисления.

Можно сказать, что представление занимает промежуточное значение между идентификатором и комментарием: в наиболее общем случае, представление должно быть более подробное, чем идентификатор, но не такое развернутое, как комментарий.

Например, одно из значений перечисления «Образование» может иметь идентификатор «НезаконченноеВысшее», комментарием будет, скорее всего, «Незаконченное высшее», а в качестве представления можно использовать строку «Н. высшее».

Если поле «Представление» не заполнено, для выдачи в списке будет использоваться идентификатор значения перечисления.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 10

Глава 10.
Отчеты и обработки

  • Отчеты и обработки в системе 1С:Предприятие
  • Управление списком отчетов
  • Редактирование свойств отчета
  • Создание формы отчета
  • Внешние отчеты (обработки)
    • Создание внешнего отчета (обработки)
    • Использование внешних отчетов (обработок)
    • Редактирование внешнего отчета (обработки)
    • Описание внешнего отчета (обработки)
    • Защита паролем внешнего отчета (обработки)
    • Внешние отчеты (обработки) и объекты метаданных
  • Конструктор макета отчета
    • Запуск Конструктора макета отчета
    • Выбор вида отчета
    • Создание диаграммы
    • Завершение работы Конструктора
    • Результаты работы Конструктора

Любая система автоматизации учета только тогда выполняет свои функции, когда она имеет средства обработки накопленной в системе информации и получения сводных данных в удобном для просмотра и анализа виде. Как правило, для решения подобных задач в системе автоматизации учета существует подсистема формирования отчетных документов (их еще называют выходными документами). Такая подсистема может формировать набор различных отчетных документов, достаточных для удовлетворения потребности пользователей системы в достоверной и подробной выходной информации.

Отчеты и обработки в системе 1С:Предприятие

Для получения сводной выходной информации в системе 1С:Предприятие используются объекты метаданных, называемые «Отчет» и «Обработка». Объект данных этого типа представляет собой алгоритм обработки информации на внутреннем языке системы 1С:Предприятие. К алгоритму «прикрепляется» диалог, при помощи которого, при необходимости, можно организовать ввод каких-либо параметров, влияющих на ход его алгоритма. Обычно алгоритм имеет и сделанное в табличном редакторе описание печатной формы, которое используется для вывода результатов выполнения алгоритма на экран и принтер. В некоторых случаях одна и та же таблица используется и для ввода параметров, и для вывода результатов.

Название «Отчеты» и «Обработка» отражает два вида задач, которые могут выполняться объектами метаданных этих типов.

Во-первых, это получение разнообразных отчетных документов. В этом случае информация, накопленная в системе, используется для обобщения и формирования итоговых результатов в различных раз. резах.

Во-вторых, это выполнение различных действий над информацией. Например, с их помощью можно выполнять удаление из системы устаревших данных, импорт информации из других систем и многое другое. Характер выполняемых в этом случае действий отражает название объекта метаданных — «Обработка», так как в результате информация, хранящаяся в системе, претерпевает какие-либо изменения.

С точки зрения настройки, эти два типа объектов метаданных совершенно одинаковы. Однако рекомендуется алгоритмы, выполняющие какие-либо изменения в информационной базе, размещать на ветви «Обработка» и назначать права на использование обработок только наиболее подготовленным пользователям системы.

Далее в этой главе для простоты используется термин «отчет», при этом имеются в виду оба типа объектов метаданных.

Управление списком отчетов

Вся работа с объектами метаданных типа «Отчеты» и «Обработка» ведется в окне «Конфигурация — Метаданные». Для отчетов отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Отчеты», для обработок — ветвь, начинающая у слова «Обработки».

Редактирование свойств отчета

Свойства отчета редактируются в палитре свойств «Свойства Отчета». Приемы редактирования свойств отчета совпадают с общими приемами редактирования свойств объекта метаданных, изложенными в и. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Создание формы отчета

Фактически, объект метаданных типа «Отчет» («Обработка») представляет собой только форму: модуль формы является алгоритмом построения отчета, диалог позволяет задавать параметры формирования отчета, а таблица служит для выдачи результатов построения отчетов в требуемом виде. Конечно, из этого утверждения есть и исключения: например, у объектов метаданных типа «Обработка» таблица чаще всего отсутствует, а для отчетов, напротив, может заменять собой диалог. Однако, в наиболее общем виде отчет представляет собой именно форму.

Свойства отчета, присущие ему, как объекту метаданных, — идентификатор, синоним, комментарий — идентифицируют отчет в структуре метаданных конфигурации и позволяют обращаться к нему, например, при создании наборов прав или разработке пользовательских интерфейсов.

Для редактирования формы отчета используется комплексный редактор форм, который вызывается выбором пункта «Редактировать форму» из контекстного меню объекта метаданных. Описание работы с редактором форм в целом и его «составляющими» приводится в соответствующих главах настоящего Руководства.

Управление сохранением настройки отчета. При редактировании диалога отчета редактор форм, помимо прочих функций, позволяет управлять режимом «сохранения настройки». Поясним это подробнее.

В процессе работы с отчетами с режиме запуска «1С:Преднриятие» у пользователя существует возможность «сохранить настройку» — запомнить текущие значения реквизитов диалога отчета. Состояние реквизитов запоминается в специальном файле на жестком диске и, фактически, может сохраняться неограниченное время. При последующих сеансах работы с системой 1С:Предприятие и использовании того же самого отчета пользователь может восстановить сохраненную ранее настройку — фактически, заполнить реквизиты диалога отчета необходимыми значениями. Такая возможность особенно удобна, если диалог отчета содержит большое число различных параметров.

При сохранении набору значений реквизитов отчета присваивается имя. Таким образом, пользователь может сохранять различные наборы значений, а затем вызывать их, выбирая из списка по имени.

Редактор диалогов позволяет управлять режимом сохранения настройки.

В палитре свойств шаблона окна диалога отчета присутствует флажок «Режим сохранения настройки». По умолчанию он установлен, в этом случае для редактируемого отчета в режиме запуска «1С:Предприятие» доступны функции сохранения и восстановления настройки: в меню «Действия» будут присутствовать пункты «Сохранить настройку» и «Восстановить настройку», а в напели инструментов отчета — соответствующие кнопки.

В случае необходимости, флажок «Режим сохранения настройки» может быть снят.

В свою очередь, в палитре свойств реквизитов диалога (кроме реквизитов типа «Текст», «Кнопка», «Картинка» и «Рамка группы») присутствует флажок «Сохранять при сохранении настройки». Установкой этого флажка можно задать сохранение значений конкретных реквизитов диалога в процессе сохранения настройки.

Кроме описанных выше возможностей, сохранять и восстанавливать значения реквизитов диалога можно при помощи встроенного языка системы 1С:Предприятие, для этого используются системные функции СохранитьЗначение() и ВосстановитьЗначение().

Внешние отчеты (обработки)

Внешним отчетом (обработкой) в системе 1С:Предприятие называется отчет (обработка), хранящиеся вне конфигурации, в отдельном файле внешнего отчета (обработки). Внешний отчет служит для решения тех же задач, что и объекты метаданных типа «Отчет» или «Обработка».

Внешние отчеты (обработки) не обладают в полной мере всеми свойствами, присущими объектам метаданных. Так, внешние отчеты (обработки) не имеют идентификаторов и обращение к ним, например, при создании пользовательского интерфейса, выполняется по имени файла внешнего отчета (обработки).

Основное преимущество внешнего отчета (обработки) — возможность его проектирования и отладки в процессе работы системы 1С:Предприятие. В этом случае разработка и отладка отчета (обработки) значительно ускоряются: редактирование и сохранение внешнего отчета (обработки) выполняется в режиме Конфигуратора, без сохранения конфигурации в целом, а запуск — в режиме «1С:Предприятие». Для выполнения внешний отчет (обработка) загружается при помощи меню «Файл» и работает так же, как и любой другой отчет конфигурации.

Любой объект метаданных типа «Отчет» или «Обработка» может быть скопирован в файл внешнего отчета (обработки) и наоборот — форма объекта метаданных может быть заменена формой внешнего отчета (обработки).

Для внешнего отчета (обработки) может быть создано описание, как и для других объектов метаданных. Внешний отчет может быть защищен паролем от несанкционированного редактирования или исполнения.

Для обеспечения целостности конфигурации внешние отчеты рекомендуется использовать, в основном, в отладочных целях. После отладки алгоритма формирования отчета необходимо включить внешний отчет в конфигурацию.

Создание внешнего отчета (обработки)

Для создания внешнего отчета (обработки) необходимо выбрать пункт «Новый» в меню «Файл» главного меню Конфигуратора и в выданном на экран запросе выбрать строку «Внешний отчет (обработка)».

На экран будет вызван редактор форм для разработки внешнего отчета (обработки).

Так как внешний отчет не является частью текущей конфигурации (хотя и очень тесно с ней связан), процедура его сохранения отличается от процедуры сохранения изменений, описанной п. «Сохранение конфигурации» на стр. Ошибка! Закладка не определена.. Для сохранения внешнего отчета необходимо использовать пункт «Сохранить» или «Сохранить как...» из меню «Файл» главного меню Конфигуратора. В стандартном диалоге сохранения файла выберите тип файла «Внешний отчет (обработка) (*.ert)» и введите имя для сохраняемого внешнего отчета.

Создать внешний отчет можно также из существующего объекта метаданных типа «Отчет». Для этого необходимо открыть для редактирования форму отчета и в меню «Файл» главного меню Конфигуратора выбрать пункт «Сохранить как...». В стандартном диалоге сохранения файла следует выбрать тип файла «Внешние отчеты (*.ert)» и указать имя для сохраняемого внешнего отчета (обработки).

По умолчанию внешний отчет (обработка) предлагается сохранить в подкаталоге ExtForms, который автоматически создается в каталоге с информационной базой. Однако это не обязательно — внешний отчет можно сохранить в любом каталоге. Но с точки зрения использования отчетов при работе системы 1С:Предприятис размещение отчета будет играть решающую роль.

Если система 1С:Предприятие используется в сети, средствами сети для «простых» пользователей системы можно организовать доступ к каталогу ExtForms «только чтение», а в Конфигураторе разрешить использование только тех внешних отчетов, которые расположены в этом каталоге. В этом случае пользователи могут использовать внешние отчеты, расположенные в каталоге ExtForms, но не смогут записать в этот каталог свои внешние отчеты.

Использование внешних отчетов (обработок)

Для использования внешнего отчета (обработки) при работе с системой 1С:Предприятие его необходимо открыть так же, как это делается в Конфигураторе. Однако следует иметь в виду, что в системе 1С:Предприятие внешний отчет (обработка) открывается только для исполнения: пользователь не может его редактировать.

Компиляция модуля внешнего отчета (обработки) выполняется при открытии внешнего отчета, поэтому после редактирования внешнего отчета в Конфигураторе и его сохранения необходимо вновь открыть этот отчет в системе 1С:Прсдприятие.

Редактирование внешнего отчета (обработки)

Редактирование внешнего отчета (обработки) выполняется в Конфигураторе.

Чтобы открыть существующий внешний отчет, в меню «Файл» главного меню Конфигуратора выберите пункт «Открыть». В выданном на экран стандартном диалоге выберите тип файла «Внешний отчет (обработка) (*.ert)» и укажите имя открываемого внешнего отчета.

При открытии внешнего отчета в Конфигураторе автоматически открывается редактор форм.

При редактировании модуля внешнего отчета в меню «Действия» главного меню доступен пункт «Открыть в отладчике». При выборе этого пункта меню будет вызван Отладчик, в список модулей Отладчика будет добавлен редактируемый внешний отчет и будет автоматически открыто окно модуля внешнего отчета.

Описание внешнего отчета (обработки)

Внешний отчет (обработка) может быть снабжен пользовательским описанием (см. п. «Создание описания объекта метаданных», стр. Ошибка! Закладка не определена.).

Для редактирования описания используется закладка «Описание» формы внешнего отчета (обработки), которая представляет собой текстовый редактор.

В режиме запуска «1С:Предприятие» для просмотра описания внешнего отчета необходимо нажать кнопку [image] в панели инструментов окна внешнего отчета (обработки). В отличие от описания объектов метаданных, включенных в конфигурацию, описание внешнего отчета выдается в отдельном окне.

Защита паролем внешнего отчета (обработки)

Внешний отчет (обработка) может быть защищен паролем от несанкционированного редактирования в режиме «Конфигуратор» и исполнения в режиме запуска «1С:Прсдприятие».

Для установки пароля на внешний отчет выберите пункт «Установить пароль» из меню «Действия» главного меню Конфигуратора. На экран будет выдан диалог установки пароля.

При нажатии кнопки «Пароль» на экран будет выдан запрос для ввода пароля, в котором необходимо указать пароль на внешний отчет. Пароль представляет собой произвольную строку длиной не более 10 символов, состоящую из букв и цифр. Пароль не должен содержать пробелов и специальных символов.

При вводе пароль отображается звездочками, поэтому будьте внимательны.

После ввода пароля нажмите кнопку «ОК». Для надежности программа запрашивает пароль еще раз. Повторите ввод пароля и для подтверждения нажмите кнопку «ОК». Запрос для ввода пароля будет закрыт, и пароль будет установлен. Если пароль на внешний отчет уже существовал, старый пароль будет удален и заменен новым.

Если вы передумали устанавливать или менять пароль, нажмите кнопку «Отмена».

Внимание! Присвоенный пароль нельзя посмотреть, поэтому будьте внимательны при установке пароля и твердо запомните его.

Теперь при открытии внешнего отчета (обработки) для редактирования на экран будет выдан запрос для ввода пароля. Отчет будет открыт для редактирования только после ввода правильного пароля.

Если установлен флажок «Запрашивать пароль при исполнении», то пароль будет запрашиваться также при открытии внешнего отчета в режиме запуска «1С:Предприятие».

Для снятия пароля с внешнего отчета нажмите кнопку «Пароль» и, не указывая нового пароля, дважды нажмите кнопку «ОК» в запросе ввода пароля.

Внешние отчеты (обработки) и объекты метаданных

Существующие в конфигурации объекты метаданных типа «Отчет» («Обработка») могут быть преобразованы во внешние отчеты (обработки), и наоборот, внешние отчеты (обработки) могут заменять собой существующий объект метаданных типа «Отчет» («Обработка»). Также внешние отчеты могут быть добавлены в структуру метаданных как новые объекты метаданных типа «Отчет» («Обработка»).

Копирование объекта метаданных во внешний отчет. Существующий объект метаданных типа «Отчет» («Обработка») может быть скопирован во внешний отчет. Для этого необходимо выделить наименование объекта метаданных в окне «Конфигурация — Метаданные» и использовать пункт «Сохранить как внешний отчет (обработку)» контекстного меню объекта метаданных. Затем в выданном на экран стандартном диалоге сохранения файла выберите тип файла «Внешний отчет (обработка) (*.ert)» и укажите имя файла внешнего отчета (обработки).

В результате будет создан внешний отчет (обработка), форма которого будет скопирована с выбранного объекта метаданных, сам объект метаданных при этом не изменится.

Выполнение этой операции целесообразно для последующей отладки создаваемого отчета. По окончании отладки внешний отчет может быть вставлен в конфигурацию взамен существующего объекта метаданных.

Замена объекта метаданных на внешний отчет. Внешний отчет (обработка) может заменить собой существующий объект метаданных типа «Отчет» («Обработка»). Правильнее говорить, что заменяется только форма объекта метаданных, так как идентификатор, комментарий и права объекта метаданных сохраняются.

Для замены объекта метаданных внешним отчетом необходимо выделить его наименование в окне «Конфигурация — Метаданные» и использовать пункт «Заменить на внешний отчет (обработку)» контекстного меню объекта метаданных. Затем в выданном на экран стандартном диалоге открытия файла выберите тип файла «Внешний отчет (обработка) (*.ert)» и укажите имя файла внешнего отчета.

Добавление внешнего отчета в структуру метаданных. Существующий внешний отчет (обработка) может быть вставлен в структуру метаданных как новый объект метаданных типа «Отчет» или «Обработка». Для этого необходимо в структуре метаданных выделить наименование любого объекта метаданных типа «Отчет» или «Обработка» и использовать пункт «Вставить внешний отчет (обработку)» контекстного меню объекта метаданных. В выданном на экран стандартном диалоге открытия файла необходимо выбрать тип файла «Внешний отчет (обработка) (*.ert)» и указать имя файла внешнего отчета, который требуется вставить в структуру метаданных.

В результате этих действий в дереве метаданных появится новый отчет (или обработка). Новому объекту метаданных будет присвоен условных идентификатор, состоящий из слова «Новый» и числа — порядкового номера нового объекта метаданных.

В отличие от процесса создания нового объекта метаданных «с нуля» (см. п. «Создание объекта метаданных» на стр. Ошибка! Закладка не определена.), для вставленного внешнего отчета палитра свойств автоматически не вызывается.

Конструктор макета отчета

Назначение Конструктора макета отчета — автоматическое создание шаблона печатной формы объекта метаданных. В результате работы Конструктора для объекта метаданных будет создан табличный документ с заданными секциями, а в модуль 4юpмы объекта метаданных будут внесены команды для их вывода в отчет (печатную форму).

Запуск Конструктора макета отчета

Конструктор макета отчета можно запустить двумя способами. Он может быть запущен индивидуально, либо в процессе работы Конструктора отчетов (при создании отчета с применением Конструктора отчетов этот Конструктор на одном из этапов создания отчета предложит вызвать Конструктор макета отчета).

При редактировании формы объекта метаданных Конструктор макета отчета можно вызвать, выбрав пункт «Макет отчета» из меню «Конструкторы» главного меню программы или нажав кнопку [image] на панели инструментов «Конструкторы».

Перед запуском Конструктора макета отчетов следует открыть ту форму объекта метаданных, из которой должна строиться создаваемая печатная форма, например, форму элемента справочника или форму списка.

При запуске Конструктора макета отчетов появляется диалог «Новая процедура», предлагающий ввести имя процедуры, которая будет выполнять построение печатной формы. По умолчанию это имя «Сформировать».

Имя процедуры можно изменить. Если указанное имя процедуры совпадает с именем одной из процедур, уже присутствующих в модуле формы (например, в данном случае, в справочнике валют уже была процедура «ПостроитьОтчет»), то при нажатии кнопки «ОК» было выдано сообщение («Процедура ПостроитьОтчет уже существует»). Сообщение выдастся также при вводе названия, недопустимого в качестве имени процедуры.

Выбор вида отчета

Если совпадения имен не произошло, при нажатии «ОК» откроется диалог «Конструктор макета отчета», в котором нужно указать заголовок отчета. По умолчанию заголовок совпадает с названием процедуры.

Заголовок будет выдаваться в верхней части печатной формы, поэтому рекомендуется отредактировать его таким образом, чтобы заголовок отражал содержимое создаваемой печатной формы.

Затем следует выбрать принципиальную схему построения отчета:

· отчет состоит из отдельных значений;

· отчет содержит циклы по строкам;

· отчет содержит циклы но строкам и по столбцам;

· отчет содержит только заголовок.

В любой из отчетов можно также включить диаграмму, установив флажок «Включить диаграмму».

После выбора принципиальной схемы построения отчета и нажатия на кнопку «Далее>» появляется диалог «Конструктор макета отчетов: Параметры». В зависимости от выбранного типа отчета Конструктор будет запрашивать в этом диалоге различный набор параметров, необходимых для создания макета.

Отчет состоит из отдельных значений

Отчет из отдельных значений используется для печати реквизитов, существующих в единственном числе. Например, отчет такого типа удобно использовать для печати формы элемента справочника или реквизитов шапки документа.

В поле «Количество выражений» нужно ввести число, равное тому количеству значений, которое требуется получить. По умолчанию это число равно трем.

Отчет содержит циклы по строкам

Такой вид отчета удобно использовать для объектов метаданных, имеющих табличную часть: документов с табличной частью, журналов документов, форм списков справочников.

В диалоге «Конструктор макета отчета: Параметры» в поле «Количество циклов по строкам» нужно ввести число, значение которого равно необходимому количеству циклов (обратите внимание: под «циклами» понимаются операторы встроенного языка Пока...Цикл...КонецЦикла). По умолчанию это число равно единице, то есть вложенные циклы отсутствуют.

В поле «Количество колонок» следует ввести число, значение которого равно необходимому количеству колонок. По умолчанию это число равно трем.

Отчет содержит циклы по строкам и столбцам

Такой вид отчета используется, если заранее не известно ни число строк, ни число столбцов. Например, это может быть шахматная ведомость, или, скажем, отчет но реализации товаров, представляющий собой таблицу, строки которой соответствуют товарам, а столбцы - контрагентам, которые их приобрели.

В диалоге «Конструктор макета отчета: Параметры» необходимо ввести числа, определяющие следующие параметры макета отчета.

«Количество циклов по строкам» и «Количество циклов по колонкам» но умолчанию равны 1, то есть отсутствуют вложенные циклы.

Параметр «Количество фиксированных колонок слева» задаст количество постоянных колонок отчета, которые будут выводиться до выполнения цикла по колонкам. Например, это могут быть колонки для вывода кода товара и его наименования.

«Количество фиксированных колонок справа» задает количество колонок, которые должны выводиться после выполнения цикла по колонкам. Например, такими фиксированными колонками могут быть колонки для вывода итоговых количества и суммы приобретенного товара.

Отчет содержит только заголовок

Очевидно, что этот вид отчета имеет наиболее общее применение и применим для быстрого создания «заготовки» будущего отчета.

Такой вид отчета можно использовать, например, если требуется отчет в виде диаграммы (диаграмму можно вставить в любой из видов отчета).

Создание диаграммы

Если при задании типа отчета был установлен флажок «Включить диаграмму», будет выдан запрос параметров диаграммы.

Группа переключателей «Расположение» позволяет задать взаимное положение тела отчета и диаграммы.

Группа «Тип диаграммы» служит для задания параметров диаграммы. Состав управляющих элементов это группы может изменяться в зависимости от выбранного типа диаграммы.

Подробнее об использовании диаграмм см. гл. «Табличный редактор».

Завершение работы Конструктора

На завершающем этапе работы Конструктора задастся порядок вызова процедуры формирования печатной формы и режим открытия готовой печатной формы.

Группа «Вызов процедуры» позволяет задать порядок вызова процедуры формирования отчета:

«Не вставлять» диалог формы объекта метаданных не будет содержать кнопки для построения печатной формы;

«Новая кнопка» в диалоге появится новая кнопка, надпись на ней по умолчанию совпадает с именем процедуры, определенным при запуске Конструктора;

«Выбрать кнопку» из выпадающего списка можно выбрать название одной из кнопок, уже существующих в диалоге.

Если установить флажок «Режим "только просмотр"», созданная печатная форма будет открываться только для просмотра, и для редактирования печатной формы пользователю необходимо будет отключить этот режим.

Результаты работы Конструктора

В результате работы Конструктора макета отчета в форме объекта метаданных появляется новый лист типа «Таблица» с именем процедуры, определенным при запуске Конструктора.

Таблица содержит секцию «Заголовок» для вывода заголовка отчета, указанного в процессе работы Конструктора. Состав прочих секций отчета зависит от выбранного типа отчета.

Отчет состоит из отдельных значений

В этом случае созданная таблица состоит из одной секции — «Шапка», и содержит заготовки для вывода значений. В каждой строке с «заготовками» следует в ячейку «Текст» ввести подпись к выводимому значению, а в ячейку «Выражение» — выражение для вычисления выводимого значения.

В результате работы Конструктора в модуль формы добавлена процедура для вывода отчета с указанным при работе Конструктора именем.

Отчет содержит циклы по строкам

Таблица для отчета этого типа содержит секции для вывода шапки и подвала отчета, а также столько секций «Строка...», сколько циклов по строкам было указано при работе Конструктора. В модуль формы добавлена процедура для вывода отчета. В начале процедуры Конструктор поместил подсказку: «Конструкции <<…>> необходимо заменить на реальные логические условия и значения переменных». Смысл ее заключается в следующем: в процедуре в характерных скобках <<...>> находится текст «Условие»; конструкцию <<Условие>> следует заменить на логическое выражение, являющееся условием цикла. Цикл будет выполняться только в том случае и только до тех нор, пока значение логического выражения будет «Истина».

Отчет содержит циклы по строкам и столбцам

Для отчета такого типа Конструктор помещает в табличную часть вертикальные и горизонтальные секции.

Горизонтальные секции включают секции для вывода заголовка отчета, шапки колонок отчета, подвала отчета, а также столько секций «Строка...», сколько циклов по строкам было указано при работе Конструктора.

Вертикальные секции включают секции для вывода фиксированных колонок слева и справа, а также столько секций «Колонка...», сколько циклов по колонкам было указано при работе Конструктора. В модуль формы Конструктор добавил две процедуры. Имя одной из них, «Сформировать», было задано при работе Конструктора. Процедура содержит команды создания и вывода таблицы, а также цикл по строкам.

Внутри цикла по строкам вызывается процедура Сформировать_Колонки (имя процедуры сформировано автоматически), которая «отвечает» за цикл по колонкам.

В обоих циклах не определены условия циклов и Конструктор напоминает об этом при помощи подсказки. Условия выполнения циклов необходимо ввести вручную.

Создание диаграммы

Если при выборе типа отчета указано создание диаграммы, Конструктор помещает в таблицу секцию «Диаграмма». При помощи двойного щелчка мыши по области построения диаграммы или области легенды можно открыть диалог «Формат...» для редактирования свойств диаграммы или легенды.

В модуль формы добавлены процедура формирования отчета и процедура Сформировать_Диаграмма для работы с объектом «Диаграмма».

Для того, чтобы процедуры корректно выполнялись, в них необходимо произвести замену конструкций в характерных скобках <<…>> на реальные логические условия и значения переменных.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 11

Глава 11.
Организация бухгалтерского учета в системе 1С:Предприятие

  • Обзор
  • Планы счетов
  • Аналитический учет
  • Количественный учет
  • Валютный учет
  • Операции и проводки
  • Ведение консолидированного учета

Ведение бухгалтерского учета в системе 1С:Предприятие обеспечивают объекты метаданных «Планы Счетов», «Виды Субконто», «Операция» и «Проводка». Так как эти объекты тесно связаны между собой, в данной главе дается общая характеристика возможностей, предоставляемых этими объектами.

В последующих главах будут подробно рассмотрены вопросы конфигурирования перечисленных объектов метаданных.

Обзор

В соответствии с компонентной организацией системы 1С:Предприятие, возможности ведения бухгалтерского учета п системе появляются после установки компоненты «Бухгалтерский учет».

Компонента «Бухгалтерский учет» позволяет вести учет по нескольких планам счетов, при этом для каждого плана счетов может строиться произвольная иерархия субсчетов большой вложенности. Бухгалтерские итоги хранятся системой 1С:Предприятие раздельно для каждого плана счетов.

В планах счетов может применяться гибкая нумерация счетов с использованием цифр и букв.

Аналитический учет можно вести для любого счета или субсчета и включать до 5-ти различных разрезов аналитики. Объекты аналитического учета могут представлять собой элементы справочников системы 1С:Предприятие, документы или произвольные числа, даты и строки.

На любом счете можно вести количественный учет. Как правило количественный учет ведется вместе с аналитическим — учитывается количество объектов аналитического учета, но, при необходимости, количественный учет можно вести и без аналитического — учитывать абстрактное количество.

Возможности бухгалтерского учета в системе 1С:Предприятие позволяют вести многовалютный учет. Количество одновременно используемых валют при этом не ограничивается.

Включение аналитического, количественного и валютного учета выполняется при редактировании планов счетов.

Компонента «Бухгалтерский учет» предоставляет возможность ведения бухгалтерского учета для нескольких предприятий в одной информационной базе. Итоговую информацию можно получать как по отдельному предприятию, так и в целом, по всем предприятиям. Такая возможность будет полезна для предприятий с консолидированным балансом.

Планы счетов

План счетов является одним из основных понятий бухгалтерского учета. Планом счетов называется совокупность синтетических счетов, предназначенных для группировки информации о хозяйственной деятельности предприятия. Информация, накапливаемая на таких синтетических счетах, позволяет получить полную картину состояния средств предприятия в денежном выражении.

В Российской Федерации система бухгалтерских счетов устанавливается государством в лице Министерства финансов и называется «План счетов бухгалтерского учета финансово-хозяйственной деятельности предприятий». Этот план счетов должен применяться на всех предприятиях кроме банков, страховых организаций и организаций, состоящих на бюджете, для которых установлены специальные планы счетов.

Система 1С:Предприятие предоставляет гибкие возможности по ведению планов счетов. Собственно, путем настройки плана счетов и организуется требуемая система учета.

Несколько планов счетов. В системе 1С:Предприятие может быть несколько планов счетов и учет по всем планам счетов можно вести одновременно. Общее число планов счетов, которое может быть организовано в системе, с технической точки зрения не ограничено, и определяется исключительно реальными потребностями учета.

Например, такой «многоплановый» учет, очевидно, понадобится для совместных предприятий, которым требуется вести учет одновременно по двум или более стандартам бухгалтерского учета.

Субсчета. Планы счетов в системе 1С:Предприятие поддерживают многоуровневую иерархию «счет —субсчета». Каждый план счетов может включать неограниченное число счетов первого уровня. К каждому счету может быть открыто также неограниченное количество субсчетов. В свою очередь, каждый субсчет может иметь свои субсчета — и так далее. Количество уровней субсчетов в системе 1С:Предприятие ограничивается только общей длиной кода счета (включающей коды субсчетов всех уровней), которая не должна превышать 255.

Структура кода счета может быть задана при создании плана счетов в виде шаблона, состоящего из последовательности символов «#» и «.». Шаблон косвенно задает общее количество уровней субсчетов, которое может быть в плане счетов, и общее количество субсчетов, которое может быть у счета или субсчета.

Произвольная длина кода счета. Система 1С:Предприятие позволяет вести произвольную нумерацию счетов и субсчетов. В пределах разрешенной длины в 255 символов можно организовать либо примерно 125 уровней вложенности субсчетов (шаблон кода счета при этом будет выглядеть как «#.#.#.#...»), но при этом длина кода счета на каждом уровне будет равна одному символу; либо ввести всего 2 уровня счетов, но с длиной кода в 125 символов. Понятно, что все другие варианты, которые и соответствуют реальным потребностям учета, занимают промежуточное положение между этими двумя крайними решениями.

Для иллюстрации приведем несколько примеров.

Структура полного кода счета, заданная как «##.#.###», может быть расшифрована следующим образом:

· счет первого уровня может иметь код длиной не более 2-х символов (букв и цифр). Общее количество счетов в этом случае ограничивается только общим количеством букв и цифр и их комбинаций по 2;

· к счету 1-го уровня могут быть открыты 2 уровня субсчетов;

· код субсчета первого уровня имеет длину 1 символ;

· код субсчета 2-го уровня имеет длину не более 3-х символов.

В таком стиле структура кода счета для стандартного («хозрасчетного») плана счетов бухгалтерского учета может быть выражена как «##.##» (для балансовых счетов). Соответственно, шаблон кода счета в плане счетов для банков можно написать как «###.#####».

Разделенное редактирование счетов. Известно, что зачастую ошибки в бухгалтерском учете возникают из-за неправильного применения утвержденного плана счетов. Наиболее распространенная ситуация — отсутствие аналитического учета на тех счетах, по которым необходимо получать развернутое сальдо. Тогда бухгалтерский учет, являясь верным по форме (все «сходится»), по сути дает неправильные результаты. Поэтому зачастую бывает полезно ограничить творчество конечных пользователей в части настройки планов счетов.

С этой целью система 1С:Предприятие позволяет разделять процесс редактирования плана счетов.

Во-первых, редактирование планов счетов может выполняться в Конфигураторе специалистом, выполняющим конфигурирование системы 1С:Предприятие.

В Конфигураторе могут создаваться новые планы счетов. При конфигурировании планов счетов задаются их основные характеристики: длина кода счета и наименования счета; максимальное количество субконто, которое может быть у одного счета (субсчета) и другие. Здесь же в планы счетов могут быть введены требуемые счета и субсчета, а также выполнена настройка аналитического, количественного и валютного учета на счетах.

Во-вторых, при работе с системой 1С:Предприятие конечный пользователь может добавлять собственные счета и субсчета в планы счетов, однако он не сможет редактировать или удалять счета и субсчета, добавленные в планы счетов в Конфигураторе.

Хранение бухгалтерских итогов. В соответствии со структурой плана счетов система 1С:Предприятие автоматически организует систему хранения бухгалтерских итогов. Итоговая информация извлекается средствами встроенного языка системы 1С:Предприятие, для этого в языке существуют методы получения остатков и оборотов по счетам как в денежном (рублевом и валютном), так и в количественном выражении; как в целом по счету или субсчету, так и с разбивкой по объектам аналитического учета.

Аналитический учет

Информация о средствах предприятия, которая накапливается на счетах бухгалтерского учета, зачастую имеет обобщающий характер. Например, в «стандартном» плане счетов существует счет 10 «Материалы», который предназначен «...для обобщения информации о наличии и движении принадлежащих предприятию сырья, материалов, топлива, запасных частей, тары и т. п. ценностей». К счету 10 могут быть открыты субсчета для учета различных видов материалов. Но при такой организации учета на субсчетах будет накапливаться информация об общей стоимости материалов одного вида, а в целом на счете 10 — стоимость всех материалов.

Для получения детальной информации о наличии конкретных материалов необходима организация аналитического учета по материалам. В этом случае общие суммы на субсчетах разбиваются на более мелкие — стоимости конкретных материалов.

В системе 1С:Предприятие аналитический учет организуется при помощи специального механизма субконто.

Понятие «субконто». Субконто в системе 1С:Предприятие называется объект аналитического учета. Термином «субконто» могут быть обозначены любые объекты аналитического учета: основные средства, нематериальные активы, малоценные и быстроизнашивающиеся предметы, материалы, организации, подотчетные лица, договоры, бюджеты. Видом субконто, в свою очередь, называется множество однотипных объектов аналитического учета.

Например, учет задолженности предприятия перед покупателями и заказчиками обязательно ведется, согласно нормативным документам, отдельно по каждому покупателю и заказчику. В системе 1С:Предприятие такой список покупателей и заказчиков (предположим, что это только организации) будет называться «видом субконто «Организации»», а любая организация из этого списка будет именоваться «субконто».

Конфигуратор системы 1С:Предприятие позволяет организовать любое количество видов субконто, в соответствии с требованиями полноты аналитического учета на предприятии.

Организация аналитического учета. В системе 1С:Предприятие аналитический учет можно вести по любому счету или субсчету. Для этого при редактировании планов счетов к требуемому счету или субсчету «прикрепляется» нужный вид субконто. К счету или субсчету можно прикрепить до 5-ти видов разных субконто и, таким образом, организовать ведение аналитического учета в любых необходимых разрезах.

Ввод информации о хозяйственных операциях в систему 1С:Предприятие выполняется в виде бухгалтерских проводок. Для каждого из корреспондирующих счетов проводки, если для этих счетов указано ведение аналитического учета, необходимо указать объекты аналитического учета.

Например, на производственных предприятиях к счету учета затрат на производство можно прикрепить виды субконто: «Виды затрат» для учета но видам затрат, «Продукция» для учета по видам выпускаемой продукции (работ, услуг) и «Подразделения» — для учета по подразделениям предприятия. Аналитическую информацию по затратам можно получать по любому из этих видов субконто.

Кроме этого, возможности ведения аналитического учета в системе 1С:Предприятие позволяют вести учет одного и того же объекта аналитики в разных разрезах.

Так, один и тот же справочник может быть назначен разными видами субконто. Например, в организации, торгующей канцелярскими товарами, канцелярские принадлежности (допустим, писчая бумага) могут отпускаться со склада для собственных нужд организации. Тогда бумага с точки зрения бухгалтерского учета, будет выступать и как товар, и как МБП. В этом случае в системе 1С:Предприятие справочник «Номенклатура» можно назначить видом субконто «Товары» и прикрепить его к счетам учета товаров, и видом субконто «МБП» и прикрепить его к счетам учета МБП. При такой организации аналитического учета легко перевести бумагу из товаров в МБП и списать ее издержки обращения.

Субконто и субсчета. Свойства планов счетов в системе 1С:Предприятие (в частности, большое число уровней вложенности субсчетов или большая длина кода субсчета), тем не менее, позволяет организовать ведение аналитического учета с использованием субсчетов, а не субконто. Однако возможности, которые предоставляет ведение аналитического учета на субсчетах и с использованием субконто, принципиально различаются.

Субсчета представляют собой иерархическую структуру, подчиненную конкретному счету синтетического учета. Например, для учета задолженности предприятию со стороны покупателей на синтетическом счете учета расчетов с покупателями (в стандартном плане счетов это 62 счет) для каждого покупателя можно открыть отдельный субсчет и вести учет задолженности на этом субсчете. Такая схема позволит получить информацию как о сумме задолженности предприятия перед конкретным покупателем, так и общую сумму задолженности перед всеми покупателям — она получится путем суммирования информации о суммах задолженности со всех субсчетов.

Однако, если какая-либо из организаций-покупателей становится также и поставщиком, то потребуется также организовать учет расчетов с этой организацией как с поставщиком. При ведении аналитического учета на субсчетах для нового поставщика, очевидно, потребуется открыть новый субсчет уже на счете учета расчетов с поставщиками (60 счет). Теперь, если вести учет по этому субсчету, можно получить информацию о взаиморасчетах с организацией, как с поставщиком.

Но чтобы получить данные об общем состоянии взаиморасчетов с организацией, необходимо объединить информацию о расчетах с этой организаций с двух счетов. Для этого необходимо помнить, какой субсчет на счете учета расчетов с покупателями и какой субсчет на счете учета расчетов с поставщиками соответствуют конкретной организации, получить информацию о состоянии расчетов именно с этих субсчетов, и каким-то образом ее обработать.

При использовании субконто один и тот же список субконто, например, «Организации», прикрепляется ко всем счетам (субсчетам), на которых предполагается вести аналитический учет по организациям. Учет с конкретной организацией как с поставщиком ведется на соответствующем синтетическом счете. Если организация становится еще и покупателем, пет необходимости создавать новую позицию в списке организаций — она уже присутствует в этом списке как поставщик. Объединение информации для одной организации с двух счетов синтетических счетов в значительной мере выполняется системой 1С:Предприятие автоматически. Аналогичным образом можно объединять данные с любых счетов, на которых велся учет операций с участием конкретной организации.

Многоуровневая аналитика. Многоуровневая аналитика позволяет получать бухгалтерские итоги с разной степенью детализации. Если для ведения аналитического учета используются субконто, то для реализации многоуровневой аналитики необходимо назначать видами субконто справочники. Справочники в системе 1С:Предприятие могут иметь до 10 уровней вложенности, это позволяет вести учет с необходимой степенью детализации.

При ведении аналитического учета с использованием субсчетов многоуровневый аналитический учет реализуется за счет использования субсчетов разных уровней.

Количественный учет

Система 1С:Предприятие, помимо учета денежных средств, предоставляет пользователю возможность ведения количественного учета.

Количественный учет можно вести на любом счете или субсчете. Возможность ведения на счете количественного учета включается при редактировании планов счетов.

Как правило, количественный учет ведется вместе с аналитическим. Например, ведение на счете учета материалов аналитического и количественного учета по материалам позволит получать сведения о наличии и движении материалов не только в денежном, но и в количественном выражении.

Тем не менее, система 1С:Предприятие позволяет вести на любом счете или субсчете количественный учет без подключения аналитического учета. Это может потребоваться, если аналитический учет предполагается вести на субсчетах (каждый субсчет соответствует одному объекту аналитического учета), а не с использованием субконто.

Валютный учет

Система 1С:Предприятие позволяет вести бухгалтерский учет в нескольких валютах. Счета, на которых необходимо вести валютный учет, устанавливаются в плане счетов. При вводе проводок по таким счетам система 1С:Предприятие будет запрашивать вид используемой валюты, и суммы в рублях и в валюте. Соответственно, бухгалтерские итоги по таким счетам автоматически будут сохраняться в каждой используемой валюте и в рублевом эквиваленте по каждой валюте отдельно, и суммарно по всем валютам (рублевое покрытие).

В качестве справочника валют может быть назначен любой из существующих в системе 1С:Предприятие справочников. Как правило, для этих целей создастся специальный справочник.

Один из числовых реквизитов этого справочника может использоваться для храпения курса валют относительно основной денежной единицы. Тогда при вводе проводок курс валюты будет использоваться для вычисления суммы проводки.

Операции и проводки

Основным понятием бухгалтерского учета в системе 1С:Предприятие является понятие операции. Операцией считается любое хозяйственное действие, способное вызывать изменение состояния средств предприятия.

Операции. Для ввода информации о хозяйственных операциях в системе 1С:Предприятие используется документ специального вида — «Операция». Он позволяет занести в систему информацию о хозяйственной операции и зафиксировать дату и время совершения операции, сумму и содержание операции.

Операция может быть автоматически сформирована на основе документа (объекта данных типа «Документ»). Порядок такой генерации определяется в Конфигураторе средствами встроенного языка. При автоматическом вводе операции можно описать заполнение реквизитов операции различной информацией из документа, породившего эту операцию.

Операция, введенная автоматически, всегда связана с породившим ее документом: если документ необходимо отредактировать, то при его проведении операция будет сформирована заново; при удалении документа будет удалена и операция документа.

Если необходимо, операция может вводиться пользователем «вручную». В этом случае пользователь сам заполняет все реквизиты операции.

Сумма операции может быть введена вручную или вычислена на основании входящих в операцию проводок: пользователь может выбрать один из типовых алгоритмов такого вычисления. Но сумма операции носит, скорее, условный характер — для операций, состоящих из большого числа проводок, зачастую сложно определить, какая же сумма является «суммой операции».

Проводки. Чтобы введенная операция вызвала изменение в бухгалтерских итогах, такая операция должна содержать проводки. Ввод бухгалтерских проводок в системе 1С:Предприятие реализуется при помощи объекта метаданных «Проводка».

Особенность ввода проводок в системе 1С:Предприятие состоит в том, что проводки всегда вводятся в составе операции. Проводки операции составляют группу и при любых изменениях в реквизитах операции или в самих проводках всегда «держатся» вместе.

Если операция автоматически формируется документом, то, по мимо заполнения реквизитов операции, документ может автоматически сформировать необходимые бухгалтерские проводки. Порядок генерации проводок также определяется средствами встроенного языка.

Структура проводки строится системой 1С:11реднриятие динами чески в зависимости от настройки различных элементов учета, вы полненной при редактировании планов счетов. Максимально, про водка содержит реквизиты для ввода корреспондирующих счетов суммы, объектов аналитического учета (до 5-ти на каждый из корреспондирующих счетов), количества, вида валюты и суммы в валюте.

Помимо этих обязательных реквизитов, в Конфигураторе для проводки можно создать необходимое число дополнительных реквизитов для отражения любой другой необходимой информации. Например, это могут быть реквизиты для хранения комментария проводки, признака раздела бухгалтерского учета, к которому относится проводка. Кроме этого, дополнительные реквизиты задействуются для организации раздельного учета (см. ниже).

При работе с системой 1С:Предприятие пользователь может «отключать» проводки и затем вновь «включать» их. «Отключенные» проводки не влияют на бухгалтерские итоги — остатки и обороты но счетам.

Такая возможность удобна для ввода в систему плановых операций — тех, что должны произойти в будущем. Отключив проводки такой операции, можно не изменять реальные бухгалтерские итоги. В момент действительного совершения хозяйственного действия достаточно включить проводки.

Корреспонденции. В свою очередь, проводка может состоять из нескольких корреспонденции. Механизм корреспонденции позволяет вводить сложные проводки: например, с кредита одного счета в дебет нескольких счетов. В этом случае проводка представляет собой совокупность строк, первая из которых устанавливает счет дебета проводки, а остальные — корреспондирующие счета кредита. Сумма проводки в этом случае складывается из сумм всех корреспонденций проводки.

При вводе проводок система 1С:Предприятие выполняет различные предопределенные действия, облегчающие и ускоряющие работу пользователя с системой. Например, если по какому-либо из корреспондирующих счетов указано ведение аналитического учета, то система автоматически откроет требуемый список объектов аналитического учета (субконто) для того, чтобы пользователь выбрал нужный объект. Если но счету ведется количественный учет, то система потребует указать количество проводки, а сумма проводки будет вычислена путем умножения указанного количества на «цену субконто». Многие аспекты поведения системы 1С:Предприятис могут быть настроены путем редактирования свойств операций и проводок.

Типовые операции. Для быстрого ввода информации о часто повторяющихся хозяйственных действиях пользователь может применять типовые операции. Типовые операции представляют собой сценарии формирования проводок для оформления наиболее часто встречающихся хозяйственных операций. При работе с системой 1С:Прсдприятие пользователь может самостоятельно создавать типовые операции: описывать проводки этих операций и формулы вычисления сумм проводок.

Например, перечисление средств с расчетного счета обычно сопровождается выплатой комиссионного вознаграждения банку. Сумма этого вознаграждения, как правило, зависит от перечисляемой суммы. Такая хозяйственная операция оформляется двумя проводками, причем сумма второй проводки напрямую связана с суммой первой проводки.

Для ввода в систему 1С:Предприятие информации о перечислении средств с расчетного счета удобно создать типовую операцию из 2-х проводок: первая проводка — на сумму перечисляемых средств, а сумма второй проводки вычисляется умножением суммы первой проводки на коэффициент.

Такой типовой операцией может пользоваться и не понимающий в бухгалтерском учете сотрудник, так как схема проводок уже описана при создании типовой операции.

Работа с типовыми операциями доступна только при работе пользователя с системой 1С:Предприятие — никакие действия над типовыми операциями в Конфигураторе недоступны.

Ведение консолидированного учета

В соответствии с действующим законодательством, организации, имеющие структурные подразделения, в том числе и выделенные на отдельный баланс (филиалы, представительства), составляют отчетность с учетом деятельности всех структурных подразделений. Для таких организаций важным моментом будет являться возможность вести в одной информационной базе бухгалтерский учет всех структурных подразделений с возможностью получения консолидированной отчетности. При составлении бухгалтерской отчетности, кроме того, целесообразно отдельно представлять основные показатели деятельности структурных подразделений — во избежание лишних вопросов со стороны нало


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 12

Глава 12.
Планы счетов

  • Планы счетов в системе 1С:Предприятие
  • Управление списком планов счетов
  • Свойства планов счетов
  • Создание форм планов счетов
  • Редактирование плана счетов
    • Редактирование свойств плана счетов
    • Редактирование списка счетов (субсчетов)
    • Редактирования свойств счета (субсчета)

Объекты метаданных типа «План счетов» становятся доступными в системе 1С:Предприятие, если установлена компонента «Бухгалтерский учет».

Данная глава описывает работу с планами счетов в системе 1С:Предприятие. При изложении материала данной главы предполагается, что читатель знаком с основами бухгалтерского учета.

Для лучшего представления возможностей ведения бухгалтерского учета в системе 1С:Предприятие рекомендуется ознакомиться с главой «Организация бухгалтерского учета в системе 1С:Предприятие», стр. Ошибка! Закладка не определена..

Планы счетов в системе 1С:Предприятие

Для ведения планов счетов бухгалтерского учета в системе 1С:Предприятие используются объекты метаданных типа «План счетов». Объектами данных этого типа являются бухгалтерские счета — учетные регистры, по которым будет выполняться группировка средств при работе с системой 1С:Предприятие. Конфигуратор системы 1С:Предприятие позволяет создавать практически неограниченное количество планов счетов. Все созданные в Конфигураторе планы счетов можно использовать одновременно.

Планы счетов в системе 1С:Предприятие поддерживают многоуровневую иерархию «счет—субсчета». Количество уровней субсчетов в системе 1С:Предприятие ограничивается только общей длиной кода счета, которая не должна превышать 255. Количество субсчетов, которые могут быть открыты к счету, также не ограничивается.

Система 1С:Предприятие позволяет вести на любом счете или субсчете количественный, валютный и аналитический учет.

Для ведения аналитического учета в системе 1С:Предприятие предназначены объекты метаданных типа «Виды субконто». Субконто в системе 1С:Предприятие называется объект аналитического учета, а видом субконто — множество таких объектов. В то же время не исключается ведение аналитического учета при помощи субсчетов.

К любому счету (субсчету) можно «прикрепить» до 5-ти разных видов субконто, и, таким образом, вести аналитический учет на счете в любых необходимых разрезах.

Количественный учет можно вести как на счетах (субсчетах), на которых ведется аналитический учет, так и без привязки к аналитике.

Валютный учет можно вести в нескольких валютах, их общее число практически не ограничивается.

В соответствии с составом плана счетов система 1С:Предприятис автоматически организует систему хранения бухгалтерских итогов. Сама система хранения итогов недоступна для конфигурирования. Все изменения в итогах выполняются бухгалтерскими проводками. Итоговая информация извлекается средствами встроенного языка системы 1С:Предприятие, для этого в языке существуют методы получения остатков и оборотов по счетам как в денежном (рублевом и валютном), так и в количественном выражении; как в целом по счету или субсчету, так и с разбивкой по объектам аналитического учета.

Управление списком планов счетов

Вся работа с объектами метаданных типа «План счетов» ведется в окне «Конфигурация — Метаданные». Для планов счетов отведена отдельная ветвь дерева метаданных, которая начинается у ключевой фразы «Планы Счетов». На этой ветви также располагаются служебные объекты метаданных — реквизиты планов счетов.

Приемы создания, редактирования и удаления объектов метаданных типа «План Счетов» в основном совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

Чтобы получить доступ к другим объектам компоненты «Бухгалтерский учет», в конфигурации должен быть создан хотя бы один план счетов. После того, как план счетов создан, в конфигурации появляется документ «Операция», для объектов метаданных типа «Документ» появляется возможность устанавливать признак «Бухгалтерский учет».

В Конфигураторе для всех планов счетов могут быть заданы общие свойства: длина кода счета и наименования счета; максимальное количество субконто, которое может быть у одного счета (субсчета); а также выполнена настройка свойств аналитического, количественного и валютного учета.

Служебные объекты метаданных «Реквизит» могут использоваться для хранения любой дополнительной информации о счете или субсчете. Набор дополнительных реквизитов един для всех бухгалтерских счетов.

Обратите внимание: бухгалтерские счета, как объекты данных, создаются в Конфигураторе. Каждый бухгалтерский счет относится к какому-либо из планов счетов.

При работе с системой 1С:Прсдприятие конечный пользователь может добавлять собственные счета и субсчета в планы счетов и редактировать свойства счетов, однако он не сможет редактировать или удалять счета и субсчета, созданные в Конфигураторе.

Свойства планов счетов

В этом параграфе будут описаны специфические свойства объекта метаданных типа «План счетов», в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Как уже было отмечено выше, объект метаданных «План счетов» обладает особым поведением, отличным от поведения других объектов метаданных.

Все свойства, которыми обладает объект метаданных типа «План счетов», можно разделить на 2 группы.

Первую группу образуют свойства, которые относятся к планам счетов как объектам метаданных. Эти свойства задают общие характеристики поведения планов счетов. Для редактирования этой группы свойств используется окно редактирования «Планы Счетов», которое вызывается двойным щелчком мыши на фразе «Планы Счетов» в дереве метаданных.

Изменения, вносимые в этом окне редактирования, действуют на все планы счетов.

Свойства, относящиеся ко второй группе, задают индивидуальные характеристики конкретного плана счетов. К таким свойствам, помимо идентификатора и комментария, относится шаблон кода счета — условное обозначение структуры полного кода счета (включает код счета первого уровня, коды субсчетов всех уровней и разделители, — подробнее см. ниже). Редактирование этих свойств выполняется либо в палитре свойств плана счетов, либо в окне редактирования, которое можно вызвать двойным щелчком мыши на идентификаторе плана счетов в дереве метаданных.

Общие свойства планов счетов редактируется в окне редактирования «Планы счетов». Для вызова окна редактирования необходимо дважды щелкнуть левой кнопкой мыши на фразе «Планы Счетов» в дереве метаданных.

Максимальная длина кода счета. Задаст максимальную длину кода счета, который может быть указан в плане счетов.

Код счета в общем случае представляет собой символьную строку вида:

<Код счета>.<Код субсчета>.<Код субсчета> ...

Общая длина кода счета в системе 1С:Прсдприятие ограничена 255 символами. В это значение входят: длина кода счета первого порядка, длины кодов счетов всех нижележащих порядков и разделители номеров счетов (точка).

Длина наименования счета. Задаст максимальную длину наименования счета.

Планы счетов. Управляющие элементы этой группы предназначены для создания, редактирования и удаления планов счетов. Использование этих управляющих элементов в основном совпадает с общими приемами редактирования списков объектов метаданных, о которых шла речь в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена.. Единственное отличие: при нажатии кнопки «Изменить» будет вызвано окно редактирования «План счетов» для редактирования свойств плана счетов и редактирования бухгалтерских счетов. Подробнее о редактировании бухгалтерских счетов см. в п. «Редактирование плана счетов» на стр. 5.

Реквизиты счетов. Управляющие элементы этой группы предназначены для создания, редактирования и удаления дополнительных реквизитов счетов. Использование этих управляющих элементов в основном совпадает с общими приемами редактирования списков объектов метаданных, о которых шла речь в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Количественный учет — только по аналитике. На практике количественный учет не имеет смысла без аналитического учета: например, нельзя вести количественный учет материалов «вообще» — обычно учитывают количество конкретного материала.

Однако, если предполагается вести аналитический учет с использованием субсчетов, а не субконто, может потребоваться указать ведение количественного учета на таком аналитическом субсчете. Чтобы предоставить пользователю такую возможность, служит опция «Количественный учет — только по аналитике».

Если эта опция выключена, то при редактировании планов счетов пользователь может устанавливать признак ведения количественного учета для тех счетов, на которых не ведется аналитический учет по субконто.

Основной план счетов. Задает план счетов «но умолчанию» для конструкций встроенного языка, в которых можно указывать конкретный план счетов. Основной план счетов выбирается из списка планов счетов, существующих в конфигурации.

Поясним подробнее назначение этого управляющего элемента.

Компонента «Бухгалтерский учет» системы 1С:Предприятие позволяет вести учет по нескольким планам счетов. Некоторые методы встроенного языка, добавляемые к системе этой компонентой, требуют передавать в качестве одного из параметров план счетов, для которого следует выполнить метод.

Например, метод СчетПоКоду() выполняет поиск бухгалтерского счета по коду счета. Вторым параметром этого метода можно указать план счетов, в котором необходимо искать счет. Если параметр не указан, поиск выполняется в плане счетов, установленном в элементе «Основной план счетов» окна редактирования «Планы Счетов».

Максимальное количество субконто. Задаст максимальное количество видов субконто, которое может быть «прикреплено» к одному счету или субсчету. Может принимать числовое значение от О до 5.

Внимание. Не следует устанавливать максимальное количество субконто больше, чем это реально требуется. На хранение и обработку этой информации расходуются дополнительные ресурсы системы 1С:Предприятис.

При уменьшении значения этого показателя Конфигуратор не разрешит выставить количество субконто меньшее, чем реально прикреплено к какому-либо счету или субсчету в любом из существующих планов счетов.

Например, если значение показателя «Максимальное количество субконто» равно 3, а в одном из существующих планов счетов к какому-либо счету или субсчету действительно «прикреплено» 3 вида субконто, то значение показателя нельзя будет поставить меньше 3.

Если требуется установить меньшее значение «Максимальное количество субконто», следует во всех существующих планах счетов «отключить» использование 3-го субконто у счетов.

Валютный учет. Управляющие элементы, объединенные в группу «Валютный учет», служат для настройки справочника валют. Поясним это подробнее.

Ведение валютного учета в системе 1С:Предприятие автоматически поддерживается компонентой «Бухгалтерский учет». Для любого счета (субсчета) в плане счетов можно указать признак ведения валютного учета. При вводе бухгалтерских проводок с использованием валюты пользователь обязательно должен указать, какая именно валюта используется, и ввести сумму в этой валюте. Система 1С:Предприятие автоматически организует хранение бухгалтерских итогов (остатков и оборотов по счетам) и в рублевом, и в валютном выражении.

Для однозначной идентификации валют, используемых в учете, необходимо вести справочник этих валют. Применение справочника позволяет гибко управлять списком используемых валют и однозначно ссылаться на требуемую валюту при вводе проводок или при получении бухгалтерских итогов.

В качестве справочника валют в системе 1С:Предприятие может выступать любой из существующих в конфигурации справочников. Обычно, для ведения списка валют в конфигурации создают специальный справочник «Валюты». В простейшем случае он содержит один дополнительный реквизит (как правило, периодический) для хранения курсов валют.

Управляющие элементы группы «Валютный учет» позволяют указать, какой из справочников, существующих в конфигурации, будет использоваться в качестве справочника валют, и настроить другие параметры валютного учета.

В поле «Справочник валют» необходимо выбрать идентификатор одного из существующих в конфигурации справочников. Этот справочник будет использоваться компонентой «Бухгалтерский учет» в качестве справочника валют.

В поле «Курс» выдается список числовых реквизитов справочника, выбранного в поле «Справочник валют». Из этого списка необходимо выбрать идентификатор реквизита, в котором будут храниться курсы используемых валют. Если у справочника валют нет ни одного числового реквизита, такой реквизит необходимо создать.

При вводе проводок значение из этого реквизита будет использоваться для расчета суммы в рублях, если указана валютная сумма проводки.

Перед тем, как объяснить назначение ноля «Кратность», необходимо дать расшифровку самого понятия кратность.

Помимо привычного указания курса валюты «столько-то рублей за единицу валюты», для некоторых валют курс задается в виде «столько-то рублей за 100 (или 10000, или 10) единиц валюты». В этом случае сумма в рублях вычисляется следующим образом: сумма в валюте умножается на курс и делится на 100 (или 10000, или 10 — сколько указано). Этот делитель в системе 1С:Предприятие называется кратностью валюты.

Поле «Кратность» позволяет указать, в каком реквизите справочника валют будет храниться кратность валюты. Так же, как и для курса валюты, это должен быть реквизит типа «число».

Если такой реквизит в поле «Кратность» указан, то при работе с системой 1С:Предприятие в этом реквизите необходимо поставить коэффициенты для всех используемых валют. Для валют, не имеющих кратности, следует поставить 1. Вычисление рублевой суммы проводки но валютной сумме будет выполняться системой с использованием кратности.

Разделитель учета. Компонента «Бухгалтерский учет» системы 1С:Предприятие позволяет вести в одной информационной базе бухгалтерский учет одновременно для нескольких предприятий.

Для реализации такой возможности в объекте метаданных «Проводка» необходимо предусмотреть дополнительный реквизит (лучше, если этот реквизит будет иметь тип значения «Справочник»). При работе с системой 1С:Предприятие в этот реквизит необходимо вводить то или иное значение, которое позволит разделять проводки, принадлежащие разным предприятиям.

Идентификатор этого реквизита необходимо выбрать в поле «Разделитель учета». Система 1С:Предприятие автоматически организует систему хранения бухгалтерских итогов, разделяя их по значению указанного реквизита. При помощи встроенного языка информацию из итогов можно извлекать и по конкретному предприятию, и в целом — по всем предприятиям.

Создание форм планов счетов

Для работы с формами планов счетов служат управляющие элементы, расположенные в нижней части окна редактирования «Планы счетов».

Редактировать счета. Реквизит «Редактировать счета» устанавливает способ редактирования конкретного счета в плане счетов. Поясним, что это означает.

Для просмотра или выбора счета план счетов всегда выдается в виде таблицы. В самом общем случае, в левой колонке такой таблицы выводится код счета, затем — наименование, далее — признаки валютного и количественного учета, служебные признаки («забалансовый», «активный — пассивный»), наименования видов субконто, и, наконец, колонки для дополнительных реквизитов счетов. Редактировать конкретный счет в плане счетов — изменять его наименование, устанавливать значения различных признаков и так далее, — можно двумя способами: непосредственно в ячейках плана счетов, либо в специально созданном диалоге.

Система 1С:Предприятие предоставляет возможность выбора способа просмотра и редактирования счетов в плане счетов.

Если для реквизита «Редактировать счета» выбрано значение «В списке», то редактирование кода, наименования и прочих характеристик счета будет проводиться непосредственно в ячейках плана счетов. Такое представление удобно тем, что можно видеть сразу несколько строк плана счетов, например, когда требуется выполнить согласованные изменения в нескольких счетах (субсчетах).

С другой стороны, представление в виде таблицы, особенно при небольшом разрешении экрана, не позволяет показать сразу все колонки плана счетов — потребуется горизонтально прокручивать окно плана счетов. В этом случае можно использовать режим редактирования в диалоге.

Если выбрана установка «Редактировать — в диалоге», то для редактирования счета будет вызываться специально разработанный диалог, куда будет помещаться информация из текущей строки плана счетов. Редактирование в диалоге удобно тем, что видны сразу все характеристики выбранного счета. Кроме того, в информационных полях диалога можно вывести разнообразную дополнительную информацию.

При установке «Редактировать — обоими способами» выбор конкретного способа редактирования — в таблице или в диалоге — будет производиться конечным пользователем при работе с системой 1С:Предприятие.

«Форма счета». Эта кнопка вызывает редактор форм для редактирования формы счета, которая будет использоваться, если в поле «Редактировать счета» выбрана установка «Редактировать — в диалоге».

«Формы списка». Эта. кнопка служит для вызова на экран диалога «Формы списков» и для вызова редактора форм для редактирования уже существующих форм плана счетов. Порядок работы с диалогом «Формы списков» изложен в п. «Работа с формами списка» на стр. Ошибка! Закладка не определена..

Редактирование плана счетов

Редактирование плана счетов может выполняться как в Конфигураторе, так и при работе с системой 1С:Предприятие.

При редактировании плана счетов в Конфигураторе доступны все операции в пределах заданных для планов счетов свойств:

· ввод новых счетов и субсчетов;

· удаление счетов и субсчетов;

· включение валютного и количественного учета на счете (субсчете) путем задания соответствующих признаков;

· редактирование признака «Активный — Пассивный»;

· настройка аналитического учета

· редактирование значений дополнительный реквизитов счетов.

При редактировании плана счетов в сеансе работы с системой 1С:Предприятис пользователь не может редактировать счета и субсчета, введенные в план счетов в Конфигураторе — ему доступно только редактирование дополнительных реквизитов. Однако, пользователь может вводить новые счета и субсчета, и уже для них устанавливать признаки ведения валютного и количественного учета и другие характеристики, о которых говорилось выше.

Разделение места редактирования плана счетов позволяет, с одной стороны, разрабатывать конфигурацию, ориентированную на заранее известную структуру счетов и субсчетов; с другой стороны, дает возможность пользователю в своих целях добавлять в планы счетов новые счета и субсчета и использовать их для ввода информации и получения отчетных документов.

Редактирование свойств плана счетов

Каждый план счетов обладает собственным набором свойств. Для редактирования этих свойств можно использовать палитру свойств или окно редактирования «План счетов...», которое можно вызвать двойным щелчком мыши на идентификаторе плана счетов в дереве метаданных.

Ниже будут описаны специфические свойства плана счетов, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объекта метаданных» на стр. Ошибка! Закладка не определена..

Шаблон кода. Шаблон кода представляет собой символьную строку состоящую из символов «#» и «.». Шаблон кода схематически иллюстрирует структуру полного кода счета. Фактически, шаблон кода задаст количество уровней субсчетов и косвенно — максимальное количество субсчетов, которое может быть открыто к счету. Например, символьная строка вида

##.#.###

означает, что код счета первого уровня может состоять максимум из двух символов. К счету могут быть открыты 2 уровня субсчетов. Код субсчета первого уровня содержит 1 символ, код субсчета второго уровня — до 3-х символов.

В системе 1С:Предприятие количество уровней вложенности субсчетов в плане счетов не ограничивается. В качестве «ограничителя» выступает величина реквизита «Максимальная длина кода счета» в окне редактирования «Планы счетов». В пределах указанной длины можно задавать произвольное количество уровней вложенности, комбинируя символы «#» и «.» в шаблоне счета.

Шаблон счета задается для каждого конкретного плана счетов отдельно. Иерархия субсчетов строится системой 1С:Предприятие автоматически, основываясь на шаблоне счета.

Шаблон кода для плана счетов может быть не задан. В этом случае допускается ввод кодов счетов в произвольном формате, с использованием букв, цифр и символов точки. Исходя из указанного кода счета, система 1С:Предприятие автоматически введет счета вышестоящих уровней.

Редактирование списка счетов (субсчетов)

План счетов в окне редактирования «План счетов» представляет собой таблицу, содержащую список счетов и субсчетов. Эта таблица имеет набор колонок для ввода параметров счета. Количество колонок для указания видов субконто может, в общем случае, быть различным и задается установкой реквизита «Макс. количество субконто» в окне редактирования «Планы счетов».

В крайней левой колонке плана счетов различными значками обозначается тип текущей строки.

Для просмотра плана счетов можно использовать клавиши управления курсором или линейки прокрутки. Редактирование плана счетов заключается в добавлении новых счетов и субсчетов и редактировании их свойств.

Ввод нового счета (субсчета). Для ввода нового счета (субсчета) в план счетов следует нажать клавишу Ins или выбрать пункт «Новая строка» в контекстном меню плана счетов.

В появившейся новой строке заполнить колонку «Код» и нажать клавишу Enter. Колонка «Код» будет содержать маску кода счета в соответствии с шаблоном, указанным в поле «Шаблон кода».

В колонку можно сразу ввести код субсчета (кода второго порядка), тогда после завершения ввода нового субсчета Конфигуратор автоматически введет строки, соответствующие субсчетам вышестоящих уровней.

Если для редактируемого плана счетов не задан шаблон счета, то в колонку «код» можно вести произвольный код счета, комбинируя буквы, цифры и символы точки в пределах разрешенной длины кода счета. Конфигуратор также автоматически введет субсчета вышестоящих уровней.

После ввода кода счета и нажатия клавиши Enter курсор автоматически переместится в колонку «Наименование». Наименование счета представляет собой произвольную строку символов. Ее длина ограничивается величиной, заданной в реквизите «Длина наименования счета» окна редактирования «Планы счетов».

После редактирования наименования счета следует нажать клавишу Enter.

Если в план счетов вводится новый счет не последнего уровня, будет выдан запрос «Счет будет иметь субсчета?», на который необходимо ответить «Да» или «Нет».

Поясним смысл этого запроса.

Счета в плане счетов делятся на 2 вида — группы счетов и собственно счета. Различие между ними простое: группы счетов имеют субсчета, а «собственно счета» не имеют субсчетов.

Если счет будет иметь субсчета (то есть вводится группа счетов), то такой счет нельзя будет указать в качестве корреспондирующего счета при вводе проводок — необходимо будет указывать субсчета этого счета. И наоборот: если счет не будет иметь субсчетов, его можно указывать при вводе проводок.

Однако, если для счета, для которого было указано отсутствие субсчетов, все-таки введен субсчет, то система 1С:Предприятие выполнит следующее.

В план счетов для этого счета автоматически будет введен субсчет с условным кодом 0. Во всех проводках, которые были сделаны но этому счету, этот счет также автоматически будет заменен субсчетом с кодом 0. В дальнейшем код субсчета 0 можно будет изменить на другой, в этом случае будет также проведено соответствующее изменение номеров субсчетов в проводках.

Редактирование счета (субсчета). Для редактирования счета необходимо установить курсор в колонку плана счетов, значение которой нужно отредактировать, и нажать клавишу Enter или дважды щелкнуть на ней мышью. Ячейка, на которой находится курсор, переключится в режим редактирования; в ней появится курсор в виде мигающей вертикальной полоски.

При редактировании ячейки можно перемещаться в другие колонки текущей строки, используя клавиши Tab и Shift+Tab. Для окончания редактирования ячейки следует нажать клавишу Enter.

Чтобы отказаться от внесения изменений в значение ячейки, следует нажать клавишу Esc. Все изменения, выполненные в редактируемой ячейке, будут отменены.

Редактирования свойств счета (субсчета)

Помимо кода и наименования, для любого счета (субсчета) в плане счетов можно задать ряд свойств:

· признак ведения на счете валютного учета;

· признак ведения на счете количественного учета;

· признак забалансового счета;

· признак «Активный — Пассивный».

Кроме этого, для любого счета в плане счетов можно включить ведение аналитического учета но субконто: для этого к счету могут быть «прикреплены» виды субконто.

Путем установки свойств счета, фактически, настраивается система учета в целом: включается ведение валютного и количественно учета, настраиваются «разрезы», по которым будет вестись аналитический учет.

Редактирование перечисленных выше свойств выполняется в соответствующих колонках плана счетов. Подробнее о редактировании указанных признаков рассказывается ниже.

Внимание. Свойства, задаваемые для счета, автоматически задаются и для всех субсчетов этого счета.

Вал. Колонка «Вал.» («Валютный») служит для включения признака ведения валютного учета на выбранном счете (субсчете). Эта колонка появляется в окне редактирования «План счетов», если заполнены реквизиты в группе «Валютный учет» окна редактирования «Планы счетов» (см. стр. 2): как минимум, должно быть указано, какой справочник будет использоваться в качестве справочника валют.

Для включения признака ведения валютного учета на счете (субсчете) выполните следующие действия:

· переведите ячейку в режим редактирования, нажав клавишу Enter;

· нажмите клавишу F4 или кнопку «…» в ячейке. Включенный признак обозначается знаком «+»;

· еще раз нажмите Enter для выхода из режима редактирования ячейки.

Для снятия признака ведения валютного учета необходимо повторно выполнить описанные действия.

Если признак устанавливается для счета, имеющего субсчета, то признак автоматически устанавливается также для всех субсчетов. Если у счета, имеющего признак «Вал.», открывается новый субсчет, для субсчета автоматически ставится это признак. Если у счета не установлен признак «Вал.», то признаки «Вал.» у субсчетов можно устанавливать произвольно.

Если для счета (субсчета) включен признак валютного учета, необходимо обеспечить возможность ввода необходимой информации при работе с системой 1С:Предприятие: следует вставить соответствующие колонки в формы журнала проводок.

Кол. Колонка «Кол.» («количественный») служит для включения признака ведения количественного учета на выбранном счете (субсчете). Для этого необходимо выполнить следующие действия:

· переведите ячейку в режим редактирования, нажав клавишу Enter;

· нажмите клавишу F4 или кнопку «…» в ячейке. Включенный признак обозначается знаком «+»;

· еще раз нажмите Enter для выхода из режима редактирования ячейки.

Для снятия признака необходимо повторно выполнить описанные выше действия.

Если признак устанавливается для счета, имеющего субсчета, то признак автоматически устанавливается также для всех субсчетов. Если к счету, имеющему признак «Кол.», открывается новый субсчет, для субсчета автоматически ставится это признак. Если у счета не установлен признак «Кол.», то признаки «Кол.» у субсчетов можно устанавливать произвольно.

Заб. Колонка «Заб.» («Забалансовый») служит для включения признака забалансового счета. Для забалансовых счетов система 1С:Предприятие не позволяет корреспондировать их в проводках с балансовыми счетами.

Признак «Заб.» можно установить только для счета, в этом случае он автоматически устанавливается и для всех субсчетов этого счета. Если к счету, имеющему признак «Заб.», открывается новый субсчет, признак «Заб.» для этого субсчета устанавливается автоматически.

Для включения признака забалансового счета выполните следующие действия:

· переведите ячейку в режим редактирования, нажав клавишу Enter или дважды щелкнув в ячейке мышью;

· нажмите клавишу F4 или кнопку «…» в ячейке. Включенный признак обозначается знаком «+»;

· еще раз нажмите Enter для выхода из режима редактирования ячейки.

Для снятия признака необходимо повторно выполнить описанные выше действия.

Акт. Колонка «Акт.» служит для установки признака «Активный — Пассивный».

Для установки этого признака выполните следующие действия:

· переведите ячейку в режим редактирования, нажав клавишу Enter;

· в ячейке нажмите клавишу F4 или кнопку «…»;

· из выпадающего списка выберите одно из значений: А («Активный»), П («Пассивный») или АП («Активно-пассивный»);

· еще раз нажмите Enter для выхода из режима редактирования ячейки.

Признак «Активный — Пассивный» имеет следующий смысл. Счет (субсчет), обозначенный в плане счетов как «Активный», не должен иметь кредитового остатка. Для такого счета:

· в случае дебетового остатка на счете (это нормальная ситуация) методы встроенного языка СНД() и СКД() будут возвращать величину остатка со знаком «+»;

· в случае кредитового остатка на счете методы СНД() и СКД() будут возвращать величину остатка со знаком «–». Такая ситуация должна рассматриваться как недопустимая;

· методы СНК() и СКК() всегда будут возвращать 0.

Счет (субсчет), обозначенный в плане счетов как «Пассивный», не должен иметь дебетового остатка. Для такого счета:

· в случае кредитового остатка на счете (это нормальная ситуация) методы встроенного языка СНК() и СКК() будут возвращать величину остатка со знаком «+»;

· в случае дебетового остатка на счете методы СНК() и СКК() будут возвращать величину остатка со знаком
«–». Такая ситуация должна рассматриваться как недопустимая;

· методы СНД() и СКД() всегда будут возвращать 0.

Счет (субсчет), обозначенный в плане счетов как «Активно-пассивный», может иметь как дебетовый, так и кредитовый остаток. Для такого счета:

· в случае дебетового остатка на счете методы встроенного языка СНД () и СКД () будут возвращать величину остатка со знаком «+», а методы СНК () и СКК () будут возвращать 0;

· в случае кредитового остатка на счете методы СНК () и СКК () будут возвращать величину остатка со знаком «+», а методы СНД () и СКД () будут возвращать 0.

Для получения развернутого сальдо по счетам, помеченным в плане счетов как активно-пассивные, следует организовать на таких счетах ведение аналитического учета. Аналитический учет может быть организован по субсчетам счета — в этом случае к счету должно быть открыто достаточное количество субсчетов, или по субконто.

Субконто. Колонки «Субконто 1» … «Субконто5» служат для указания наименований видов субконто, прикрепленных к счету (субсчету). Количество колонок зависит от установки реквизита «Макс. количество субконто» в окне редактирования «Планы счетов».

Для выбора вида субконто необходимо выполнить следующие действия:

· поместите курсор в одну из колонок «Субконто» плана счетов;

· переведите ячейку в режим редактирования, нажав клавишу Enter или дважды щелкнув в ячейке мышью;

· в открывшемся списке с наименованиями видов субконто выберите нужный вид субконто. Если список видов субконто не открылся автоматически — нажмите клавишу F4 или кнопку «…» в ячейке;

· для ввода наименования вида субконто в ячейку плана счетов дважды щелкните наименование левой кнопкой мыши или нажмите кнопку «ОК».

Для отказа от выбора вида субконто нажмите кнопку «Отмена» в списке видов субконто. Ячейка сохранит то состояние, которое было до редактирования.

Чтобы очистить ячейку и, таким образом, отказаться от ведения аналитического учета по этом виду субконто, следует нажать кнопку «Очистить».

Кнопки [image] и [image] позволяют перемещать наименование вида субконто из одной колонки «Субконто» в другую (при этом содержимое колонок меняется местами). Порядок наименований видов субконто в плане счетов влияет на последовательность выбора субконто при вводе проводок в системе 1С:Предприятие, а также на скорость расчета итогов в разных разрезах.

Только обороты. Если установить признак «Только обороты», то по этому субконто не будут разворачиваться остатки счета, а будут разворачиваться только обороты.

Например, предположим, что существует необходимость анализа движений средств по 51 счету («Расчетный счет») в разрезе отдельных видов поступлений и расходов. Причем, очевидно, что такая классификация не должна влиять на остатки на 51 счете, так как деньги на расчетном счету лежат вне зависимости от источника поступлений и будущего расходования. Поэтому для счета 51 следует ввести вид субконто «Направления поступлений и расходов», и включить для него признак «Только обороты». В этом случае остатки средств на 51 счете будут делиться в разрезе других видов субконто, указанных по данному счету (например, в разрезе банковских счетов). А вводимые в проводках значения субконто «Направления поступлений и расходов» позволят в отчетах развернуть приход и расход средств по 51 счету.

Учет по сумме, Учет по валютной сумме, Учет по количеству. Эти признаки позволяют регулировать использование данного субконто с точки зрения суммового, валютного и количественного учета.

По умолчанию все эти признаки включены. Это значит, что все виды учета, если они задействованы для счета, будут вестись в разрезе данного вида субконто. Однако, в некоторых случаях отдельные признаки имеет смысл отключать. Например, по счету 10 («Сырье и материалы») ведется учет в разрезе не только конкретных материальных ценностей, но и в разрезе мест хранения (складов). Очевидно, что учет в разрезе материальных ценностей должен быть и количественным, и суммовым, так как нужно иметь информацию, сколько имеется конкретного материала, и какая его учетная стоимость. Однако для субконто «Места хранения» может использоваться только количественный учет, а признак «Учет по сумме» может быть отключен. Такая настройка может быть обусловлена способом списания материальных ценностей. Если, списание материалов выполняется по средней стоимости или но LIFO/FIFO, то стоимость определяется, исходя из общей стоимости материалов на предприятии, и, очевидно, что при таком списании стоимость материалов на конкретном складе смысла не имеет. В этом случае отключение настройки «Учет по сумме» для субконто «Места хранения» позволит выводить данные в отчетах в разрезе складов только в количественном выражении, а данные в разрезе материальных ценностей — и в количественном и в суммовом выражениях.

Включение (или отключение) аналитического учета по счету может выполняться в любой момент эксплуатации системы 1С:Предприятие. Однако, специалист, выполняющий конфигурирование системы, должен иметь в виду следующее.

Если к счету, по которому не велось аналитического учета, прикрепляется один (или несколько) вид субконто, то все проводки по этому счету, существующие в информационной базе, при реструктуризации будут отнесены на «пустое» субконто. В дальнейшем при редактировании проводок пустое субконто можно заменить на конкретный объект аналитического учета.

Наоборот, если у счета отключается ведение аналитического учета по субконто, то при реструктуризации информационной базы из всех проводок по этому счету будут удалены ссылки на субконто.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 13

Глава 13.
Виды субконто

  • Виды субконто в системе 1С:Предприятие
  • Управление списком видов субконто
  • Свойства вида субконто
  • Конструктор вида субконто

Компонента «Бухгалтерский учет» системы 1С:Предприятие позволяет вести не только синтетический — на счетах в целом, — но и аналитический учет. Аналитический учет можно вести на субсчетах основных счетов, однако наиболее широкие возможности предоставляет использование субконто. В данной главе дается расшифровка понятия «субконто» и рассматриваются вопросы конфигурирования объектов метаданных типа «Вид Субконто». Перед чтением данной главы следует ознакомиться с главой «Планы счетов». Также желательно, чтобы читатель имел представление об основах бухгалтерского учета.

Виды субконто в системе 1С:Предприятие

Для ведения аналитического учета в системе 1С:Предприятие применяется механизм субконто. Субконто называется любой объект аналитического учета: основные средства, нематериальные активы, малоценные и быстроизнашивающиеся предметы, материалы, организации, подотчетные лица, договоры, бюджеты.

Видом субконто, в свою очередь, называется множество однотипных объектов аналитического учета. Например, список покупателей и заказчиков (предположим, что это только организации) в системе 1С:Прсдприятие будет называться «видом субконто «Организации», а любая организация из этого списка будет именоваться «субконто».

Для организации видов субконто в системе 1С:Предприятие используются объекты метаданных «Виды Субконто». Конфигуратор позволяет организовать любое необходимое число видов субконто.

Сам объект метаданных типа «Вид Субконто» в системе 1С:Предприятие не описывает каких-либо объектов данных. Вид субконто только «ссылается» на конкретный тип данных. Вид субконто указывает на возможность использования конкретного типа данных для организации аналитического учета по бухгалтерским счетам. Объектами данных для ведения аналитического учета могут являться элементы справочников, документы, перечисления и т. д. При настройке аналитического учета (субконто) для конкретного счета указывается именно вид субконто. Например, для организации аналитического учета по счету 60 можно создать вид субконто «Поставщики», имеющий тип данных «Справочник.Организации». Таким образом, вид субконто делает некоторый тип данных доступным для использования его при ведении аналитического учета.

В качестве видов субконто в системе 1С:Предприятис могут выступать доступные в системе типы данных, кроме дробных чисел и строк длиннее 20 символов.

Если на счете или субсчете ведется аналитический учет с использованием субконто, система 1С:Предприятие будет хранить бухгалтерские итоги как в целом по счету или субсчету, так и отдельно по каждому объекту аналитического учета. Извлечение этой информации выполняется средствами встроенного языка.

Такая схема построения аналитического учета позволяет кроме получения итогов но счету в разрезе объектов аналитики, получать также сквозной анализ объектов аналитического учета по всем счетам, к которым он относится, например, получать итоги по конкретному основному средству в разрезе 01 и 02 счета.

Управление списком видов субконто

Вся работа с объектами метаданных типа «Вид Субконто» ведется в окне «Конфигурация — Метаданные». Для видов субконто отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Виды Субконто». Приемы создания, редактирования свойств и удаления видами субконто, в основном, совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» (см. стр. Ошибка! Закладка не определена.).

При создании нового вида субконто Конфигуратор предлагает воспользоваться «Конструктором вида субконто» (см. ниже стр. 3).

От использования Конструктора можно отказаться. В этом случае создание нового вида субконто и задание его свойств выполняется обычным способом.

Свойства вида субконто

В этом параграфе будут описаны специфические свойства вида субконто, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных», стр. Ошибка! Закладка не определена..

Закладка «Общие»

В этой закладке вводится основная информация, определяющая объект метаданных «Вид Субконто»: прежде всего, это идентификатор и тип значения.

Тип значения определяет, какого типа значения будут вводиться в проводках в качестве субконто данного вида. Обычно в качестве субконто выступают справочники и перечисления. Однако может быть выбран любой тип, кроме дробного числа и строки длиннее 20 символов.

Закладка «Дополнительные»

Отбор. Если эта опция включена, то при работе с системой 1С:Прсдприятие можно выполнять отбор проводок в журнале проводок но данному виду субконто. Кроме того, наличие отбора позволяет ускорить построение отчетов по субконто данного вида.

Заметим, что поддержка отбора требует дополнительных ресурсов от системы 1С:Предприятие, поэтому рекомендуется включать отбор только в случае необходимости.

Закладка «Настройки»

Управляющие элементы закладки «Настройки» служат для управления поведением списка субконто при вводе проводок в процессе работы пользователя с системой 1С:Предприятие.

Цена. Этот управляющий элемент становится доступным, если в качестве типа значения объекта метаданных «Вид Субконто» указан какой-либо из существующих в конфигурации справочников. Элемент «Цена» позволяет указать, какой реквизит справочника будет использоваться в качестве «цены субконто».

Поясним подробнее, что такое «цена субконто». Цена субконто — числовой реквизит справочника, который будет использоваться при вычислении суммы проводки.

В процессе ввода проводок по счетам, по которым при настройке планов счетов указано ведение аналитического и количественного учета, система 1С:Предприятие требует выбрать объект аналитического учета и указать количество проводки — количество объектов аналитического учета, «участвующее» в проводке. Сумма проводки в этом случае может быть рассчитана умножением количества на цену субконто.

Для выбора реквизита справочника в качестве цены субконто не обходимо щелкнуть мышью в поле управляющего элемента «Цена» на экран будет выдан список только тех реквизитов справочника, которые имеют числовой тип. Из этого списка необходимо выбрать нужный реквизит.

Если среди реквизитов справочника нет числовых реквизитов, список будет состоять из одной строки — «Не назначен».

Валютная цена. Этот управляющий элемент также становится доступным, если в качестве типа значения объекта метаданных «Вид Субконто» указан какой-либо из существующих в конфигурации справочников. Элемент «Валютная цена» позволяет указать, какой реквизит справочника будет использоваться в качестве «валютной цены субконто».

Понятие «валютная цена субконто» имеет тот же смысл, что и «цена субконто», только валютная цена субконто будет использоваться для вычисления валютной суммы проводки — произведения количества на валютную цену.

Ввод пустых субконто. Если эта опция включена, то при вводе проводок по счетам, по которым указано ведение аналитического учета, можно не указывать субконто. Для таких проводок остатки и обороты по соответствующему счету будут группироваться на особом «пустом субконто».

Но умолчанию данная опция всегда включена.

Быстрый выбор. Если включена эта опция, то список объектов аналитического учета будет выдаваться для выбора не в отдельном окне, а в виде выпадающего списка. Эту опцию рекомендуется включать для видов субконто с небольшим количеством значений. Конкретное количество значений в данном случае определяется эмпирическим путем.

Закладка «Представление»

Представлением называется символьная строка, содержащая информацию из реквизитов объекта метаданных, указанного в качестве типа значения субконто. Эта символьная строка может быть получена при помощи методов встроенного языка ПредставлениеСубконто(), ПредставлениеКорСубконто(), и использована для отображения значений реквизитов субконто в различных отчетах, диалогах и других визуальных элементах конфигурации.

Если представление не настроено для данного вида субконто, то в отчетах будет выдаваться стандартное представление значения типа данных (наименование или код элемента справочника, номер документа и т. д.).

В общем случае представление является символьной строкой, со стоящей из пар вида:

"<3аголовок>: <3начение реквизита>…"

Управляющие элементы закладки «Представление» служат для описания формата представления. Представление может быть создано только для субконто типа «Справочник» и «Документ».

В закладке «Представление» задается список реквизитов субконто в том порядке, в котором они должны выдаваться в строке представления. Если необходимо пояснить выдаваемое значение реквизита, для него может быть задан заголовок — произвольная строка символов. Если заголовок задан, он помещается перед значением реквизита и отделяется от него двоеточием.

Также для пары «Заголовок — Значение реквизита» можно указать признак выдачи со следующей строки. Эта возможность позволяет с минимальной обработкой выдавать представление, например, в колонке отчета.

Добавление реквизита в список значений. Для добавления реквизита в список значений необходимо нажать кнопку [image]. В списке значений появится новая строка, которая автоматически переключится в режим редактирования.

Строка в режиме редактирования представляет собой ноле с выпадающим списком. Этот список содержит идентификаторы реквизитов объекта метаданных, указанного в качестве типа значения субконто. Из списка необходимо выбрать идентификатор требуемого реквизита.

Для завершения редактирования строки списка следует либо нажать клавишу Enter, либо щелкнуть мышью в любом месте списка значений.

Удаление реквизита из списка значений. Для удаления реквизита из списка значений представления необходимо выбрать его в списке и нажать кнопку [image].

Редактирование реквизита. На место любого реквизита в список можно поместить идентификатор другого реквизита субконто. Для этого выполните следующие действия:

· выберите в списке идентификатор реквизита, который будет редактироваться;

· чтобы перейти в режим редактирования строки, дважды щелкните на идентификаторе реквизита мышью или нажмите клавишу Enter;

· из выпадающего списка выберите идентификатор требуемого реквизита;

· для завершения редактирования строки списка нажмите клавишу Enter или щелкните мышью в любом месте списка значений.

Сортировка списка реквизитов. Последовательность значений реквизитов в представлении определяется их порядком в списке значений диалога «Представление». Используя кнопки [image] и [image], можно расставить идентификаторы дополнительных реквизитов проводки в списке в требуемом порядке.

Дополнительные характеристики реквизита. Для любого реквизита из списка значений могут быть заданы заголовок и признак переноса на следующую строку. Реквизит, для которого требуется задать эти признаки должен быть предварительно выбран в списке значений.

Заголовком служит произвольная символьная строка, поясняющая выдаваемое значение реквизита. Заголовок выдается перед значением реквизита в строке представления и от значения реквизита отделяется двоеточием.

Если для реквизита установлен признак переноса на следующую строку, то при выдаче строки представления, например, в отчете, значение реквизита (вместе с заголовком, если заголовок задан) будет автоматически выводиться с новой строки. Если признак переноса не установлен, значение будет выдаваться в той же строке и отделяться от предыдущего реквизита пробелом.

Конструктор вида субконто

Конструктор вида субконто предназначен для наиболее типовых случаев создания новых видов субконто.

Вызов Конструкторов описан в главе «Метаданные» (раздел «Конструкторы», стр. Ошибка! Закладка не определена.).

На первом шаге Конструктор предлагает указать идентификатор нового вида субконто и его комментарий, а также выбрать тип значений субконто.

Конструктор позволяет создать вид субконто с типами значений, наиболее часто используемыми для организации аналитического учета по бухгалтерским счетам (справочниками, перечислениями, документами). Создание видов субконто с другими типами значений может быть выполнено без использования Конструктора.

Выключение опции «Использовать конструктор для создания новых объектов» позволяет отказаться от использования Конструктора. В этом случае создание вида субконто и редактирование его свойств выполняется так, как это описано в главе «Метаданные» (см. стр. Ошибка! Закладка не определена.). Одновременно с отказом от использования Конструктора при создании нового вида субконто произойдет отказ от использования всех Конструкторов при создании новых объектов метаданных (см. главу «Метаданные», раздел «Конструкторы», стр. Ошибка! Закладка не определена.).

На втором шаге предлагается либо воспользоваться одним из существующих справочников, перечислений, документов (в зависимости от типа значения, выбранного на первом шаге), либо создать новый справочник, перечисление или документ.

При выборе варианта «Создать новый Справочник» вместо поля со списком для выбора идентификатора существующего справочника появляется поле ввода. В поле ввода необходимо указать идентификатор справочника, который должен быть создан.

При создании нового справочника на следующем шаге Конструктор предлагает указать синоним и комментарий создаваемого справочника, а также выбрать пользовательские интерфейсы, в которые должна быть помещена команда для вызова нового справочника.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 14

Глава 14.
Операции и проводки

  • Основные принципы
    • Понятие «Операция»
    • Формирование операции документом
    • Ручной ввод операции
    • Понятие «Проводка»
    • Формы операции и проводок
  • Свойства операции
  • Графы журнала операций
    • Редактирование графы журнала операций
  • Форма операции
  • Форма журнала операции
  • Свойства проводки
  • Представление
  • Формы журнала проводок

Для отражения в бухгалтерском учете информации о хозяйственных операциях в системе 1С:Предприятие используются Операции и Проводки. Для их настройки в конфигурации существуют объекты метаданных «Операция» и «Проводка». Для лучшего понимания материала данной главы рекомендуется предварительно ознакомиться с главой «Документы». Также желательно, чтобы читатель имел представление об основах бухгалтерского учета.

Основные принципы

Понятие «Операция»

Операцией считается любое хозяйственное действие, способное вызывать изменение состояния средств предприятия (почему «способное» — будет понятно позднее).

Например, операциями являются: перечисление средств с расчетного счета; выписка покупателю счета на оплату товаров; выдача денег из кассы под отчет; приобретение для управленческих нужд телефонного аппарата; определение финансовых результатов деятельности предприятия за период (месяц или квартал).

Обратите внимание: хотя операция «выписка счета на оплату...» и имеет конкретное физическое выражение — документ «Счет», однако не приводит к изменению в средствах предприятия. С другой стороны, операция определения финансовых результатов, хоть и не имеет материального аналога, очень важна с точки зрения бухгалтерского учета и приводит к весьма значительным изменениям в состоянии средств предприятия.

В объекте метаданных «Операция» в конфигурации задаются различные свойства операций, формы для ввода, редактирования и просмотра операций.

В структуре метаданных может быть только один объект метаданных «Операция». Объектами данных этого типа являются объекты данных «Операция». Операция является совокупностью взаимосвязанных проводок, отражающих в бухгалтерском учете хозяйственную операцию предприятия. Также операция имеет заголовок который включает содержание операции, сумму и дополнительные реквизиты.

Объект данных «Операция», не является самостоятельным объектом, он всегда является «порождением» объектов данных типа «Документ». То есть операция всегда принадлежит документу. Документ может иметь только одну операцию; в свою очередь, операция всегда принадлежит только одному документу.

Наличие операции у документа также обуславливает присутствие документа в журнале операций.

Формирование операции документом

Сама возможность иметь операцию для документов конкретного вида задается в процессе редактирования свойств документа установкой опции «Бухгалтерский учет» (см. п. «Свойства документа» на стр. Ошибка! Закладка не определена.). Установка данной опции означает, что данный вид документа имеет отношение к бухгалтерскому учету и, в принципе, может иметь операцию.

Для документов конкретного вида, для которых включена опция «Бухгалтерский учет», определяется режим записи операции. Параметр «Создавать операцию для документа» может иметь три значения:

«Всегда» все документы данного вида будут иметь операции. То есть операция будет записываться в момент записи документа и документ будет всегда присутствовать в журнале операций;

«Выборочно» Конкретные документы данного вида могут при записи или при проведении создавать операцию. Наличие операции для конкретного документа может быть задано вызовом метода «СуществуетОперация»;

«Только при проведении» для документов данного вида операция может быть записана средствами встроенного языка только в процедуре «ОбработкаПроведения». То есть только проведенные документы этого вида могут иметь операцию.

Операция, созданная документом, может быть открыта пользователем для просмотра, но в общем случае, не должна редактироваться. Тем не менее, в Конфигураторе можно включить такую возможность — редактировать операции, созданные документами (см. ниже). Однако, при повторном проведении документа операция будет записана заново, и результаты редактирования операции будут утеряны.

Ручной ввод операции

Кроме автоматического формирования операции документом, существует возможность ввода операции «вручную». Для этого в метаданных автоматически создается специальный вид документов «Операция». Он располагается на ветви «Документы» дерева метаданных. От «обычного» документа его отличает отсутствие реквизитов шапки и табличной части, отсутствие формы документа и отсутствие модуля документа. Из всех свойств документа для документа «Операция» настраиваются в метаданных только свойства номера документа. Фактически, документ «Операция» — это служебный вид документа.

При работе в системе 1С:Предприятие пользователь имеет возможность ввести операцию вручную: указать дату, содержание, другие реквизиты операции, и ввести проводки операции. При этом фактически записывается документ «Операция» и сама операция. Это позволяет введенной вручную операции иметь все свойства обычных документов — отображаться в журналах документов, участвовать в отборах, иметь дату, номер, время и т. д. При редактировании такого документа открывается собственно операция.

Понятие «Проводка»

Чтобы введенная операция вызвала изменение в бухгалтерских итогах, такая операция должна содержать проводки. Проводка является единственным элементом данных, способным изменять состояние средств, отражаемых в бухгалтерском учете. Каждая проводка принадлежит одной и только одной операции. Таким образом, весь ввод проводок происходит только при вводе операции.

Проводка содержит корреспондирующие счета, сумму, а также информацию по количественному, валютному и аналитическому учету — в зависимости от настроек бухгалтерского учета в конкретной конфигурации. Кроме того, проводка может содержать дополнительные реквизиты, заданные для нее в процессе конфигурирования.

Проводка может состоять из нескольких корреспонденций. Механизм корреспонденций позволяет вводить сложные проводки: например, с кредита одного счета в дебет нескольких счетов (и наоборот). В этом случае проводка представляет собой совокупность строк, первая из которых устанавливает счет дебета проводки, а остальные — корреспондирующие счета кредита. Сумма проводки в этом случае складывается из сумм всех корреспонденции проводки. Проводка может содержать до 99999 корреспонденций.

Необходимо отметить, что не может быть сложных проводок с несколькими счетами дебета и несколькими счетами кредита.

Так же, как и сами операции, проводки могут вводиться вручную или формироваться автоматически на основе документов. Операция может содержать до 99999 проводок.

Проводки, входящие в операцию, всегда составляют группу, и при любых изменениях в реквизитах операции или в самих проводках всегда «держатся» вместе. Это справедливо как для проводок, введенных вручную, так и для проводок, автоматически введенных документом.

Как правило, редактирование пользователем проводок, сформированных документом, не имеет смысла, так как при повторной генерации проводок (например, при перепроведении документа) отредактированные проводки будут заменены автоматически сгенерированными проводками.

Формы операции и проводок

Для редактирования операции с проводками используется форма «форма операции». Форма операции настраивается в Конфигураторе.

Для просмотра списка операций используется журнал операций. В Конфигураторе может быть настроено несколько форм журнала операций.

Кроме того, существует возможность просмотра списка проводок, принадлежащих разным операциям. Для этого предназначен журнал проводок. В Конфигураторе может быть настроено несколько форм журнала проводок.

Свойства операции

Объект метаданных «Операция» предназначен для настройки структуры заголовка операции, то есть информации, описывающей всю операцию. Параметры и структура проводок описываются в объекте метаданных «Проводка».

В заголовок операции входят:

содержание текстовая строка, используется для краткого описания конкретной операции;

сумма операции число, которое никак не влияет на сам бухгалтерский учет, а лишь характеризует операцию;

реквизиты операции дополнительные значения различных типов, состав которых задается при конфигурировании.

Свойства операции редактируются в окне редактирования «Операция». Это окно вызывается двойным щелчком мыши на ключевом слове «Операция» в дереве метаданных.

Длина содержания. Устанавливает длину содержания операции.

Сумма операции. Управляющие элементы, объединенные в эту группу, управляют размерностью суммы операции и ее представлением.

Отбор. Отбором называется механизм, дающий пользователю возможность в журналах работать с операциями, отобранными по какому-либо значению.

Включением соответствующих опций группы «Отбор» можно задавать выполнение отбора операций по сумме или содержанию операции при работе с системой 1С:Прсдприятие.

Расчет суммы. Управляющие элементы этой группы устанавливают порядок расчета суммы операции:

Не рассчитывать сумма операции вводится вручную в соответствующий реквизит диалога;

По всем проводкам сумма операции вычисляется как сумма всех проводок операции;

По первой проводке сумма операции принимается равной сумме первой проводки операции.

Валютная сумма. Этот управляющий элемент становится доступным, если выбран какой-либо способ вычисления суммы операции — по всем проводкам или по первой проводке. Если опция «Валютная сумма» включена, для вычислений будет использоваться валютная сумма проводок операции.

Выбор режима. Если включена эта опция, то при работе с системой 1С:Прсдприятие пользователь сам может устанавливать порядок расчета суммы операции. Такой выбор будет выполняется в режиме настройки параметров системы 1С:Предприятие.

Редактировать операции документов. Эта опция может принимать одно из трех значений:

Разрешить разрешить пользователю редактировать операции, сформированные документами;

Запретить запретить пользователю редактировать операции, сформированные документами;

Выборочно возможность редактирования операции, сформированной документами, устанавливается в Конфигураторе для каждого вида документов индивидуально.

Если выбран режим «Редактировать операции документов — выборочно», в окне редактирования документа становится доступен флажок «Редактировать операцию». Установка или снятие этого флажка, соответственно, разрешает или запрещает пользователю редактировать вручную операции, сформированные документами этого вида.

При установке этой опции следует иметь в виду, что при перепроведении документов операции формируются заново, следовательно, отредактированные пользователем операции будут удалены и заменены на автоматически сформированные.

Реквизиты. Управляющие элементы, объединенные в группу «Реквизиты», позволяют создавать, удалять и редактировать дополнительные реквизиты операции. Приемы работы е элементами этой группы совпадают с общими приемами управления списками объектов метаданных, о которых говорилось в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Дополнительные реквизиты операции позволяют включать в операцию любую необходимую информацию, помимо даты, номера суммы и содержания операции. Дополнительные реквизиты могут быть размещены в форме операции.

Графы журнала. Группа «Графы журнала» объединяет управляющие элементы, предназначенные для ведения списка дополнительных колонок журнала операций и определения их свойств. Подробно об использовании управляющих элементов этой группы будет рассказано ниже в параграфе «Графы журнала операций».

«Форма операции», «Формы журнала». Эти кнопки служат для вызова редактора форм и позволяют редактировать, соответственно, форму операции и формы журнала операций. Подробнее о формах операции см. ниже в п. «Форма операции» и «Формы журнала операций».

Графы журнала операций

Журнал операций, в общем случае, может содержать записи о двух видах операций: об операциях, введенных пользователем вручную, и об операциях, автоматически сформированных документами. Возможность автоматического формирования операции документом обеспечивается наличием соответствующих команд встроенного языка системы 1С:Предприятие в модуле документа.

В общем случае, в форме журнала могут присутствовать 6 граф (колонок): «ДатаДок», «ВремяДок», «ВидДок», «НомсрДок», «Содержание» и «СуммаОпсрации».

Колонки «ВидДок», «НомерДок», «ДатаДок», «ВремяДок» содержат, соответственно, идентификатор, номер, дату и время документа, если операция сформирована документом, или: ключевое слово «Операция», помер, дату и время операции, если операция введена пользователем вручную. Колонки «Содержание» и «СуммаОперации» могут содержать, соответственно, краткое содержание и сумму хозяйственной операции.

Помимо перечисленных выше колонок, в журнал операций можно добавить практически неограниченное количество дополнительных граф. Такие графы служат для показа значений реквизитов документов, которые сформировали операции в журнале операций.

В данном случае, назначение дополнительных граф журнала операций даст те же преимущества, что и дополнительные графы журнала документов (см. п. «Графы журнала документов», стр. Ошибка! Закладка не определена.): наличие в журнале операций дополнительных граф дает возможность пользователю получить наиболее важные сведения о документе уже при просмотре журнала, не открывая сам документ.

Так как операции могут порождаться документами самых разных видов, при создании дополнительной графы журнала требуется указать, значение какого реквизита того или иного документа будет помещаться в данную графу.

Для управления списком дополнительных граф журнала операций и редактирования их свойств служат управляющие элементы группы «Графы» диалога «Операция». Порядок использования этих управляющих элементов излагается в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Редактирование графы журнала операций

Свойства и состав дополнительной графы журнала операций редактируются в диалоге «Графа». При создании новой графы этот диалог вызывается на экран нажатием кнопки «Новый» в окне редактирования «Операция». Если необходимо отредактировать уже существующую графу журнала, следует выделить имя этой графы в окне редактирования «Операция» и нажать кнопку «Изменить». На экран будет выдано окно редактирования «Графа», содержащее текущие установки для выбранной графы.

В этом параграфе будут описаны специфические свойства графы журнала операций, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объекта метаданных» на стр. Ошибка! Закладка не определена..

Состав дополнительной графы. Для редактирования состава дополнительной графы журнала операций используются окна «Выбранные Значения» и «Возможные Значения», расположенные ниже ноля «Комментарий».

В окне «Возможные значения» в виде дерева выдается список всех документов, существующих в конфигурации к текущему моменту. Знак «+» в узле ветви дерева означает, что данная ветвь имеет подуровни, и щелчком мыши на «+» можно раскрыть следующий уровень. На самом нижнем уровне дерева находятся наименования реквизитов документов.

Окно «Выбранные Значения» содержит список реквизитов документов, значения которых будут отображаться в редактируемой графе при работе с журналом операций. Если редактируется только что созданная дополнительная графа, список «Выбранные значения» будет пуст.

Выбор реквизитов документа для показа в графе журнала выполняется одним из следующих способов:

· дважды щелкните левой кнопкой мыши на наименовании нужного реквизита в окне «Возможные значения»;

или

· выделите наименование нужного реквизита в окне «Возможные значения» и нажмите кнопку [image].

Полное наименование реквизита будет помещено в окно «Выбранные значения», а сам реквизит будет помечен знаком [image].

Для показа в графе журнала операций можно указать любой реквизит шапки документа или реквизит табличной части документа, для которого включен признак «Итог по колонке» (см. п. «Свойства реквизита документа» на стр. Ошибка! Закладка не определена.).

Для показа в графе журнала операций можно выбрать только один реквизит документа. Если один из реквизитов документа уже был ранее выбран для отображения в журнале, то выбор другого реквизита того же документа приведет к тому, что имя ранее выбранного реквизита будет удалено из списка «Выбранные значения», а имя нового выбранного реквизита будет помещено в список, и возле него появится отметка [image].

Удаление наименования реквизита из списка «Выбранные значения» выполняется одним из следующих способов

· дважды щелкните левой кнопкой мыши на наименовании нужного реквизита в окне «Выбранные значения»;

или

· выделите наименование нужного реквизита в окне «Выбранные значения» и нажмите кнопку [image].

Наименование реквизита будет удалено из списка «Выбранные значения», а в окне «Возможные значения» с этого реквизита будет снята отметка [image].

Для завершения редактирования состава дополнительной графы журнала операций нажмите кнопку «ОК».

Если необходимо отказаться от внесения изменений в состав графы, следует нажать кнопку «Отмена». Состав графы останется таким, каким он был до вызова окна редактирования «Графы».

Форма операции

Форма операции предназначена для ввода, просмотра и изменения операций. Для редактирования формы операции используется комплексный редактор форм, который вызывается нажатием кнопки «Форма операции» в окне редактирования «Операция».

Первоначально форма операции автоматически создается Конфигуратором. В форму операции и в табличную часть, в которой размещается список проводок, вставляются реквизиты, соответствующие текущим установкам свойств бухгалтерского учета и свойств объектов метаданных «Планы Счетов», «Операция» и «Проводка».

Присутствие этих реквизитов в форме операции может быть изменено в процессе редактирования формы.

В форме операции могут быть размещены:

Обозначение | Описание
ДатаОнерации | Дата операции (документа)
ПомсрДок | Номер операции (или номер документа которому принадлежит операция)
СуммаОперации | Сумма операции
Содержание | Содержание операции
<Реквизит операции>... | Реквизиты операции
<Реквизит документа>... | Общие реквизиты документов

В табличной части операции могут быть размещены данные проводки.

Обозначение | Описание
НомерПроводки | Номер проводки — не редактируемое поле, которое будет отображать порядковый номер проводки и, если проводка сложная, номер корреспонденции
ПланСчетов | План счетов — не редактируемое поле, отображающее план счетов, которому принадлежат корреспондирующие счета проводки. Используется, если в конфигурации существует более одного плана счетов.
СчетДт | Счет дебета проводки
СчетКт | Счет кредита проводки
Субконто | Колонка значений субконто. При работе с формой будет использована для ввода всех значений субконто (и по дебету, и по кредиту). Количество реальных полей в этой колонке будет зависеть от количества используемых субконто. Располагаться поля будут в две строки (дебетовые субконто — в верхней строке, кредитовые — в нижней). Если данная колонка задействована, то не используются колонки «СубконтоДт» и «СубконтоКт».
СубконтоДт | Колонка значений субконто дебета проводки. При работе с формой будет использована для ввода всех субконто дебета проводки. Количество реальных нолей в этой колонке будет зависеть от количества используемых субконто. Располагаться поля будут в несколько строк. Данная колонка не будет задействована, если используется колонка «Субконто».
СубконтоКт | Колонка значений субконто кредита проводки. При работе с формой будет использована для ввода всех субконто кредита проводки. Количество реальных нолей в этой колонке будет зависеть от количества используемых субконто. Располагаться поля будут в несколько строк. Данная колонка не будет задействована, если используется колонка «Субконто».
Валюта | Значение валюты проводки. Используется, если в конфигурации установлен валютный учет.
Курс | Значение курса валюты проводки. Используется, если в конфигурации установлен валютный учет. Не редактируемое поле. Отображает курс выбранной валюты на дату операции.
Количество | Значение количества проводки.
ВалСумма | Значение суммы проводки в валюте. Используется, если в конфигурации установлен валютный учет.
Сумма | Значение суммы проводки.
НомерСтроки | Номер строки документа, сформировавшей данную проводку. Не редактируемое поле, которое предназначено для отображения номера строки документа, сформировавшего проводку в процессе проведения. Эта информация заполняется только, если такая привязка проводки предусмотрена в алгоритме проведения документа.
<Реквизит проводки>... | Значения реквизитов проводки.

Форма журнала операции

Для просмотра списка операций предназначен «Журнал операций». В отличие от журнала документов, этот журнал специально предназначен для работы с операциями, и обладает рядом особенностей. Например, существует возможность разделения журнала операций на 2 подокна: для списка операций и для списка проводок текущей операции. Кроме этого, для операций, сформированных документами, существует возможность открыть для редактирования не только саму операцию, но и документ, который сформировал эту операцию.

При редактировании объекта метаданных «Операция» может быть разработано любое необходимое число форм журнала операций — с разной степенью подробности отображения информации.

Для редактирования форм журнала операций используется диалог «Формы списков», который вызывается нажатием кнопки «Формы журнала» в окне редактирования «Операция». Работа с формами списка объекта метаданных описана в и. «Работа с формами списка» на стр. Ошибка! Закладка не определена..

По умолчанию создается форма журнала с идентификатором ФормаСписка, которая используется для просмотра списка операций.

В табличной части формы журнала операций могут быть размещены:

Обозначение | Значение
ВидДок | Вид документа ДатаОперации Дата операции (документа)
ВремяОперации | Время операции (документа)
НомерДок | Номер операции или номер документа, которому принадлежит операция
СуммаОнерации | Сумма операции
Содержание | Содержание операции
<Реквизит операции>... | Реквизиты операции
<Реквизит документа>... | Общие реквизиты документов
<Графы журнала>... | Графы журнала операций

При работе с системой 1С:Предприятие редактирование операций всегда выполняется в диалоге — в отличие от, например, объекта метаданных «Справочник», который позволяет выбирать способ редактирования. При работе с журналом операций можно только просматривать список операции в пределах, ограниченных формой журнала операций. Для редактирования операции, после выбора соответствующей команды в меню «Действия», будет открыта форма операции.

Свойства проводки

Система 1С:Прсдприятие имеет только один объект метаданных «Проводка». Объектами данных этого типа будут являться введенные в систему проводки.

Структура проводки в значительной степени зависит от настроек параметров учета. Ее можно условно разделить на 2 составляющие.

Постоянная часть структуры проводки содержит ряд реквизитов, которые присутствуют всегда, независимо от настройки различных типов учета. К таким реквизитам относятся корреспондирующие счета (счет дебета проводки и счет кредита проводки) и сумма проводки.

Переменная часть структуры определяется настройками различных признаков учета (аналитический, количественный, валютный), которые выполняются при редактировании свойств планов счетов. К таким реквизитам относятся: субконто (до 5-ти на каждый из корреспондирующих счетов), валюта и сумма в валюте, количество проводки.

Необходимо учесть, что использование конкретных реквизитов из переменной части структуры проводки, в свою очередь, зависит от используемых корреспондирующих счетов. Например, если в проводке использованы корреспондирующие счета, для которых не установлено количественного учета, то соответствующий реквизит проводки заполнять будет нельзя. Это же справедливо и для субконто и для вида валюты и суммы в валюте.

Кроме этого, при редактировании свойств проводки можно создать набор дополнительных реквизитов для хранения любой дополнительной информации о проводке. Как правило, использование этих реквизитов не зависит от настроек параметров учета.

Проводки, как объекты данных, могут существовать только «внутри» операции. Форма операции содержит табличную часть, которая предназначена для редактирования входящих в операцию проводок.

Свойства проводки редактируются в окне редактирования «Проводка». Это окно вызывается двойным щелчком мыши на ключевом слове «Проводка» в дереве метаданных.

Свойства, которые могут быть заданы для проводки, в основном влияют на технические характеристики проводки: длины и точности сумм, включение различных видов отбора.

Сумма, Количество, Валютная сумма. Управляющие элементы, объединенные в эти группы:

· управляют размерностью, соответственно, суммы, количества и валютной суммы проводок;

· управляют изображением этих реквизитов при работе с системой 1С:Предприятие;

· включают возможность отбора проводок в журнале проводок но одному из этих критериев.

Внимание. Разрядность суммы, валютной суммы и количества проводки определяют также и максимальную разрядность итогов бухгалтерского учета. Их следует устанавливать таким образом чтобы их разрядность позволяла хранить итоги по счетам и объектам учета за длительные периоды времени.

Отбор по счетам. Управляющие элементы этой группы позволяют настроить отбор проводок по счетам.

Разрешить отбор. Данная опция включает возможность отбора проводок в журнале проводок по номерам счетов и субсчетов.

Наличие отбора по счетам позволяет просматривать проводки в журнале проводок, отобранные по какому-либо одному счету. Кроме этого, наличие такого отбора ускоряет получение отчетов с отбором по счетам.

По Дебету / Кредиту. Опция управляет отбором проводок но счетам в журнале проводок.

Если опция включена, при работе с журналом проводок можно будет отбирать проводки, у которых указанный счет стоит или только в дебете, или только в кредите.

Если опция «По Дебету / Кредиту» отключена, то остается возможность отбирать все проводки в которых присутствует указанный счет — либо в дебете, либо в кредите.

Количество уровней. Этот управляющий элемент позволяет указать, до какого уровня вложенности будет выполняться отбор по счетам (субсчетам).

Если включена опция «Для всех», отбор будет выполняться по указанному счету и всем субсчетам этого счета. Если опция «Для всех» отключена, то для определения «глубины» отбора будет использоваться число, указанное в поле «Количество уровней».

Приведем пример. Допустим, к некоему счету в плане счетов открыты несколько уровней субсчетов. Если при настройке отбора в поле «Количество уровней» стоит 1, то отбираться будут проводки, выполненные только по самому счету. Если в этом поле поставить 2 то будут отбираться проводки и по счету, и по субсчетам 1-го уровня вложенности.

Отбор по... Опции «Отбор но...» управляют возможностью выполнять отбор проводок в журнале проводок по различным условиям.

Включение той или иной опции разрешает выполнять соответствующий отбор проводок в журнале при работе с системой 1С:Предприятие.

Внимание! Организация отбора проводок требует дополнительных ресурсов со стороны системы 1 (^Предприятие. Поэтому включайте отбор проводок только тогда, когда это действительно необходимо. Для отбора по счетам можно рекомендовать использовать отбор только по счету, и не включать, опцию «По Дебету / Кредиту».

Сложные проводки. Включение этой опции разрешает ввод сложных проводок при редактировании операции.

Сложная проводка представляет собой совокупность корреспонденции, первая из которых устанавливает счет дебета (кредита) проводки и общую сумму проводки, а остальные — корреспондирующие счета кредита (дебета) и суммы, из которых складывается общая сумма проводки.

Реквизиты. Управляющие элементы этой группы служат для ведения списка дополнительных реквизитов проводки. Приемы работы с элементами этой группы совпадают с общими приемами управления списками объектов метаданных, о которых говорилось в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Дополнительные реквизиты позволяют хранить любую необходимую информацию, в дополнение к той, которая содержится в стандартных реквизитах проводки (корреспондирующие счета, суммы, количество и другие).

Представление. Эта кнопка вызывает диалог «Представление». Подробнее о назначении этого диалога см. ниже п. «Представление».

«Формы журнала». Эта кнопка служат для вызова редактора форм и позволяет редактировать, соответственно, формы журнала проводок. Подробнее о формах журнала проводок см. ниже в п. «Формы журнала проводок».

Представление

Представлением называется символьная строка, которая может содержать информацию из:

· дополнительных реквизитов проводки;

· дополнительных реквизитов операции;

· общих реквизитов документов.

Эта символьная строка может быть получена при помощи функции Представление() встроенного языка. Представление может быть использовано для отображения значений реквизитов в различных отчетах.

Если представление проводки не задано, то для представления проводки используется содержание операции.

В общем случае представление является символьной строкой, состоящей из пар вида:

"<3аголовок>: <3начение реквизита проводки>..."

Для описания формата представления служит диалог «Представление». Это диалог вызывается нажатием кнопки «Представление» в окне редактирования «Проводка».

В диалоге «Представление» задается список реквизитов в том порядке, в котором они должны выдаваться в строке представления. Если необходимо пояснить выдаваемое значение, может быть задан заголовок — произвольная строка символов. Если заголовок задан, он помещается перед значением реквизита и отделяется от него двоеточием.

Также для пары «Заголовок — Значение реквизита проводки» можно указать признак выдачи со следующей строки. Эта возможность позволяет выдавать представление, например, в колонке отчета.

Добавление реквизита в список значений. Для добавления дополнительного реквизита в список значений необходимо нажать кнопку [image]. В списке значений появится новая строка, которая автоматически переключится в режим редактирования.

Строка в режиме редактирования представляет собой поле с выпадающим списком. Этот список содержит идентификаторы дополнительных реквизитов проводки, существующих к текущему моменту.

Из списка необходимо выбрать идентификатор требуемого реквизита. Для завершения редактирования строки списка следует либо нажать клавишу Enter, либо щелкнуть мышью в любом месте списка значений.

Удаление реквизита из списка значений. Для удаления реквизита из списка значений представления необходимо выбрать его в списке и нажать кнопку [image].

Редактирование реквизита. На место любого реквизита в список можно поместить идентификатор другого реквизита. Для этого необходимо выполнить следующие действия:

· выберите в списке идентификатор реквизита, который будет редактироваться;

· чтобы перейти в режим редактирования строки, дважды щелкните на идентификаторе реквизита мышью или нажмите клавишу Enter;

· из выпадающего списка выберите идентификатор требуемого реквизита;

· для завершения редактирования строки списка нажмите клавишу Enter или щелкните мышью в любом месте списка значений.

Упорядочивание списка реквизитов. Последовательность значений реквизитов в представлении определяется их порядком в списке значений диалога «Представление».

Используя кнопки [image] и [image], можно расставить идентификаторы реквизитов в списке в требуемом порядке.

Дополнительные характеристики реквизита. Для любого реквизита из списка значений диалога «Представление» могут быть заданы заголовок и признак переноса на следующую строку. Реквизит для которого требуется задать эти признаки должен быть предварительно выбран в списке значений.

Заголовком служит произвольная символьная строка, поясняющая выдаваемое значение реквизита. Заголовок выдается перед значением реквизита в строке представления и от значения реквизита отделяется двоеточием.

Если для реквизита установлен признак переноса на следующую строку, то при выдаче строки представления, например, в отчете значение реквизита (вместе с заголовком, если заголовок задан) будет автоматически выводиться с повой строки. Если признак переноса не установлен, значение будет выдаваться в той же строке и отделяться от предыдущего реквизита пробелом.

Формы журнала проводок

Собственно ввод и редактирование проводок осуществляется в форме операции, однако, для просмотра списка проводок, принадлежащих разным операциям существует журнал проводок.

При редактировании свойств проводки может быть разработано любое необходимое число форм журнала проводок — с разной степенью подробности отображения информации.

Для редактирования форм журнала проводок используется диалог «формы списков», который вызывается нажатием кнопки «Формы журнала» в окне редактирования «Проводка». Работа с формами списка объекта метаданных подробно описана в п. «Работа с формами списка» на стр. Ошибка! Закладка не определена..

В табличной части формы журнала проводок могут быть размещены:

Обозначение | Значение
НомерДок | Номер операции или номер документа которому принадлежит операция
ВидДок | Вид документа
ДатаОперации | Дата операции (документа)
ВрсмяОперации | Время операции (документа)
Содержание | Содержание операции
СуммаОперации | Сумма операции
НомерПроводки | Номер проводки — поле, которое будет отображать порядковый номер проводки и, если проводка сложная, номер корреспонденции
ПланСчетов | План счетов — поле, отображающее план счетов, которому принадлежат корреспондирующие счета проводки. Используется, если в конфигурации существует более одного плана счетов.
СчетДт | Счет дебета проводки
СчетКт | Счет кредита проводки
Субконто | Колонка значений субконто. При работе с формой будет использована для показа всех значений субконто (и по дебету, и по кредиту). Количество реальных полей в этой колонке будет зависеть от количества используемых субконто. Располагаться поля будут в две строки (дебетовые субконто — в верхней строке, кредитовые — в нижней). Если данная колонка задействована, то не используются колонки «СубконтоДт» и «СубконтоКт».
СубконтоДт | Колонка значений субконто дебета проводки. При работе с формой будет использована для вывода всех субконто дебета проводки. Количество реальных полей в этой колонке будет зависеть от количества используемых субконто. Располагаться поля будут в несколько строк. Данная колонка не будет задействована если используется колонка «Субконто».
СубконтоКт | Колонка значений субконто кредита проводки. При работе с формой будет использована для вывода всех субконто кредита проводки. Количество реальных полей в этой колонке будет зависеть от количества используемых субконто. Располагаться поля будут в несколько строк. Данная колонка не будет задействована, если используется колонка «Субконто».
Валюта | Значение валюты проводки. Используется, если в конфигурации установлен валютный учет.
Курс | Значение курса валюты проводки. Используется, если в конфигурации установлен валютный учет. Отображает курс выбранной валюты на дату операции.
Количество | Значение количества проводки.
ВалСумма | Значение суммы проводки в валюте. Используется, если в конфигурации установлен валютный учет.
Сумма | Значение суммы проводки.
НомерСтроки | Номер строки документа, сформировавшей данную проводку. Поле предназначено для отображения номера строки документа сформировавшего проводку в процессе проведения. Эта информация заполняется только, если такая привязка проводки предусмотрена в алгоритме проведения документа.
<Реквизит проводки>... | Значения реквизитов проводки.
<Реквизит операции>... | Реквизиты операции
<Реквизит документа>… | Общие реквизиты документов


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 15

Глава 15.
Регистры

  • Регистры в системе 1С:Предприятие
  • Управление списком регистров
  • Редактирование регистра
  • Разработка структуры регистра
    • Свойства измерения (ресурса, реквизита)
    • Удаление измерения (ресурса, реквизита)
    • Упорядочивание списка измерений (ресурсов, реквизитов)

Регистры в системе 1С:Предприятие используются для накопления информации о наличии и движении средств — товарных, денежных и других. Вся информация о хозяйственных операциях, которая вводится с использованием документов или формируется при помощи расчетов, должна быть накоплена в регистрах. Тогда эту информацию можно будет извлечь, проанализировать и представить пользователю в виде отчетных форм.

Регистры в системе 1С:Предприятие

В этом параграфе будет рассказано о понятии «регистр» и даны сведения об основных принципах использования

Регистр — это внутренний компонент создаваемой конфигурации. При использовании конфигурации регистр недоступен пользователю для непосредственного заполнения, нет стандартных средств его просмотра, как для других агрегатных объектов метаданных (документов, справочников, констант и так далее). Однако, средствами встроенного языка можно записывать в регистры информацию и в последующем извлекать ее.

Проблема, которая обычно возникает при создании «хранилища» сводной информации: «В каких разрезах накапливать сводные данные, чтобы затем можно было извлечь нужную информацию без утомительной обработки?». Система 1С:Предприятие использует простые и в то же время гибкие средства для создания регистров: достаточно просто задать, в каких разрезах и какие данные требуется хранить в регистре, а система сама обеспечит запись и получение нужных данных простыми языковыми средствами.

Физический смысл регистра сформулировать довольно сложно, и скорее всего, регистр не имеет материального аналога. Можно сказать, что регистр — это n-мерная система координат, в узлах которой хранятся совокупные данные. Проиллюстрировать это можно на таком примере.

Предположим, что регистр «Товарные запасы» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В дальнейшем предполагается получать информацию такого типа «остаток конкретного товара на конкретном складе», «остаток конкретного товара всего, на всех складах», «стоимость всех товаров на конкретном складе». В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара.

В дальнейшем будем использовать термин «измерения» для обозначения понятий типа использованных выше «товар», «склад», и термин «ресурсы» — для понятий типа «количество», «стоимость».

Изменение состояния регистров выполняется специальным модулем на встроенном языке — модулем документа. Такой модуль содержит алгоритм формирования сведений об изменениях в регистрах, которые необходимо выполнить при проведении документа. Эти сведения называются движениями регистров. Система подсчета итогов использует движения регистров для выполнения непосредственных изменений в регистрах.

В процессе разработки конфигурации можно создать практически неограниченное количество регистров, однако, следует учитывать, что запись изменений в большом числе регистров при проведении документа может вызывать замедление скорости работы системы в целом.

Помимо измерений и ресурсов, для регистра может быть создан набор реквизитов. Реквизиты позволяют включать в движения регистров различную дополнительную информацию. Реквизиты не влияют на значения ресурсов регистра и могут использоваться для анализа движений регистра.

В системе 1С:Предприятие возможно использование регистров двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: в регистрах остатков всегда хранится информация о конечном состоянии средств, а в регистрах оборотов, образно выражаясь, — как это состояние было достигнуто.

Рассмотрим в качестве примера отслеживание взаиморасчетов с покупателями товаров, которые производит или продает предприятие (потребителями услуг, оказываемых предприятием, и так далее). Можно утверждать, что ведение подобного учета — обязательная часть общего учета на любом предприятии.

Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр «Взаиморасчеты», в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр «Взаиморасчеты» — это регистр остатков.

Однако, получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя — он такой информации попросту не содержит. Можно проанализировать все документы, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит.

В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре — назовем его «Объем закупок» — в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, неделя, месяц и так далее.

Теперь, при совершении хозяйственных операций, необходимо будет изменять не только состояние регистра «Взаиморасчеты», но и регистр «Объем закупок». В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре «Объем закупок» будет постоянно накапливаться информация об общем объеме закупок клиента.

Из всего сказанного выше можно сделать выводы о преимуществах использования регистров.

Прежде всего, регистры используются для хранения информации, к которой требуется получать оперативный доступ. «Уровень оперативности» и, соответственно, целесообразность использования регистра должен определять специалист, выполняющий конфигурирование системы 1С:Преднриятие, в соответствии с требованиями пользователей системы.

Также можно сказать, что регистры позволяют получать наиболее достоверную информацию о состоянии средств. Так как процессы сохранения документа и записи изменений в регистрах разделены (возможно сохранить документ, но не проводить его), может возникать расхождение между данными документов и информацией в регистрах. Но регистр, в отличие от документа, является хранилищем итоговой информации, поэтому именно запись изменений в регистры служит подтверждением того, что хозяйственная операция совершена.

Управление списком регистров

Вся работа с объектами метаданных типа «Регистр» ведется в окне «Конфигурация — Метаданные». Для регистров отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Регистры». Приемы создания, редактирования свойств и удаления регистров совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

Редактирование регистра

При редактировании регистра определяется его тип и разрабатывается структура регистра: создаются наборы измерений, ресурсов и реквизитов регистра.

В этом параграфе будут описаны уникальные свойства регистра, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Регистр редактируется в окне редактирования «Регистр».

Измерения, ресурсы, реквизиты. Управляющие элементы окна редактирования, объединенные в группы «Измерения», «Ресурсы» и «Реквизиты» позволяют управлять, соответственно, списком измерения, ресурсов и реквизитов регистра, а также редактировать их свойства. О том, как это делать, см. п. «Разработка структуры регистра».

Тип регистра. Если регистр предназначен для хранения остатков выберите опцию «Остатки».

Если регистр предназначен для хранения оборотов, следует выбрать опцию «Обороты». В поле «Периодичность» необходимо выбрать периодичность хранения оборотов (в данном случае имеются в виду календарные периоды).

Быстрая обработка движений. Это специальная опция, которая используется для оптимизации доступа к движениям отдельных регистров. Ее целесообразно использовать для тех регистров, движения которых записываются документами сравнительно редко, то есть среди всех документов вводимых пользователями в 1С:Предприятии процент документов (не видов, а экземпляров), записывающих движения по этому регистру является небольшим. В этом случае установка признака «Быстрая обработка движений» позволяет ускорить операции, обрабатывающие движения этого регистра (запросы, временные расчеты итогов, обход движений средствами встроенного языка). Для регистров, по которым движения записываются большим количеством документов, установка этого признака может не дать ощутимого выигрыша в производительности. Заметим, что установка этого признака несколько замедляет запись движений данного регистра.

Разработка структуры регистра

Разработка структуры регистра заключается в создании наборов измерений, ресурсов и реквизитов.

Для управления списком измерений, ресурсов и реквизитов регистра и редактирования их свойств служат управляющие элементы групп «Измерения», «Ресурсы», «Реквизиты» окна редактирования «Регистр». С точки зрения настройки элементы этих групп одинаковы. Порядок использования этих управляющих элементов можно посмотреть в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства измерения (ресурса, реквизита)

Свойства измерений, ресурсов и реквизитов редактируются при помощи палитры свойств соответственно «Свойства Измерения», «Свойства Ресурса» или «Свойства Реквизита». В основном они совпадают с общими свойствами объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Необходимо отметить, что объекты метаданных типа «Ресурс» могут иметь тип значения только «число».

Для измерений и реквизитов в закладке «Дополнительные» может быть установлен признак «Отбор движений», а для измерений — также признак «Отбор итогов». Эти признаки не влияют на функциональные возможности регистра, а используются исключительно для оптимизации доступа к данным регистра.

Установка признака «Отбор движений» для измерения или реквизита позволяет ускорить выполнение операций, обращающихся к движениям регистра, в случае, если выбираются движения по конкретному значению данного измерения или реквизита. К таким операциям относятся запросы с условием равенства данного измерения (реквизита) указанному значению, а также временный расчет и методы обхода движений объекта «Регистр» встроенного языка, использующие фильтр по определенному значению измерения (реквизита).

Признак «Отбор итогов», соответственно, позволяет ускорить операции, обращающиеся к итогам данного регистра с конкретным значением измерения. К ним относятся запросы и выборка итогов средствами объекта «Регистр» встроенного языка. Заметим, что установка данного признака имеет смысл только в том случае, если в предполагаемых обращениях будут выбираться итоги по значению данного измерения, по без указания значений всех предыдущих измерений, так как при указании значений нескольких первых измерений выборка данных выполняется оптимальным образом без использования отборов. То есть, если регистр имеет измерения «Товар», «Склад», «Организация», то имеет смысл устанавливать отбор итогов по измерению «Организация» в том случае, если предполагается обращение к итогам с выборкой но конкретной организации, по всем товарам. Таким образом, установка отбора итогов по первому измерению вообще смысла не имеет.

Установка отборов в измерениях и реквизитах является дополнительной возможностью. Заметим, что любая установка отборов в регистре влечет дополнительные затраты времени и дискового пространства при записи движений регистра. Поэтому устанавливать отборы следует только тогда, когда это действительно необходимо для оптимизации часто выполняемых операций. В любом случае, не следует устанавливать большое количество отборов.

Удаление измерения (ресурса, реквизита)

Удаление измерения, ресурса или реквизита выполняется в соответствии с общими приемами редактирования списков объектов метаданных, о которых говорилось в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

При удалении измерения, ресурса или реквизита необходимо иметь в виду следующее: удаление измерения, ресурса или реквизита требует внесения изменений во все объекты метаданных, которые ссылаются на это измерение, ресурс или реквизит.

Упорядочивание списка измерений (ресурсов, реквизитов)

Упорядочивание списка измерений (ресурсов, реквизитов) выполняется кнопками [image] («Переместить вверх»), [image] («Переместить вниз») и [image] («Упорядочить»), расположенными справа от соответствующего списка.

Внимание! Изменение порядка измерений и ресурсов регистра может потребовать внесения изменений в строки программных модулей, в которых осуществляется обращение к этому регистру.

Особенно важен порядок расстановки измерений регистра. Прежде всего, он влияет на оптимизацию доступа к итогам регистра: чем выше расположено наименование измерения в списке, тем быстрее выполняется доступ к итогам регистра по этому измерению. Специалист, выполняющий конфигурирование системы, должен учитывать это при создании регистра.

Последовательность расстановки измерений (ресурсов, реквизитов) регистра влияет на возможность применения методов встроенного языка, использующих позиционный доступ к измерениям (ресурсов, реквизитов) регистра.

Поясним это на таком примере. Регистр «Товарный запас» имеет измерения «Товар», «Склад» и ресурсы «Количество», «Стоимость». При указанном порядке измерений метод встроенного языка СводныйОстаток() позволит получить общее количество (или стоимость) конкретного товара на всех складах или на конкретном складе, но получить общее количество (или стоимость) всех товаров на конкретном складе будет невозможно.

Также необходимо иметь в виду, что изменение порядка измерений требует реструктуризации информационной базы.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 16

Глава 16.
Журналы расчетов

  • Журналы расчетов в системе 1С:Предприятие
  • Управление списком журналов расчета
  • Свойства журнала расчетов
  • Создание формы журнала расчетов
  • Конструктор журнала расчетов

Журналы расчетов в системе 1С:Предприятие

Журнал расчетов — это средство для просмотра и редактирования результатов расчета. Каждая строка журнала отражает единичное событие расчета для того или иного объекта. Такие события называются актами расчетов и характеризуются следующими данными:

· объектом, для которого произведен расчет;

· видом (т. е. способом) расчета;

· документом, который ввел данный акт расчета в систему («породил» расчет);

· результатом расчета;

· протяженностью во времени (т. е. акт расчета имеет дату начала и дату окончания).

Самое важное свойство журнала расчетов — ссылка на справочник, элементы которого являются объектами расчета. Справочник объектов расчета может быть как простым, так и иерархическим. Не обязательно все элементы этого справочника должны рассчитываться конкретным журналом расчетов, но, в свою очередь, все строки журнала расчетов должны соответствовать тому или иному элементу справочника объектов расчета. Как правило, журнал расчетов содержит несколько записей по одному объекту расчета, но одна запись Журнала расчетов не может соответствовать сразу нескольким объектам.

Приведем примеры журналов расчета.

Это может быть журнал расчета заработной платы сотрудников предприятия (каждый сотрудник — объект расчета), при этом выполняется расчет тех или иных начислений и удержаний (виды расчета), имеющих определенную продолжительность и результат. Другой пример — журнал расчета амортизации основных средств, где справочником объектов расчета является справочник основных средств предприятия, а видами расчета — различные алгоритмы расчета амортизации. Третий пример — журнал расчета дивидендов для акционеров АО, где объекты расчета — список акционеров предприятия, а виды расчета — способы начислений дивидендов на акции разных типов.

Расчетный период. Журнал расчетов имеет определенную периодичность, т. е. все расчеты в нем выполняются в пределах определенного временного интервала. Каждая запись журнала расчетов, соответствующая одному акту расчета, также имеет временное протяжение (т. е. имеет дату начала и дату окончания).

Внимание! Временной интервал каждой отдельной записи журнала не может лежать в разных расчетных периодах журнала.

Записи, лежащие в текущем расчетном периоде, могут, тем не менее, иметь период действия, не лежащий в текущем расчетном периоде. Это значит, что даты начала и окончания конкретной записи могут «выпадать» из текущего периода расчета и относиться к одному из прошлых или будущих периодов. Самым очевидным примером здесь может служить перерасчет зарплаты сотрудника за прошлый период или начисления будущего периода.

Управление списком журналов расчета

Вся работа с объектами метаданных типа «Журнал расчетов» ведется в окне «Конфигурация — Метаданные». Для журналов расчетов отведена ветвь дерева метаданных, которая начинается у фразы «Журналы расчетов». Приемы создания, редактирования свойств и удаления журналов расчетов совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные», стр. 18.

Свойства журнала расчетов

В этом параграфе будут изложены уникальные свойства журналов расчетов, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. 21.

Свойства журналов расчета редактируются в окне редактирования «Журнал расчетов».

Справочник. Как уже упоминалось, журнал расчетов создается не «сам по себе», а для конкретного справочника. Это значит, что журнал расчета содержит результаты не «просто» расчетов, а расчетов, проведенных для конкретных объектов. В системе 1С:Предприятие такими объектами являются элементы конкретного справочника.

Для выбора справочника объектов расчета в поле «Справочник» следует выбрать один из предлагаемых справочников.

Справочник объектов расчета — важный параметр с точки зрения целостности данных. Система не позволяет изменить эту характеристику журнала расчетов в том случае, если журнал расчетов уже содержит записи. Это значит, что нельзя подменить список объектов расчета для заполненного журнала расчета. На практике это приведет к тому, что, например, нельзя данные расчета амортизации основных средств превратить в данные расчета дивидендов акционеров.

Периодичность. Теперь подробно поясним группу параметров «Периодичность».

Журнал расчетов, как объект метаданных, предназначен для проведения периодических, т.е. повторяющихся через равные промежутки времени расчетов. Это значит, что все акты расчетов (строки журнала расчетов) расположены во времени в том или ином временном интервале, называемом расчетным периодом. Величина расчетного периода может принимать следующие значения:

· день;

· неделя;

· месяц;

· квартал;

· год.

Система не позволяет изменить периодичность журнала расчетов в том случае, если журнал расчетов уже содержит записи. Это значит, что нельзя изменить величину временного интервала между расчетами в одном журнале расчетов. Тем не менее, можно создать новый журнал расчета для того же справочника объектов расчета, но с другой периодичностью. На практике это значит, что, например, при переходе от помесячного расчета заработной платы к еженедельному расчету, необходимо, не удаляя старого журнала расчетов (для сохранения прежних данных), создать новый журнал расчетов с периодичностью «неделя».

Вследствие важности характеристик «Периодичность» и «Справочник», система выдает предупреждение о попытке смены периодичности журнала расчетов или справочника объектов расчета в окне редактирования свойств журнала расчетов.

Дата отсчета — важная характеристика, также определяющая временные характеристики журнала расчетов.

Для конкретных прикладных задач, реализуемых в программе 1С:Предприятие, бывает важно указать не только периодичность выполняемых расчетов, но и произвольно сместить эти периоды по времени. Например, для периодичности «педеля» бывает важно указать, какой именно день начинает неделю (понедельник, воскресенье или другой); для периодичности «месяц» бывает необходимо указать число, с которого начинается расчетный месяц, и т.д.

Для всех возможных типов периодичности журнала расчетов — от недели до года (очевидно, что для периода «день» задавать дату отсчета не имеет смысла) — начало отсчета задается конкретной датой. От указанной даты будут отмеряться заданные периоды: если период «месяц» и дата — 25-ое число какого-то бы ни было месяца и года, то для журнала расчетов каждый месячный отрезок времени (период расчета) будет начинаться с 25-го числа. Это является причиной того, что при периодичности «месяц» не следует задавать дату отсчета большую, чем 28 число.

Результат. Группа параметров «Результат» позволяет задать формат числа, которое является результатом отдельного акта расчета. Фактически, это определение формата предопределенного реквизита журнала расчетов «Результат». Тип этого реквизита всегда число, можно влиять лишь на его размер и точность.

Реквизиты. Далее необходимо пояснить, что имеется в виду под словом «реквизиты» в применении к журналам расчетов.

Любой вновь созданный журнал расчетов можно представить как таблицу данных, которая имеет 8 обязательных реквизитов:

«Объект» | ссылка на элемент справочника объектов расчета;
«Вид расчета» | ссылка на вид расчета, используемый в конкретной записи журнала расчетов;
«Документ» | ссылка на документ, на основании которого введена конкретная запись журнала расчетов;
«Родительский документ» | ссылка на документ, который ввел конкретную запись журнала расчетов;
«Дата начала» и «Дата окончания» | реквизиты определяющие время действия (протяженность во времени) конкретного расчета;
«Первичная запись» | ссылка на запись журнала расчетов, перерасчетом которой является текущая запись
«Результат» | результат расчета.

Кроме того, система 1С:Предприятие позволяет создать для журнала расчетов набор дополнительных реквизитов, в которых будет храниться различная дополнительная информация о проведенном акте расчета.

При показе журнала на экране эти свойства могут быть представлены в виде дополнительных колонок в форме журнала. Кроме того, сведения, хранящиеся в этих дополнительных колонках, можно будет использовать при расчетах, в отчетах и так далее.

Для управления списком реквизитов журнала расчетов и редактирования их свойств служат управляющие элементы группы «Реквизиты» окна редактирования «Журнал расчетов». Назначение и порядок использования управляющих элементов группы «Реквизиты» можно посмотреть в п. «Редактирование списков объектов метаданных» на стр. 21.

Графы отбора. Группа управляющих элементов «Графы отбора» позволяет задать набор граф отбора журнала расчетов и правила их заполнения. С помощью граф отбора специалист, осуществляющий конфигурирование системы, создает предопределенные критерии отбора. При использовании кон4)игурации по этим критериям будет выполняться отбор строк в журнале. Графами отбора в журнале расчетов могут служить реквизиты справочника объектов расчета, назначенного данному журналу. Кроме того, в качестве граф отбора могут использоваться значения «Родитель» и «Владелец» этого справочника. Использование этих значений в качестве граф отбора журнала расчетов имеет смысл только в том случае, когда справочник объектов расчета соответственно иерархический или подчиненный (или и то, и другое).

Использование тех или иных реквизитов справочника в качестве граф отбора указывается галочкой у наименования реквизита.

Переключатель «Записывать на начало/конец расчетного периода» задает правила заполнения граф отбора для реквизитов справочника, которые являются периодическими.

Если переключатель установлен в положение «на конец периода» (что делается по умолчанию), это значит, что отбор но периодическому реквизиту будет проводиться по его значению на конец расчетного периода журнала расчетов. Следовательно, если в журнале задействован отбор по реквизиту «Подразделение», и значение этого реквизита сменилось на протяжении расчетного периода конкретной записи журнала, то при отборе запись журнала расчетов будет использовать более позднее значение реквизита «Подразделение».

Создание формы журнала расчетов

Когда в Конфигураторе создается новый журнал документов, для пего автоматически создается форма для показа журнала на экране. Эта форма имеет идентификатор Форма Списка. В качестве единственного элемента она будет содержать табличную часть для отображения списка документов.

Когда в Конфигураторе создается новый журнал расчетов, для него автоматически создается форма для показа журнала на экране. Эта форма имеет идентификатор ФормаСписка. В качестве единственного элемента она будет содержать табличную часть для отображения записей журнала расчетов.

При первом обращении к новой форме журнала на экран может быть вызван диалог автоматической вставки колонок табличной части, соответствующих графам журнала.

В общем случае, диалог содержит 5 реквизитов, соответствующих обязательным реквизитам журнала расчетов: «Объект» — ссылка на элемент справочника объектов расчета; «ВидРасч» — ссылка на вид расчета, по которому рассчитывается конкретная запись; «ДатаНачала» — дата начала расчета; «ДатаОкончания» — дата окончания расчета; «Результат» — результат расчета записи. Если у журнала расчетов существуют дополнительные реквизиты, то в список граф будут добавлены эти реквизиты.

Если в диалоге автоматической вставки реквизитов снят флажок «Вызывать для новых форм», при обращении к новой форме журнала расчетов в табличную часть будут автоматически вставлены перечисленные выше реквизиты.

Созданная Конфигуратором форма журнала расчетов может быть отредактирована. Для редактирования используется редактор форм, который можно вызвать одним из следующих способов:

· в диалоге для редактирования журнала расчетов нажмите кнопку «Форма»;

или

· в окне «Конфигурация — Метаданные» выделите наименование журнала расчетов;

· нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в этом меню выберите пункт «Редактировать форму».

Подробно работа с редактором форм изложена в главе «Редактор форм».

Конструктор журнала расчетов

Вызов Конструктора для создания объектов метаданных описан в главе «Метаданные», как и задание в первом окне Конструктора идентификатора, синонима и комментария создаваемого объекта метаданных (стр. 19).

В следующем диалоге Конструктора предлагается определить справочник, для которого создается журнал расчетов. Это может быть один из имеющихся справочников или новый справочник, в зависимости от положения переключателя.

Если выбрано создание нового справочника, для него необходимо указать идентификатор. Новый справочник появляется на соответствующей ветви дерева метаданных.

В следующем диалоге Конструктора задается периодичность проведения расчетов путем определения длины периода («Размер») и даты отсчета.

После задания периодичности создаваемому журналу расчетов предлагается поместить команду вызова для него в меню «Журналы расчетов» одного из пользовательских интерфейсов, существующих в конфигурации.

Нажатие на кнопку «Готово» завершает работу Конструктора. Открывается окно редактирования свойств созданного журнала расчетов.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 17

Глава 17.
Виды и группы расчетов

  • Виды расчетов в системе 1С:Предприятие
  • Управление списками видов расчетов и групп расчетов
  • Свойства вида расчета
  • Управление входимостью расчетов в группы
  • Модуль расчета
  • Правила перерасчета
    • Управление списком правил перерасчета
    • Свойства правил перерасчета

Важнейшим свойством системы 1С:Предприятие является возможность определения произвольных алгоритмов расчета. Конкретные алгоритмы расчетов зависят от области применения программы. Для расчета заработной платы, например, это будут начисления и удержания; для задачи учета акций — это алгоритмы расчета дивидендов по акциям разного типа и т.д.

Для алгоритмизации расчетов в системе 1С:Прсднриятие служит понятие видов расчетов.

Виды расчетов в системе 1С:Предприятие

Виды расчетов в системе 1С:Предприятие — это специальный тип объектов метаданных, основное свойство которых — наличие алгоритма обработки данных. Результатом действия этого алгоритма является заполнение реквизита «Результат» журнала расчетов. Понятие видов расчета неразрывно связано с понятием журналов расчетов, так как журнал расчетов — единственное место, где «срабатывают» алгоритмы видов расчетов. Один из предопределенных реквизитов журнала расчетов является реквизитом типа «Вид расчета» и предназначен для хранения ссылки на конкретный вид расчета. С использованием алгоритма именно этого вида расчета будет выполняться вычисление результата расчета при выполнении системной операции «Рассчитать».

Группы расчетов. Понятие группы расчетов имеет в системе 1С:Предприятие вспомогательное значение. Единственное предназначение групп расчетов — упорядочивание и классификация видов расчета для тех областей применения программы 1С:Предприятие, где количество различных алгоритмов обработки данных и, следовательно, видов расчетов значительно. Тесная взаимосвязь между этими двумя понятиями объясняет то, что они рассматриваются в одной главе данного Руководства.

Управление списками видов расчетов и групп расчетов

Вся работа с объектами метаданных типа «Вид расчета» и «Группа расчетов» ведется в окне «Конфигурация — Метаданные». Для видов расчетов отведена ветвь дерева метаданных, которая начинается у фразы «Виды расчетов», а для групп расчетов — ветвь «Группы расчетов». Приемы создания, редактирования свойств и удаления видов расчетов и групп расчетов совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные», стр. Ошибка! Закладка не определена..

Свойства вида расчета

В этом параграфе будут описаны уникальные свойства видов расчетов, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства вида расчета редактируются в окне редактирования «Вид расчета».

Приоритет. Особого пояснения требует свойство «Приоритет», которое является одной из важных характеристик вида расчета.

Дело в том, что для многих предметных областей применения программы 1С:Предприятие очень важным бывает очередность, в которой выполняются те или иные расчеты. Например, в случае расчета заработной платы, как минимум, важно сначала рассчитать начисления, а затем удержания.

Для организации последовательности выполнения расчетов служит понятие их приоритета. Этот параметр может принимать значение от 0 до 999 и действует следующим образом: чем меньше приоритет расчета, тем раньше он выполняется. Это отражается в последовательности расположения записей журнала расчетов — записи с видами расчетов меньшего приоритета располагаются перед записями с видами расчетов большего приоритета.

Вытесняющие расчеты. Представление о вытесняющих расчетах в системе 1С:Предприятие связано со следующими практическими предпосылками.

В некоторых случаях требуется автоматизировать предметные области, в которых расчет каких-либо величин может вестись взаимно исключающими способами. Возвращаясь вновь к задаче расчета заработной платы, рассмотрим пример расчета следующих начислений: оплата рабочих дней по окладу, оплата дней болезни по больничному листу и оплата дней отпуска.

Очевидно, что в этом случае выполняется условие взаимоисключения перечисленных видов расчета — нельзя, например, одновременно и болеть и работать, т. е. получать и оклад, и деньги по больничному листу. Такие расчеты взаимно исключают друг друга во времени и система должна гарантировать, что ввод одного из них приведет к исключению другого.

Заметим, что взаимное исключение видов расчета ограничивается одним объектом расчета — болезнь одного сотрудника не исключает оплату по окладу другого сотрудника.

Для пояснения приведем примеры вытесняющих и не вытесняющих расчетов в рамках все того же расчета заработной платы. Вытесняющими расчетами, как правило, являются: оплата по основному виду деятельности, оплата больничных, оплата отпуска, оплата по среднему заработку вынужденного отсутствия на работе и пр. Не вытесняющими расчетами являются: удержание налога, выплаты штрафов, оплата но исполнительному листу и другие удержания, а также разного рода доплаты.

Механизм управления взаимоисключающими расчетами настраивается в окне «Настройка вытеснения», открывающегося при нажатии соответствующей кнопки в окне «Вид расчета».

В этом окне все виды расчета, включая определяемый, помещены в два списка, «Вытесняет виды расчета» и «Вытесняется видами расчета». Назначение их очевидно из вышесказанного.

Необходимо только отметить, что вполне возможна ситуация, когда некоторому виду расчета флажок устанавливается в обоих списках (взаимовытесняющие виды расчета). Например, форма оплаты труда работника может быть на какой-то период заменена с оплаты по окладу на оплату по тарифу и последний вид расчета должен вытеснить первый; столь же обычно и обратное.

При установке флажка самому определяемому виду расчета в одном из списков флажок в другом списке устанавливается автоматически (самовытесняющий вид расчета). Например, работника на время перевели на другой оклад.

Описанный механизм полностью определяется при редактировании свойств вида расчета, хотя, собственно, этот механизм работает при вводе новых записей журналов расчета. Это еще раз иллюстрирует тесную взаимосвязь понятия журнала расчетов и вида расчета.

Управление входимостью расчетов в группы

Механизм группировки видов расчета предназначен для выделения видов расчета по тем или иным признакам, что облегчает дальнейшую работу с ними. Это позволяет, например, определив группу расчетов «Начисления» и, определив входимость в нес конкретных видов расчета, оперировать затем понятием этой группы, а не перебирать все входящие в нее расчеты отдельно.

Использование окна редактирования «Вид расчета». Для редактирования входимости расчета в те или иные группы используются два списка в окне редактирования вида расчета. В левом списке отражены группы, в которые редактируемый вид расчета включен, в правом списке — группы, в которые вид расчета не включен.

Для переноса группы или нескольких групп расчетов из правого списка в левый, т. е. для включения редактируемого вида расчета в требуемую группу или набор групп, выделите требуемые группы в правом окне и нажмите кнопку [image].

Для переноса группы или нескольких групп расчетов из левого списка в правый, т. е. для исключения редактируемого вида расчета из некоторой группы или набора групп, выделите требуемые группы в левом окне и нажмите кнопку [image].

Использование окна редактирования «Группа расчетов». Объединением видов расчетов в группы, о котором говорилось выше можно управлять не только при редактировании свойств вида расчета, но и при редактировании группы расчетов. Это позволяет, например, создав новую группу расчетов, сразу определить набор видов расчета, входящих в нес, а не указывать входимость расчетов в новую группу путем редактирования каждого расчета.

Для редактирования входимости расчетов в данную группу используются два списка в окне редактирования «Группа расчетов». В левом списке отражены виды расчета, которые включены в данную группу, в правом списке — виды расчета, которые не включены в данную группу.

Для переноса вида расчета или нескольких видов расчетов из правого списка в левый, т. е. для включения их в редактируемую группу, выделите требуемые виды расчетов в правом окне и затем нажмите кнопку [image].

Для переноса вида расчета или нескольких видов расчетов из левого списка в правый, т. е. для исключения их из редактируемой группы, выделите требуемые расчеты в левом окне и затем нажмите кнопку [image].

Модуль расчета

Модуль расчета, как правило, содержит предопределенную процедуру ПровестиРасчет. Основная задача процедуры расчета — описать, каким образом при выполнении операции расчета журнала расчетов должно вычисляться значение «Результат». Кроме того, вид расчета может влиять на другие данные системы, например, изменять содержимое справочников.

Для редактирования модуля расчета используется текстовый редактор, который можно вызвать на экран одним из следующих способов:

· в окне редактирования вида расчета нажмите кнопку «Модуль расчета»;

или

· выберите наименование вида расчета в окне «Конфигурация — Метаданные», нажатием правой кнопки мыши вызовите на экран контекстное меню и в этом меню выберите пункт «Модуль расчета».

Подробно порядок работы с текстовым редактором описан в главе «Редактор текстов».

Правила перерасчета

«Правила перерасчета» являются вспомогательными объектами метаданных, предназначенными для автоматического отслеживания актуальности результатов проведенных расчетов при вводе новых записей журнала расчетов, удалении существующих или ручном исправлении результата расчета.

При создании правила перерасчета в Конфигураторе определяются виды расчетов, при редактировании которых правило перерасчета «срабатывает», и виды расчетов, которые должны быть перерассчитаны при срабатывании данного правила.

Список видов расчета, на основании которых срабатывает конкретное правило перерасчета, условно называется ведущие виды расчета. Список видов расчета, которые должны быть перерассчитаны при срабатывании конкретного правила, условно называется зависимые виды расчета.

Например, для организации правильного перерасчета доплат к основным начислениям следует в качестве ведущих видов расчета указать те, на основании которых считаются доплаты (оклад, тариф, сдельная оплата), а в качестве зависимых видов расчета следует указать собственно перерассчитываемые доплаты.

После ввода в систему такого правила перерасчетов журнал расчетов будет вести себя описанным ниже образом. При этом сначала рассмотрим случай для взаимосвязи видов расчета в одном расчетном периоде.

Итак, если в журнале расчетов появится новая (в результате проведения документа), исчезнет (при отмене проведения) или будет исправлена существующая запись с одним из «ведущих» видов расчета (в нашем примере — оклад, тариф, сдельная оплата), то будет снят признак «Рассчитана» со всех записей, соответствующих доплатам, если найдутся таковые, с тем же периодом действия, что и введенная, удаленная или исправленная запись.

Если при этом вводится запись с периодом действия не в текущем расчетном периоде, а в одном из прошлых (например, расчет оклада задним числом за прошлый месяц), то система введет записи-перерасчеты для всех доплат соответствующего прошлого периода.

Правило перерасчета может быть трех типов: перерасчет записей текущего периода, перерасчет записей того же периода, или перерасчет записей будущих периодов.

В первом случае перерассчитываются заданные виды расчетов с только текущего периода в независимости от того, какой период действия имеют изменяемые записи журнала расчетов.

Во втором случае перерассчитываются заданные виды расчетов с тем же периодом действия, что и новая введенная запись.

В третьем — перерассчитываются записи одного или нескольких будущих расчетных периодов.

Например, если построить правило перерасчета больничных листов, то в качестве ведущих расчетов будут назначены виды начи


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 18

Глава 18.
Календари

  • Календари в системе 1С:Предприятие
  • Управление списком календарей
  • Свойства календаря
  • Автозаполнение

Календари в системе 1С:Предприятие

Календари в системе 1С:Предприятие предназначены для вычисления временных интервалов на основании произвольных временных графиков. Они могут использоваться, например, для учета графика работы предприятия, графика работы внешних организаций, графика учета рабочего времени тех или иных работников предприятия и пр.

Система 1С:Предприятие не содержит заранее предопределенных календарей. Количество и набор календарей, которые могут быть использованы, целиком определяется в процессе настройки конфигурации задачи. Как правило, в конфигурации задачи присутствует по меньшей мере один календарь для учета выходных и праздничных дней, т. е. рабочего графика предприятия.

Календарь представляет собой объект, который устанавливает для каждой календарной даты некоторое числовое значение, которое может интерпретироваться при работе программы тем или иным образом. Например, в календаре, представляющем собой график работы организации или предприятия, каждому рабочему дню может соответствовать единица, а каждому выходному — ноль. В календаре учета рабочего времени сотрудников предприятия каждой дате календаря может соответствовать число — продолжительность рабочего дня в часах и т. д.

Управление списком календарей

Вся работа с объектами метаданных типа «Календарь» ведется в окне «Конфигурация — Метаданные». Для календарей отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Календари». Приемы создания, редактирования свойств и удаления календарей совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

Свойства календаря

В этом параграфе будут описаны специфические свойства справочника, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства календаря редактируются при помощи палитры свойств «Свойства календаря».

Закладка «Календарь»

При редактировании календаря можно задать правила автозаполнения календаря. Правила автозаполнения описываются двумя параметрами: датой отсчета и списком, количество элементов которого не ограничено и каждый элемент которого — число.

Стартовая дата. В этом поле необходимо ввести дату, от которой будет выполняться автозаполнение календаря.

Длина дня. Список «Длина дня» определяет правила автозаполнения календаря.

Для ввода в список нового значения нажмите кнопку [image], введите число и нажмите клавишу Enter. Новое значение всегда добавляется в конец списка.

Для удаления значения из списка выделите удаляемое значение и нажмите кнопку [image].

Для редактирования значения в списке дважды щелкните мышью значение, которое требуется редактировать.

Автозаполнение

Во время работы программы 1С:Предприятие, при автоматическом заполнении календаря, в соответствие каждой календарной дате ставится числовое значение по тем правилам, которые описаны при конфигурировании. При этом числовые значения берутся из списка «Длина дня», заданного в Конфигураторе, и заполняются от даты отсчета, заданной в Конфигураторе. Когда список «Длина дня» исчерпан, он используется повторно, и так до тех пор, пока не произойдет заполнение по всем дням выбранного периода. Таким образом, периодичность календаря задается количеством элементов в списке чисел, а привязка таких периодов ко времени — датой отсчета. Во время выполнения операции автозаполнения за конкретный период не важно, как он расположен относительно определенной в Конфигураторе даты отсчета. Дата отсчета может попадать в этот период, быть сколь угодно далеко в прошлом или будущем.

Рассмотрим на примере, как необходимо сконфигурировать календарь, который будет представлять собой график работы организации. Предположим, что предприятие работает по пятидневной рабочей неделе. Для создания календаря, в котором каждому рабочему дню соответствует единица, а выходному — ноль, введем список из семи чисел, первые пять из которых — 1, а два последних — 0. В качестве даты отсчета зададим, не задумываясь, любой понедельник. В результате, при автозаполнении календарь будет заполняться семидневными периодами, начиная от понедельника, причем нулевые значения будут приходиться на субботу и воскресение.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 19

Глава 19.
Редактор форм

  • Вызов редактора форм
  • Окно редактора форм
  • Подокна в редакторе форм
  • Добавление, копирование и удаление листов
  • Настройка совместного использования таблицы и диалога
  • Редактирование формы объекта метаданных

Большинство объектов метаданных в системе 1С:Предприятие могут иметь визуальную форму представления. Для каждого объекта метаданных форма может настраиваться индивидуально, а для некоторых типов объектов метаданных с объектом может быть связано несколько форм, выборочно используемых в зависимости от контекста применения объекта метаданных.

Формой в системе 1С:Предприятие называется совокупность трех взаимосвязанных компонентов: экранного представления элемента данных, его печатного представления и алгоритма на внутреннем языке системы 1С:Предприятие, который связывает экранное и печатное представление. Алгоритм на внутреннем языке системы 1С:Предприятие также называется модулем.

Для создания форм объектов метаданных в системе 1С:Предприятие используется комплексный редактор форм. Он позволяет редактировать все перечисленные компоненты визуального представления объекта метаданных и, фактически, является совокупностью трех редакторов: редактора диалогов, текстового и табличного редакторов.

Внешне редактор форм реализован в виде метафоры рабочей книги, каждый лист которой содержит один из компонентов визуального представления и может редактироваться соответствующим редактором.

В данной главе будет рассказано о работе с редактором форм, как совокупностью трех редакторов. Работа с конкретными редакторами рассматривается в соответствующих главах настоящего Руководства.

Вызов редактора форм

Редактор форм вызывается на экран одним из следующих способов:

· из контекстного меню объекта метаданных в окне «Конфигурация — Метаданные» — выбором пунктов «Редактировать форму», «Редактировать форму группы» и аналогичных;

· из окна редактирования объекта метаданных — нажатием кнопок «Форма», «Форма группы» и аналогичных.

Для некоторых объектов метаданных (например, регистров) возможность редактирования формы отсутствует. В этом случае будет отсутствовать соответствующий пункт в контекстном меню объекта метаданных, пункт в меню «Действия» главного меню Конфигуратора, и кнопки в окне редактирования.

Окно редактора форм

Окно редактора форм реализовано в виде метафоры рабочей книги, которая может содержать листы трех типов: «Диалог», «Модуль» и «Таблица».

Лист типа «Диалог» является редактором диалогов и служит для создания диалога, позволяющего пользователю системы взаимодействовать с объектом метаданных. Такой лист в редакторе форм может быть только один.

Лист типа «Модуль» является текстовым редактором и служит для создания алгоритма построения печатной формы объекта метаданных и процедур обработки действий пользователя при работе с диалогом. Лист этого типа также может быть только один.

Лист типа «Таблица» является табличным редактором и служит для создания шаблона печатной формы объекта метаданных. Листов этого типа в редакторе форм может быть несколько (также такие листы могут отсутствовать совсем).

Каждый лист имеет закладку со своим названием, которая всегда видна у нижнего обреза листов. Имя активного листа на его закладке выделено жирным шрифтом. Для перехода к нужному листу необходимо щелкнуть мышью закладку с названием листа.

При большом количестве закладок с названиями листов у правого края строки закладок появляются кнопки [image] и [image]. Нажимая мышью эти кнопки, можно вывести на экран невидимые закладки с названиями листов.

Подокна в редакторе форм

Компоненты формы объекта метаданных обычно тесно связаны между собой. При создании формы бывает необходимо видеть сразу все три компонента, чтобы вносить в них согласованные изменения Для этого окно редактора форм можно разделить на 2 или 4 подокна и в каждом подокне работать с любым из листов редактора форм.

Разделение окна редактора форм. Чтобы разделить окно редактора форм, воспользуйтесь одним из следующих способов:

· поместите указатель мыши в строку закладок в окне редактора форм;

· нажатием правой кнопки мыши вызовите контекстное меню;

· в этом меню выберите пункт «Разделить окно»;

или

· в меню «Окна» главного меню программы выберите пункт «Разделить окно».

Указатель мыши будет автоматически помещен в центр окна редактора форм и изменит свою форму на [image], а окно редактора форм пересекут линии, обозначающие границы будущих подокон.

Перемещая указатель мыши, установите границы подокон, и нажмите левую кнопку мыши для фиксации разделения. Окно редактора форм будет разделено на 4 подокна.

Если сместить указатель мыши к одной из сторон окна редактора форм, так, чтобы линия, разделяющая окно, оказалась прижатой к его границе, то окно будет разделено на 2 подокна.

Чтобы отказаться от разделения окна, следует сместить указатель мыши в один из углов редактора форм и нажать левую кнопку мыши.

Выбор подокна редактирования. Каждое подокно является самостоятельным окном редактора форм, в котором может производиться редактирование одного из компонентов формы объекта метаданных. Вся работы выполняется в активном подокне. Чтобы сделать подокно активным, щелкните левой кнопкой мыши в пределах области подокна.

Работая в подокне, вы можете выбирать редактируемый компонент формы, для этого следует щелкнуть мышью на закладке нужного листа.

Изменение размеров подокон. Вы можете изменять относительные размеры подокон внутри окна редактора форм. Для этого необходимо передвинуть мышью одну из линий, разделяющих подокна.

Можно передвигать либо только горизонтальную, либо только вертикальную линию, либо обе линии вместе. Чтобы переместить обе линии одновременно, следует перетаскивать пересечение этих линий, указатель мыши в этом случае принимает форму [image].

Отмена разделения окна редактора форм. Чтобы отменить разделение окна редактора форм, необходимо перетащить мытью разделительную линию к одному из краев окна редактора форм. Та линия, которая оказывается прижатой к краю окна, пропадает после отпускания левой кнопки мыши.

Добавление, копирование и удаление листов

В редакторе форм можно создать несколько листов типа «Таблица» для создания разных вариантов шаблона печатной формы объекта метаданных. Каждому листу может быть присвоено уникальное имя, тогда в процессе разработки модуля можно ссылаться на разные шаблоны для формирования различных вариантов печатного представления объекта метаданных.

Добавление листа таблицы. Чтобы добавить таблицу, выберите пункт «Добавить таблицу »в меню «Окна» главного меню Конфигуратора.

Вновь созданной таблице будет присвоено имя, состоящее из слова «Таблица» и порядкового номера таблицы в окне редактора форм.

Переименование листа таблицы. Чтобы изменить имя таблицы, сделайте активной эту таблицу и выберите пункт «Задать имя таблицы»в меню «Окна» главного меню Конфигуратора.

В выданном на экран запросе введите новое имя таблицы и нажмите кнопку «ОК». Имя может иметь длину до 30 символов и включать буквы, цифры, пробелы и знаки подчеркивания.

Копирование и перемещение листов таблицы. Чтобы скопировать или переместить таблицу, сделайте активной эту таблицу и выберите пункт «Переместить/Копировать» в меню «Окна» главного меню Конфигуратора.

В выданном на экран диалоге выберите таблицу, перед которой будет располагаться перемещаемая или новая таблица. Для создания копии таблицы установите флажок «Создавать копию».

Для выполнения перемещения (копирования) нажмите кнопку «ОК». При перемещении таблица будет перенесена в новое место среди прочих таблиц редактируемой формы. При копировании будет создана новая таблица, являющаяся копией таблицы-образца. Созданной таблице будет присвоено имя, состоящее из имени таблицы-образца и числа — порядкового номера таблицы в редакторе форм.

Удаление листа таблицы. Чтобы удалить таблицу:

· поместите указатель мыши на закладку таблицы, которую необходимо удалить;

· нажатием правой кнопки мыши вызовите контекстное меню;

· в этом меню выберите пункт «Удалить таблицу».

После ответа на запрос о необходимости удаления таблицы текущая таблица будет безвозвратно удалена.

Настройка совместного использования таблицы и диалога

Для обработок и отчетов, в том числе, внешних, имеется возможность размещения таблицы в одном окне с диалоговой формой или вместо нее. Настройка данного режима осуществляется следующим образом.

Если активно окно редактирования формы отчета или обработки, в меню «Действия» появляется пункт «Свойства формы». При выборе этого пункта открывается диалог «Свойства формы»

С помощью переключателя в группе «Использовать таблицу» можно выбрать следующие режимы (подробнее о них см. в главе «Табличный редактор»):

Нет | использовать при работе 1С:Предприятия диалог и таблицу последовательно и раздельно. При вызове отчета появляется диалог, в нем вводятся параметры отчета, после чего на основе этих параметров, данных информационной базы и исходной таблицы, по алгоритму, записанному в модуле, формируется отчет в виде итоговой таблицы.
Пустую | использовать при работе 1С:Предприятия таблицу совместно с диалогом, но не вместо него. При вызове отчета появляются диалог и новая (пустая) таблица. В нее выводится отчет, формируемый как в режиме «Нет».
Для ввода данных | использовать при работе 1С:Предприятия таблицу совместно с диалогом или вместо него. При вызове отчета появляются и диалог, и таблица, или только таблица. В некоторые ячейки такой таблицы, определенные на этане конфигурирования, можно непосредственно вводить данные. В других ячейках таблицы, недоступных для непосредственного ввода, помещаются формулы, значения которые вычисляются после ввода данных в доступные ячейки. После ввода всех данных и автоматического вычисления всех формул таблица становится итоговой таблицей отчета.

В списке, расположенном рядом с переключателем в группе «Использовать таблицу», для режима «Для ввода данных» можно выбрать одну из связанных с отчетом таблиц.

Положение. Расположение таблицы относительно диалоговой формы регулируется переключателем «Положение» для режимов «Пустую» и «Для ввода данных». При выборе значения «Во все окно» табличный документ будет занимать окно полностью, и диалоговая форма отображаться не будет (для режима «Пустую», понятно, это значение выбирать не имеет смысла). Относительное положение определяется только для отчета, вызванного в 1С:Предприятии; в Конфигураторе редактирование таблицы и диалога будет происходить по-прежнему в разных закладках окна редактирования формы отчета.

Редактирование формы объекта метаданных

Для редактирования компонентов, образующих визуальную форму объекта метаданных, используются три специальных редактора.

Редактор диалогов позволяет создать экранное представление элемента данных в виде стандартного Windows-диалога. В диалоге конкретный элемент данных можно просматривать и редактировать.

Табличный редактор служит для разработки описания печатной формы элемента данных. Это описание используется при формировании окончательного печатного представления элемента данных.

Редактор текстов используется для создания алгоритма на встроенном языке системы 1С:Предприятие, который связывает экранное и печатное представление элемента данных.

Описание порядка работы с каждым из этих редакторов приведено в соответствующих главах настоящего Руководства.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 20

Глава 20.
Индивидуальный пользовательский интерфейс

  • Ведение списка пользовательских интерфейсов
    • Создание пользовательского интерфейса
    • Копирование пользовательского интерфейса
    • Удаление пользовательского интерфейса
    • Сортировка списка пользовательских интерфейсов
    • Сохранение списка пользовательских интерфейсов
  • Редактирование свойств пользовательского интерфейса
  • Редактирование пользовательского интерфейса

Средства администрирования пользователей в системе 1С:Предприятие, помимо возможности устанавливать права доступа к информации, включают возможность создания индивидуальных пользовательских интерфейсов для различных категорий пользователей.

Индивидуальный пользовательский интерфейс включает расширенное главное меню и панели инструментов, настроенные на работу только с той информацией, доступ к которой разрешен набором прав пользователя.

В Конфигураторе системы 1С:Предприятие функция создания списка пользователей, которым разрешен вход в систему, и функция создания пользовательского интерфейса отделены одна от другой. Такой подход имеет достаточную гибкость и простоту в использовании.

С одной стороны, возможно создать несколько типовых пользовательских интерфейсов с различным объемом команд. Каждый интерфейс предназначается для использования определенной категорией пользователей: кладовщиками, продавцами, менеджерами и так далее.

В случае, когда создается новый пользователь, принадлежащий к одной из указанных категорий, ему просто назначается заранее созданный типовой пользовательский интерфейс.

С другой стороны, при необходимости изменения интерфейса для категории пользователей нет необходимости в редактировании интерфейса каждого отдельного пользователя, входящего в эту категорию. В этом случае достаточно отредактировать текущий интерфейс этой категории пользователей или назначить ей новый типовой интерфейс — интерфейс будет автоматически обновлен для всех пользователей этой категории.

Конфигуратор системы 1С:Предприятие позволяет создавать практически неограниченное количество типовых пользовательских интерфейсов. В процессе создания интерфейса разрабатывается пользовательское меню и набор панелей инструментов.

Для любого интерфейса могут быть созданы подчиненные интерфейсы. При создании подчиненный интерфейс полностью наследует меню и панели инструментов интерфейса-родителя, по в процессе редактирования у подчиненного интерфейса могут быть отключены отдельные пункты меню или кнопки панелей инструментов.

Созданные пользовательские интерфейсы являются неотъемлемой частью конфигурации.

Ведение списка пользовательских интерфейсов

Доступ к списку пользовательских интерфейсов текущей конфигурации осуществляется через закладку «Интерфейсы» окна «Конфигурация». Окно «Конфигурация» вызывается на экран выбором пункта «Открыть конфигурацию» в меню «Конфигурация» главного меню программы.

Список интерфейсов, в самом общем виде, имеет древовидную структуру: на верхнем уровне располагаются интерфейсы, от которых, в свою очередь, могут быть образованы подчиненные интерфейсы.

Вес действия но управлению списком выполняются в этом окне.

Создание пользовательского интерфейса

Для создания нового пользовательского интерфейса верхнего уровня необходимо выбрать пункт «Новый интерфейс» в меню «Действия» главного меню Конфигуратора. В списке пользовательских интерфейсов появится новый интерфейс, а на экран будет выдана палитра свойств для редактирования свойств созданного интерфейса. Вновь созданному пользовательскому интерфейсу присваивается условное название, состоящее из слова «Новый» и числа — порядкового номера нового интерфейса.

Для создания нового подчиненного интерфейса необходимо выделить в дереве пользовательских интерфейсов тот интерфейс, для которого необходимо создать подчиненный, и выбрать пункт «Новый подчиненный интерфейс» в меню «Действия» главного меню Конфигуратора.

Автоматически присвоенное название нового пользовательского интерфейса необходимо отредактировать. Название представляет собой произвольную символьную строку, ее длина практически не ограничена. Название нового пользовательского интерфейса не должно совпадать с названиями, уже имеющимися в списке.

Совет. Желательно задавать пользовательским интерфейсам смысловые названия, которые бы отражали должность или характер выполняемых функций того пользователя, для которого создается данный пользовательский интерфейс.

После присвоения названия новому пользовательскому интерфейсу для сохранения сделанных изменений необходимо нажать кнопку «ОК». Если отказаться от сохранения изменений, нажав кнопку «Отмена», новый пользовательский интерфейс будет создан, но у него будет сохранено автоматически присвоенное имя.

Новый пользовательский интерфейс верхнего уровня создается пустым — он не содержит меню и панелей инструментов. Новый подчиненный интерфейс наследует меню и панели инструментов интерфейса-родителя.

Копирование пользовательского интерфейса

Новые пользовательские интерфейсы можно создавать путем копирования существующих интерфейсов, как внутри текущей конфигурации, так и между конфигурациями. Для копирования используются возможности Буфера Обмена MS Windows.

Чтобы скопировать пользовательский интерфейс, необходимо сначала «запомнить» его в Буфере Обмена MS Windows, используя команды «Копировать» или «Вырезать» из меню «Действия» главного меню Конфигуратора. Если используется команда «Вырезать», то выделенный интерфейс будет удален из списка.

Для вставки пользовательского интерфейса необходимо использовать команду «Вставить». Название интерфейса может быть преобразовано с целью соблюдения уникальности.

Если копируется интерфейс верхнего уровня, он всегда будет вставляться в конфигурацию как интерфейс верхнего уровня, независимо от того, какой интерфейс выделен в дереве пользовательских интерфейсов. Для интерфейса верхнего уровня его меню и панели инструментов копируются или переносятся без изменений.

Если копируется подчиненный интерфейс, то он всегда будет вставляться в конфигурацию как подчиненный интерфейс того интерфейса, который выделен в дереве пользовательских интерфейсов. Подчиненный интерфейс наследует меню и панели инструментов нового интерфейса-родителя.

При копировании интерфейса копируются и все его подчиненные интерфейсы.

Удаление пользовательского интерфейса

Для удаления пользовательского интерфейса выделите в списке имя пользовательского интерфейса, который необходимо удалить, и в меню «Действия» главного меню Конфигуратора выберите пункт «Удалить».

В появившемся на экране запросе нажмите «ОК» для подтверждения необходимости удаления пользовательского интерфейса. Интерфейс удаляется вместе со всеми подчиненными интерфейсами.

Совет. Если необходимо восстановить ошибочно удаленный пользовательский интерфейс, следует закрыть окно «Конфигурация», отказавшись от сохранения сделанных изменений. После повторного открытия этого окна удаленный пользовательский интерфейс вновь появится в списке. Однако, в этом случае будут утеряны все изменения, которые были выполнены в текущем сеансе работы.

После удаления пользовательского интерфейса следует отредактировать свойства пользователей, которым был назначен удаленный пользовательский интерфейс.

Сортировка списка пользовательских интерфейсов

Как и любой другой список, список пользовательских интерфейсов можно отсортировать, расставив названия интерфейсов в желаемом порядке. В таком же порядке список пользовательских интерфейсов будет выдаваться при назначении индивидуального интерфейса пользователю (см. гл. «Администрирование»).

Для перестановки имени пользовательского интерфейса необходимо выделить его в списке и использовать кнопки [image] («Переместить вверх»), [image] («Переместить вниз») и [image] («Упорядочить»), расположенные в панели инструментов окна «Конфигурация», или соответствующие команды меню «Действия» главного меню Конфигуратора. Вместе с переставляемым интерфейсом переставляются и все его подчиненные интерфейсы. Упорядочивание влияет только на интерфейсы одного уровня с выделенным и не влияет на подчиненные интерфейсы.

Сохранение списка пользовательских интерфейсов

Так как список пользовательских интерфейсов является неотъемлемой частью конфигурации, его сохранение выполняется вместе с сохранением конфигурации в целом. Для сохранения конфигурации необходимо выбрать пункт «Сохранить» в меню «Файл» главного меню Конфигуратора.

Если, наряду с редактированием пользовательских интерфейсов, редактировалась структура метаданных, процесс сохранения будет включать анализ сделанных изменений и, возможно, реструктуризацию информационной базы. Подробнее об это можно узнать в главе «Работа с конфигурацией».

Редактирование свойств пользовательского интерфейса

Свойства пользовательского интерфейса редактируются в палитре свойств «Свойства пользовательского интерфейса», которую можно вызвать на экран двойным щелчком мыши на имени пользовательского интерфейса.

Палитра свойств «Свойства пользовательского интерфейса» содержит только одну закладку — «Основные». Управляющие элементы этой закладки служат для редактирования названия пользовательского интерфейса и управления использованием интерфейса.

Название. Поле «Название» служит для присвоения и редактирования названия пользовательского интерфейса. Это название используется при назначении индивидуального интерфейса конкретному пользователю.

Название представляет собой произвольную символьную строку ее длина практически не ограничена. При редактировании названия пользовательского интерфейса необходимо, чтобы отредактированное название не совпадало с названиями, уже существующими в списке пользовательских интерфейсов.

Отключить меню «Операции». При работе системы 1С:Предприятие меню «Операции» позволяет работать с любой информацией, обрабатываемой системой — константами, справочниками, журналами, документами — естественно, с учетом установленных прав пользователя. Однако, зачастую возникает необходимость скрыть от определенной категории пользователей сам факт присутствия в системе информации какого-то конкретного вида.

Если включена опция «Отключить меню «Операции»», то при использовании конфигурации в главном меню системы 1С:Предприятие меню «Операции» будет отсутствовать. В этом случае пользователь может обращаться только к тем объектам данных, которые определены его пользовательским интерфейсом.

Использовать при отключенной авторизации. Опция «Использовать при отключенной авторизации» позволяет указать, какой пользовательский интерфейс следует применять, если отсутствует список пользователей системы 1С:Предприятие. Данная опция позволяет создавать индивидуальный интерфейс, когда система 1С:Предприятие используется в однопользовательском режиме.

Опция «Использовать при отключенной авторизации» может быть включена только у одного интерфейса из списка. Интерфейс, у которого включена эта опция, в списке интерфейсов помечается знаком [image], а у всех прочих интерфейсов опция «Использовать при отключенной авторизации» будет автоматически выключена.

Редактирование пользовательского интерфейса

Процесс редактирования интерфейса существенно различается для интерфейсов верхнего уровня и подчиненных интерфейсов.

Редактирование интерфейса верхнего уровня. Для интерфейса верхнего уровня может быть создано пользовательское меню и панели инструментов. Для редактирования этих составляющих интерфейса используются соответствующие редакторы — редактор меню и редактор панелей инструментов.

Для вызова редактора меню или редактора панелей инструментов выделите в списке пользовательских интерфейсов название интерфейса и в меню «Действия» главного меню Конфигуратора выберите пункт «Редактировать». На экран будет выдан запрос, в котором необходимо выбрать, что будет редактироваться. В зависимости от сделанного выбора на экран будет выдан либо редактор меню, либо редактор панелей инструментов.

Описание работы с этими редакторами приведено в отдельных главах настоящего Руководства.

Редактирование подчиненного интерфейса. При создании подчиненного интерфейса он наследует меню и панели инструментов интерфейса-родителя, причем родителем может быть как интерфейс верхнего уровня, так и подчиненный интерфейс.

В процессе редактирования подчиненного интерфейса можно отключать те или иные пункты меню или кнопки панели инструментов, тем самым сужая область действия подчиненного интерфейса относительно интерфейса-родителя.

Для редактирования подчиненного интерфейса достаточно дважды щелкнуть мышью его наименование в окне «Конфигурация — Интерфейсы». На экран будет выдан список команд (пунктов меню и кнопок панелей инструментов) этого интерфейса.

Команды, которые были отключены при редактировании интерфейса верхнего уровня, выделены серым цветом и недоступны для редактирования. Соответствующие этим командам пункты меню и кнопки панелей инструментов будут отсутствовать, когда система 1С:Предприятие будет запущена с использованием редактируемого интерфейса.

При снятии галочки у какой-либо команды из списка эта команда исключается из интерфейса, поэтому при запуске системы 1С:Предприятие будут отсутствовать соответствующие отключенной команде пункт меню или (и) кнопка панели инструментов.

Выключение какой-либо команды у редактируемого интерфейса выключает эту же команду и у всех интерфейсов, подчиненных редактируемому, на любом уровне.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 21

Глава 21.
Редактор меню

  • Вызов редактора меню
  • Создание меню
    • Создание меню «вручную»
    • Копирование элементов меню
    • Свойства элемента меню
    • Удаление элемента меню
    • Создание меню с помощью Конструктора меню
  • Изменение структуры меню
  • Проверка созданного меню

В операционной системе MS Windows управление работой приложения осуществляется при помощи набора команд, доступ к которым, в соответствии в принятым в MS Windows стандартом, организован в виде меню.

Главное меню системы 1С:Предприятие может содержать команды двух типов: системные и пользовательские.

Системные команды предоставляют доступ к набору функций, которые поддерживаются исполняемым модулем системы 1С:Предприятие. Этот набор постоянный, и пользователем меняться не может.

Пользовательское меню создается в процессе настройки конфигурации задачи при разработке пользовательских интерфейсов и содержит набор пользовательских команд. Для каждой категории пользователей можно создать индивидуальное меню. Как правило, пользовательское меню создается с целью предоставить быстрый доступ к тем данным, работа с которыми разрешена набором предоставленных пользователю прав.

Конфигуратор системы 1С:Преднриятие позволяет создавать пользовательское меню, используя редактор меню. Пользовательское меню является принадлежностью пользовательского интерфейса, создаваемого для каждой категории пользователей.

Вызов редактора меню

Для доступа к редактору меню должен быть открыт список пользовательских интерфейсов.

Для вызова редактора меню выделите в списке пользовательских интерфейсов название интерфейса, для которого необходимо редактировать меню, и в меню «Действия» главного меню Конфигуратора выберите пункт «Редактировать меню». На экран будет выдано окно редактора меню.

Окно редактора меню. Окно редактора меню содержит структуру создаваемого меню, представленную в виде дерева. Такое представление позволяет легко получить доступ ко всем элементам меню. Для выбора любого элемента создаваемого меню достаточно щелкнуть на нем мышью.

Принципы работы с деревом меню не отличаются от приемов работы с другими «древовидными» списками в MS Windows (например, со структурой папок, изображаемой на левой панели программы Проводник). Кратко эти приемы были изложены в главе «Метаданные».

Структура меню. На первом уровне дерева находятся меню. Названия меню появляются в главном меню системы 1С:Преднриятие при «проигрывании» настройки. Как правило, названия меню первого уровня обозначают основные функциональные блоки задачи.

На последующих уровнях могут располагаться элементы меню трех типов: команды, подменю и разделители.

Команда непосредственно связана с выполнением каких-либо действий.

Подменю служит для дополнительной группировки элементов меню. Выбор подменю непосредственного выполнения каких-либо операций не вызывает, а только открывает список, который, в свою очередь, также может состоять из команд, подменю и разделителей.

Названия команд и подменю, которые появляются в меню при его работе, также называют пунктами меню.

Разделитель никакой функциональной нагрузки не несет и служит только для визуальной группировки логически связанных пунктов меню. В работающем меню разделитель выглядит как горизонтальная черта между двумя пунктами меню.

Для любого элемента создаваемого меню нажатием правой кнопки мыши можно открыть контекстное меню. Это меню содержит команды для определения свойств или удаления текущего элемента меню, а также команды для запуска Конструктора и проверки созданного меню.

Создание меню

Сам процесс создания меню заключается в построении структуры будущего меню и определении свойств входящих в него элементов. Сделать это можно автоматически, используя Конструктор меню, или вручную — отдельно создавая каждый элемент будущего меню и описывая его свойства.

Создание меню «вручную»

При создании меню без помощи Конструктора необходимо самостоятельно описать свойства каждого элемента меню.

При создании нового меню окно редактора меню содержит заготовку для создания меню первого уровня — это строка <новая колонка>.

Для создания меню первого уровня необходимо двойным щелчком мыши открыть контекстное меню и выбрать функцию «Свойства». На экран будет выдана палитра свойств для задания свойств элемента меню.

Для меню первого уровня можно указать только название меню — все остальные управляющие элементы палитры свойств будут недоступны. После ввода названия необходимо нажать кнопку «ОК» или «Обновить», тогда сделанные изменения отразятся в окне редактора меню — появится новая колонка первого уровня.

Если в палитре свойств установить флажок «Системная колонка», то название меню первого уровня необходимо будет выбрать из выпадающего списка, содержащего названия 4 системных колонок главного меню системы 1С:Предприятие. После нажатия кнопки «ОК» или «Обновить» выбранное название появится в окне редактор меню, но, в отличие от других колонок первого уровня, будет отмечено значком зеленого цвета. Элементы меню, размещаемые в таких колонках, будут появляться в соответствующих системных колонках главного меню системы 1С:Предприятие, среди системных элементов меню.

В отличие от прочих колонок верхнего уровня, системные колонки могут располагаться в любом месте редактируемого меню — они только обозначают соответствующие колонки главного меню системы 1С:Предприятие.

После создания заголовка меню первого уровня можно перейти к созданию других элементов меню.

Если открыть ветвь структуры, которая начинается у только что созданного заголовка, можно видеть заготовку для создания элементов меню второго уровня — строку <новый...>.

Создание новых элементов меню происходит, когда заготовке задастся название, тин и необходимый набор свойств.

Задание свойств элемента меню производится в палитре свойств «Свойства элемента меню», который можно вызвать из контекстного меню элемента или из меню «Действия» главного меню Конфигуратора.

Копирование элементов меню

Новые элементы меню можно создавать путем копирования существующих элементов. Копировать элементы меню можно внутри редактируемого меню, между меню разных интерфейсов, а также между конфигурациями. Для копирования используются возможности Буфера Обмена MS Windows.

Чтобы скопировать элемент меню, необходимо сначала «запомнить» его в Буфере Обмена MS Windows, используя команды «Копировать» или «Вырезать» из меню «Действия» главного меню Конфигуратора. Если используется команда «Вырезать», то выделенный элемент меню будет удален из списка.

Для вставки необходимо использовать команду «Вставить». Название вставляемых элементов меню могут быть преобразованы с целью соблюдения уникальности.

При копировании колонки меню верхнего уровня или подменю буду скопированы и все подчиненные элементы.

Свойства элемента меню

Редактирование свойств элемента меню выполняется в палитре свойств «Свойства элемента меню», которую можно вызвать на экран двойным щелчком мыши на редактируемом элементе меню.

Закладка «Общие»

В зависимости от типа элемента меню определяется тот набор свойств, которые могут быть ему заданы.

Минимальный набор характеристик задается для элемента типа «Разделитель» — указывается только его тип. Для элемента типа «Подменю» необходимо указать также и название. И, наконец, максимальный набор характеристик — помимо названия и типа элемента меню — следует определить для элемента типа «Команда».

Ниже будет изложено назначение всех управляющих элементов закладки «Общие». В зависимости от типа элемента меню отдельные управляющие элементы этой закладки могут закрываться от использования.

Название. В этом поле необходимо указать строку символов, которая будет выдаваться в готовом меню. Как правило, название отражает характер действий, которые будут выполняться при выборе этого элемента меню.

Тип. Щелчок мышью в поле «Тип» открывает список, из которого необходимо выбрать тип создаваемого элемента меню.

Тип элемента меню, в общем случае, определяется при создании элемента меню, и в последующем не изменяется, так как смена типа элемента меню приводит к изменению в структуре меню. Однако, если необходимо изменить тип элемента меню, необходимо иметь в виду следующее.

Если тип с более широким набором свойств заменяется на тип с менее широким (например, «Элемент» на «Подменю»), то «лишние» свойства пропадут и восстановить их обратным выбором типа нельзя. В этом случае для восстановления «пропавших» свойств следует отказаться от сделанных изменений, нажав кнопку «Отмена» палитры свойств.

Объект. В поле «Объект» необходимо выбрать название объекта метаданных, над которым будут производиться действия при выборе пункта меню. Список доступных объектов зависит от количества существующих в конфигурации к текущему моменту объектов метаданных.

Команда. Для каждого объекта метаданных существует набор предопределенных команд, которые можно выполнить над этим объектом. Для выбора конкретной команды необходимо открыть список таких команд, нажав кнопку [image] в поле «Команда», и выбрать из него необходимую команду. Именно эта команда будет выполнятся при выборе редактируемого пункта меню.

Подсказка. В поле «Подсказка» можно ввести текст, который будет выдаваться в строке состояния главного окна программы при указании мышью на текущий пункт меню. Как правило, строка должна содержать краткое описание действий, которые будут выполнены после выбора этого пункта меню.

Закладка «Параметры»

Состав управляющих элементов закладки «Параметры» зависит от значений, указанных в закладке «Общие».

Использовать форму. Если в ноле «Объект» закладки «Общие» выбран справочник или журнал документов, закладка «Параметры» будет содержать ноле для выбора формы выдачи справочника или журнала на экран. Список возможных форм представления справочников или журналов разрабатывается в процессе создания структуры метаданных.

Открывать форму модально. Если этот флажок установлен, выбранная форма объекта метаданных будет открываться в модальном режиме. В этом режиме пользователь не имеет возможности перейти в другое окно программы или закончить работу с программой, пока не закончена работа с диалогом, открытым в этом режиме.

Формула. Если в закладке «Общие» в поле «Объект» выбран объект «Задача», а в поле «Команда» — команда «Задача.Выполнить», закладка «Параметры» будет содержать поле ввода, в которое можно ввести имя процедуры или функции на встроенном языке системы 1С:Предприятие. Эта процедура будет выполняться при выборе пункта меню.

В поле ввода можно ввести несколько имен процедур или функций, разделяя их символами «;», тогда они будут выполняться последовательно.

Введите имя файла. Если в закладке «Общие» в поле «Объект» выбран объект «Отчеты», а в ноле «Команда» — команда «Отчеты.ОткрытьВнешний», закладка «Параметры» будет содержать поле ввода, в которое можно ввести имя файла внешнего отчета. Эта внешний отчет будет открываться при выборе пункта меню.

Закладка «Акселератор» («горячие клавиши»)

Управляющие элементы закладки «Акселератор» служат для постановки в соответствие редактируемому элементу меню комбинации «горячих клавиш». Заданная комбинация клавиш может использоваться для быстрого выполнения нужной команды меню.

Задать акселератор можно двумя способами.

Можно ввести наименование клавиши в поле ввода или выбрать наименование из связанного с этим нолем списка клавиш. Переключатели «Ctrl», «Shift» и «Alt» позволяют задавать комбинации с использованием этих служебных клавиш.

Удобнее задать акселератор, просто нажав нужную комбинацию клавиш на клавиатуре. Для этого необходимо выполнить следующие действия:

· нажмите кнопку «Выбрать акселератор»;

· после появления сообщения нажмите нужную комбинацию клавиш.

Выбранная комбинация клавиш будет записана в закладке «Акселератор». Можно отказаться от выбора акселератора, нажав мышью кнопку «Отмена».

Для удаления акселератора следует удалить наименование клавиш в поле закладки «Акселератор».

Удаление элемента меню

Чтобы удалить элемент меню, необходимо выделить его название клавишами или мышью и нажать клавишу Del. Если удаляется подменю, то будут удалены также и все его элементы, включая вложенные подменю.

Создание меню с помощью Конструктора меню

Конструктор позволяет быстро построить меню, содержащее необходимый набор команд. Многие элементы при этом будут предложены по умолчанию. В дальнейшем созданное Конструктором меню можно отредактировать.

Конструктор меню вызывается из редактора меню. Для вызова Конструктора меню необходимо в меню «Действия» главного меню Конфигуратора выбрать пункт «Конструктор».

Так как меню, созданное Конструктором, полностью заменяет уже существующее меню, на экран будет выдано предупреждение об этом. Можно отказаться от использования Конструктора, нажав кнопку «Отмена». Если нажата кнопка «ОК», на экран будет выдано окно Конструктора меню.

Окно Конструктора состоит из двух панелей. В левой панели выдан список основных видов объектов метаданных, с которыми может производиться работа в системе 1С:Предприятие. Объекты метаданных, редко выносимые в меню, объединены в группу «Разные».

Слева от имен видов объектов метаданных в квадратных рамках могут стоять отметки [image]. Эти отметки обозначают наименования видов объектов метаданных, которые будут представлены Конструктором меню как имена меню первого уровня.

В правой панели Конструктора меню для выбранного вида объектов метаданных выдается полный список предопределенных команд для манипуляции объектами метаданных этого вида.

Процесс создания меню при помощи Конструктора заключается в том, что, расставляя отметки у нужных команд, необходимо определить набор команд, которые будут автоматически помещены в меню.

Расстановка отметок [image] выполняется следующим образом.

Отметка [image] у наименования вида объектов метаданных в левом окне выполняет роль трехпозиционного переключателя. Щелкая на ней мышью, можно выбрать одно из трех состояний этой отметки.

Если отметка [image] — серого цвета, то список команд в правом окне доступен для расстановки отметок у команд. Щелчком мыши можно снять отметку и исключить команду из меню, и наоборот, поставив отметку, включить ее.

Если отметка [image] — черного цвета, то в правом окне у всех команд будут автоматически проставлены отметки [image], а список команд будет недоступен для расстановки отметок у конкретных команд.

Если отметка [image] у наименования вида объектов метаданных отсутствует, то в правом окне у всех команд отметки [image] будут автоматически сняты, а список команд будет недоступен для расстановки отметок у конкретных команд.

Для сохранения результатов работы Конструктора меню служит кнопка «Построить». При ее нажатии окно Конструктора меню закрывается, а описанная в Конструкторе структура меню будет в виде дерева представлена в окне редактора меню.

Для отказа от создания меню при помощи Конструктора нажмите кнопку «Отмена». Структура меню, которая была создана в редакторе меню до вызова Конструктора, останется без изменений.

Изменение структуры меню

Помимо простого удаления и добавления элементов меню, редактор меню позволяет изменить саму структуру меню, например, перенести команды из одного меню в другое, расставить их в другом порядке, «собрать» несколько отдельных команд в подменю и выполнить другие подобные действия, связанные с перемещениями элементов меню между ветвями дерева.

Все подобные действия удобно выполнять в редакторе меню мышью, используя механизм «drag&drop» («перенеси и оставь»): вы просто перетаскиваете мышью элемент меню в нужное место и оставляете его там.

Элемент меню, над которым будет помещен переносимый элемент после отпускания кнопки мыши, при переносе будет выделяться инверсным цветом.

Не все операции по изменению структуры меню могут быть выполнены подобным образом. Например, нельзя превратить команду в меню первого уровня. В таких случаях — когда элемент не может быть перемещен в выбранное место — курсор мыши принимает форму [image], и, если отпустить левую клавишу мыши, то никаких изменений не произойдет.

Проверка созданного меню

Режим проверки позволяет увидеть созданное меню «в работе» — так, как оно будет выглядеть при использовании. Запустить режим проверки можно, выбрав в меню «Действия» главного меню Конфигуратора пункт «Тест». На экран будет выдано тестовое окно, которое представляет собой имитацию главного окна системы 1С:Предприятие.

Главное меню тестового окна построено на основе структуры меню, описанной в редакторе меню.

Для выхода из режима проверки созданного меню закройте тестовое окно.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 22

Глава 22.
Редактор панелей инструментов

  • Вызов редактора панелей инструментов
  • Ведение списка панелей инструментов
    • Создание новой панели инструментов
    • Копирование панелей инструментов
    • Удаление панели инструментов
    • Сортировка панелей инструментов
    • Свойства панели инструментов
  • Библиотека пиктограмм
  • Редактирование панели инструментов
    • Создание кнопки панели инструментов
    • Создание разделителя кнопок
    • Изменения порядка расположения кнопок
    • Редактирование свойств кнопки
    • Изменение образа кнопки
    • Удаление кнопки

Управление работой приложения в операционной системе MS Windows осуществляется при помощи набора команд, доступ к которым, в соответствии с принятым в MS Windows стандартом, организован в виде меню. Для быстрого доступа к часто используемым командам используют так называемые панели инструментов.

Панель инструментов представляет собой окно с набором кнопок. Нажатие мышью на любую из кнопок вызывает немедленное выполнение связанной с этой кнопкой команды. Как правило, каждая кнопка снабжена картинкой, образно отражающей характер команды, связанной с этой кнопкой. Панели инструментов можно располагать в любом удобном месте — как, например, прижав к какой-либо стороне окна программы, так и «подвесив» в любом месте экрана.

Конфигуратор системы 1С:Предприятие позволяет создавать пользовательские панели инструментов, используя редактор панелей инструментов. Панели инструментов созданные редактором, могут содержать как кнопки с картинкой, так и кнопки с текстом. Набор панелей инструментов является принадлежностью пользовательского интерфейса, создаваемого для каждой категории пользователей.

Вызов редактора панелей инструментов

Для доступа к редактору меню должен быть открыт список пользовательских интерфейсов.

Для вызова редактора панелей инструментов выделите в списке пользовательских интерфейсов название интерфейса, для которого необходимо редактировать панели инструментов, и в меню «Действия» главного меню программы выберите пункт «Редактировать панели инструментов».

Окно редактора панелей инструментов состоит из трех основных частей.

Слева вверху расположен список панелей инструментов и кнопки для создания, удаления и сортировки панелей инструментов.

Слева внизу расположено окно с библиотекой картинок, которые могут быть размещены на кнопках создаваемой напели инструментов, и кнопка для смены библиотеки картинок.

В правой части окна редактора в виде списка с пиктограммами отображается раскладка панели инструментов, имя которой выбрано в списке панелей инструментов. В этом списке производятся все операции по настройке панели инструментов.

Ведение списка панелей инструментов

Создание новой панели инструментов

Для создания новой панели инструментов необходимо в меню «Действия» главного меню Конфигуратора выбрать пункт «Создать панель». В списке «Список панелей» появится новая строка, а на экран будет выдана палитра свойств для редактирования свойств панели инструментов.

Повой панели по умолчанию присваивается название, состоящее из слова «Новый» и порядкового номера панели. Автоматически присвоенное название следует отредактировать. Название панели инструментов — произвольная строка символов, которая может также содержать пробелы. Это позволяет задавать панелям «говорящие» имена, отражающие назначение размещенных на них кнопок. Имя панели инструментов появляется в заголовке окна панели, когда плавающая панель «подвешивается» в произвольном месте экрана. Такую «подвешенную» панель инструментов называют также палитрой инструментов.

Копирование панелей инструментов

Новые панели инструментов можно создавать путем копирования существующих панели инструментов. Наиболее целесообразно копировать панели инструментов между интерфейсами одной конфигурации или между конфигурациями. Для копирования используются возможности Буфера Обмена MS Windows.

Чтобы скопировать панель инструментов, необходимо выделить ее в списке панелей редактора панелей инструментов и «запомнить» ее в Буфере Обмена MS Windows, используя команды «Копировать» или «Вырезать» из меню «Действия» главного меню Конфигуратора. Если используется команда «Вырезать», то выделенная панель инструментов будет удалена из списка.

Для вставки необходимо использовать команду «Вставить». Название вставляемой панели инструментов может быть преобразовано с целью соблюдения уникальности.

Удаление панели инструментов

Для удаления панели инструментов следует выделить ее имя в списке и выбрать пункт «Удалить панель» из меню «Действия» главного меню Конфигуратора. В выданном на экран запросе необходимо подтвердить удаление панели инструментов, нажав кнопку «ОК».

Для отказа от удаления напели инструментов следует нажать кнопку «Отмена».

Сортировка панелей инструментов

Кнопки [image] и [image] позволяют расставить панели инструментов в списке в желаемом порядке. В таком же порядке панели инструментов будут показаны при первом запуске системы 1С:Предприятие после редактирования панели инструментов (изменения состава кнопок панели или изменения свойств кнопки напели инструментов).

Свойства панели инструментов

Палитру свойств для редактирования свойств панели инструментов можно вызвать, выбрав пункт «Свойства» из меню «Действия» главного меню Конфигуратора, или дважды щелкнув мышью на названии панели инструментов в списке панелей.

Группа «По умолчанию» задаст расположение и видимость панели инструментов при первом запуске системы 1С:Предприятие после редактирования панели инструментов (изменения состава кнопок панели или изменения свойств кнопки панели инструментов).

Положение. В этом списке можно задать, вдоль какой стороны главного окна системы 1С:Предприятие будет располагаться панель инструментов.

Показывать. Если этот флажок снят, панель инструментов не будет показываться при запуске системы 1С:Предприятие.

Располагать с новой строки. Если этот флажок снять, панель инструментов будет располагаться в том же ряду, что и предыдущая, в противном случае панели будут располагаться друг под другом

Библиотека пиктограмм

Самой заметной частью любой панели инструментов являются пиктограммы — картинки на кнопках панели инструментов. Как правило, пиктограммы в аллегорической форме отражают суть команды, которая вызывается при нажатии на кнопку.

В комплект системы 1С:Предприятие входит библиотека пиктограмм, картинки из которой можно использовать для размещения на кнопках панели инструментов. Библиотека пиктограмм хранится в файле IMAGECOL.BMP, который по умолчанию располагается в каталоге с исполняемыми файлами системы 1С:Предприятие.

Файл IMAGECOL.BMP может быть скопирован или перенесен в каталог информационной базы или рабочий каталог пользователя. При вызове редактора панелей инструментов он ищет файл IMAGECOL.BMP сначала в рабочем каталоге пользователя, затем — в каталоге с информационной базой, и, наконец, в каталоге с исполняемыми файлами системы 1С:Предприятие. Размещение файла IMAGECOL.BMP в одном из указанных каталогов позволяет изменять «область действия» библиотеки пиктограмм.

Если файл IMAGECOL.BMP был успешно найден и прочитан, он выдается в окне библиотеки картинок в виде набора отдельных пиктограмм.

Если ни в одном из перечисленных каталогов файл не найден, выдается соответствующее сообщение, и окно с библиотекой картинок остается пустым. В этом случае придется самостоятельно указать редактору панелей инструментов файл библиотеки пиктограмм. Для этого необходимо нажать кнопку «Заменить» и при помощи стандартного диалога открытия файлов выбрать нужный файл библиотеки пиктограмм.

Помимо стандартной библиотеки пиктограмм, поставляемой с системой 1С:Предприятие, можно использовать свои собственные библиотеки пиктограмм.

Библиотека пиктограмм представляет собой графический файл в формате MS Windows BITMAP и может иметь любое имя. Создать такой файл можно любой графической программой, поддерживающей указанный формат. Например, можно воспользоваться программой Paint, входящей в комплект операционной системы MS Windows 95.

Каждая пиктограмма — это картинка размером 15 пикселей по высоте и 16 пикселей — по ширине. В файле библиотеки такие картинки лежат вплотную друг к другу без промежутков. При чтении файла библиотеки редактор панелей инструментов делит файл на секции размером 15 пикселей по высоте и 16 пикселей — по ширине, независимо от его содержимого, и считает каждую такую секцию отдельной картинкой. Набор этих картинок и выдается для использования в левой нижней части редактора панелей инструментов.

Редактирование панели инструментов

Процесс редактирования панели инструментов заключается в определении необходимого набора кнопок панели и задании свойств каждой кнопки. Редактируется панель, имя которой выделено в списке панелей.

Создание кнопки панели инструментов

Для создания кнопки необходимо выбрать пункт «Добавить кнопку» в меню «Действия» главного меню Конфигуратора. В списке «Состав панели» появится новая строка, а на экран будет выдана палитра свойств для редактирования свойств кнопки.

Новая кнопка создается под кнопкой, выделенной в списке «Состав панели». Если в списке не выделена ни одна кнопка, строка новой кнопки будет располагаться вверху списка.

Создание разделителя кнопок

Помимо кнопок, в панели инструментов могут располагаться разделители. Разделители позволяют группировать кнопки панели инструментов в логически связанные группы. В готовой панели инструментов разделитель изображается вертикальной чертой и увеличенным расстоянием между кнопками.

Для создания разделителя необходимо нажать кнопку [image] в редакторе панелей инструментов. В списке «Состав панели» под выделенной кнопкой появится разделитель. В процессе редактирования панели инструментов разделитель можно будет переместить на нужное место.

Изменения порядка расположения кнопок

Кнопки и разделители кнопок в списке «Состав панели» можно расставить в требуемом порядке. Для перемещения кнопки или разделителя необходимо выделить его в списке и использовать кнопки редактора панелей инструментов [image] («Переместить вверх»), [image] («Переместить вниз»).

Редактирование свойств кнопки

Редактирование свойств кнопки панели инструментов выполняется в палитре свойств «Свойства элемента панели инструментов», которую можно вызвать на экран двойным щелчком мыши на редактируемой кнопке.

Палитра свойств, используемая при редактировании свойств кнопки панели инструментов, по порядку использования аналогична той, которая применяется при редактировании свойств объектов метаданных. Порядок использования палитры свойств можно узнать в главе «Метаданные».

Закладка «Общие»

Управляющие элементы закладки «Общие» служат для постановки в соответствие кнопке конкретной команды, которая будет выполняться при нажатии на эту кнопку.

Объект. В поле «Объект» необходимо выбрать название объекта метаданных, над которым будут производиться действия при нажатии на кнопку. Список доступных объектов зависит от количества созданных к текущему моменту объектов метаданных.

Команда. Для каждого объекта метаданных существует набор предопределенных команд, которые можно выполнить над этим объектом. Для выбора конкретной команды необходимо открыть список таких команд, нажав кнопку [image] в поле «Команда», и выбрать из него необходимую команду.

Подсказка. Текст, который можно ввести в поле «Подсказка», будет выдаваться в строке состояния главного окна системы 1С:Прсдприятие при нажатии на кнопку. Как правило, строка должна содержать краткое описание действий, которые будут выполнены при нажатии на эту кнопку.

Короткая подсказка. В поле «Короткая подсказка» можно ввести текст, который будет выдаваться на экран, если указатель мыши подержать над кнопкой 1...2 секунды. В строке состояния главного окна программы одновременно будет выдаваться текст, введенный в поле «Подсказка».

Закладка «Параметры» и закладка «Акселератор»

Состав и назначение управляющих элементов этих закладок совпадают с одноименными закладками палитры свойств «Свойства элемента меню» (см. стр. Ошибка! Закладка не определена.).

Закладка «Образ»

Управляющие элементы закладки «Образ» предназначены для назначения внешнего вида кнопки.

Если выбрана опция «Пиктограмма», на кнопку может быть помещена картинка из библиотеки пиктограмм.

Если выбрана опция «Текст», в поле ввода закладки «Образ» можно ввести фразу, которая будет помещена на кнопку. Размер кнопки в этом случае будет соответствующим образом увеличен.

Изменение образа кнопки

Образ кнопки — это пиктограмма или текст, которые помещены на кнопку. Как правило, образ кнопки определенным образом отражает действия, которые выполняются при нажатии но кнопку.

Для изменения пиктограммы, расположенной на кнопке, достаточно перетащить на кнопку пиктограмму из библиотеки пиктограмм редактора панелей инструментов.

Для редактирования текста кнопки используется закладка «Образ» палитры свойств кнопки. При выбранной опции «Текст» в поле ввода можно ввести или отредактировать существующий текст.

Для смены образа кнопки необходимо выбрать соответствующую опцию в закладке «Образ». При этом следует иметь в виду, что пиктограмма, назначенная кнопке, запоминается при смене образа.

Удаление кнопки

Для удаления кнопки (или разделителя) выделите ее в списке «Состав панели» и выберите пункт «Удалить кнопку» из меню «Действия» главного меню Конфигуратора.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 23

Глава 23.
Пользовательские права

  • Ведение списка наборов прав
    • Создание набора прав
    • Копирование набора прав
    • Удаление набора прав
    • Упорядочивание списка наборов прав
    • Сохранение списка наборов прав
  • Редактирование свойств набора прав
  • Определение прав
    • Редактор пользовательских прав
    • Назначение прав
    • Характеристики прав
    • Права на внешние отчеты (обработки)

В Конфигураторе системы 1С:Предприятие разделены функция создания набора пользовательских прав и функция создания пользователей. Такой подход имеет достаточную гибкость и простоту в использовании.

С одной стороны, возможно создать несколько типовых наборов пользовательских прав с различной широтой полномочий. Присвоение прав новой категории пользователей заключается в простой операции назначения для этой категории одного из типовых наборов прав.

С другой стороны, при изменении полномочий для этой же категории пользователей нет необходимости в редактировании прав каждого отдельного пользователя — достаточно отредактировать текущий набор прав этой категории пользователей или присвоить ей новый набор прав.

Конфигуратор системы 1С:Предприятис позволяет создавать практически неограниченное количество наборов пользовательских нрав.

Ведение списка наборов прав

Доступ к списку наборов прав текущей конфигурации осуществляется через закладку «Права» окна «Конфигурация». Окно «Конфигурация» вызывается на экран выбором пункта «Открыть конфигурацию» в меню «Конфигурация» главного меню программы.

Внешний вид списка наборов прав зависит от положения переключателей «Список»/«Таблица» в меню «Действия» главного меню Конфигуратора. В списке отображаются названия существующих наборов прав. Все действия по управлению списком выполняются в этом окне.

Создание набора прав

Для создания нового набора прав необходимо выбрать пункт «Новый» в меню «Действия» главного меню Конфигуратора. В списке наборов прав появится новая строка, а на экран будет выдан диалог для редактирования свойств нового набора прав. Вновь созданному набору нрав присваивается условное название, состоящее из слова «Новый» и числа — порядкового номера нового набора прав.

Автоматически присвоенное название необходимо отредактировать. Название представляет собой произвольную символьную строку, ее длина практически не ограничена. Название нового набора нрав не должно совпадать с названиями, уже имеющимися в списке.

Совет. Желательно задавать наборам прав смысловые названия, которые бы отражали должность или характер выполняемых функций того пользователя, для которого создается данный набор прав.

После присвоения названия новому набору прав для сохранения сделанных изменений необходимо нажать кнопку «ОК». Если отказаться от сохранения изменений, нажав кнопку «Отмена», новый набор прав будет создан, но у него будет сохранено автоматически присвоенное имя.

Внимание. Вновь созданному набору прав не устанавливаются никакие права.

Копирование набора прав

Новые наборы прав можно создавать путем копирования существующих наборов прав. Для копирования используются возможности Буфера Обмена MS Windows.

Чтобы скопировать набор прав, необходимо сначала «запомнить» его в Буфере Обмена MS Windows, использовав команды «Копировать» или «Вырезать» из меню «Действия» главного меню Конфигуратора. Если используется команда «Вырезать», то выделенный набор прав будет удален из списка.

Для вставки набора прав необходимо использовать команду «Вставить». Название набора прав может быть преобразовано с целью соблюдения уникальности.

У нового набора будет такой же список прав, как и у исходного набора прав.

Удаление набора прав

Для удаления набора прав выделите в списке название набора прав, который необходимо удалить, и в меню «Действия» главного меню программы выберите пункт «Удалить».

В появившемся на экране запросе нажмите «ОК» для подтверждения необходимости удаления набора прав.

Совет. Если необходимо восстановить ошибочно удаленный набор нрав, следует закрыть окно «Конфигурация», отказавшись от сохранения сделанных изменений. После повторного открытия этого окна удаленный набор прав вновь появится в списке. Однако, в этом случае будут утеряны все изменения, которые были выполнены в текущем сеансе работы.

После удаления набора прав следует отредактировать свойства пользователей, которым был задан удаленный набор прав.

Упорядочивание списка наборов прав

Как и любой другой список, список наборов прав можно упорядочить, расставив названия наборов прав в нужном порядке. В таком же порядке они будут выдаваться для выбора необходимого набора нрав при задании прав пользователю (см. гл. «Администрирование»). Для перестановки имени набора прав необходимо выделить его в списке и использовать кнопки [image] («Переместить вверх»), [image] («Переместить вниз») и [image] («Упорядочить»), расположенные в панели инструментов окна «Конфигурация», или соответствующие команды меню «Действия» главного меню Конфигуратора.

Сохранение списка наборов прав

Так как список наборов прав является неотъемлемой частью конфигурации, его сохранение выполняется вместе с сохранением конфигурации в целом. Для сохранения конфигурации необходимо выбрать пункт «Сохранить» в меню «Файл» главного меню Конфигуратора.

Если, наряду с редактированием наборов прав, редактировалась структура метаданных, процесс сохранения будет включать анализ сделанных изменений и, возможно реструктуризацию информационной базы. Подробнее об это можно узнать в главе «Работа с конфигурацией».

Редактирование свойств набора прав

Свойства набора нрав редактируются в палитре свойств «Свойства набора прав», которую можно вызвать на экран двойным щелчком мыши на названии набора прав.

Палитра свойств «Свойства набора прав» содержит только одну закладку — «Основные». Единственное поле этой закладки служит для редактирования названия набора нрав. Это название используется при назначении набора прав пользователю.

Название представляет собой произвольную символьную строку, ее длина практически не ограничена. При редактировании названия набора прав необходимо, чтобы отредактированное название не совпадало с названиями, уже существующими в списке наборов прав.

Определение прав

Определение прав заключается в установке совокупности разрешенных действий над объектами метаданных. Вся работа по определению набора нрав ведется в редакторе пользовательских прав.

Редактор пользовательских прав

Для доступа к редактору пользовательских прав должен быть открыт список пользовательских прав (окно «Конфигурация», закладка «Права»).

Для вызова редактора пользовательских прав выделите в списке прав название набора прав, для которого необходимо редактировать права, нажатием правой кнопки мыши вызовите на экран контекстное меню и в атом меню выберите пункт «Редактировать».

Окно редактора прав похоже на окно «Конфигурация — Метаданные». Однако, в отличие от него, дерево метаданных в окне редактора пользовательских прав содержит только те объекты метаданных, для которых могут быть назначены права.

Например, ветвь объекта метаданных типа «Документ» не содержит ветвей для реквизитов шапки документа и табличной части документа, так как права могут быть назначены только в целом для документа, но не для отдельных его реквизитов.

Редактор пользовательских прав предоставляет возможность детального управления правами на операции как с отдельными объектами метаданных, так и с видами объектов метаданных в целом.

Назначение прав

Назначение прав доступа к объектам метаданных выполняется в диалоге «Свойства элемента прав». Для вызова этого диалога на экран необходимо дважды щелкнуть мышью на идентификаторе объекта метаданных или на названии вида объектов метаданных в окне редактора пользовательских прав.

Диалог «Свойства элемента прав» организован в виде картотеки, имеющей только одну закладку — «Доступ». Закладка содержит окно со списком операций, которые можно осуществлять над выбранным объектом метаданных. Операции, разрешенные к выполнению, отмечены знаком И слева от наименования операции.

Чтобы разрешить выполнение конкретной операции над выбранным объектом метаданных, необходимо щелкнуть мышью на рамке слева от названия операции. В рамке появится отметка [image] означающая, что эта операция над выбранным элементом данных разрешена. Повторным щелчком мыши отметку можно снять и, таким образом, запретить выполнение выбранной операции.

Внимание! Разрешение той или иной операции может автоматически включать разрешение других логически связанных с ней операций, и наоборот, — выключение какой-либо операции вызывает выключение и некоторых других. Например, при включении операции «Любые изменения» автоматически включаются и все остальные операции; включение операции «Корректировка» автоматически включает и операцию «Чтение», и тому подобное. Характер подобных связей зависит от набора операций, которые можно выполнять с конкретным объектом данных.

Кнопки, расположенные в закладке «Доступ» справа от списка операций, используются для постановки отметок сразу у всех операций: кнопка [image] ставит отметки, а кнопка [image] снимает.

Установка прав вида объектов метаданных. Кроме установки прав для конкретного объекта метаданных, можно устанавливать права для всех объектов метаданных этого вида. Например, палитру свойств «Свойства элемента прав» можно вызвать, дважды щелкнув мытью на ключевом слове «Документы» в окне редактора пользовательских прав. В этом случае расстановка отметок [image] у наименований операций выполняется несколько иным способом, чем это делалось при редактировании прав для конкретного объекта метаданных.

Если отметка [image] в момент вызова палитры свойств имеет серый цвет, это означает, что данная операция для каждого из объектов метаданных этого вида установлена индивидуально.

Щелкая мышью, можно изменить состояние отметки [image].

Отметка [image] черного цвета означает, что данная операция включена для всех объектов метаданных этого вида.

Отсутствие отметки [image] у наименования операции означает, что данная операция будет выключена для всех объектов метаданных этого вида.

При редактировании нрав для вида объектов метаданных также будут соблюдаться взаимосвязи между операциями, о которых говорилось выше.

Внимание. Если при создании наборов прав ни в одном наборе не будет включена операция «Административные функции», то при попытке сохранить список наборов нрав будет выдано сообщение «Список наборов прав не будет сохранен. Нет наборов с нравом администрирования». В этом случае необходимо включить операцию «Административные функции» в одном из наборов прав.

Установка всех прав. Для быстрой установки всех прав (это может потребоваться, например, для администратора системы 1С:Предприятие) в окне «Конфигурация — Права» выделите наименование набора прав, для которого требуется установить все права, нажатием правой кнопки мыши вызовите на экран контекстное меню и выберите функцию «Установить все права».

Функция «Снять все права» обратна функции «Установить все права» и позволяет, как это следует из се названия, отменить все права для выбранного набора прав.

Совет. Функции «Установить все права» и «Снять все права» позволяют быстро создавать необходимый набор прав, особенно при разветвленной структуре метаданных. Например, для создания набора прав, в котором отключены только некоторые функции, удобно поступить следующим образом: сначала функцией «Установить все права» устанавливаются все нрава для этого набора, а затем в редакторе прав запрещаются отдельные операции по работе с данными.

Характеристики прав

Ниже в таблице приведена сводка по всем правам, которые можно установить для объектов метаданных.

Конфигурация

Операция | Пояснение
Административные функции | Доступ к функциям Конфигуратора: изменение структуры метаданных, управление списком пользователей, назначение прав доступа, редактирование пользовательских интерфейсов.
Сохранение/Выгрузка данных | Создание архивной копии и выгрузка данных в файл переноса данных
Управление оперативными итогами | Смена точки актуальности итогов и открытие нового периода
Управление бухгалтерскими итогами | Расчет итогов
Монитор | Работа с монитором пользователей
Использование в качестве OLE Automation сервера | Доступ к данным системы 1С:Предприятие из внешних программ
Удаление помеченных объектов | Выполнение операции физического удаления данных из информационной базы
Поиск ссылок на объекты | Поиск перекрестных ссылок между объектами данных
Использование любых Внешних Отчетов и Обработок | Использование внешних отчетов (обработок)
Использование общих Внешних Отчетов и Обработок | Использование внешних отчетов (обработок), расположенных в подкаталоге ExtForms каталога информационной базы.

Использование функций в табло и формульном калькуляторе | Использование в табло и формульном калькуляторе функций встроенного языка системы 1С:Предприятие
Групповое проведение документов | Использование режима группового проведения документов и восстановления последовательностей документов
Использование табло счетов |
Монопольный запуск | Запуск системы 1С:Прсдприятис в монопольном режиме.
Автообмен распределенной ИБ | Работа с режимом автообмена

Константы

Операция | Пояснение
Чтение | Просмотр значения константы
Корректировка | Изменение значения константы

Справочники

Операция | Пояснение
Чтение | Просмотр справочника
Любые изменения | Все операции
Ввод нового | Ввод новых элементов и групп справочника
Удаление | Удаление элементов и групп справочника
Пометка на удаление | Пометка элементов и групп справочника на удаление
Снятие пометки на удаление | Снятие пометки на удаление с элементов и групп справочника
Корректировка | Редактирование элементов и групп справочника

Документы

Операция | Пояснение
Чтение | Просмотр экземпляра данных
Любые изменения | Все операции
Ввод нового | Ввод нового документа
Удаление | Удаление документа
Пометка на удаление | Пометка документов на удаление
Снятие пометки на удаление | Снятие пометки на удаление с документов
Корректировка | Редактирование документа
Выбор | Выбор документа
Просмотр подчиненных документов | Просмотр документов, имеющих в основе текущий документ
Проведение документа | Проведение документов
Изменение проведенных документов | Редактирование документов после проведения
Изменение документов без перепроведения | Редактирование проведенных документов без повторного проведения
Проведение документов «задним числом» | Проведение документов до точки актуальности итогов
Редактирование архивного документа расчета | Проведение архивного документа расчета
Редактирование операции документа | Редактирование бухгалтерской операции, сформированной документом

Журналы

Операция | Пояснение
Чтение | Просмотр журнала
Просмотр полного журнала | Просмотр полного журнала
Просмотр общего журнала | Просмотр общего журнала

Отчеты, обработки

Операция | Пояснение
Использование | Формирование отчета

Планы счетов

Операция | Пояснение
Чтение | Просмотр экземпляра данных
Любые изменения | Все операции
Ввод нового | Ввод нового счета
Удаление | Удаление счета
Пометка на удаление | Пометка счетов на удаление
Снятие пометки на удаление | Снятие пометки на удаление со счетов
Корректировка | Редактирование характеристик счета

Операция

Операция | Пояснение
Чтение | Просмотр экземпляра данных
Просмотр списка | Просмотр журнала операций
Ввод операции без проверки проводок | Возможность отключения режима проверки корректности проводок
Включение проводок операции | Сделать проводки операции активными
Выключение проводок операции | Сделать проводки операции неактивными

Проводки

Операция | Пояснение
Просмотр списка | Просмотр журнала проводок
Просмотр списка корректных проводок | Возможность присмотра списка корректных проводок
Редактирование списка корректных проводок | Возможность редактирования списка корректных проводок

Типовые операции

Операция | Пояснение
Чтение | Просмотр экземпляра данных
Любые изменения | Все действия
Ввод нового | Создание типовых операций
Удаление | Удаление типовых операций
Корректировка | Редактирование типовых операций
Использование | Ввод типовых операций

Регистры

Операция | Пояснение
Чтение | Просмотр движений регистров

Журналы расчетов

Операция | Пояснение
Чтение | Просмотр журнала расчетов
Любые изменения | Редактирование журнала расчетов
Расчет | Выполнение расчета записей журнала расчетов
Изменение расчетного периода | Смена расчетного периода журнала расчетов

Календари

Операция | Пояснение
Чтение | Просмотр календаря
Любые изменения | Редактирование календаря
Редактировать праздники | Редактирование календаря праздничных дней

Права на внешние отчеты (обработки)

Внешние отчеты (обработки), в силу особенностей их присутствия в конфигурации, требуют особого подхода к определению прав пользователей на работу с ними.

Прежде всего, в Конфигураторе никак не ограничиваются права на работу с внешними отчетами: например, пользователь, которому запрещены административные функции, может, тем не менее, войти в Конфигуратор и редактировать внешние отчеты (обработки).

В свою очередь, использование внешних отчетов можно ограничить заданием соответствующих прав: в редакторе пользовательских прав можно либо разрешить, либо запретить пользователю использование внешних отчетов. Отдельно устанавливаются права на использование любых внешних отчетов, и на использование общих внешних отчетов — помещенных в каталог с зарезервированным именем ExtForms. Если система 1С:Предприятие используется в сети, доступ пользователей к каталогу ExtForms (и, соответственно, к внешним отчетам, расположенным в этом каталоге) может регулироваться средствами сети.

Таким образом администратор системы может ограничить «творчество» пользователей в части создания и использования внешних отчетов (обработок).

Например, специалисту, осуществляющему конфигурирование системы 1С:Предприятие, средствами сети установлен полный доступ к каталогу ExtForms и набором его прав разрешено использование любых внешних отчетов. Это даст такому специалисту возможность выполнять создание внешних отчетов в Конфигураторе и их использование в режиме запуска 1С:Предприятие.

«Простым» пользователям достаточно разрешить использование только общих внешних отчетов и средствами сети организовать к каталогу ExtForms доступ «только чтение». В этом случае пользователи могут работать с внешними отчетами, находящимися в каталоге ExtForms, но не смогут использовать внешние отчеты собственной разработки, так записать внешний отчет в каталог ExtForms запрещено средствами сети, а запускать внешний отчет из другого каталога запрещено набором прав пользователя.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 24

Глава 24.
Редактор диалогов

  • Что такое «диалог»?
  • Элементы диалога
  • Создание диалога
    • Понятие «шаблона окна диалога»
    • Редактирование шаблона окна диалога
  • Редактирование диалога
    • Разметка
    • Слои
    • Создание элементов диалога
    • Выделение элементов диалога
    • Перемещение, копирование и изменение размеров элементов диалога
    • Выравнивание элементов диалога
    • Удаление элементов диалога
    • Отмена сделанных изменений
    • Назначение порядка обхода элементов диалога
  • Свойства элементов диалога
    • Общие свойства элементов диалога
    • Свойства шаблона окна диалога
    • Свойства элемента «Текст»
    • Свойства элемента «Кнопка»
    • Свойства элемента «Переключатель»
    • Свойства элементов типа «Список» и «Поле со списком»
    • Свойства элемента «Рамка группы»
    • Свойства элемента «Реквизит»
    • Свойства элемента «Таблица»
    • Свойства колонки элемента «Таблица»
    • Свойства элемента «Дерево»
    • Свойства элемента «Флажок»
    • Свойства элемента «Картинка»
    • Свойства элемента «Таблица значений»
  • Особенности использования элементов диалога
    • Работа с элементом типа «Флажок»
    • Использование элементов типа «Переключатель»
    • Работа с элементом типа «Таблица»
    • Вызов диалога в модальном режиме
  • Проверка диалога

Для создания экранной формы элемента данных в системе 1С:Предприятие используется специализированный редактор диалогов.

Что такое «диалог»?

Диалог — это специально созданная экранная форма для ввода и просмотра какой-либо информации. При помощи диалогов программа запрашивает у пользователя ту информацию, которая необходима ей для дальнейшей работы, либо выдает какую-либо информацию пользователю для просмотра.

Окно диалога представляет собой прямоугольную область экрана, которая, в самом общем случае, содержит поясняющие надписи, поля для ввода информации и управляющие элементы (кнопки).

Можно сказать, что диалог является компьютерным аналогом бумажного документа. Как правило, документ получается путем заполнения специально подготовленного бланка. На таком бланке в типографии уже отпечатан поясняющий текст, который не может быть изменен. Бланк заполняется путем записи в специально отведенных местах требуемого текста.

Назначение диалога — предоставить пользователю удобную форму для ввода и просмотра информации. Как и бумажный документ. диалог позволяет быстро ввести необходимую информацию и запомнить ее для последующей обработки, а при необходимости — вновь вернуться к ранее введенным данным для просмотра или корректировки.

Элементы диалога

Для создания всего многообразия форм для ввода информации в документы и справочники редактор диалогов использует элементы следующих типов:

• текст; | • поле ввода; | • многострочная часть (таблица); | • дерево;
• список; | • таблица значений; | • поле со списком; | • флажок;
• кнопка; | • картинка; | • рамка. |

Краткие характеристики каждого элемента приведены ниже.

Текст

Элемент диалога типа «текст» позволяет отображать в окне диалога произвольный текст.

Текстовое поле может быть статическим или информационным.

Содержимое статического текстового поля не изменяется в процессе ввода информации в диалог. При создании в диалоге элемента этого типа сразу должен быть задан текст, который будет выдаваться в этом поле при работе с диалогом.

В информационных текстовых полях может выдаваться различная информация, причем содержимое поля может изменяться в процессе работы с диалогом. Для вывода текста в таком элементе используется символьная неременная, содержимое которой может из меняться из модуля диалога.

Поле ввода

Поле ввода служит для ввода информации, которая затем будет запоминаться и (или) обрабатываться. В процессе работы с диалогом в таком поле ввода появляется курсор, и в него можно вводить информацию.

Редактор диалогов позволяет создавать поля ввода двух типов: реквизит диалога и реквизит, связанный с соответствующим реквизитом того объекта метаданных, к которому «прикреплен» диалог. Эти два типа реквизитов диалога отличаются способами создания и набором своих свойств. Подробнее об этом будет рассказано в п. «Создание элементов диалога», стр. 6, и п. «Свойства элементов диалога», стр. 11.

Многострочная часть (таблица)

Многострочная часть (таблица) — специальный элемент диалога, который организует ввод информации в таблицу. Может быть создан, только когда связанный с диалогом вид данных имеет табличную часть: это может быть справочник, журнал документов или документ.

Элемент типа «многострочная часть» в диалоге может быть только один. Имеется возможность вставки в диалог элементов типа табличного типа, однако у них другие функции — см. ниже «Таблица значений».

Дерево

Специальный элемент, который связан с таблицей, и используется тогда, когда представляемый таблицей список данных может иметь иерархическую структуру. Подобным списком данных может быть, например, многоуровневый справочник товаров. В таких случаях, наряду с обязательным элементом типа «многострочная часть», в диалог может быть введен элемент «дерево». Использование элемента типа «дерево», наряду с многострочной частью, позволяет более наглядно отображать структуру справочника.

Элемент типа «дерево» в диалоге может быть только один.

Список

Элемент диалога типа «список» позволяет показать пользователю список значений и предоставляет возможность выбрать одно из этих значений.

Элемент диалога типа «список» тесно связан с агрегатным типом данных СписокЗначений (см. книгу «Описание встроенного языка»). Так, все действия по управлению списком значений (добавление значения в список, удаление значения из списка, сортировка списка и другие) выполняются только средствами встроенного языка. Можно сказать, что элемент диалога типа «список» служит для визуализации агрегатного типа данных СписокЗначений.

Таблица значений

Элемент диалога типа «таблица значений» позволяет показать пользователю таблицу значений и предоставляет возможность выбрать одно из этих значений.

Элемент диалога типа «таблица значений» тесно связан с агрегатным типом данных ТаблицаЗначений (см. книгу «Описание встроенного языка»). Все действия по управлению таблицей значений (добавление значения в таблицу, удаление значения из таблицы, сортировка значений в таблице и другие) выполняются только средствами встроенного языка. Можно сказать, что элемент диалога типа «таблица значений» служит для визуализации агрегатного типа данных ТаблицаЗначений.

Поле со списком

Назначение элемента диалога типа «поле со списком» аналогично элементу типа «список». Разница между ними заключается в их визуальном представлении: для доступа к списку значения элемента типа «поле со списком» следует нажать кнопку [image], расположенную в правой части поля.

В отличие от элементов диалогов других типов, элемент «поле со списком» может частично располагаться вне границ шаблона окна диалога. В этом случае в пределах шаблона окна диалога должна располагаться верхняя часть элемента, содержащая поле ввода.

Флажок

Элемент типа «флажок» предоставляет пользователю возможность управления типа «Включено/Выключено». В зависимости от состояния элемента типа «флажок» может быть выбран тот или иной путь обработки введенной пользователем информации.

Переключатель

Элемент типа «Переключатель» предоставляет пользователю возможность выбора одного из нескольких значений. По своему назначению этот элемент похож на элементы типа «Таблица значений», «Список» и «Поле со списком», с той лишь разницей, что значения переключателя жестко задаются при создании диалога, а у перечисленных выше типов элементов могут формироваться динамически в процессе работы с диалогом.

В зависимости от выбранного значения переключателя, может быть выбран тот или иной путь обработки информации, указанной пользователем.

Кнопка

Элемент типа «кнопка» позволяет создать в окне диалога стандартную Windows-кнопку. С кнопкой обычно связана процедура на встроенном языке, которая будет выполняться при нажатии на кнопку.

Картинка

Элемент типа «картинка» служит для размещения в окне диалога картинки. Такой элемент не несет никакой функциональной нагрузки и используется только для оформления.

Рамка

Элемент типа «рамка» позволяет создать вокруг группы любых других элементов диалога рамку с поясняющим заголовком. Никакой функциональной нагрузки данный элемент не несет, он используется только для рациональной организации других элементов диалога.

Шаблон окна диалога

Кроме перечисленных выше элементов, которые, собственно, и образуют сам диалог, существует еще один элемент, который является объединяющим по отношению к остальным. Это шаблон окна диалога — прямоугольная область, на которой располагаются все остальные элементы диалога. Этот элемент имеет особые свойства, о них будет рассказано ниже.

Создание диалога

Если какой-либо элемент данных имеет визуальное представление, то в диалоге для редактирования свойств этого элемента данных обязательно будет присутствовать кнопка для вызова редактора форм.

Диалог создается автоматически после того, как определен новый элемент данных. В окне диалога могут размещаться реквизиты и управляющие элементы, задаваемые по умолчанию. Например, для диалога ввода записей в справочник автоматически создаются реквизиты для ввода кода элемента справочника и его наименования, а также кнопки «ОК» и «Отмена». В дальнейшем при формировании диалога на него помещаются реквизиты для ввода информации, поясняющий текст и кнопки. Таблица помещается в окне диалога ав тематически, если связанный с диалогом элемент данных имеет табличную часть.

Понятие «шаблона окна диалога»

Шаблоном окна диалога называется прямоугольная область, в пределах которой должны размещаться все элементы, образующие диалог. Шаблон окна создается для нового диалога и в дальнейшем только редактируется.

По своим свойствам шаблон окна похож на прочие элементы диалога, однако имеет некоторые отличия.

Шаблон окна всегда создается автоматически.

Шаблон окна диалога нельзя перемещать и копировать — он имеет фиксированное положение в окне редактора диалогов.

И, наконец, шаблон окна нельзя удалить.

Редактирование шаблона окна диалога

Для шаблона окна диалога доступны только операция изменения его размеров. Размеры шаблона окна определяют размеры диалога в целом.

Для редактирования шаблона окна диалога его следует выбрать. Для этого щелкните мышью в любом месте шаблона окна диалога, свободном от элементов диалога. Если шаблон окна выбран, вдоль нижней и правой сторон шаблона появятся линии с небольшими квадратными маркерами на середине каждой линии и в месте пересечения этих линий.

Для изменения размеров шаблона окна диалога следует мышью перетащить один из маркеров в новое положение. Для изменения ширины шаблона окна диалога следует перетаскивать маркер, расположенный на середине линии, проходящей вдоль правой границы шаблона; для изменения высоты шаблона следует перетаскивать маркер, расположенный на середине линии, проходящей вдоль нижней границы шаблона окна диалога; для изменения обоих размеров перетаскивайте маркер, расположенные на пересечении линий, в правом нижнем углу шаблона окна диалога.

В процессе перемещения любого маркера тонкая рамка будет обозначать новые размеры шаблона окна диалога. При включенной привязке к разметочной сетке размеры шаблона окна диалога будут меняться скачкообразно, в соответствии с установленным шагом разметочной сетки (см. ниже, п. «Разметка»).

Редактирование диалога

Процесс редактирования диалога заключается в размещении в пределах шаблона окна диалога элементов описанных выше типов и редактировании их свойств. Подробно об этом будет рассказано ниже в соответствующих параграфах.

Для редактирования окна диалога вы можете использовать мышь или клавиатуру. При появлении на экране редактируемого диалога становятся доступными кнопки панели инструментов «Редактор диалогов».

Разметка

Для удобства размещения и установки размеров элементов диалога можно использовать разметку. Разметка представляет собой сетку из горизонтальных и вертикальных линий, ориентируясь на которые, можно задавать точное положение реквизитов в окне диалога и устанавливать их размеры. Вы можете управлять шагом разметочной сетки, включать и выключать привязку элементов диалога к сетке, а также показывать сетку или прятать ее.

Если включен режим показа разметочной сетки, разметка вне шаблона окна диалога показывается как сетка линий. Внутри шаблона окна диалога разметка изображается точками, расположенными в местах пересечения линий разметки.

Для управления разметочной сеткой служит пункт «Разметка» меню «Диалог» главного меню программы. При выборе этого пункта на экран будет выдан запрос для установки режимов разметочной сетки.

Прежде всего, вы можете задать шаг сетки — размер ячеек сетки по горизонтали и вертикали. Для этого в соответствующие поля запроса следует ввести целое число от 3 до 50. Единица шага сетки по ширине равна 1/4, а по высоте — 1/8 размера шрифта диалога (см. п. «Свойства шаблона окна», стр. 13).

Числа, задающие размер ячеек по горизонтали и вертикали, могут быть разными.

Переключатель «Ориентироваться по разметке» позволяет включить автоматическую привязку элементов диалога к разметочной сетке. В этом случае, при перемещении элемента диалога или изменении его размеров, линии, ограничивающие элемент диалога, буду! автоматически располагаться вдоль ближайших к ним линий разметочной сетки.

И, наконец, переключатель «Показать разметку» позволяет сделать разметочную сетку видимой (если переключатель включен) или спрятать ее.

Слои

Одним из свойств, присущих элементу диалога, является свойство видимости (см. п. «Свойства элементов диалога», стр. 11). Встроенный язык системы 1С:Предприятие включает средства управления этим свойством. Это позволяет создавать диалоги, динамически меняющие состав своих элементов в зависимости от действий пользователя.

Например, при создании диалога для ввода документ;) «Счет-фактура», помимо реквизита «Покупатель», можно предусмотреть элемент типа «Флажок» с текстом «Грузополучатель — он же», который по умолчанию будет включен. При отключении этого флажка будет появляться поле ввода для выбора организации-грузополучателя.

При недостатке места в пределах шаблона окна диалога «появляющиеся» элементы диалога могут накладываться друг на друга. В этом случае редактирование диалога в редакторе форм становится непростой задачей.

Для облегчения редактирования таких диалогов в редакторе диалогов существует механизм слоев. Слой — это воображаемая поверхность, параллельная плоскости шаблона окна диалога, предназначенная для размещения элементов диалога.

В процессе редактирования диалога может быть создано необходимое количество слоев. Элементы диалога при создании помещаются на один из существующих слоев, назначенный активным слоем. Любой слой может быть «спрятан» (сделан невидимым), тогда расположенные на этом слое управляющие элементы не будут мешать при редактировании управляющих элементов диалога, расположенных на других слоях. Редактирование элементов диалога выполняется «сквозь слои», то есть для редактирования доступен любой элемент из любого видимого слоя.

Управление слоями

Для управления слоями используется диалог, который вызывается командой «Слои» из меню «Диалог» главного меню Конфигуратора или кнопкой [image] панели инструментов «Редактор диалогов».

Диалог «Слои» содержит окно со списком слоев и кнопки для управления слоями. По умолчанию в списке присутствует слой с именем «Основной».

Окно со списком слоев содержит 3 колонки.

В правой колонке (самой широкой) выдаются идентификаторы существующих слоев.

В средней колонке значком [image] обозначается активный слой. Этот значок можно поставить двойным щелчком мыши в этой колонке напротив наименования нужного слоя. Он может быть проставлен только у одного из слоев. При постановке значка у какого-либо слоя он автоматически снимается с предыдущего активного слоя.

При редактировании диалога новые элементы помещаются на активном слое.

В крайней левой колонке списка значком [image] обозначены видимые слои. Эти значки можно ставить или снимать двойным щелчком мыши в этой колонке напротив наименования нужного слоя. В отличие от признака активного слоя, видимость слоев можно включать произвольно, однако видимость нельзя снять у активного слоя, а при назначении активным невидимого слоя он автоматически становится видимым.

Если дважды щелкнуть мышью на идентификаторе слоя, выбранный слой станет видимым и активным, а у всех остальных слоев видимость будет принудительно отключена. Этой возможностью удобно пользоваться для просмотра содержимого слоев или для быстрого «включения» нужного слоя.

Видимостью слоев можно управлять также из встроенного языки системы 1С:Предприятие, для этого предусмотрен метод ИспользоватьСлой.

Создание слоя

Для создания слоя следует нажать кнопку [image] («Новый слой») и диалоге «Слои». На экран будет выдан диалог для ввода идентификатора нового слоя.

Идентификатор слоя представляет собой произвольную строку символов. В отличие от идентификатора объекта метаданных, может содержать пробелы и специальные символы.

Видимый, Активный. Используя эти флажки, можно при создании слоя сделать его видимым и активным, или отключить одно или оба этих свойства. Если свойство «Активный» у нового слоя включено, оно будет автоматически отключено у текущего активного слоя.

Новый слой всегда добавляется в конец списка слоев.

Редактирование слоя

Любой слой в списке можно переименовать, для этого необходимо в диалоге «Слои» выделить идентификатор слоя и нажать кнопку [image] («Редактировать слой»). В выданном на экран диалоге можно отредактировать идентификатор слоя, а также установить или снять флажки видимости и активности.

Удаление слоя

Любой слой может быть удален из диалога. Для удаления слоя необходимо в диалоге «Слои» выделить его наименование и нажать кнопку [image] («Удалить слой»). После подтверждения необходимости удаления слоя на экран будет выдан диалог «Удаление слоя». В этом диалоге необходимо выбрать одну из двух опций. Если выбрана опция «Удалить элементы слоя», то вместе со слоем будут удалены также элементы диалога, расположенные на этом слое.

Если выбрана опция «Переместить элементы», то в списке «Доступные слои» необходимо выбрать наименование одного из слоев. В этом случае управляющие элементы удаляемого слоя будут перемещены на указанный слой.

Если удаляется активный слой, то активным автоматически становится первый по порядку слой в списке.

Замечание. Из диалога не удаляется последний оставшийся слой.

Изменение расположения слоев

Порядок расположения слоев в списке диалога «Слои» соответствует их реальному положению в диалоге: чем выше слой расположен в списке, тем «ближе» он находится к пользователю. Выражается это, например, в том, что элементы, расположенные на ближнем слое, будут закрывать собой элементы на более «дальних» слоях.

Взаимное положение слоев в списке диалога «Слои» можно менять, аналогичным образом изменяется и положение слоев в диалоге.

Чтобы изменить положение слоя, следует выделить его наименование в списке слоев и использовать кнопки [image] («Переместить вверх») и [image] («Переместить вниз»).

Перемещение элементов диалога между слоями

При создании элементов диалога они автоматически помещаются на активный слой (тот, который обозначен значком [image] в списке слоев). Однако, механизм слоев позволяет перемещать элементы диалога между слоями.

Для перемещения элемента диалога в другой слой необходимо выделить его и выбрать пункт «Поместить» в меню «Диалог» главного меню Конфигуратора. В выданном подменю следует указать, в какой слой будет перемещен выбранный элемент диалога.

Создание элементов диалога

Элементы диалога можно разделить на 2 группы. В первую группу входят элементы, которые несут, в основном, оформительские и управляющие функции. Это все элементы, о которых шла речь в п. «Элементы диалога» на стр. 1 — текст, рамка, кнопка, реквизит и т. д.

Вторую группу элементов диалога составляют реквизиты диалога, связанные с объектами метаданных — реквизитами справочника, реквизитами шапки и табличной части документа, дополнительными графами журнала и подобными. Реквизиты этой группы служат, в основном, для ввода, просмотра и редактирования значения соответствующего объекта метаданных.

Приемы создания несколько различаются для элементов диалога этих двух групп.

Когда диалог открывается для редактирования в первый раз, он, как правило, содержит элементы, создаваемые по умолчанию. Состав этих элементов зависит от типа объекта метаданных, для которого создается диалог. Прочие элементы могут быть добавлены в процессе редактирования диалога.

Кроме того, при открытии или создании новой формы активизируется диалог автоматического размещения реквизитов диалога. Это описанный ниже диалог «Размещение реквизитов», в котором уже выбраны для вставки в форму все реквизиты и включены опции «Разместить в диалоге автоматически» и «Вставить имя». Остается нажать кнопку «Вставить» или нажать Enter, и все реквизиты будут вставлены. Этот режим можно отключить (опция есть в диалоге).

Создание элемента диалога. Для создания элемента диалога нужного типа необходимо воспользоваться меню «Вставить» главного меню программы или кнопками панели инструментов «Элементы диалога». Из этого меню (или панели) следует выбрать тип создаваемого элемента диалога. Можно также вызвать диалог «Создание нового элемента диалога» (см. ниже).

Теперь следует в пределах шаблона окна диалога обвести предполагаемую область размещения создаваемого элемента. Указатель мыши при этом будет иметь вид перекрестия, возле которого расположен символ вставляемого элемента. Элемент диалога будет создан после отпускания кнопки мыши.

Расположение и размеры созданного элемента диалога определяются обведенной областью, однако элемент диалога не может быть меньше минимального размера (см. ниже п. «Перемещение, копирование и изменение размеров элементов диалога», стр. 8).

Вместо обведения области размещения можно просто поместить указатель мыши на нужное место и щелкнуть. При таком способе создания элемента диалога он будет иметь размеры, задаваемые по умолчанию.

Расположение и размеры созданного элемента диалога можно изменить. Как это сделать — рассказывается в последующих параграфах данной главы.

Новый элемент диалога всегда создается в активном слое.

Создание реквизита объекта метаданных. Чтобы вставить элементы диалога, связанные с объектами метаданных, используется диалог «Размещение...» (реквизитов документа, справочника, граф журнала — конкретное наименование диалога зависит от объекта метаданных, форма которого редактируется).

Этот диалог может вызываться двумя способами: «вручную» — из главного меню Конфигуратора, или автоматически — при первом открытии новой формы объекта метаданных.

Для вызова диалога «вручную» необходимо выбрать пункт «Реквизиты» из меню «Вставить» главного меню Конфигуратора.

Вид диалога различается в зависимости от типа редактируемого объекта метаданных и вида редактируемой формы (форма элемента или формы списков), однако, назначение диалога от этого не меняется

Для тех реквизитов, которые уже размещены в диалоге, слева от наименования реквизита будет стоять отметка [image], сами наименования будут даны серым цветом, и такие наименования нельзя выбрать.

В этом диалоге можно отметить те реквизиты, которые необходимо вставлять в редактируемый диалог, для этого следует поставить отметки [image] возле этих реквизитов. При этом также можно использовать опции «Разместить в диалоге автоматически» и «Вставить имя». Для вставки реквизитов следует нажать кнопку «Вставить».

Для вставки в редактируемый диалог конкретного реквизита следует дважды щелкнуть его мышью.

Если установлен флажок «Разместить в диалоге автоматически», вставляемый элемент (или элементы) диалога появится в форме без указания курсором области размещения. При этом он будет иметь установленные ему по умолчанию размеры. Эти размеры, например, у поля ввода, зависят от типа значения, которое будет туда помещено, и от количества знаков, определенного для данного реквизита (строки, числа).

Если включить опцию «Вставлять имя», то в диалог будет помещен не только реквизит — как поле ввода, но и его наименование — как реквизит типа «Текст».

При выборе реквизита числового типа в диалоге «Размещение...» появляется дополнительная опция «Редактировать флажком». Если ее включить (опция «Вставить имя» делается при этом недоступной), при вставке реквизита будет создан реквизит типа «Флажок». В этом случае числовой реквизит, который представлен флажком, может принимать только 2 значения: 1 — если флажок установлен, и 0 — если снят.

При вставке реквизитов табличной части автоматически создается элемент диалога типа «Таблица», содержащий колонки, соответствующие выбранным реквизитам. Ширина колонок таблицы по умолчанию также зависит от типа и длины значения, для которого они предназначены.

Наконец, можно выбрать для вставки сразу все еще не вставленные реквизиты специальными кнопками справа от списков.

Флажок «Вызывать для новых форм» позволяет отключить вызов диалога «Размещение...» для новых форм объектов метаданных.

Создание элемента диалога типа «Таблица». Отдельно следует остановиться на создании элемента типа «Таблица».

Этот элемент автоматически создается в том случае, если диалог связан с объектом метаданных, имеющим табличную часть. Например, для справочника элемент «Таблица» создается при редактировании форм списка, для документа — если в диалог вставляется хотя бы один реквизит табличной части, для журнала таблица создастся всегда. Наряду с общими для прочих элементов диалога свойствами, элемент «Таблица» обладает также рядом особенностей. Подробно работа с элементом этого типа рассматривается в параграфе «Работа с элементом типа «Таблица», стр. 20.

Диалог «Создание нового элемента диалога». Для вызова диалога «Создание нового элемента диалога» нужно выбрать в меню «Вставить» пункт «Элемент диалога».

Диалог содержит список возможных типов элементов диалога, в котором необходимо выбрать тип создаваемого элемента, и, кроме того, предоставляет возможность сразу указать идентификатор, заголовок, формулу, тип (для элементов типа «Реквизит диалога»).

При создании элементов типа «Реквизит диалога» можно установить флажок «Вставить кнопку «Очистить», тогда при вставке реквизита справа от него будет добавлена кнопка «X» для очистки содержимого реквизита.

При создании элементов диалога, имеющих формулу, можно установить флажок «Создать процедуру», тогда при вставке такого элемента диалога в модуле формы будет создана процедура с именем, указанным в поле «Формула».

Наконец, в списке создаваемых элементов имеется строка «Выбор периода». Выбор это строки создает сразу пять элементов диалога, совместно обеспечивающих задание периода: два реквизита типа «Дата» (с кнопкой вызова календаря в каждом из них), их текстовые обозначения «Период с» и «по» и кнопку «...» для вызова системной функций ВвестиПериод(). Эта функция выдает диалог для интерактивного выбора периода.

Выделение элементов диалога

Для того чтобы над элементом диалога можно было произвести какие-либо действия, его необходимо некоторым образом отметить.

Выделение одного элемента. Для выделения одного элемента необходимо щелкнуть на элементе левой кнопкой мыши.

Выбранный элемент окаймляется пунктирной рамкой, на которой расположены восемь небольших квадратных маркеров: четыре из них расположены в середине каждой из четырех сторон рамки и четыре — в ее углах. Эти маркеры служат для изменения размеров элемента диалога.

Для выделения любого другого элемента диалога достаточно щелкнуть мышью на этом элементе.

Выделение группы смежных элементов. Для выделения группы элементов, расположенных друг возле друга, поместите указатель мыши вне группы, и, нажав левую кнопку мыши, обведите элементы диалога пунктирной рамкой.

Выделение группы несмежных элементов. Для выделения группы произвольно расположенных элементов диалога необходимо щелкать по выбранным элементам левой кнопкой мыши при нажатой клавише Shift.

Для исключения выделенного элемента диалога из группы выбранных элементов следует повторно щелкнуть на этом элементе левой кнопкой мыши, держа при этом нажатой клавишу Shift.

Выбор элемента-образца. Для выполнения ряда групповых операций над элементами диалога — например, выравнивания или изменения размеров — среди выделенных элементов должен быть выбран элемент-образец.

Образцом считается элемент, у которого на пунктирной рамке расположены маркеры изменения размера. Обычно это будет последний выделенный элемент диалога. Чтобы выбрать в качестве образца для установки размеров какой-либо другой элемент диалога, следует щелкнуть его мышью при нажатой клавише Ctrl.

Перемещение, копирование и изменение размеров элементов диалога

Элементы диалога можно копировать, перемещать и изменять их размеры.

Перемещение. Для перемещения элемента диалога перетащить его мышью на новое место.

Если включена функция «Ориентировать по разметке», то перемещение элемента диалога будет осуществляться «скачкообразно» — левая и верхняя сторона пунктирной рамки, ограничивающей элемент диалога, будут автоматически располагаться вдоль ближайших линий разметочной сетки.

Координаты выделенных элементов диалога отображаются в статусной строке внизу экрана, позволяя точно отслеживать перемещение элементов. Координаты выдаются в виде 65, 78. В этом примере 65 — отсчитанная от левого края шаблона окна диалога горизонтальная координата левого края рамки элемента (если выделена группа элементов, то это координата того из них, у которого левая сторона рамки выделения расположена левее, чем у всех остальных в группе), 78 — отсчитанная от верхнего края шаблона окна диалога вертикальная координата верхнего края рамки элемента (если выделена группа элементов, то это координата того из них, у которого верхняя сторона рамки выделения расположена выше, чем у всех остальных в группе).

Перемещение выделенного элемента диалога (или группы выделенных элементов) происходит также при нажатии курсорных стрелок клавиатуры. При этом способе разметка не влияет на перемещение элемента: оно происходит с единичным шагом по горизонтали или вертикали.

Копирование. Копирование элементов диалога может быть полезным, когда требуется создать много однотипных элементов диалога (например, реквизитов для ввода данных).

Для копирования можно использовать команды «Запомнить» и «Вставить» меню «Действия» главного меню Конфигуратора или соответствующие им комбинации клавиш Ctrl+Ins (или Ctrl+C), Shift+Ins (или Ctrl+V).

Удобно выполнять копирование элементов диалога при помощи мыши, для этого достаточно перетащить выбранный элемент диалога мышью при нажатой клавише Ctrl. После отпуска кнопки мыши будет создана копия элемента-образца.

Копирование в другую конфигурацию. Элементы диалога можно копировать не только в пределах шаблона окна диалога, но и между конфигурациями. При копировании используются возможности Буфера Обмена MS Windows.

Порядок и правила копирования элементов диалога между конфигурациями в основном совпадают с теми, которые были изложены в гл. «Работа с конфигурацией».

При копировании элемента диалога типа «Реквизит», связанного с объектом метаданных, сам объект метаданных не копируется. Копируемый реквизит преобразуется в элемент типа «Реквизит диалога» и пытается сохранить все свойства (идентификатор, тип значения, длину и точность значения, и пр.), которые были у исходного реквизита. Привязка скопированного реквизита выполняется по общим правилам.

Изменение размеров. Вокруг выделенного элемента диалога помещается пунктирная рамка, на которой расположены восемь маркеров: четыре из них расположены в середине каждой из четырех сторон рамки и четыре — в ее углах.

Маркеры, расположенные на сторонах рамки, предназначены для изменения одного размера элемента (длины или ширины). Маркеры, находящиеся в углах, служат для изменения сразу обоих размеров. Для изменения размеров элемента диалога перетащите мышью один из маркеров.

Если включена функция «Ориентировать по разметке», то изменение размеров реквизита будет осуществляться «скачкообразно» — стороны рамки, ограничивающей элемент диалога, которые «тянутся» мышью, будут автоматически располагаться вдоль ближайшей линии разметочной сетки.

Размеры выделенных элементов диалога отображаются в статусной строке внизу экрана, что позволяет точно отслеживать изменения размеров. Размеры выдаются в виде 367 x 201. Это габаритные размеры рамки выделения элемента или группы выделенных элементов.

Для изменения размеров выделенного элемента диалога можно также нажимать курсорные стрелки клавиатуры при нажатой клавише Shift. При этом нижний правый угол рамки элемента перемещается в сторону, определяемую выбранной стрелкой, а верхний левый остается на месте, обеспечивая изменение размеров. При этом способе разметка не влияет на изменение размеров элемента. Оно происходит с единичным шагом по вертикали или горизонтали.

Автоматическая установка размеров. Для установки одинакового размера нескольких элементов можно ориентироваться по разметке. Однако редактор диалогов позволяет автоматически устанавливать размеры элементов диалога, используя в качестве образца один из элементов.

Для установки размера элементов диалога следует сначала выделить эти элементы (должны быть выбраны, как минимум, два элемента) и выбрать элемент-образец (см. выше).

Автоматическая установка размеров выполняется при помощи подменю «Одинаковый размер» из меню «Диалог» главного меню программы или кнопок панели инструментов «Редактор диалогов». Вы можете установить для выбранных элементов одинаковый размер по высоте (команда «По высоте»), по ширине (команда «По ширине»,) или установить одинаковый размер всех выбранных элементов (команда «Одинаковый размер»).

Минимальный размер. У всех элементов диалога существует минимальный размер по горизонтали и по вертикали (например, у кнопки и у текста - 8 x 8, у поля ввода - 13 x 13). Уменьшая размеры элемента, нельзя установить ему размеры меньше минимальных. Если при создании элемента обвести предполагаемую область размещения создаваемого элемента так, что какой-то из размеров этой области будет меньше минимального размера создаваемого элемента, данный размер также будет увеличен до минимального.

Выравнивание элементов диалога

Аккуратное размещение элементов диалога в окне позволяет впоследствии удобно и эффективно с ним работать. Редактор диалогов предоставляет разнообразные возможности для выравнивания элементов диалога в окне диалога.

Можно использовать разметку для задания точного положения или одинакового размера элементов диалога в процессе их создания или размещения в окне диалога.

После того, как все необходимые элементы диалога уже размещены в окне, для автоматического выравнивания их положения или размеров можно пользоваться функциями из меню «Диалог» главного меню Конфигуратора или контекстного меню и соответствующими кнопками напели инструментов «Редактор диалогов». Они позволяют размещать элементы диалога, задав в качестве ориентира положение любого из них, автоматически помещать реквизит в центр окна диалога, задавать элементам диалога одинаковые размеры, а также автоматически устанавливать равные расстояния между ними.

Выравнивание по образцу. Вы можете значительно улучшить внешний вид созданного вами диалога, если его элементы, расположенные друг под другом, будут выровнены по вертикали, а элементы, расположенные в ряд, — по горизонтали. Функция «Выровнять» меню «Диалог» позволяет указать, какие стороны выбранных элементов диалога будут выровнены.

Элементы диалога, которые требуется выровнять, необходимо выделить и выбрать элемент-образец (см. в разделе «Выделение элементов диалога», стр. 7).

Затем следует воспользоваться одним из пунктов подменю «Выровнять» из меню «Диалог» главного меню Конфигуратора:

по левому краю | выровнять левые стороны всех выделенных элементов по левой стороне элемента-образца;
по правому краю | выровнять правые стороны всех выделенных элементов по правой стороне элемента-образца;
по верхнему краю | выровнять верхние стороны всех выделенных элементов по верхней стороне элемента-образца;
по нижнему краю | выровнять нижние стороны всех выделенных элементов по нижней стороне элемента-образца;

Равномерное распределение. Иногда нужно расположить несколько элементов диалога так, чтобы между ними были одинаковые расстояния по горизонтали или по вертикали. Это можно сделать с помощью команд подменю «Равномерно распределить» меню «Диалог» или кнопок панели инструментов «Редактор диалогов».

Нужно выделить по крайней мере три элемента диалога (команды и кнопки станут доступными) и выбрать п указанном подменю команду «По горизонтали» или «По вертикали».

При этом требуется, чтобы в результате распределения между элементами были хоть какие-то расстояния: если в итоге намеченного распределения элементы должны перекрыться, соответственно, по горизонтали или вертикали, то команда не работает (очевидно, в этом случае и в исходной ситуации они перекрываются, но это как раз неважно).

Если какие-то из выделенных элементов в исходной ситуации расположены одинаково, их порядок в полученном распределении будет определяться порядком, в котором они были выделены.

Центрирование элемента. Иногда возникает необходимость поместить какой-либо из элементов точно в центр окна диалога. Можно сделать это, используя разметку, а можно воспользоваться подменю «Центр» из меню «Диалог» главного меню программы или соответствующими кнопками панели инструментов «Редактор диалогов». Они позволяют автоматически переместить выбранный элемент диалога (или несколько элементов) в середину окна диалога:

по вертикали | выбранный элемент будет передвинут по горизонтали и размещен так, чтобы его центр находился на одной вертикальной линии с центром окна диалога;
по горизонтали | выбранный элемент будет передвинут по вертикали и размещен так, чтобы его центр находился на одной горизонтальной линии с центром окна диалога.

Удаление элементов диалога

Для удаления элемента диалога его необходимо выделить и нажать клавишу Del.

Отмена сделанных изменений

Для отмены ошибочных действий следует воспользоваться функцией «Отменить» из меню «Действия» главного меню Конфигуратора. При выборе этой функции последняя выполненная операция — создание элемента диалога, его перемещение, копирование, изменение размеров и тому подобное — будет отменена. Для быстроты удобнее использовать горячие клавиши — комбинацию Ctrl+Z или ее аналог Alt+Backspace.

Однако, существует более простой способ отменить выполнение нежелательных действий. Предположим, вы перемещаете какой-либо элемент диалога мышью, и «по дороге» вдруг передумали это делать. Тогда, не отпуская левую кнопку мыши, нажмите клавишу Esc — тонкая рамка, отмечающая положение элемента диалога в процессе перемещения, пропадет. Теперь можно отпустить левую кнопку мыши — никаких изменений сделано не будет.

Этот прием срабатывает и для других операций, выполняемых мышью: создание элемента диалога, его копирование и изменение размеров.

Назначение порядка обхода элементов диалога

Редактор диалогов позволяет установить порядок обхода элементов по нажатию клавиши Tab при работе пользователя с диалогом. Существует четыре способа установить порядок обхода.

Автоматический порядок обхода. Каждый элемент диалога имеет свой порядковый номер, в соответствии с которым осуществляется обход элементов диалога. По умолчанию номера расставляются слева направо сверху вниз по слоям, так же осуществляется обход элементов диалога.

После каких-либо изменений в диалоге этот порядок обхода можно восстановить, выбрав пункт «Автомат, порядок обхода» в меню «Диалог» главного меню Конфигуратора. Автоматический порядок обхода будет восстановлен после закрытия и открытия редактируемой формы.

Смена номера элемента в порядке обхода. Пункты «Предыдущая позиция», «Следующая позиция» из меню «Диалог» главного меню Конфигуратора или соответствующие «горячие клавиши» Ctrl+PgUp, Ctrl+PgDn позволяют переопределить автоматический порядок обхода элементов, задаваемый по умолчанию. Для этого необходимо выделить элемент диалога и выбрать пункт «Предыдущая позиция» или «Следующая позиция» или соответствующую комбинацию клавиш для перемещения элемента диалога соответственно на предыдущую или следующую позицию в порядке обхода.

Назначение порядка обхода «вручную». Редактор диалогов позволяет назначить порядок обхода элементов диалога «вручную» — просто указываю мышью последовательность обхода.

Для расстановки порядка обхода элементов диалога «вручную» следует в меню «Диалог» главного меню Конфигуратора отключить пункт «Автомат, порядок обхода» и выбрать пункт «Порядок обхода». После выбора этой функции у каждого элемента появится квадратная рамка с цифрой, соответствующей порядковому номеру элемента при обходе. Для задания порядка обхода необходимо выбирать мышью элементы диалога в нужной последовательности обхода. При этом нумерация элементов будет изменяться, показывая выбранную последовательность обхода. Для выхода из функции определения порядка обхода достаточно щелкнуть мышью в любом свободном месте окна редактора диалогов.

Описанный выше способ, хотя и позволяет быстро назначить порядок обхода, обладает рядом недостатков: например, каждый раз порядок обхода приходится назначать заново, последовательно выбирая все элементы диалога. Поэтому этот способ рекомендуется для диалогов, содержащих малое количество элементов и всего один слой.

Для диалогов, содержащих несколько слоев, данный режим имеет следующие особенности.

Порядок обхода вручную задается только для активного слоя. Если, помимо активного, видны другие слои диалога, рамки с номерами будут только у элементов активного слоя.

Чтобы задать порядок обхода для неактивного слоя, необходимо сделать его активным, воспользовавшись диалогом «Слои».

Каждый элемент диалога имеет уникальный номер в порядке обхода. При назначении порядка обхода номера элементов показываются с учетом слоя.

Например, диалог имеет 15 элементов, распределенных по трем слоям: элементы первого слоя имеют номера с 1 по 5, второго — с 6 по 10, и последнего — с 11 по 15. Тогда при назначении порядка обхода для элементов 3-го слоя пользователь будет видеть (и расставлять) номера с 11 по 15-й.

При создании нового элемента диалога он становится первым в порядке обхода этого слоя — этому элементу присваивается наименьший номер из номеров слоя, номера этого и последующих слоев сдвигаются на 1, но последовательность расстановки номеров при этом сохраняется.

При удалении элемента диалога номера последующих элементов уменьшаются на единицу, так же сохраняя последовательность номеров.

При изменении порядка слоев в диалоге «Слои» номера элементов диалога изменяются в соответствии с новым расположением слоев, последовательность номеров при этом сохраняется.

Настройка порядка обхода. Для «многослойных» диалогов, содержащих больше количество элементов, наиболее удобно использовать диалог «Настройка порядка обхода». Для вызова диалога необходимо отключить пункт «Автомат, порядок обхода» и выбрать пункт «Настройка порядка обхода» из меню «Диалог» главного меню Конфигуратора.

Диалог содержит список всех элементов редактируемого диалога в последовательности слоев; строки расположены в порядке, соответствующем порядку обхода. Выделив строку, соответствующую определенному элементу, можно кнопками [image] и [image] перемещать его в списке к началу или к концу, изменяя тем самым его очередность в порядке обхода.

Перемещения элементов в этом диалоге не перемещает их между слоями: если в процессе перемещения элемента он оказался среди элементов другого слоя, при закрытии и повторном открытии этого диалога элементы будут вновь отсортированы по слоям.

Основное преимущество этого способа назначения порядка обхода — возможность отредактировать ранее назначенный порядок обхода, не задавая его заново.

Свойства элементов диалога

Каждый элемент диалога имеет определенный набор свойств, от которого зависит поведение элемента при работе пользователя с готовым диалогом и порядок обработки введенной в диалог информации.

Установка свойств элементов диалога производится в палитре свойств «Свойства...», которую можно вызвать на экран двойным щелчком мыши на нужном элементе диалога. Палитра свойств, используемая при редактировании свойств элементов диалога, по порядку использования аналогична той, которая применяется при редактировании свойств объектов метаданных. Порядок использования палитры свойств можно узнать в главе «Метаданные».

Ниже будет описано, какие свойства могут быть определены для каждого типа элементов диалога.

Общие свойства элементов диалога

Существует ряд свойств элемента диалога, которые присущи всем или большинству типов элементов диалога. Обычно такие свойства имеют одинаковое назначение и редактируются одинаковым образом. Ниже будут описаны такие общие свойства, а в параграфах, посвященных отдельным типам элементов диалога, будет изложен порядок редактирования уникальных свойств элементов.

Для удобства описания свойства будут сгруппированы по закладкам палитры свойств.

В зависимости от типа элемента диалога отдельные управляющие элементы закладки могут отсутствовать или закрываться от использования. Отсутствие управляющего элемента означает' отсутствие данного свойства у элемента диалога. Если управляющий элемент закладки закрыт для использования, значит, данное свойство для этого типа элементов диалога не редактируется.

Закладка «Общие»

Управляющие элементы закладки «Общие» служат для редактирования основных свойств реквизита диалога.

Заголовок. В это поле вводится текст, который будет выдаваться в элементе диалога при его использовании. В зависимости от типа элемента диалога заголовок имеет различное назначение. Длина заголовка ограничена 255 символами.

Идентификатор. Поле «Идентификатор» может содержать условное имя элемента диалога. Идентификатор представляет собой строку длиной не более 128 символов, состоящую из букв, цифр и .таков подчеркивания. Идентификатор не должен содержать пробелов и начинаться с цифры.

Идентификатор используется для обращения к элементам диалога из встроенного языка системы 1С:Предприятие.

Сделать недоступным. Если флажок установлен, элемент диалога будет недоступен при использовании диалога. Недоступные элементы будут выводиться «серым» цветом.

Управление этим свойством доступно из встроенного языка системы 1С:Предприятие, что позволяет динамически устанавливать для элемента диалога атрибут «Сделать недоступным».

Сделать невидимым. Если флажок установлен, элемент не будет отображаться при использовании диалога.

Управление этим свойством доступно из встроенного языка системы 1С:Предприятие, что позволяет динамически управлять видимостью элемента диалога.

Запретить редактирование. Этот флажок становится доступным для элементов диалога типа «поле ввода», имеющих тип значения «число», «строка», «дата» и «счет» (бухгалтерский). Если флажок установлен, запрещено редактирование содержимого поля ввода с клавиатуры. Однако в такое поле можно вводить значение, используя выбор: например, ввести бухгалтерский счет, выбрав его из плана счетов.

Сохранять при сохранении настройки. Этот флажок появляется в палитре свойств при редактировании форм объектов метаданных типа «Отчет» («Обработка») и внешних отчетов (обработок). Если флажок установлен, значение элемента диалога будет сохраняться при сохранении настройки. Сохранение настройки — запоминание текущих значений реквизитов диалога отчета при работе с отчетом в режиме запуска «1С:Предприятие».

Подробнее о сохранении настройки можно прочитать ниже в н. «Свойства шаблона окна диалога».

Закладка «Дополнительно»

Управляющие элементы закладки «Дополнительно» предназначены для установки различных вспомогательных свойств элемента диалога. Состав управляющих элементов этой закладки, кроме поля «Формула», различен для разных элементов диалога и описан ниже в соответствующих параграфах.

Формула. В зависимости от типа элемента диалога в это поле можно ввести:

· выражение на встроенном языке системы 1С:Преднриятие, результат вычисления которого будет выдаваться в элементе диалога;

· имя процедуры или функции, которая будет выполняться при щелчке мытью на элементе диалога или при переходе к следующему элементу диалога клавишей Tab или Enter.

Внимание. В выражениях формул элементов диалога не допускается вызов процедур (функций), открывающих или активизирующих другие окна (ОткрытьФорму, ОткрытьПодбор и подобные.), а также процедур, осуществляющих выбор активных строк или элементов диалога (Активизировать, АктивизироватьОбъект). Такие процедуры и функции следует использовать в предопределенных процедурах или в процедурах, вызываемых по кнопке формы.

Формулу невыбранного элемента диалога можно увидеть, если поместить указатель мыши над этим элементом диалога и подержать его 1...2 секунды.

Закладка «Шрифт»

Управляющие элементы закладки «Шрифт» предназначены для установки гарнитуры, размера, стиля и цвета шрифта, который будет использоваться для вывода элемента диалога. Эта закладка появляется в палитре свойств элемента диалога типа «Текст» и шаблона окна диалога.

Если включена опция «Шрифт по умолчанию», то будет использоваться шрифт, установленный для шаблона окна диалога в целом. Если и для шаблона окна диалога установлен шрифт по умолчанию, тогда вид шрифта будет определяться настройками, установленными в режиме «Параметры» (меню «Сервис» главного меню системы 1С:Преднриятие).

Цвет шрифта элемента диалога типа «Текст» может устанавливаться динамически средствами встроенного языка системы 1С:Предприятие.

Закладка «Картинка»

Закладка «Картинка» является основной закладкой при редактировании свойств элемента диалога типа «Картинка», а также служит для управления свойствами картинок для шаблона окна диалога и для элементов диалога типа «Кнопка». Состав управляющих элементов закладки может изменяться в зависимости от типа редактируемого элемента диалога.

«Изменить картинку». Эта кнопка вызывает диалог «Библиотека картинок», который позволяет выбрать картинку из библиотеки для вставки ее в элемент диалога.

Чтобы выбрать картинку для вставки в элемент диалога, необходимо щелкнуть мышью картинке и нажать кнопку «Выбрать». Выбранная картинка помещается в палитру свойств в окно для просмотра картинки. Непосредственно в элемент диалога картинка будет помещена после нажатия кнопки «ОК» или «Обновить» палитры свойств.

Для удаления картинки из элемента диалога следует нажать кнопку «Очистить». Картинка будет удалена из палитры свойств. Непосредственно из элемента диалога картинка будет удалена после нажатия кнопки «ОК» или «Обновить» палитры свойств.

Подробнее работа с библиотекой картинок описана в главе «Метаданные».

Рисовать. Управляющие элементы этой группы управляют масштабированием картинки в пределах места, отведенного для нее:

растянуть картинка будет масштабирована таким образом, чтобы полностью поместиться в элемент диалога; пропорции картинки могут быть искажены;

по центру картинка будет помещена в центр элемента диалога, при этом сохраняется оригинальный размер картинки;

пропорционально картинка будет масштабирована таким образом, чтобы полностью поместиться в элемент диалога, при этом пропорции картинки будут сохранены.

Рамка. Список «Рамка» позволяет выбрать вид рамки, которая будет изображена вокруг картинки. Этот управляющий элемент доступен только при редактировании свойств элемента диалога типа «Картинка».

Закладка «Описание»

При работе с диалогом пользователь может вызвать подсказки, поясняющие назначение элементов диалога. Для ввода текста подсказок используются управляющие элементы закладки «Описание».

В многострочное поле ввода можно ввести текст подробного описания элемента диалога. Подробное описание элемента диалога можно получить, если нажать кнопку [image] на панели инструментов диалога, и затем щелкнуть мышью по элементу диалога.

В поле «Подсказка» можно ввести краткое описание назначения данного элемента диалога. Этот текст будет выдаваться, если при использовании диалога подержать указатель мыши над данным элементом 1...2 секунды.

Если включена опция «Использовать описание», то в качестве подсказки (см. предыдущий абзац) будет использоваться текст описания.

Свойства шаблона окна диалога

В этом параграфе описаны специфические свойства шаблона окна диалога, в дополнение к общим свойствам элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.

Заголовок. В поле «Заголовок» можно ввести текст, который будет выводиться в заголовке окна диалога при работе с диалогом. Если заголовок не указан, будет выводиться название объекта метаданных, связанных с этим диалогом.

Панель инструментов. Флажок позволяет управлять показом панели инструментов диалога, которая в режиме запуска «1С:Предприятие» выдается в верхней части окна диалога, под заголовком окна. Снятие флажка отключает показ панели инструментов.

При отключенной панели инструментов все команды по работе с диалогом по-прежнему доступны в меню «Действия» главного меню программы.

Изменять размер. Этот флажок имеет смысл для диалогов, содержащих табличную часть (например, формы документов или журналов) или элемент диалога типа «Таблица значений». Назначение его следующее.

При работе с диалогом в режиме запуска «1С:Предприятие» пользователь может изменять размер окна диалога, перетаскивая мышью одну из сторон или угол диалога.

Если для диалога установлен флажок «Изменять размер», то размеры табличной части диалога (или элемента «Таблица значений») будут изменяться пропорционально изменению размеров окна диалога; при этом также будут перемещаться и элементы диалога, расположенные между таблицей и перемещаемой стороной или сторонами окна диалога.

Если флажок «Изменять размер» не установлен, размеры и относительное положение элементов диалога будут сохраняться такими же, какими они были заданы при редактировании диалога в Конфигураторе, независимо от изменения размера окна диалога.

Флажок «Изменять размер» присутствует и в палитре свойств диалогов, в которых пет таблиц, однако его установка или снятие не влияет на поведение элементов диалога

Режим сохранения настройки. Этот управляющий элемент появляется в закладке, когда редактируется форма объекта метаданных типа «Отчет» («Обработка») или внешнего отчета (обработки). Если этот флажок установлен, то при работе в режиме запуска «1С:Предприятие» для этого отчета будут доступны функции сохранения и восстановления настройки — текущих значений реквизитов диалога отчета.

Подробнее о сохранении настройки можно прочитать в главе «Отчеты и обработки».

Шрифт по умолчанию. Если для шаблона окна диалога установлена опция «Шрифт по умолчанию», то будет использоваться шрифт, установленный в режиме «Параметры» (меню «Сервис» главного меню системы 1С:Предприятие).

Картинка, которая может быть размещена в шаблоне окна диалога, будет служить фоном для остальных элементов диалога.

Свойства элемента «Текст»

В этом параграфе описаны специфические свойства элемента диалога «Текст», в дополнение к общим свойствам элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.

В поле «Формула» можно ввести выражение па встроенном языке системы 1С:Предприятие (поле «Заголовок» в закладке «Общие» в этом случае следует оставить пустым). При редактировании диалога в элементе типа «Текст» будет выдаваться формула в двойных угловых скобках.

При работе с конфигурацией в режиме запуска «1С:Предприятие» результат вычисления выражения будет выдаваться в элементе диалога типа «Текст». При большой длине результата выражения выводится будут только первые 255 символов.

Метод встроенного языка Цвет() позволяет изменять цвет элемента диалога типа «Текст» из модуля формы.

Положение. Список «Положение» управляет выравниванием заголовка элемента диалога в пределах рамки, окаймляющей элемент диалога (это та рамка, которая рисуется вокруг выбранного элемента). Можно выбрать один из трех видов выравнивания:

прижать влево выравнивание текста по левой границе рамки элемента;

прижать вправо выравнивание текста по правой границе рамки элемента;

центр по горизонтали текст размещается вдоль вертикальной линии, проходящей через центр рамки элемента.

Центр по вертикали. Установка флажка «Центр по вертикали» размещает текст вдоль горизонтальной линии, проходящей через центр рамки элемента. Установка флажка не влияет на выбор, сделанный в поле «Положение».

Прозрачный фон. Если этот флажок установлен, то рамка, окаймляющая элемент типа «Текст», не будет закрашиваться фоновым цветом при редактировании и использовании диалога. Элемент диалога с прозрачным фоном можно накладывать на другие элементы диалога.

Свойства элемента «Кнопка»

В этом параграфе описаны специфические свойства элемента диалога «Кнопка», в дополнение к общим свойствам элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.

Закладка «Общие»

Заголовок. В поле «Заголовок» закладки «Общие» палитры свойств кнопки вводится название кнопки, то есть текст, который будет выводиться на кнопке при использовании диалога в режиме запуска «1С:Предприятие».

Перед любым символом в заголовке кнопке можно поставить символ «&» («амперсант»). В этом случае при работе с диалогом в режиме запуска «1С:Предприятие» символ, перед которым поставлен амперсант, будет подчеркнут, и вместо нажатия на кнопку мышью можно использовать комбинацию клавиш Alt+«подчеркнутый символ». Такая комбинация клавиш носит название «горячие клавиши» или «акселератор».

Закладка «Дополнительно»

Формула. В поле «Формула» закладки «Дополнительные» можно указать имя процедуры, которая будет выполняться при нажатии на эту кнопку.

В качестве формулы можно использовать имя специально созданной процедуры на встроенном языке системы 1С:Предприятие, либо задать имена следующих системных процедур (см. таблицу. В скобках после имени процедуры приведен его английский синоним):

Процедура | Характеристика
Записать (Write) | Используется в диалогах документов или в диалогах элементов и групп справочника, выполняет запись документа, группы или элемента справочника.
Провести (MakeActions) | Используется в диалогах документов, выполняет проведение документа.
Закрыть (Close) | Закрывает диалог.

Если после имени системной процедуры стоит знак «?», выполнение процедуры будет сопровождаться выдачей соответствующего запроса.

Можно указывать подряд несколько имен системных процедур, при этом они должны разделяться пробелами, а перед первым именем этой цепочки должен стоять знак «#». При таком указании процедуры будут выполняться последовательно. В одной формуле допускается смешивать русские и английские имена процедур.

Можно использовать совместно имена пользовательских и системных процедур. Имя пользовательской процедуры должно стоять первым, затем через пробел — знак «#» и имена системных процедур, разделяемые пробелами.

Пропускать при вводе. Если установлен флажок «Пропускать при вводе», то кнопка будет пропускаться, если переход по элементам диалога при его использовании выполняется нажатием клавиши Enter.

Закладка «Команда»

Управляющие элементы этой закладки служат для постановке в соответствие кнопке клавиши или комбинации «горячих клавиш». Заданная клавиша или комбинация клавиш будет запускать выполнение той же процедуры, что и сама кнопка.

Для задания акселератора необходимо выбрать наименование клавиши в списке «Клавиша». Флажки «Ctrl», «Shift» и «Alt» позволяют задавать комбинации с использованием этих служебных клавиш.

Кнопка по умолчанию. Флажок позволяет назначить кнопку «кнопкой по умолчанию». Такая кнопка будет срабатывать при нажатии комбинации клавиш Ctrl+Enter независимо от того, на каком элементе диалога находится выделение.

Такая кнопка в диалоге может быть только одна: при назначении какой-либо кнопки «кнопкой по умолчанию» этот флажок снимается с текущей «кнопки по умолчанию».

Закладка «Картинка»

Управляющие элементы этой закладки служат для выбора изображения, которое будет помещено на кнопку. Картинка размещается на кнопке прижатой к левому краю кнопки, занимая всю высоту кнопки и половину ее ширины (пропорции картинки изменяются соответственно размерам кнопки), а текст кнопки центрируется в свободной области между картинкой и правой границей кнопки.

Свойства элемента «Переключатель»

В этом параграфе описаны специфические свойства элемента диалога «Переключатель», в дополнение к общим свойствам элементов диалога, о которых говорилось в и. «Общие свойства элементов диалога» на стр. 11.

Первый в группе. Для организации выбора при помощи элементов типа «Переключатель» в диалоге должна быть создана группа таких элементов. Один из элементов должен быть назначен начальным элементом группы, это выполняется установкой флажка «Первый в группе».

Остальные элементы группы задаются порядком обхода, начиная с первого элемента группы.

Свойства элементов типа «Список» и «Поле со списком»

В основном, свойства элементов типа «Список» и «Поле со списком» совпадают с общими свойствами элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.

Основное назначение элементов диалога этих двух типов — визуализации агрегатного типа данных СписокЗначений (см. книгу «Описание встроенного языка»). Все действия по управлению списком значений (добавление значения в список, удаление значения из списка, сортировка списка и другие) выполняются только средствами встроенного языка.

Формула. Свойства формулы элемента диалога типа «Список» совпадают со свойствами формулы элемента диалога типа «Кнопка» (см. выше стр. 15): например, наряду с вызовом процедур на встроенном языке системы 1С:Предприятие, в поле «Формула» элемента типа «Список» можно указывать имена системных процедур Записать, Провести и Закрыть.

При использовании элементов диалога типа «Список» необходимо иметь в виду, что формула, заданная для этого элемента, выполняется при двойном щелчке мышью на строке списка.

Список с пометками. Если этот флажок установлен, при показе списка значений слева от каждого элемента списка будет добавлена рамка, в которой щелчком мыши можно ставить или снимать отметку [image]. Расставляя отметки, можно выбрать несколько элементов списка для последующей обработки.

Свойства элемента «Рамка группы»

Заголовок. В поле «Заголовок» можно ввести текст, который будет выводиться вдоль верхней стороны рамки. Обычно это обобщающее название для элементов диалога, объединяемых рамкой.

Свойства элемента «Реквизит»

Элемент типа «Реквизит» визуально является полем для ввода информации. Существует 2 типа реквизитов: «просто» реквизит и реквизит, связанный с объектом метаданных.

Основное различие между ними заключается в следующем.

Для реквизитов, связанных с объектами метаданных, основные свойства, определяющие поведение реквизита («Тип значения», «Длина», «Точность» и др.) задаются на этане редактирования объекта метаданных. При редактировании диалога для таких реквизитов определяются свойства, связанные с их визуальным представлением. Для таких реквизитов большинство управляющих элементов палитры свойств будет недоступно.

Для «просто» реквизитов определение их свойств происходит исключительно на этапе редактирования диалога.

В основном, реквизиты могут обладать таким же набором свойств, как и реквизиты объекта метаданных, и редактирование этих свойств в палитре свойств выполняется аналогичным образом.

В этом параграфе изложен порядок редактирования всех свойств реквизитов. Где это необходимо, будет указано, для какого типа реквизитов справедлив излагаемый материал.

Закладка «Тип»

Управляющие элементы этой закладки доступны, в основном, для «просто» реквизитов диалога.

Физический смысл и порядок редактирования свойств элемента диалога типа «Реквизит», в основном, совпадают со свойствами объекта метаданных, о которых говорилось в главе «Метаданные».

Многострочный. Эта опция становится доступной для «просто» реквизитов диалога с типом значения «строка неограниченной длины». Включение этой опции означает, что в соответствующем поле ввода текст будет вводиться с автоматическим переносом слов и прокручиванием по вертикали.

Закладка «Дополнительные»

Состав управляющих элементов, которые могут помещаться на этой закладке, зависит от типа реквизита и от типа значения реквизита, который указывается в закладке «Тип». Кроме того, отдельные управляющие элементы могут становиться недоступными, в этом случае они выводятся серым цветом.

Ниже будет описано назначение всех возможных управляющих элементов и даны пояснения, в каких случаях эти управляющие элементы могут быть задействованы.

Формула. В поле «Формула» закладки можно указать последовательность операторов на встроенном языке системы 1С:Предприятие, которые будут выполняться при изменении значения реквизита.

Маска. Это поле доступно только для строковых реквизитов и позволяет назначить шаблон ввода строкового значения. Шаблон представляет собой последовательность символов, позиционно определяющих действия, которые будут выполняться при вводе строки в редактируемый реквизит.

При указании маски могут использоваться следующие управляющие символы:

Символ маски | Назначение
! | Введенный символ преобразуется в верхний регистр.
9 | Любая цифра.
# | Любая цифра, знак «-» («минус»), знак «+» («плюс») или пробел.
N | Любые алфавитно-цифровые символы (буквы или цифры).
Х | Любой символ.
@ | Любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре.

Например, для ввода 7-значного телефонного номера можно указать маску «999-99-99».

При использовании диалога поле ввода будет выглядеть так: « - - ».

Символы «-» автоматически проставлены в поле ввода, так как они указаны в маске. В это поле пользователь может ввести только цифры, другие символы вводиться не будут.

Маска может быть установлена динамически из встроенного языка системы 1С:Предприятие.

Связан с. Поле «Связан с» используется для реквизитов типа «Справочник», если используемый в качестве типа значения справочник является подчиненным справочником. Это поле может содержать идентификатор реквизита диалога, который имеет в качестве типа значения справочник-хозяин. В этом случае выбор элемента подчиненного справочника будет производиться без запроса элемента справочника-хозяина и только среди элементов, подчиненных элементу, выбранному при вводе значения указанного реквизита.

Форма. Поле «Форма» доступно только для реквизитов типа «Справочник» и позволяет выбрать форму, которая будет использоваться при выдаче справочника на экран для выбора из него значения. Различные формы выдачи справочника создаются при разработке справочника в процессе настройки конфигурации задачи.

Быстрый выбор. Опция «Быстрый выбор» может быть установлена для реквизитов типа «Справочник». Если она включена, то для выбора значения реквизита справочник будет выдаваться в виде выпадающего списка, а не в отдельном окне. Независимо от количества уровней, в выпадающем списке все элементы справочника будут располагаться на одном уровне.

Пропускать при вводе. Если установлен флажок «Пропускать при вводе», то реквизит будет пропускаться, если переход по элементам диалога выполняется нажатием клавиши Enter.

Авто. выбор. Флажок «Авто. выбор» присутствует в закладке при редактировании свойств реквизитов типа «Документ», «Справочник» и «Перечисление». Если флажок установлен, то при помещении курсора в такой реквизит будет автоматически открываться соответствующий список для выбора значения реквизита.

Отрицательное красным. Этот флажок присутствует в закладке при редактировании свойств числовых реквизитов. Если флажок установлен, то отрицательное значение реквизита будет выдаваться красным цветом.

Флажок недоступен, если для реквизита установлено свойство «Не отрицательный».

Для ввода пароля. Этот флажок присутствует в закладке при редактировании свойств реквизитов типа «Строка». Если флажок установлен, содержимое реквизита при его редактировании в процессе работы с диалогом будет отображаться в виде последовательности звездочек (символов «*»).

Имеет кнопку выбора. Флажок «Имеет кнопку выбора» доступен для реквизитов типа «Неопределенный», «Число», «Строка» и «Дата». Если флажок установлен, то при работе с диалогом в режиме запуска «1С:Предприятие» в правой части поля реквизита появится кнопка, вид и свойства которой зависят от типа реквизита.

Для реквизитов типа «Число» в поле появляется кнопка [image] («Калькулятор»). При нажатии на эту кнопу вызывается калькулятор, который можно использовать для ввода реквизита или для выполнения каких-либо промежуточных расчетов.

Для реквизитов типа «Дата» в поле появляется кнопка [image] («Календарь»). При нажатии на эту кнопку вызывается календарь, при помощи которого можно ввести дату, выбрав ее мышью.

Для реквизитов типа «Текст» кнопка имеет общий вид [image]. Нажатие этой кнопки вызывает выполнение предопределенной процедуры ПриНачалеВыбораЗначения() , если эта процедура существует в модуле формы (о предопределенных процедурах подробнее см. в книге «Описание встроенного языка»).

Для реквизитов других типов флажок «Имеет кнопку выбора» установлен и недоступен для редактирования. Кнопка в поле реквизита вставляется автоматически и служит для ввода значения реквизита путем выбора из списка объектов метаданных соответствующего типа.

Реквизиту типа «Неопределенный» средствами встроенного языка (метод НазначитьТип()) может быть назначен любой тип из числа существующих в системе 1С:Предприятие. В зависимости от назначенного типа значения, кнопка выбора приобретает соответствующие этому типу вид и свойства.

Свойства элемента «Таблица»

Диалог для настройки свойств элемента «Таблица» содержит только одну закладку — «Общие».

Автонастройка ширины колонок. Если включена опция «Автонастройка ширины колонок», колонки табличной части диалога, независимо от того, все ли они уже вставлены в форму, займут все место, предназначенное для таблицы.

Если эта опция выключена, то будут использоваться установки ширины колонок, сделанные в процессе редактирования диалога. При изменении ширины окна диалога будут сохраняться и относительные размеры колонок.

Автоматический ввод новой строки. Если включена опция «Автоматический ввод повой строки», то новая строка вводится в таблицу автоматически после окончания редактирования последнего элемента предыдущей строки. В противном случае для ввода новой строки в таблицу следует нажать клавишу Ins.

Свойства колонки элемента «Таблица»

Помимо общих свойств, которые можно устанавливать для элемента типа «Таблица» в целом, для каждой колонки таблицы могут быть установлены индивидуальные свойства. Чтобы вызвать палитру свойств для колонки табличной части, необходимо дважды щелкнуть левой кнопкой мыши на заголовке колонки (при этом должна быть выделена таблица или какая-нибудь из се колонок).

В основном, набор свойств колонки определяется типом значения, которое будет вводиться в эту колонку, и совпадает со свойствами элемента типа «реквизит».

Закладка «Положение»

Элементы этой закладки предназначены для управления взаимным расположением ячеек табличной части, которое будут занимать эти ячейки при работе пользователя с диалогом в режиме «1С:Предприятие».

На закладке справа расположено окно предварительно просмотра. В нем иллюстрируется изменение взаимного расположения ячеек текущей строки табличной части в зависимости от опции, выбранной слева. Положение редактируемой колонки задастся относительно левой соседней колонки.

Новая колонка. Редактируемая колонка будет располагаться рядом с левой соседней колонкой (получается «обычная» таблица).

На следующей строке. При работе с табличной частью для каждой ее строки ячейка редактируемой колонки и ячейка колонки, расположенной слева, будут объединяться в одну колонку, и располагаться друг под другом. При показе содержимое ячеек будет разделено тонкой горизонтальной чертой.

Такие «объединенные» ячейки, например, при прокручивании табличной части вправо или влево ведут себя как одна колонка.

В той же колонке. При работе с табличной частью для каждой се строки ячейка редактируемой колонки и ячейка колонки, расположенной слева, будут объединяться в одну колонку, и располагаться рядом друг с другом. При показе содержимое ячеек будет разделено тонкой вертикальной чертой.

Такие «объединенные» ячейки при прокручивании табличной части вправо или влево ведут себя как одна колонка.

Свойства элемента «Дерево»

Для элемента диалога типа «Дерево» никаких свойств определять не требуется — диалог «Свойства» в этом случае не содержит ни одной закладки.

Если при создании экранной формы справочника в диалог были вставлены элементы типа «Дерево» и «Таблица», то при использовании справочника система 1С:Предприятие будет анализировать взаимное расположение этих элементов и, если такое окажется возможным, предоставит возможность перемещать область, разделяющую эти элементы, и изменять таким образом их относительные размеры.

Свойства элемента «Флажок»

В основном, свойства элемента типа «Флажок» совпадают с общими свойствами элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.

Прижать текст влево. По умолчанию текст в поле типа «флажок», выдается справа от отметки [image]. Установка флажка «Прижать текст влево» меняет их местами.

Пропускать при вводе. Если установлен флажок «Пропускать при вводе», то элемент диалога типа «Флажок» будет пропускаться, если переход по элементам диалога выполняется нажатием клавиши Enter.

Свойства элемента «Картинка»

Диалог для редактирования свойств элемента типа «Картинка» содержит закладку «Картинка», работа с которой была описана в п. «Общие свойства элементов диалога» на стр. 11.

Свойства элемента «Таблица значений»

У элемента диалога «Таблица значений» радикально отличается назначение картинки, которую можно указать в закладке «Картинка» палитры свойств этого элемента: картинка является библиотекой пиктограмм и используется для вывода пиктограмм в колонке элемента «Таблица значений».

Картинка, которая будет использоваться в качестве библиотеки пиктограмм, должна представлять собой горизонтальный набор «секций» размером 15 пикселей по высоте и 16 пикселей по ширине: каждая «секция» должна являться отдельной пиктограммой.

Управление выводом пиктограмм осуществляется средствами встроенного языка системы 1С:Предприятие. Описание работы с пиктограммами элемента «Таблица значений» приведено в книге «Описание встроенного языка».

Особенности использования элементов диалога

В этом разделе излагаются особенности использования некоторых типов элементов диалога, а также работа с диалогом в целом.

Работа с элементом типа «Флажок»

Элемент диалога типа «Флажок» может принимать одно из 2-х значений: 1 — если флажок установлен, и 0 — если снят. Это свойство можно использовать для сохранения значения флажка, например, в реквизите документа или справочника, и его последующего восстановления. Для этого в модуле формы должны быть предусмотрены соответствующие команды.

Кроме того, числовые реквизиты документов, справочников, планов счетов, операции, можно связать с реквизитами типа «Флажок».

Такая «связь» устанавливается при вставке числового реквизита в диалог путем включения опции «Редактировать флажком».

При установке подобной связи в диалог помещается не поле ввода числового реквизита, а реквизит типа «Флажок», и редактирование числового реквизита выполняется путем установки или снятия флажка. Числовой реквизит в этом случае может принимать значение 0 или 1, но для сохранения значения никаких дополнительных команд в модуль формы помещать не требуется.

Использование элементов типа «Переключатель»

При вставке элемента «Переключатель» в диалог всегда вставляется только 1 элемент этого типа, однако эти элементы имеет смысл использовать только группами из двух и более элементов.

Создайте необходимое число элементов типа «Переключатель» и разместите их в диалоге в требуемом порядке. Как правило, элементы этого вида размещают по вертикали один под другим или по горизонтали рядом друг с другом. Часто группу таких элементов обводят рамкой, подчеркивая, таким образом, что элементы взаимосвязаны.

Для одного из элементов группы в палитре свойств должен быть установлен флажок «Первый в группе». Как правило, такой флажок устанавливается либо у самого верхнего, либо у первого слева элемента из группы. Этому же элементу должен быть назначен идентификатор.

Затем для элементов необходимо назначить правильный порядок обхода. Необходимо отключить автоматический порядок обхода элементов диалога и установить его вручную: первым должен быть элемент, помеченный как «Первый в группе», затем без пропусков — остальные элементы в группе. Конкретные номера элементов в порядке обхода в данном случае не важны, важно, чтобы они шли подряд.

Если выполнены все описанные выше действия, при работе с диалогом группа элементов «Переключатель» будет вести себя в соответствии со стандартами Windows: в группу элементов можно попасть, нажимая клавишу Tab; внутри группы выбор осуществляется клавишами перемещения курсора.

Выбранный элемент в группе переключателей определяется по значению первого элемента (обращение к элементу выполняется по его идентификатору). Для иллюстрации работы переключателей в нашем примере в диалог вставлен реквизит типа «Текст», в поле «Формула» которого указан идентификатор переключателя (см. рисунок).

Элемент может принимать числовое значение от 0 до числа, равного количеству элементов в группе: 0 означает, что ни один элемент в группе не выбран, 1 — выбран первый элемент (это элемент, помеченный как «Первый в группе»), 2 — выбран второй в группе элемент (в соответствии с заданным порядком обхода), и так далее (см. рисунок).

В диалоге может быть размещено несколько групп элементов типа «Переключатель». Они должны быть организованы по приведенным выше правилам, в этом случае каждая группа будет «работать» независимо.

Работа с элементом типа «Таблица»

Элемент типа «Таблица» используется для доступа к группе реквизитов, входящих в табличную часть элемента данных — журнала, справочника или документа.

По умолчанию таблица создается автоматически и помещается в форму диалога для любых форм списка.

Если объект метаданных типа документ имеет табличную часть, то для вставки в диалог таблицы необходимо вставить хотя бы один реквизит табличной части (см. п. «Создание элементов диалога» на стр. 6). Для документа, не имеющего реквизитов табличной части, вставить элемент диалога типа «Таблица» нельзя.

Составляющие таблицу реквизиты будут представлены в виде колонок с соответствующими заголовками. Для форм списков дополнительно в таблицу помещается служебная графа, она занимает крайнюю левую позицию и не может быть удалена. Информация, которая выводится в этой графе, зависит от контекста использования элемента «Таблица»: в табличной части документа в этой графе выводится номер строки, в журнале документов в этой графе выводятся служебные признаки состояния документа, в справочнике — признак элемента или группы справочника и т. д.

Работа с таблицей при редактировании диалога имеет ряд особенностей.

Вы можете перемещать таблицу по окну диалога, как и всякий другой элемент, и изменять се размеры. Однако таблицу нельзя скопировать, а для форм списков — нельзя удалить.

Если не определен иной порядок, колонки расставляются в соответствии с порядком соответствующих им реквизитов в списке — чем выше реквизит, тем левее расположена предназначенная для него колонка табличной части.

При редактировании диалога некоторые колонки могут быть скрыты за границами таблицы. В этом случае вдоль нижней границы таблицы появится горизонтальная полоса прокрутки. Но в этой ситуации она имеет, скорее, декоративный характер и не может использоваться для вывода на экран невидимых колонок таблицы, в отличие от «нормальных» линеек прокрутки. Чтобы вывести на экран скрытые колонки, используйте кнопки [image] и [image], расположенные у левого и правого конца «декоративной» линейки прокрутки. Когда указатель мыши попадает на кнопки [image] и [image], он принимает вид стрелки, тогда как в других местах табличной части — [image].

В пределах элемента «Таблица» можно работать с составляющими таблицу колонками. Для служебной колонки можно редактировать ее свойства, но ее нельзя удалять и перемещать.

Изменение порядка колонок. Вы можете менять порядок расположения колонок табличной части. Для этого необходимо выделить колонку, щелкнув мышью ее заголовок, и перетащить колонку на новое место.

Вставка колонок. Если элемент «Таблица» используется для создания экранного представления справочника, журнала или документа, имеющего табличную часть, можно расширять состав таблицы, вставляя в нее колонки, соответствующие дополнительным графам журнала, реквизитам справочника или документа. Для этого используется пункт «Графы» меню «Вставить» главного меню программы — при редактировании формы журнала, или пункт «Реквизиты» — при редактировании формы справочника или документа.

Удаление колонок. Для удаления колонки табличной части необходимо выбрать ее, щелкнув мышью по заголовку колонки, и нажать клавишу Del.

Для вставки колонки в табличную часть диалога следует использовать функцию «Реквизиты» из группы функций «Вставить» главного меню программы.

Изменение ширины колонок. Для изменения ширины колонок табличной части необходимо передвигать мышью разделитель между колонками. Однако следует помнить, что если включена опция «Автонастройка ширины колонок», ширина колонок при работе с диалогом будет определяться автоматически.

Редактирование свойств колонок. Большинство свойств той или иной колонки таблицы определяются свойствами связанного с ней реквизита документа, справочника или журнала. Однако, можно установить свойства колонке как элементу диалога. Чтобы вызвать палитру свойств для колонки табличной части, необходимо дважды щелкнуть левой кнопкой мыши на заголовке колонки. Порядок редактирования свойств колонки элемента типа «таблица» см. в п. «Свойства колонки элемента «Таблица» на стр. 18.

Вычисляемые колонки. В табличную часть можно вставить колонку, значение которой будет вычисляться по заданной формуле. Такие колонки называются «вычисляемыми».

Чтобы вставить вычисляемую колонку, выполните следующие действия:

· в меню «Вставить» главного меню программы выберите пункт «Текст»;

· поместите указатель мыши на табличную часть диалога, при этом курсор должен принять форму [image];

· щелкните левой кнопкой мыши.

Новая колонка будет добавлена справа от существующих колонок. Затем ее можно переместить в нужное место и отредактировать ее свойства.

Вызов диалога в модальном режиме

Модальный режим не дает пользователю возможности перейти к другом окну программы, не закончив работы с диалогом, открытым в этом режиме. В модальном режиме, например, в системе 1С:Предприятие выдаются сообщения и запросы: пока пользователь не ответит на запрос или не закроет сообщение, продолжать работу с системой нельзя.

Конфигуратор позволяет задавать возможность открывать форму объекта метаданных в модальном режиме. Такой режим устанавливается при редактировании пользовательских меню: в палитре свойств элемента пользовательского меню, в закладке «Параметры» присутствует флажок «Открывать форму модально». При установке этого флажка форма, которая открывается редактируемым элементом меню, будет открываться в модальном режиме.

Модальный режим открытия формы можно также задать при помощи метода встроенного языка системы 1С:Предприятие ОткрытьФормуМодально().

Проверка диалога

Вы можете просмотреть, как будет выглядеть разработанный вами диалог при его использовании. Для перехода к проверке следует выбрать функцию «Проверить» из меню «Диалог» главного меню программы.

На экран будет вызвано окно проверки, имитирующее работу созданного диалога. Для выхода из режима проверки следует закрыть это окно кнопкой закрытия окна «X».


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 25

Глава 25.
Редактор текстов

  • Редактирование модулей
    • Выделение цветом синтаксических конструкций
    • Форматирование модуля
    • Переход по процедурам и функциям модуля
    • Синтаксический контроль модуля
    • Синтаксический контроль запросов
    • Вызов Отладчика
  • Конструктор запросов
    • Вызов Конструктора запросов
    • Работа с Конструктором запросов
    • Выход из Конструктора запросов
  • Конструктор бухгалтерских запросов
    • Вызов Конструктора бухгалтерских запросов
    • Выбор вида отчета
    • Схема «Оборотка»
  • Конструктор формирования операции
  • Конструктор движений регистров
  • Редактирование текстовых документов
    • Создание или открытие текстового документа
  • Подокна в редакторе текстов
  • Ввод и редактирование текста
  • Поиск и замена
  • Сохранение текстового документа
  • Печать текстового документа

Текстовый редактор системы 1С:Предприятие предоставляет пользователю все основные функции, необходимые при редактировании текстов. При работе с текстовым редактором доступны операции с блоками текста, функции поиска и замены, цветовое выделение синтаксических элементов программных модулей. Так как работа с любым текстовым редактором в системе MS Windows осуществляется примерно одинаковым образом, в данной главе сначала будет дано описание специфических возможностей редактора текстов системы 1С:Предприятие, а затем изложены основные приемы по редактированию текстов.

В системе 1С:Предприятие текстовый редактор используется в двух режимах: для редактирования текстовых документов и — как составная часть редактора форм — для редактирования текстов модулей.

Редактирование модулей

Редактирование модулей чаще всего выполняется в процессе создания формы объекта метаданных, а также при разработке модулей документов и расчетов. В этом случае текстовый редактор выступает как составная часть редактора форм и вызывается щелчком мыши на закладке «Модуль» в окне редактора форм.

Для редактирования глобального модуля текстовый редактор вызывается в виде отдельного окна, вне редактора форм. Для этого необходимо открыть окно «Конфигурация — Метаданные» и в меню «Действия» главного меню Конфигуратора выбрать пункт «Глобальный модуль».

Процесс редактирования текста программного модуля ничем не отличается от процесса редактирования текстовых документов — вы можете использовать все возможности редактора текстов, описанные ниже в п. «Ввод и редактирование текста».

В этом разделе будут описаны специфические режимы редактора текстов, которые доступны при редактировании модулей.

Выделение цветом синтаксических конструкций

Для удобства редактирования текстов модулей текстовый редактор имеет функцию выделения цветом элементов встроенного языка системы 1С:Предприятие — ключевых слов, констант различных типов, операторов, комментариев и других. Цвета, которыми будут выделяться разные типы синтаксических конструкций, можно установить в режиме «Настройка параметров системы» (пункт «Параметры» меню «Сервис» главного меню Конфигуратора).

В общем случае, когда текстовый редактор вызывается для редактирования текста модуля, эта функция включается автоматически. Однако в отладочных целях текст модуля может быть расположен во внешнем текстовом файле. Тогда при открытии такого файла Конфигуратор не распознает модуль и будет считать его обычным текстовым документом. В этом случае при редактировании текста будут недоступны выделение цветом синтаксических конструкций и автоматическое форматирование текста модуля. Чтобы указать Конфигуратору, что редактируется модуль, а не текстовый документ, служит пункт «Текст модуля» в меню «Текст» главного меню программы, выполняющий роль переключателя.

Когда он включен (слева от слов «Текст модуля» в меню появляется отметка [image]), текстовый редактор считает закруженный в него текст текстом модуля и выделяет цветом найденные синтаксические конструкции.

Если этот режим включен при редактировании обычного текстового документа, для вывода текста будет также использоваться шрифт, установленный для текстов модулей в режиме «Настройка параметров системы» (меню «Сервис» главного меню Конфигуратора).

Настройка параметров системы 1С:Предприятие позволяет отключить режим выделения цветом синтаксических конструкций, тогда выбор пункта «Текст модуля» не включит выделение цветом синтаксических конструкций модуля, а будет использовать только установки шрифта модуля и шага табуляции.

Если режим выделения цветом синтаксических конструкций выключен, для вывода текста используются цвета операционной системы.

Кроме того, в режиме «Настройка параметров системы» можно включить признак «Загружать текст как модуль», тогда любой текстовый документ, открываемый в Конфигураторе, будет автоматически считаться текстом модуля.

Форматирование модуля

Редактор текстов системы 1С:Предприятие включает ряд режим, облегчающих разработку модулей

Форматирование синтаксических конструкций

Хорошим стилем написания модулей считается использование синтаксического отступа — выделения лидирующими пробелами управляющих конструкций встроенного языка системы 1С:Предприятие, например так, как это показано в приведенном ниже фрагменте модуля.

Процедура Сформировать()

. . .

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("Сформировать") ;

// Заполнение полей "Заголовок"

Таб.ВывестиСекцию("Заголовок") ;

Пока Запрос.Группировка("Товар") = 1 Цикл

// Заполнение попей Товар

Таб.ВывестиСекцию("Товар");

КонецЦикла;

// Заполнение полей "Итого"

Таб.ВывестиСекцию("Итого");

// Вывод заполненной формы

Таб.Опции(1, 0, 1, 0) ;

Таб.Показать("Сформировать", "");

КонецПроцедуры

В данном фрагменте строки, расположенные внутри структурных операторов Если...Тогда...КонецЕсли и Пока...Цикл...КонецЦикла, смещены вправо, чтобы подчеркнуть их «вложенность». Текст модуля, отформатированный с использованием синтаксического отступа, удобнее в восприятии и проще в отладке.

Текстовый редактор системы 1С:Предприятие предоставляет функции автоматического форматирования управляющих конструкций встроенного языка. В режиме установки параметров системы (меню «Сервис» главного меню Конфигуратора, закладка «Модули») можно выбрать один из двух видов отступа.

Синтаксический отступ выполняет автоматическое форматирование текста модуля, смещая вправо текст, расположенный внутри управляющих конструкций типа Если...Тогда...КонецЕсли, Пока...Цикл...КонецЦикла и подобных. Смещение выполняется за счет добавления в начало строк необходимого количества знаков табуляции.

«Обыкновенный» отступ автоматически выравнивает текст строки по левой границе предыдущей строки.

Если автоотступ отключен, никаких дополнительных символов в текст добавляться не будет.

Кроме форматирования текста модуля в процессе ввода, можно также автоматически отформатировать уже введенный текст. Для этого необходимо выделить блок текста, который требуется отформатировать (о выделении блока текста см. п. «Выделение текста» на стр. 16), и выбрать пункт «Форматировать» из подменю «Блок» меню «Текст» главного меню Конфигуратора.

Блок текста также можно целиком сдвигать вправо или влево с шагом табуляции. Для этого необходимо выделить блок текста и выбрать команду «Сдвинуть вправо» («Сдвинуть влево») из подменю «Блок» меню «Текст» главного меню Конфигуратора.

Текстовый редактор системы 1С:Преднриятис осуществляет автоматическое удаление пробелов на концах строк. Это выполняется при записи модуля.

Вставка/удаление признака комментария

При отладке модулей зачастую бывает необходимо на время «отключить» некоторые строки модуля, чтобы они не исполнялись при работе системы. Обычно это выполняется путем превращения таких строк в комментарии — добавлением перед ними признака комментария «//». Позднее, чтобы опять «включить» закомментированные строки в работу, признак комментария удаляется.

Для выключения (и последующего включения) больших фрагментов модуля удобно использовать режим автоматической установки признаков комментария у всех строк выделенного блока.

Для этого следует выделить блок текста и выбрать пункт «Добавить комментарий» («Удалить комментарий») из подменю «Блок» меню «Текст» главного меню Конфигуратора.

При удалении комментария, если перед строкой установлено несколько признаков комментария, удаляется только один.

Переход по процедурам и функциям модуля

При значительном количестве имеющихся в модуле описаний процедур и функции удобно использовать режим поиска процедур, который предоставляет редактор текстов системы 1С:Прсдприятие.

Если воспользоваться пунктом «Процедуры и функции модуля» из меню «Действия» главного меню Конфигуратора, на экран будет выдан диалог, содержащий список всех процедур и функции редактируемого модуля.

Имена процедур и функций в списке выдаются в порядке их расположения в модуле. Если включена опция «Сортировка», список будет отсортирован по алфавиту.

Для перехода к нужной процедуре или функции необходимо выделить ее имя в списке и нажать кнопку «Перейти».

Синтаксический контроль модуля

Редактируемый модуль может быть проверен на правильность использования синтаксических конструкций встроенного языка.

Для выполнения синтаксического контроля модуля необходимо воспользоваться пунктом «Синтаксический контроль» из меню «Действия» главного меню Конфигуратора. При синтаксическом контроле неглобального модуля сначала будет выполнен контроль глобального модуля, а затем — редактируемого модуля.

При наличии ошибок в модуле их список будет выдан в окне сообщений с указанием номеров строк модуля, в которых обнаружены ошибки.

Для перехода к строке модуля, вызвавшей ошибку, следует дважды щелкнуть мышью по сообщению об ошибке в окне сообщений. Если модуль, содержащий ошибку, закрыт, он будет открыт автоматически.

Если ошибки не обнаружены, в окно сообщений будет выдано сообщение об отсутствии ошибок в модуле.

В режиме настройки параметров Конфигуратора (пункт «Параметры» меню «Сервис» главного меню Конфигуратора) можно включить режим автоматической проверки модуля. В этом случае, если модуль был изменен, при закрытии окна модуля или при сохранении конфигурации в целом будет выполняться синтаксический контроль модуля.

Режим автоматической проверки удобно использовать, когда производится отладка какого-либо элемента конфигурации, и часто выполняется запуск системы 1С:Предприятие при помощи пункта «1С:Предприятие» из меню «Сервис» главного меню Конфигуратора.

Для синтаксического контроля всех модулей конфигурации за раз следует выбрать пункт «Полный синтаксический контроль» из меню «Конфигурация» главного меню Конфигуратора. Сообщения о найденных ошибках будут выдаваться в окно сообщений. В дальнейшем к строкам модулей с ошибками можно переходить двойным щелчком мыши, как это описано выше.

В процессе исправления ошибок в модулях можно получить подсказку по встроенному языку, вызвав Синтакс-Помощник и найдя в нем описание нужного элемента встроенного языка (см. п. «Синтакс-Помощник», стр. Ошибка! Закладка не определена.).

Подсказку по конкретному элементу языка (оператору, процедуре функции, атрибуту, методу) можно получить, если поместить курсор в модуле па этот элемент языка и нажать клавиши Ctrl+F1. В Синтакс-Помощнике будет выдано описание выбранного элемента встроенного языка.

Синтаксический контроль запросов

В редактируемом модуле отдельно может быть выполнен синтаксический контроль запросов (см. книгу «1С:Преднриятие. Описание встроенного языка»).

Для выполнения синтаксического контроля запросов необходимо воспользоваться пунктом «Синтаксический контроль запросов» из меню «Действия» главного меню Конфигуратора.

После выбора этого пункта на экран будет выдан список существующих в редактируемом модуле запросов.

В этом списке следует выделить имя запроса и нажать кнопку «ОК» для выполнения контроля.

Поиск существующих в модуле запросов производится по символьной строке вида

//{{ЗАПРОС(<имя_запроса>)

поэтому рекомендуется оставлять эти строки в тексте запроса, полученном при помощи Конструктора запросов, или добавлять их в собственноручно составленный запрос.

При обнаружении ошибок в выбранном запросе курсор будет установлен на первую строку запроса, а в окне сообщений будет выдан список ошибок с указанием номеров строк запроса (не модуля!), в которых эти ошибки обнаружены. Номера строк отсчитываются от первой строки запроса.

Вызов Отладчика

Для вызова Отладчика и загрузки в него текста редактируемого модуля служит пункт «Открыть в отладчике» из меню «Действия» главного меню Конфигуратора.

При выполнении этой команды будет запущен Отладчик (если он не был запущен ранее) и в Отладчике будет автоматически активизировано окно с текстом редактируемого модуля.

Подробнее о работе Отладчика можно узнать в главе «Отладчик».

Конструктор запросов

Конструктор запросов — это вспомогательный инструмент, облегчающий разработку исходных текстов программных модулей, в которых используется механизм запросов системы 1С:Предприятие. Конструктор запросов позволяет сформировать текст нового запроса в полуавтоматическом режиме, последовательно заполняя выдаваемые на экран диалоги. Таким же образом можно отредактировать тексты уже существующих запросов редактируемого модуля.

Результатом работы Конструктора запросов является сгенерированный текст на встроенном языке системы 1С:Предприятие. Конструктор запросов даст возможность генерировать как текст запроса, так и текст самой процедуры, использующей этот запрос, и таблицы визуализации результатов запроса.

Вызов Конструктора запросов

Конструктор запросов может быть вызван при редактировании текста программного модуля. Если предполагается создание нового запроса, то перед вызовом Конструктора запросов курсор желательно поместить в то место в тексте модуля, куда будет помещен сконструированный запрос.

Для вызова Конструктора запросов выберите в меню «Действия» главного меню Конфигуратора пункт «Запрос...» или нажмите кнопку [image] на панели инструментов «Конструкторы».

После запуска Конструктор запросов выдает на экран список запросов, существующих в редактируемом модуле. В этом списке следует выбрать имя существующего запроса для его редактирования или строку «Новый запрос» для создания нового запроса. После этого следует нажать кнопку «ОК» для продолжения конструирования.

Если создается новый запрос, на экран будет выдан диалог для ввода имени нового запроса.

Работа с Конструктором запросов

В процессе работы Конструктор запросов последовательно выдает на экран диалоги, соответствующие секциям запроса. В этих диалогах следует заполнять поля, необходимые для формирования секции.

В нижней части диалогов расположены кнопки, которые служат для управления Конструктором запросов.

Кнопка «Далее>» предназначена для перехода к следующему диалогу. Она будет доступна, если в текущем диалоге заполнены все необходимые поля.

Кнопка «<Назад» позволяет вернуться к предыдущему диалогу. Таким образом можно редактировать уже созданные секции.

Кнопка «Отмена» позволяет в любой момент отказаться от работы с Конструктором запросов.

Кнопка «Помощь» вызывает па экран подсказку по системе 1С:Предприятие.

Формирование секции «Период»

Диалог «Конструктор Запросов: Период» служит для формирования секции описания интервала запроса и установки критерия обработки документов. Управляющие элементы этого диалога позволяют выбрать в качестве границ интервала конкретную дату, выражение типа «дата» или точку актуальности итогов.

Период будет выбираться в диалоге формы. Этот флажок доступен, если запрос создается в модуле формы объекта метаданных. Если флажок установлен, в результате работы Конструктора Запросов в диалоге формы будут созданы управляющие элементы для ввода конечной и начальной даты периода запроса.

Период. Флажок «Период» определяет, будет ли при формировании секции запроса использоваться ключевое слово Период. Этот флажок также влияет па работу запроса при обращении к журналам расчетов.

с, по. При установке флажка периода становятся доступными управляющие элементы в группах «с» и «по». В этих группах можно выбрать способ задания периода.

ОбрабатыватьДокументы. Назначает условие обработки документов в запросе по признаку проведенности. Из выдаваемого на экран списка необходимо выбрать, какие документы будут обрабатываться: проведенные, непроведенные или все.

Обрабатывать. Назначает условие обработки документов в запросе по признаку пометки на удаление. Из выдаваемого на экран списка необходимо выбрать, какие документы будут обрабатываться в запросе: помеченные на удаление, не помеченные на удаление или все.

Без итогов. Если уставлен этот флажок, в запросе не будут накапливаться итоги по группировкам.

Формирование секции «Внутренние переменные»

Диалог «Конструктор Запросов: Переменные» позволяет сформировать секцию описания внутренних переменных запроса. Текущее состояние описаний внутренних переменных запроса показывается в нижнем окне диалога. Вы можете добавить к этому списку новую внутреннюю переменную, либо выбрать в списке строку для редактирования существующей переменной.

Добавление внутренней переменной. Чтобы добавить новую внутреннюю переменную, необходимо нажать кнопку «Добавить переменную» и в поле «Имя переменной» ввести имя создаваемой переменной. Имя новой переменной будет внесено в список существующих внутренних переменных.

Выбор вариантов описания переменной. Окна, расположенные под полем «Имя переменной», служат для выбора вариантов описания внутренней переменной. Перед началом формирования вариантов описания переменной следует выбрать ее имя в списке существующих внутренних переменных запроса.

В окне справа в виде дерева выдается список справочников, документов, планов счетов, проводок, регистров и журналов расчетов, измерения, ресурсы или реквизиты которых могут быть использованы для формирования значения внутренней переменной. На самом нижнем уровне дерева находятся наименования измерений, ресурсов и реквизитов перечисленных выше объектов метаданных, которые можно выбрать для описания внутренней переменной.

Окно слева в общем случае содержит список реквизитов справочников, документов, бухгалтерских счетов, проводки, журналов расчетов, измерений и ресурсов регистров, которые будут использоваться для формирования значения внутренней переменой. При создании новой переменной список будет пуст.

Выбор измерения, ресурса или реквизита для формирования описания внутренней переменой выполняется двойным щелчком мыши па наименовании нужного измерения, ресурса или реквизита в правом окне.

Выбранный реквизит будет помещен в список выбранных реквизитов (измерений, ресурсов), а в нижнем окне диалога будет сформировано описание переменной.

Удаление наименования реквизита (измерения, ресурса) из списка выбранных реквизитов (измерений, ресурсов) осуществляется двойным щелчком мыши на наименовании реквизита (измерения, ресурса)в левом окне.

Наименование реквизита (измерения, ресурса) будет удалено из списка выбранных реквизитов (измерений, ресурсов) и соответствующим образом будет отредактирована строка в списке внутренних переменных.

Удаление внутренней переменной. Для удаления внутренней переменной из запроса следует выбрать се наименование в списке существующих внутренних переменных и нажать кнопку «Удалить переменную».

Формирование секции «Функции»

Диалог «Конструктор Запросов: Функции» позволяет сформировать секцию функций в запросе. Текущее состояние списка функций запроса показывается в нижнем окне диалога. Вы можете добавить к этому списку новую функцию, либо выбрать в списке строку для редактирования существующей функции.

Добавление функции. Чтобы добавить новую функцию, необходимо нажать кнопку «Добавить функцию» и в поле «Функция» ввести имя переменной, по которому можно будет обращаться к значению вычисленной функции.

Управляющие элементы диалога, расположенные под полем «Функция», служат для выбора типа функции и ее параметров.

Нажатие кнопки [image] в левом поле открывает для выбора список встроенных функций Языка Запросов. Из этого списка следует выбрать имя функции, которая будет вычисляться при выполнении запроса.

Нажатие кнопки [image] в правом поле открывает для выбора список возможных параметров функции, выбранной в левом поле. Из этого списка необходимо выбрать конкретный параметр.

Замечание. Список функций, выдаваемый в левом поле, изменяется в зависимости от типа параметра функции, выбранного в правом списке.

Поле «Когда» позволяет указать условие вычисления функции, для этого необходимо указать в этом поле логическое выражение на встроенном языке системы 1С:Предприятие и поставить знак [image] в рамке слева от слова «Когда».

Удаление функции. Для удаления функции в списке существующих функций выберите функцию, которую необходимо удалить. и нажмите кнопку «Удалить функцию».

Формирование секции «Группировки»

Диалог «Конструктор Запросов: Группировки» позволяет сформировать секцию группировок информации в запросе.

Текущее состояние списка группировок запроса показывается в нижнем окне диалога. Вы можете добавить к этому списку новую группировку, либо выбрать в списке строку для редактирования существующей группировки.

Добавление группировки. Чтобы добавить новую группировку, необходимо нажать кнопку «Добавить группировку».

В поле «Группировка» должно быть указано имя объявленной ранее внутренней переменной, по значению которой будет устанавливаться порядок выборки, или имя одной из встроенных предопределенных группировок Языка Запросов. Для этого следует нажать кнопку [image] и выбрать из списка имя переменной или предопределенной группировки.

Формирование критерия упорядочивания. Для выбора критериев упорядочивания информации в группировке используются управляющие элементы группы «Упорядочить по». В правом окне этой группы выдается для выбора список возможных критериев упорядочивания, а в окне слева — список выбранных критериев. Список возможных критериев упорядочивания выдается только для некоторых типов группировок.

Выбор критерия упорядочивания выполняется двойным щелчком мыши на наименовании критерия в списке возможных критериев (правое окно). Критерий будет помещен в список выбранных критериев, а реквизиты группировки в списке группировок будут соответствующим образом отредактированы.

Удаление критерия из списка выбранных критериев упорядочивания выполняется двойным щелчком мыши на наименовании критерия в списке выбранных критериев. Критерий будет удален из списка выбранных критериев, а реквизиты группировки в списке группировок будут соответствующим образом отредактированы.

Опция «Без групп», если она включена, добавляет в параметры группировки ключевое слово БезГрупп.

Опция «Все» добавляет в параметры группировки ключевое слово Все.

Опция «ВошедшиеВЗапрос» становится доступной, если включена опция «Все», и добавляет в параметры группировки ключевое слово ВошедшиеВЗапрос, которое уточняет действие ключевого слова Все.

Удаление группировки. Для удаления группировки в списке существующих группировок выберите группировку, которую необходимо удалить, и нажмите кнопку «Удалить группировку».

Формирование секции «Условия»

Диалог «Конструктор Запросов: Условия» позволяет сформировать секцию условий отбора информации в запросе. В окне диалога выдается текущий набор условий.

Для добавления условия необходимо нажать кнопку «Добавить условие» и в поле «Условие» ввести логическое выражение в соответствии с правилами встроенного языка системы 1С:Предприятие.

Если условие представляет собой простейшую логическую конструкцию, можно установить флажок «Элементарное условие» и «набрать» логическое выражение, используя управляющие элементы в верхней части диалога.

Для редактирования условия необходимо выбрать его в списке и отредактировать логическое выражение либо в поле «Условие», либо в полях в верхней части диалога.

Для удаления условия необходимо выбрать его в списке и нажать клавишу «Удалить условие».

Формирование текста запроса

Диалог «Конструктор Запросов: Текст запроса» позволяет просмотреть сконструированный запрос, при необходимости — отредактировать его, и сформировать текст запроса на встроенном языке системы 1С:Предприятие.

При нажатии кнопки «Готово» автоматически генерируется текст запроса, который встраивается в редактируемый программный модуль: в текущую позицию курсора — если создается новый запрос; если редактируется существующий — то по месту его положения.

Генерировать процедуру. Если установлен этот флажок, при нажатии кнопки «Готово» автоматически генерируется полный исходный текст процедуры на встроенном языке системы 1С:Предприятие, которая объявляет, формирует и выполняет сконструированный запрос. Исходный текст сгенерированной процедуры встраивается в редактируемый программный модуль после последней процедуры.

Генерировать таблицу. Если установлен флажок «Генерировать таблицу», в форму объекта метаданных будет добавлена таблица, а в модуль форм помещен алгоритм обработки таблицы для визуализации результатов выполнения сконструированного запроса.

Удалить существующую таблицу. Если установлен этот флажок, содержимое существующей таблицы для визуализации результатов запроса будет очищено и сформировано заново.

Если флажок снят, новые данные будут добавлены в существующую таблицу.

Вызов процедуры. Группа «Вызов процедуры» позволяет задать порядок вызова процедуры формирования отчета:

«Не вставлять» диалог формы объекта метаданных не будет содержать кнопки для вызова процедуры, выполняющей сконструированный запрос;

«Новая кнопка» в диалоге появится новая кнопка, надпись на ней по умолчанию совпадает с именем процедуры, определенным при запуске Конструктора;

«Выбрать кнопку» из выпадающего списка можно выбрать название одной из кнопок, уже существующих в диалоге формы объекта метаданных.

Выход из Конструктора запросов

Прекратить работу с Конструктором запросов в любой момент можно, нажав кнопку «Отмена» в нижней части диалога.

После генерации исходного текста для окончания работы с Конструктором запросов следует нажать кнопку «Готово».

Конструктор бухгалтерских запросов

Назначение Конструктора бухгалтерских запросов — автоматическое создание отчета или алгоритма обработки для получения бухгалтерских итогов в одном из нескольких возможных разрезов.

В результате работы Конструктора в модуле формы объекта метаданных будет создана процедура бухгалтерского запроса. В диалоге формы, появится кнопка вызова процедуры, а также элементы для выбора различных параметров запроса. Если при работе с конструктором сделать соответствующие установки, будет создан также шаблон итоговой таблицы (в виде табличного документа на отдельной закладке формы), по которому будет строиться выходная таблица (печатная форма) в 1С:Предприятии.

Вызов Конструктора бухгалтерских запросов

Конструктор бухгалтерских запросов можно вызвать при редактировании формы объекта метаданных, выбрав пункт «Бухгалтерский запрос...» из меню «Конструкторы» главного меню программы или нажав кнопку [image] на панели инструментов «Конструкторы».

При запуске Конструктора бухгалтерских запросов появляется диалог «Новая процедура», предлагающий ввести имя процедуры, которая будет выполнять построение печатной формы. По умолчанию это имя «Сформировать».

Независимо от этого, можно ввести любое имя процедуры, не нарушающее правил встроенного языка (любая последовательность букв, цифр и знаков подчеркивания «_», начинающаяся с буквы или знака подчеркивания «_»). При нарушении правил (например, «Сформировать отчет» — с пробелом) будет выдано сообщение «Неверное имя процедуры Сформировать отчет». Если введенное имя процедуры совпадает с именем одной из процедур, уже присутствующих в модуле формы, будет выдано такое же сообщение.

Для одного объекта метаданных можно создать несколько бухгалтерских запросов.

В том случае, если процедура запроса уже создавалась раньше, при запуске Конструктора сначала появится окно «Список найденных процедур». В списке можно снова выбрать имя ранее созданной конструктором процедуры («Сформировать» или другое) и отредактировать ранее созданную процедуру, или нажать «ОК» и ввести другое имя для создания еще одной процедуры (опять появится вышеописанное окно «Новая процедура»).

Поиск существующих в модуле процедур бухгалтерского запроса производится по символьной строке вида

//{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать)

поэтому рекомендуется оставлять эти строки в тексте процедуры, полученном при помощи Конструктора.

Выбор вида отчета

Если совпадения имен не произошло, при нажатии «ОК» откроется диалог «Конструктор бухгалтерских запросов», в котором нужно выбрать принципиальную схему обращения к бухгалтерским итогам:

· оборотка;

· анализ;

· карточка;

· журнал-ордер;

· шахматка;

· произвольная;

· отдельные значения итогов.

При выборе каждой из схем Конструктор предъявляет пример итоговой печатной формы и снабжает его пояснительным текстом о ее назначении и принципе построения.

Схема «Оборотка»

Схема применяется для получения остатков и оборотов по счетам, валютам, объектам аналитического учета с различной степенью детализации. При построении отчета его строки будут содержать объекты учета. В колонках отчета будут выводиться бухгалтерские итоги по этим объектам.

Период. После выбора принципиальной схемы обращения к бухгалтерским итогам и нажатия на кнопку «Далее>» появляется диалог «Конструктор бухгалтерских запросов: Период».

В этом диалоге нужно указать начало и конец периода, за который будет строится отчет.

Период будет выбираться в диалоге формы, если установить соответствующий флажок. Если флажок не устанавливать, период нужно задать.

В качестве начала или конца периода можно выбрать одну из функций встроенного языка, возвращающих: дату начала (или дату конца) периода бухгалтерских итогов, текущую дату, дату начала текущего месяца, квартала или года, конкретную дату или выражение типа «Дата».

Можно указать только начало или только конец периода, если требуются только итоги на начало или конец периода. Для этого нужно установить один из соответствующих флажков.

Счет. Следующий диалог позволяет ввести ограничение получаемых итогов по счетам и субконто.

Можно получать итоги по всем счетам, выбирать счет в диалоге формы или получать итоги по счетам, указанным в данном диалоге. Счета можно указать, перечислив их коды через запятую, например, 10.1, 10.2, 10.3, выбрать двойным щелчком левой кнопки мыши в списке, открывающемся при нажатии кнопки «...» справа от поля ввода (этим способом можно указать только один счет), или поместив в это поле выражение, например.

Можно ограничить получаемые итоги конкретными видами субконто, например, «Материалы», «Контрагенты». Строчки в списке субконто создаются кнопкой «Добавить». Количество возможных строк списка определяется ограничением на количество субконто, установленным в свойствах планов счетов (обычно - три). При исчерпании этого количества кнопка «Добавить» делается недоступной. Можно с помощью кнопки «Удалить» стереть выбранную строку списка, тогда станет возможным ввод новой строки кнопкой «Добавить».

Вид субконто можно ввести в поле ввода «Вид» или выбрать двойным щелчком левой кнопки мыши в списке, открывающемся при нажатии кнопки «…» справа от поля ввода. Список видов субконто зависит от выбранных счетов. Установив ограничение по виду субконто, можно установить для него флажок «Выбор в диалоге». Тогда в диалоге объекта метаданных появится элемент для выбора, например, конкретного контрагента, по которому будут получены итоги.

Отборы. Следующий диалог, «Конструктор бухгалтерских итогов: Отборы», позволяет ввести ограничения по валюте, разделителю учета и плану счетов.

Для валюты имеется выбор: получать итоги по всем валютам, назначать валюту в диалоге формы элемента метаданных (при выборе этого варианта там будет создан элемент для выбора валюты) или указать выражение для конкретной валюты. Те же варианты предоставлены для разделителя учета. План счетов можно выбрать в списке или также перенести его выбор в диалог формы.

Разрезы. После введения параметров отбора следует диалог, в котором происходит определение, в разрезе каких объектов получать бухгалтерские итоги.

Для схемы «Оборотка» этот диалог называется «Конструктор бухгалтерских итогов: Оборотка».

С помощью кнопки «Добавить» открывается список «Строки» и создаются строки списка объектов. В соответствии с объектом, выбираемым в списке «Строки», появляются дополнительные элементы интерфейса, помогающие сформировать строку требуемого типа. Так, для строки «Счет» появляется флажок «В разрезе субсчетов», для строки «Период» - список для выбора величины периода. Для строки «Валюта» не появляется никаких дополнительных элементов. При выборе строки «Субконто» открывается новое диалоговое окно «Выбор вида субконто».

В нем можно переадресовать выбор вида субконто в диалог формы, записать выражение для него, определить его как первый вид субконто выбранного счета (при дальнейшем выборе - как второй или третий) или указать конкретный вид субконто, выбрав его в списке. Наконец, можно дополнительно установить флажок «По группам», действующий на субконто, организованные в виде иерархического списка.

Объекты, выбранные для получения в их разрезе бухгалтерских итогов, располагаются в списке диалога «Конструктор бухгалтерских итогов: Оборотка» в том порядке, в каком они выбирались. В данном случае порядок расположения в списке играет большую роль, поскольку группировка итогов будет происходить с вложением, определяемым именно этим расположением. Верхним строкам списка соответствуют старшие уровень группировки, нижним — младшие. Для изменения положения объекта в списке нужно поместить на него выделение и воспользоваться кнопками «Вверх» и «Вниз».

После этого диалога следует диалог, завершающий работу конструктора (см. последний пункт раздела).

Схема «Анализ»

Схема применяется для получения остатков и оборотов по счетам, валютам, объектам аналитического учета, а также данных об оборотах этих объектов с корреспондирующими объектами (счетами, объектами аналитического учета). При построении отчета его строки будут содержать объекты учета и бухгалтерские итоги по каждому из них, а также данные об оборотах с корреспондирующими объектами.

Период. Диалог «...Период» для определения начала и конца периода, по которому строится отчет, выглядит так же, как для схемы «Оборотка», по возможности назначить вывод итогов только на начало или только на конец периода в схеме «Анализ» нет.

Счет. Диалог «...Счет», позволяющий ввести ограничение получаемых итогов по счетам и субконто, такой же, как для схемы «Оборотка». Однако для схемы «Анализ» он вызывается последовательно два раза. Первый — для введения ограничений получения итогов по счетам и субконто, как и для оборотки, второй — для введения ограничений получения итогов по корреспондирующим счетам и субконто.

Отборы. Диалог «...Отборы», позволяющий ввести ограничения по валюте, разделителю учета и плану счетов, такой же, как для схемы «Оборотка».

Разрезы. Для схемы «Анализ» диалог определения, в разрезе каких объектов получать бухгалтерские итоги, называется «Конструктор бухгалтерских итогов: Анализ».

Он функционирует точно так же, как для оборотки, но имеет два списка: «Строки» и «Строки по корреспонденциям». Группировка строк в отчете производится таким образом, что счета проводок и субконто этих счетов (а также валюта и период — данные, относящиеся ко всей проводке) образуют группы старшего уровня, а корреспондирующие счета и их субконто — вложенные группы.

Кроме того, можно установить флажок «Данные по количеству» и/или флажок «Данные по валюте». (Проводка содержит данные по сумме, и может содержать данные по количеству и валютной сумме. Данные по сумме отбираются запросом из проводок всегда, а данные по количеству и по валюте - если установить флажки).

После этого диалога следует диалог, завершающий работу конструктора (см. последний пункт раздела).

Схема «Карточка»

Схема применяется для получения данных обо всех проводках по некоторым объектам учета (счета, валютам, объектам аналитики). При построении отчета его строки будут содержать информацию о конкретных проводках. Кроме того, будут выводиться итоги за период и остатки после каждой проводки.

Период. Диалог «...Период» для определения начала и конца периода, по которому строится отчет, выглядит так же, как для схемы «Оборотка», но возможности назначить вывод итогов только на начало или только на конец периода в схеме «Карточка» нет.

Счет. Диалог «...Счет», позволяющий ввести ограничение получаемых итогов по счетам и субконто, такой же, как для схемы «Оборотка». Однако для схемы «Карточка» он вызывается последовательно два раза. Первый — для введения ограничений получения итогов по счетам и субконто, как и для оборотки, второй - для введения ограничений получения итогов по корреспондирующим счетам и субконто.

Отборы. Диалог «...Отборы», позволяющий ввести ограничения по валюте, разделителю учета и плану счетов, такой же, как для схемы «Оборотка».

После диалога «...Отборы» следует диалог, завершающий работу конструктора (см. последний пункт раздела).

Схема «Журнал-ордер»

Схема применяется для создания сложных отчетов по различным объектам учета (счетам, валютам, объектам аналитики). Данные об объектах выводятся в строках отчета. По каждому объекту могут выводиться остатки и обороты. В колонках отчета выводятся данные об оборотах этих объектов с корреспондирующими объектами (счетами, объектами аналитики). Дебетовые и кредитовые корреспондирующие обороты могут выводиться отдельно.

Период. Диалог «...Период» служит для определения начала и конца периода, по которому строится отчет, выглядит так же, как для схемы «Оборотка», но возможности назначить вывод итогов только на начало или только на конец периода в схеме «Журнал-ордер» нет.

Счет. Диалог «...Счет», позволяющий ввести ограничение получаемых итогов по счетам и субконто, такой же, как для схемы «Оборотка».

Отборы. Диалог «...Отборы», позволяющий ввести ограничения по валюте, разделителю учета и плану счетов, такой же, как для схемы «Оборотка».

Разрезы. Для схемы «Журнал-ордер» этот диалог функционирует так же, как для схемы «Анализ», только второй список составляется не для строк, а для столбцов, и набор дополнительных установок другой.

Кроме описанных для схемы «Анализ», есть еще флажки «Данные по дебету», «Данные по кредиту» и «Дт/Кт раздельно». Наличие первых двух позволяет выводить данные только по дебету или только по кредиту. Третий определяет группировку колонок. Если он установлен, сначала следуют колонки с данными по дебету по всем корреспондирующим счетам, с подведением итогов, затем данные по кредиту, итоги, и, наконец, итоговые обороты. Если флажок «Дт/Кт раздельно» не установлен, по каждому корреспондирующему счету будут приведены дебет, кредит и обороты, и в конце - итоги по оборотам.

После этого диалога следует диалог, завершающий работу конструктора (см. последний пункт раздела).

Схема «Шахматка»

Схема применяется для создания сложных отчетов по остаткам, оборотам и корреспонденциям между объектами, оформленных в виде прямоугольной таблицы. В построенном отчете одни виды объектов будут располагаться по строкам, другие по колонкам, а на пересечении будут выводиться бухгалтерские итоги.

Период. Диалог «...Период» для определения начала и конца периода, по которому строится отчет, функционирует так же, как для схемы «Оборотка».

Счет. Диалог «...Счет», позволяющий ввести ограничение получаемых итогов по счетам и субконто, такой же, как для схемы «Оборотка». Однако для схемы «Шахматка» он вызывается последовательно два раза. Первый - для введения ограничений получения итогов по счетам и субконто, как и для оборотки, второй - для введения ограничений получения итогов по корреспондирующим счетам и субконто.

Отборы. Диалог «...Отборы», позволяющий ввести ограничения по валюте, разделителю учета и плану счетов, такой же, как для схемы «Оборотка».

Разрезы. Для схемы «Шахматка» диалог такой же, как схемы «Журнал-ордер», только флажок «Дт/Кт раздельно» отсутствует.

После этого диалога следует диалог, завершающий работу конструктора (см. последний пункт раздела).

Схема «Произвольная»

Применяется для получения остатков и оборотов по различным объектам учета (счетам, валютам, объектам аналитического учета), а также оборотов по корреспонденциям между объектами. При построении отчета различные виды объектов учета могут произвольно располагаться по строкам и колонкам.

Период. Диалог «...Период» для определения начала и конца периода, по которому строится отчет, функционирует так же, как для схемы «Оборотка».

Счет. Диалог «...Счет», позволяющий ввести ограничение получаемых итогов по счетам и субконто, такой же, как для схемы «Оборотка». Однако для схемы «Произвольная» он вызывается последовательно два раза. Первый - для введения ограничений получения итогов по счетам и субконто, как и для оборотки, второй - для введения ограничений получения итогов по корреспондирующим счетам и субконто.

Отборы. Диалог «...Отборы», позволяющий ввести ограничения по валюте, разделителю учета и плану счетов, такой же, как для схемы «Оборотка».

Разрезы. Для схемы «Произвольная» количество дополнительных условий больше, чем для схемы «Шахматка».

Кроме описанных ранее, добавлен флажок «Итоговая строка», а данные по кредиту и по дебету детализированы и определяются тремя независимыми установками каждое: «Сальдо начальное», «Оборот» и «Сальдо конечное».

После этого диалога следует диалог, завершающий работу конструктора (см. последний пункт раздела).

Схема «Отдельные значения итогов»

Схема применяется для получения отдельных значений итогов (сальдо, оборотов, развернутых сальдо) по указанным или выбираемым субконто. Получение каждого значения описывается в структуре отдельно.

Общие установки. Для схемы «Отдельные значения итогов» вместо диалога «...Период» появляется совмещенный диалог «Конструктор бухгалтерских запросив: Общие установки». В нем, кроме начала и конца периода (или указания, что период будет устанавливаться в диалоге формы), нужно ввести заголовок отчета и выбрать один из двух вариантов: получать итоги по всем разделителям учета или выбирать разделитель учета в диалоге формы.

Значения. После этого диалога для схемы «Отдельные значения итогов» следует диалог «Конструктор бухгалтерских запросов: Значения». В нем в виде отдельных строк формируются значения итогов.

Строки можно перемещать в списке вверх и вниз соответствующими кнопками, изменяя тем самым порядок расположения итогов в выходной форме, а также удалять соответствующей кнопкой. Строки формируются и редактируются в диалоге «Значение», который вызывается при нажатии кнопок «Добавить», «Изменить» и «Копировать». При нажатии последней диалог «Значение» вызывается для новой строки итогов, сформированной так же, как выделенная в списке.

В этом диалоге:

«Текст» — поле ввода для заголовка строки отчета.

«Вид итога» — выбор из списка различных видов сальдо (начальное или конечное, дебетовое или кредитовое) и оборотов (дебетовый, кредитовый или между счетами). Для сальдо возможна установка флажков «Развернутое по субконто» или «Развернутое по субсчетам». Если установлен второй флажок, элементы в нижней части диалога, связанные с субконто, делаются недоступными.

Группа переключателей «Тип суммы» определяет, какие данные отбирать из проводок: суммы, валютные суммы или количества.

«План счетов» — выбор доступен, если в конфигурации имеется более одного плана счетов. Если флажок «Выбор в диалоге» не установлен, можно выбрать нужный план счетов в диалоге, открывающемся по кнопке «...». На выбор предоставляются все существующие в конфигурации планы счетов, а также функции ВыбранныйПланСчетов() и ОсновнойПланСчетов(). Первая определяет план счетов, выбранный для работы в программе 1С:Предприятие (меню «Сервис», пункт «Параметры», закладка «Бухгалтерия»), вторая — план счетов, назначенный в качестве основного в Конфигураторе, в окне свойств планов счетов. Если флажок «Выбор в диалоге» установлен, в диалоге формы будет создан элемент для выбора плана счетов, или, возможно, несколько таких элементов, если в диалоге «Конструктор бухгалтерских запросов: Значения» определить несколько строк с различным выбором плана счетов. В таком случае при нажатии кнопки «…» для плана счетов в диалоге «Значение» открывает список таких элементов, обозначенных ВыбПланСчетов1, ВыбПланСчетов2 и т. д.

«Валюта» — почти те же элементы выбора, что для плана счетов. Если флажок «Выбор в диалоге» не установлен, считается, что требуются итоги по всем валютам. Если он установлен, все аналогично выбору плана счетов: в диалоге формы объекта метаданных, для которого создается процедура бухгалтерского запроса, будет создан элемент (элементы) для выбора валюты для данной строки отчета (или нескольких строк, если при их формировании для назначения валюты выбран тот же элемент диалога), при нажатии кнопки «...» открывается список таких элементов, обозначенных ВыбВалюта1, ВыбВалюта2 и т. д. Количество элементов выбора в списке не превышает количество строк, сформированных в диалоге «Конструктор бухгалтерских запросов: Значения» к моменту вызова списка (они совпадают, если для каждой строки определяется новый элемент выбора валюты).

«Счет» — почти те же элементы выбора. Если переключатель установлен на «Выбор в диалоге», это аналогично установке флажка «Выбор в диалоге» для плана счетов и для валюты. Положение переключателя «Код» дает возможность выбрать конкретный счет в списке с помощью кнопки «…» или набрать его код вручную в поле ввода. В отличие от диалога «...Счет» (см. описание в пункте «Оборотка»), должен быть выбран один счет. Правильность набора кода счета программа не проверяет.

«Кор. Счет» — элементы выбора для корреспондирующего счета те же, что для счета. Они делаются доступными, если выбран вид итога «Оборот между счетами».

«Вид субконто:» — элементы доступны, если вид итога — сальдо или сальдо, развернутое по субконто, а также оборот по счету, дебетовый или кредитовый (см. выше). Максимальное количество видов субконто устанавливается в окне свойств планов счетов, и количество элементов настройки по субконто в диалоге «Значение» соответствует этому количеству. Если выбран конкретный счет, количество доступных видов субконто и сами виды определяются счетом. Если счет выбирается в диалоге, виды субконто обозначаются как ВыбСубконто1, ВыбСубконто2 и т. д. (заранее, до выбора счета, они неизвестны). Список «Режим:» относится к значению данного субконто. Если вид итога — не развернутое сальдо, в этом списке можно выбрать значения «Не учитывать» или «Отбирать», если сальдо, развернутое по субконто — то еще и значения «Разворачивать» или «Разв. по группе». При режимах «Не учитывать» и «Разворачивать» элемент «Значение субконто» для данного вида субконто недоступен. В первом из этих режимов итоги будут отбираться по всем значениям данного субконто суммарно, во втором режиме — по каждому значению субконто. Если определен вид субконто, и это — справочник (например, справочник «Контрагенты»), в режиме «Отбирать» элемент «Значение субконто» доступен для выбора в списке как описанный выше элемент выбора в диалоге формы: ВыбСубконто4, ВыбСубконто5 и т. д. (хотя конкретный вид субконто определен, конкретное значение, в данном примере — конкретный контрагент, будет выбираться в диалоге формы, для чего там создается элемент выбора). Если же выбранный вид субконто — перечисление, например, ЗначснияНДС, по кнопке «…» конкретное значение субконто в режиме «Отбирать» можно выбрать из списка (в данном примере: безНДС, ОсновнаяСтавкаНДС, ЛьготнаяСтавкаНДС). При этом флажок «Выбор в диалоге» для данного значения субконто должен быть снят; если он установлен, можно выбрать только описанный выше элемент выбора в диалоге. Режим «Разв. по группе» (разворачивать по группе) рассчитан на иерархический справочник. В этом режиме для значения субконто также создается элемент выбора в диалоге формы, и такой элемент можно выбрать в списке для значения данного субконто по кнопке «…». При работе процедуры бухгалтерского запроса можно будет выбрать в качестве значения субконто группу элементов в справочнике, после чего отбор бухгалтерских итогов будет происходить по всем элементам выбранной группы.

После формирования списка значений осуществляется переход к заключительному диалогу.

Завершение работы Конструктора

Последний диалог является общим для всех схем построения бухгалтерского запроса. В нем определяется кнопка вызова запроса в диалоге объекта метаданных, а также содержатся флажки «Генерировать таблицу» и «Подробное представление субконто».

Можно не вставлять никакой кнопки, вставить новую и снабдить любой надписью (по умолчанию надпись на кнопке совпадает с именем процедуры запроса) или выбрать уже имеющуюся в диалоге кнопку. Кроме кнопки вызова, в форму могут добавиться другие элементы, служащие для выбора различных параметров запроса: валюты, периода, разделителя учета, плана счетов, счета и пр. (см. выше в описаниях других диалогов конструктора).

Флажок «Генерировать таблицу» (по умолчанию он установлен) нужен потому, что создаваемую процедуру бухгалтерского запроса не обязательно использовать для получения печатного отчета. Полученные с его помощью данные можно использовать, например, в каких-то расчетах, в документе и т. д. Если представление полученных данных в виде итоговой таблицы не требуется, лучше отключить ее создание для экономии времени и занимаемого места.

Установка флажка «Подробное представление субконто» обеспечивает использование в отчете данных закладки «Представление» палитры свойств вида субконто (см. главу «Виды субконто»).

В результате работы Конструктора в модуле формы появляется процедура с именем, определенным при запуске Конструктора. Если сделаны соответствующие установки в завершающем диалоге, создается также шаблон итоговой таблицы (в виде табличного документа на отдельной закладке), по которому будет строиться выходная таблица в 1С:Предприятии.

Конструктор формирования операции

Конструктор формирования операции создает в модуле документа бухгалтерскую операцию, которая должна формироваться этим документом при его проведении.

Конструктор вызывается командой «Формирование операции» в меню «Конструкторы» или кнопкой [image] на панели инструментов «Конструкторы». Для того, чтобы команда и кнопка были доступны, требуется наличие следующих условий:

· документ должен быть бухгалтерским документом (включен флажок «Бухгалтерский учет» в окне редактирования свойств документа);

· модуль документа должен быть открыт.

Тогда указанной командой или кнопкой вызывается диалог «Конструктор формирования операции». В нижней половине диалога располагаются таблицы с реквизитами операции и реквизитами проводок. Кнопки «Назад» и «Далее» справа от поля ввода «Выражение» помогут перебрать все реквизиты операции и се проводок, пропуская поля, не имеющие смысла для данной операции (например, валюту для не валютной операции). При этом сначала формируются реквизиты самой операции, затем реквизиты проводок.

При выходе за пределы таблицы реквизитов операции появляется запрос о добавлении новой проводки в операцию.

При отказе от добавления начинается формирование имеющейся во второй таблице проводки. При выходе за ее пределы повторяется тот же запрос. Можно обеспечить формирование документом операции с любым количеством проводок (сложные проводки, состоящие из нескольких корреспонденции, конструктором не поддерживаются). Поля обеих таблиц, содержащие реквизиты операции и проводок, можно указывать также с помощью мыши.

Выбрав в таблицах нужный реквизит, можно сопоставить ему формулу, введя ее в поле «Выражение». Одновременно конструируемая формула появляется в выбранном поле таблицы.

При составлении формулы можно использовать данные документа. Достаточно дважды щелкнуть по реквизиту документа в списке вверху справа, чтобы включить этот реквизит в формулу. Реквизиты документа, подходящие по типу значения к формируемому реквизиту проводки, помечены в этом списке зелеными стрелками.

Можно также ввести в поле «Значение» строку или выбрать кнопкой справа от него нужный элемент перечисления или плана счетов. При этом в поле «Выражение» появится правильно оформленное выражение, соответствующее этому значению При работе с полем «Значение» содержание поля «Выражение» вручную не корректируется.

Результатом работы Конструктора являются команды в модуле документа, формирующие операцию документа и проводки операции.

Конструктор движений регистров

Конструктор движений регистров формирует для документа движения регистров, которые должны произойти при проведении этого документа.

Конструктор вызывается командой «Движения регистров» в меню «Конструкторы» или кнопкой [image] на панели инструментов «Конструкторы» (крайняя справа). Для того, чтобы команда и кнопка были доступны, требуется наличие следующих условий:

· документ должен быть документом оперативного учета (включен флажок «Оперативный учет» в окне редактирования свойств документа);

· в конфигурации должны быть созданы регистры;

· модуль документа должен быть открыт.

Тогда указанной командой или кнопкой вызывается диалог «Конструктор движений регистров». Поскольку в нем еще не заполнен список «Движения по регистрам», тут же появляется и становится активным диалог «Новое движение» для заполнения этого списка (следует отметить, что конструктор движений регистров при повторном вызове создает свою область модуля заново, не считаясь с ранее оформленными движениями регистров, если таковые и были). В диалоге «Новое движение» можно выбрать регистры из списка всех имеющихся в программе регистров и кнопкой «ОК» внести в список «Движения по регистрам». Если выбранный регистр — регистр остатков (а не регистр оборотов), нужно перед внесением данного движения в список назначить для него, приход или расход по регистру ему соответствует.

В списке «Движения регистров» перед названием каждого движения будет отмечено, соответствует ему приход по регистру остатков, расход по регистру остатков или регистр оборотов. Приход или расход ресурса соответствует данному движению, можно впоследствии переопределить и в самом конструкторе.

Каждое движение, включенное в список, может изменять любой из атрибутов одного из имеющихся в конфигурации регистров (атрибут регистра — это его измерение, ресурс или реквизит — см. о них в главе «Регистры»). Выбрав в этих списках движение и атрибут регистра, можно сопоставить им формулу, которая будет описывать, как изменяется данный атрибут при данном движении. При составлении формулы можно использовать данные документа. Достаточно дважды щелкнуть по реквизиту документа, выбранному в списке вверху справа, чтобы включить этот реквизит в формулу.

Формула составляется в поле ввода «Выражение». Одновременно она появляется в правой колонке списка атрибутов регистров. Это не значит, что данный атрибут отныне «занят» и не может быть изменен другим движением: показанная формула соответствует только выбранному движению. Если в списке «Движения по регистрам» переместить выделение на другое движение, в колонке формул будут показаны формулы, соответствующие этому другому движению.

Кнопки «Назад» и «Далее» справа от поля ввода «Выражение» помогут перебрать все возможные сочетания движений и атрибутов регистров. При выходе за список сочетаний предлагается добавить новое движение регистра.

Если атрибут регистра имеет тип значения «Строка» или является элементом перечисления, можно также ввести в поле «Значение» строку или выбрать кнопкой справа от него нужный элемент перечисления. При этом в поле «Выражение» появится правильно оформленное выражение, соответствующее этому значению: строка будет взята в кавычки, а для элемента перечисления появится выражение, например, Перечисление.Налоги.БезНДС (здесь атрибут регистра — элемент «БезНДС» перечисления «Налоги»). При работе с полем «Значение» содержание поля «Выражение» вручную не корректируется.

По окончании работы Конструктора движений регистров в модуле документа будут записаны на встроенном языке все сконструированные движения регистров.

Редактирование текстовых документов

Процесс редактирования текстового документа включает следующие этапы

· создание нового документа или открытие одного из существующих документов;

· ввод и редактирование текста;

· сохранение отредактированного текста;

· печать, если это необходимо.

Ниже будут рассмотрены все эти этапы.

Создание или открытие текстового документа

Чтобы создать новый текстовый документ, в меню «Файл» главного меню программы выберите пункт «Новый». В появившемся запросе выберите строку «Текст» и нажмите кнопку «ОК». Будет открыто окно текстового редактора, содержащее пустой документ.

Чтобы открыть существующий текстовый документ, в меню «файл» главного меню Конфигуратора выберите пункт «Открыть». На экран будет выдан стандартный диалог открытия файла.

В этом диалоге выберите имя файла документа. В поле «Тип файла» можно выбрать формат открываемого текстового документа — MS DOS или MS Windows.

Внимание! Если открыт документ с атрибутом «Только для чтения», то такой документ не редактируется, о чем сигнализирует слово «READ» в строке состояния.

Вы можете создать или открыть одновременно несколько документов в различных окнах.

Подокна в редакторе текстов

Редактор текстов позволяет разделить окно редактора на 2 или 4 подокна, и в каждом подокне работать с разными частями одного документа. Разделить можно только отдельное окно редактора текстов.

Разделение окна редактора текстов. Чтобы разделить окно редактора текстов, в меню «Окна» главного меню Конфигуратора выберите пункт «Разделить окно». Указатель мыши будет автоматически помещен в центр окна редактора текстов и изменит свою форму на [image], а окно редактора текстов пересекут линии, обозначающие границы будущих подокон.

Перемещая указатель мыши, установите границы подокон, и нажмите левую кнопку мыши для фиксации разделения. Окно редактора текстов будет разделено на 4 подокна.

Если сместить указатель мыши к одной из сторон окна редактора текстов, так, чтобы линия, разделяющая окно, оказалась прижатой к его границе, то окно будет разделено на 2 подокна.

Чтобы в этом режиме отказаться от разделения окна, следует сместить указатель мыши в один из углов редактора текстов и нажать левую кнопку мыши.

Выбор подокна редактирования. Каждое подокно является самостоятельным окном редактора текстов, в котором может производиться редактирование текста. Вся работы выполняется в активном подокне. Чтобы сделать подокно активным, щелкните левой кнопкой мыши в пределах области подокна. В активном подокне располагается мигающий курсор.

Изменение размеров подокон. Вы можете изменять относительные размеры подокон внутри окна редактора текстов. Для этого необходимо передвинуть мышью одну из линий, разделяющих подокна.

Можно передвигать либо только горизонтальную, либо только вертикальную линию, либо обе линии вместе. Чтобы переместить обе линии одновременно, следует перетаскивать пересечение этих линий, указатель мыши в этом случае принимает форму [image].

Отмена разделения окна редактора текстов. Чтобы отменить разделение окна редактора текстов, необходимо перетащить мышью разделительную линию к одному из краев окна редактора. Та линия, которая оказывается прижатой к краю окна, пропадает после отпускания левой кнопки мыши.

Ввод и редактирование текста

Ввод текста осуществляется путем набора нужных символов на клавиатуре. Набираемые символы будут вводиться в месте нахождения курсора — тонкой вертикальной полоски. В процессе ввода и редактирования текста текущее положение курсора — номер строки и номер позиции в строке — выдается в строке состояния программы.

Размер редактируемого документа и режим редактирования можно посмотреть, если выбрать пункт «Свойства» в меню «Действия» главного меню программы.

При редактировании текста можно использовать клавиши, приведенные ниже.

Перемещение курсора

Для перемещения курсора по редактируемому тексту можно использовать следующие клавиши и комбинации клавиш (см. таблицу).

Клавиши | Действия
Стрелка Вправо | Переход на следующий символ в строке
Стрелка Влево | Переход на предыдущий символ в строке
Ctrl+Стрелка Вправо | Переход к следующему слову в строке
Ctrl+Стрелка Влево | Переход к предыдущему слову в строке
Стрелка Вверх | Переход на строку вверх
Стрелка Вниз | Переход на строку вниз
PgUp | Переход на страницу вверх
PgDn | Переход на страницу вниз
Home | Переход в начало строки
End | Переход в конец строки
Ctrl+Home | Переход в начало всего документа
Ctrl+End | Переход в конец документа
Ctrl+Стрелка Вверх | Прокрутка текста на одну строку вверх, при этом курсор сохраняет свою позицию в тексте
Ctrl+Стрелка Вниз | Прокрутка текста на одну строку вниз, при этом курсор сохраняет свою позицию в тексте
Ctrl+PgUp | Прокрутка текста в окне влево, при этом курсор сохраняет свою позицию в окне
Ctrl+PgDn | Прокрутка текста в окне вправо, при этом курсор сохраняет свою позицию в окне

Текущую позицию курсора в тексте показывают 2 числа в строке состояния Конфигуратора: первое — номер строки, второе — номер позиции в строке.

Отдельно следует остановиться на комбинациях клавиш Ctrl+{ и Ctrl+}.

Если курсор в тексте стоит на открывающей круглой или фигурной скобке, то нажатие клавиш Ctrl+{ или Ctrl+} выполняет переход к парной закрывающей скобке и обратно.

Если курсор в тексте находится на одном из ключевых слов управляющих конструкций встроенного языка системы 1С:Предприятие типа Если...Тогда...КонецЕсли, Пока...Цикл...КонецЦикла и подобных, то нажатие клавиш Ctrl+{ или Ctrl+} выполняет переход по ключевым словам этих управляющих конструкций в прямой (клавиши Ctrl+{ ) или обратной (клавиши Ctrl+} ) последовательности.

Кроме перемещения курсора по тексту, можно прокручивать текст — перемещать его в окне при сохранении позиции курсора относительно текста. Для этого можно воспользоваться как линейкой прокрутки, так и колесом «интеллигентной» мыши (например, IntelliMouse, выпускаемой Microsoft Corporation).

Переход к строке текста

Для перехода к конкретной строке документа следует в меню «Действия» главного меню программы выбрать пункт «Переход к строке», в выданном на экран запросе ввести номер строки и нажать кнопку «Перейти».

Использование закладок

В процессе редактирования любые строки текста можно пометить специальными отметками, а затем быстро перемещаться между отмеченными строками. Такие отметки называются закладками.

Для установки закладки установите курсор в строку текста, которую необходимо пометить, и используйте пункт «Закладка» из меню «Текст» главного меню Конфигуратора. Установленная закладка изображается кружком голубого цвета в крайней левой колонке окна редактора текстов.

Цвет закладок можно выбрать в режиме «Настройка параметров системы» (меню «Сервис» главного меню Конфигуратора).

Закладку можно убрать повторным выбором пункта «Закладка» в меню «Текст» главного меню Конфигуратора, когда курсор находится в отмеченной строке.

Для перемещения между отмеченными строками текста используйте пункты «Следующая закладка», «Предыдущая закладка» из меню «Текст» главного меню Конфигуратора.

Команда «Следующая закладка» перемещает курсор на закладку, расположенную ниже по тексту. Если курсор находится на последней закладке, выполнение команды «Следующая закладка» переместит его на первую закладку.

Команда «Предыдущая закладка» перемещает курсор на закладку, расположенную выше по тексту. Если курсор находится на первой закладке, выполнение команды «Предыдущая закладка» переместит его на последнюю закладку.

Команда «Убрать все закладки» убирает все закладки из редактируемого текста. Закладки автоматически убираются, когда редактируемый документ закрывается.

Выделение текста

Для выделения блока текста можно использовать следующие клавиши и комбинации клавиш (см. таблицу).

Клавиши | Действия
Shift+Стрелка Вверх, Shift+Стрелка Вниз, Shift+Стрелка Вправо, Shift+Стрелка Влево | Выделяет текст от начальной до конечной позиции курсора
Shift+Home | Выделяет текст от позиции курсора до начала строки
Shift+End | Выделяет текст от позиции курсора до конца строки
Shift+PgUp | Выделяет страницу текста вверх от позиции курсора
Shift+PgDn | Выделяет страницу текста вниз от позиции курсора
Shift+Ctrl+Home | Выделяет текст от курсора до начала всего документа
Shift+Ctrl+End | Выделяет текст от курсора до конца всего документа

Чтобы выделить сразу весь текст документа, выберите пункт «Выделить все» в меню «Действия» главного меню Конфигуратора.

Совет. Для выделения текста также можно использовать мышь. Перемещение указателя мыши по тексту при нажатой левой клавише выделяет текст от начальной до конечной позиции указателя.

Двойной щелчок левой кнопки мыши выделяет слово. Если щелкнуть мышью в промежутке между левой границей окна редактора текстов и левой границей текста, будет выделена целиком строка текста. Перемещение указателя мыши в этом пространстве при нажатой левой клавише выделяет несколько строк текста.

Операции с выделенным блоком

Выделенный блок текста может быть перемещен, скопирован или удален, для этого используются комбинации клавиш (см. таблицу).

Клавиши | Действия
Shift+Del | удаляет отмеченный блок текста и помещает его в Буфер Обмена MS Windows
Ctrl+Ins | помещает в Буфер Обмена MS Windows копию отмеченного блока текста
Shift+Ins | вставляет содержимое Буфер Обмена MS Windows в текущую позицию курсора

Для перемещения и копирования блока текста можно использовать также режим «drag&drop» («перенеси и оставь»).

Для перемещения необходимо поместить указатель мыши над выделенным блоком текста, нажать левую кнопку мыши и, не отпуская ее, поместить указатель мыши в то место, куда необходимо переместить выделенный текст, после чего отпустить левую кнопку мыши.

Для копирования выделенного блока следует при перемещении мыши держать нажатой клавишу Ctrl, и отпустить ее после отпускания кнопки мыши.

Перетаскивать блок текста можно также при нажатой правой кнопке мыши. В этом случае, после отпускания кнопки мыши буде выдано меню, из которого следует выбрать необходимое действие: переместить блок текста, скопировать его или отказаться от выполнения операции.

Возможность перетаскивания текста мышью можно отключать при настройке параметров системы (пункт «Параметры» меню «Сервис» главного меню Конфигуратора).

Совет. Чтобы перемещать или копировать части длинного документа, разбейте окно на два подокна, например, горизонтально. В одном подокне найдите текст, который требуется скопировать или переместить, а в другом — место, куда требуется скопировать или переместить. Выделите текст и перетащите выделенный текст мышью через линию разделения подокон.

Удаление текста

Для удаления текста используются следующие клавиши и комбинации клавиш (см. таблицу).

Клавиши | Действия
Del | удаляет выделенный текст или символ справа от курсора
Ctrl+Del | удаляет выделенный текст или слово (часть слова) справа от курсора
Backspace | удаляет выделенный текст или символ слева от курсора
Ctrl+Backspace | удаляет выделенный текст или слово (часть слова) слева от курсора
Ctrl+Y | удаляет строку

Вставка конца страницы

Для вставки конца страницы следует выбрать пункт «Вставить конец страницы» в меню «Действия» главного меню программы. Переход к новой странице будет обозначен знаком §. При печати в этом месте текста будет начата новая страница.

Данная возможность отключена при редактировании текстов модулей.

Отмена сделанных изменений

Если в процессе редактирования допущена ошибка, текстовый редактор позволяет автоматически вернуть первоначальное состояние редактируемого текста. Для этого воспользуйтесь одним из следующих способов:

· в меню «Действия» главного меню Конфигуратора выберите пункт «Отменить»

или

· нажмите клавиши Alt+Backspace.

После этого результаты последнего действия будут отменены. Выполнять операцию отмены сделанных изменений можно несколько раз подряд.

Чтобы восстановить отмененные действия, можно выбрать пункт «Вернуть» в меню «Действия» главного меню программы или нажать клавиши Alt+Shift+Backspace.

Поиск и замена

Текстовый редактор системы 1С:Предприятие позволяет найти в текстовом документе любую последовательность символов и заменить ее на другую последовательность.

Поиск. Для осуществления 1гоиска необходимо выбрать пункт «Поиск» в меню «Действия» главного меню Конфигуратора. На экран будет выдан диалог для установки параметров поиска.

В поле «Найти» этого диалога следует ввести образец для поиска. Длина строки — образца поиска — не должна превышать 128 символов.

Чтобы различать при поиске прописные и строчные буквы, включите опцию «Учитывать регистры». При включенной опции «Искать целые слова» будут найдены только целые слова, а не части слов.

Группа «Направление» позволяет указать направление поиска «Вперед» — вправо и вниз от текущей позиции курсора; «Назад» влево и вверх от текущей позиции курсора.

После установи необходимых параметров для выполнения поиска следует нажать кнопку «Искать». Если указанная последовательность символов будет найдена, она будет выделена инверсным цветом.

Для повторения поиска можно использовать следующие клавиша;

F3 повторяет поиск с прежними параметрами;

Shift+FЗ повторяет поиск вперед по тексту;

Alt+F3 повторяет поиск назад по тексту.

Внимание. Когда поиск достигает конца документа, он продолжается с начала, и наоборот: при достижении начала документа поиск продолжается с конца.

Замена. Для выполнения замены символьной строки необходимо выбрать пункт «Заменить» в меню «Действия» главного меню Конфигуратора. На экран будет выдан диалог для установки параметров замены.

В поле «Найти» этого диалога следует ввести образец для поиска. В поле «Заменить на» необходимо указать последовательность символов, на которую будет заменяться образец поиска, указанный в поле «Найти».

Чтобы различать при поиске прописные и строчные буквы, включите опцию «Учитывать регистры». При включенной опции «Искать целые слова» будут найдены только целые слова, а не части слов.

Группа «Изменить в» позволяет указать диапазон поиска — в выделенном тексте (блоке) или во всем документе.

После установки необходимых параметров для начала процесса поиска и замены следует нажать кнопку «Искать».

Если искомый образец будет найден, он будет выделен в тексте инверсным цветом. Для замены найденной последовательности символов следует нажать кнопку «Заменить», будет произведена ее замена и поиск будет продолжен дальше.

Чтобы заменить сразу все вхождения искомой строки, следует нажать кнопку «Заменить все».

Внимание. Когда замена достигает конца документа, она продолжается с начала, и наоборот: при достижении начала документа замена продолжается с конца.

Кнопка «Закрыть» закрывает диалог режима поиска и замены.

Сохранение текстового документа

Для сохранения текстового документа выберите пункт «Сохранить» в меню «Файл» главного меню программы или нажмите кнопку [image] в панели инструментов главного окна программы. Если документ сохраняется в первый раз, на экран будет выдан стандартный диалог для сохранения файла, в котором необходимо указать имя нового документа и, если необходимо, каталог, в который он будет помещен.

Также, как и при открытии документа, при сохранении в поле «Тип файла» можно выбрать формат сохраняемого файла.

Для сохранения существующего текстового документа под другим именем выберите пункт «Сохранить как» в меню «Файл» главного меню Конфигуратора. На экран будет выдан стандартный диалог для сохранения файла, в котором необходимо указать новое имя документа и, если необходимо, каталог, в который он будет помещен. После сохранения документа под новым именем файл со старым именем остается на диске.

Печать текстового документа

Настройка параметров страницы. Режим настройки параметров страницы позволяет выбрать печатающее устройство и установить размер и ориентацию бумаги, на которой будет производиться печать документа. Для вызова этого режима выберите пункт «Параметры страницы» в меню «Файл» главного меню программы. На экран будет выдан диалог «Параметры страницы».

Поле «Принтер» позволяет выбрать для печати один из принтеров, подключенных к вашему компьютеру. Нажатием кнопки [image] можно открыть список таких принтеров и выбрать требуемый принтер, щелкнув мышью его название в списке. Аналогичным образов выбирается размер бумаги и лоток принтера, откуда будет подаваться бумага при печати.

Группа «Поля» позволяет задать расстояние между краем листа и печатаемым текстом. Текст, который не помещается в отведенных границах по ширине, будет вынесен на соседнюю страницу.

Группа «Экземпляров на страницу» позволяет выбрать количество экземпляров документа, которые при печати будут помещаться на одну страницу (экземпляры помещаются один под другим).

Если выбрана опция «Авто», то программа сама будет определять количество экземпляров: если при выбранном размере листа и полях печати на странице помещается 2 экземпляра документа целиком, то будет напечатано два экземпляра, а если не помещается — то один.

После установки всех необходимых параметров для выхода из режима нажмите кнопку «ОК». Нажав кнопку «Отмена», можно отказаться от изменения параметров страницы.

Просмотр документа перед печатью. Вы можете перед печатью просмотреть документ в том виде, как он будет напечатан. Для этого следует выбрать пункт «Просмотр» в меню «Файл» главного меню Конфигуратора.

При просмотре можно использовать кнопки «След.» и «Пред.» для вывода на экран следующей и предыдущей страниц просматриваемого документа и кнопку «2 Стр./1 Стр.» для переключения в режим одновременного просмотра двух страниц документа и обратно.

Для изменения масштаба изображения можно использовать мышь или кнопки «Развернуть» и «Свернуть».

Если указатель мыши находится в пределах просматриваемого документа, нажатие левой кнопки мыши дискретно увеличивает масштаб изображения. Всего существует 3 фиксированных масштаба просмотра, при достижении самого крупного нажатие левой кнопки мыши вновь показывает документ в самом мелком масштабе.

Нажатие кнопки «Развернуть» увеличивает масштаб на 1 шаг, нажатие кнопки «Свернуть» — уменьшает.

Для выхода из режима предварительного просмотра следует нажать кнопку «Закрыть».

Печать документа. Для вывода документа на принтер следует в меню «Файл» главного меню Конфигуратора выбрать пункт «Печать». На экран будет выдан стандартный диалог для настройки параметров печати.

В этом диалоге следует установить необходимые параметры печати: выбрать принтер, диапазон страниц для печати, количество копий, — и нажать кнопку «ОК» для выполнения печати.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 26

Глава 26.
Табличный редактор

  • Что такое таблица в системе 1С:Предприятие
  • Два режима работы таблицы
    • Таблица как итог отчета
    • Таблица в режиме ввода данных
  • Общие принципы создания шаблона
  • Работа с таблицами
    • Совместная работа таблицы и диалога
    • Создание или открытие табличного документа
    • Сохранение табличного документа
    • Просмотр таблицы
    • Выделение ячеек, строк и столбцов таблицы
    • Имена
    • Поиск и замена
    • Изменение высоты строк и ширины столбцов
  • Ввод текста в ячейку
  • Свойства ячеек таблицы
  • Панель формул
  • Перемещение и копирование ячеек
  • Добавление и удаление ячеек
  • Работа с секциями таблицы
    • Создание секции
    • Переименование и удаление секций
    • Изменение размеров секций. Вложенные и внешние секции
  • Использование графических объектов
    • Создание графических объектов
    • Выделение графических объектов
    • Перемещение и копирование графических объектов
    • Изменение размеров графических объектов
    • Изменение порядка расположения графических объектов
    • Удаление графических объектов
    • Имена графических объектов
    • Свойства графических объектов
  • Работа с OLE-объектами
  • Работа с диаграммой
    • Основные принципы и понятия
    • Настройка диаграммы
  • Конструктор печати
    • Результат работы Конструктора печати
  • Настройка печати
    • Колонтитулы
    • Разбиение на страницы
    • Автоматическое повторение строк и столбцов
    • Задание области печати
    • Настройка параметров страницы
    • Печать табличного документа

Для создания шаблона печатной формы объекта метаданных в системе 1С:Предприятие используется специализированный табличный редактор. Этот редактор является составной частью редактора форм, а также может использоваться для создания документов как полнофункциональный редактор документов табличного типа.

В дальнейшем в настоящей главе для простоты, наряду с термином «табличный редактор системы 1С:Преднриятие», будет использоваться термин «таблица».

Что такое таблица в системе 1С:Предприятие

Табличный редактор в системе 1С:Предприятие с первого взгляда может показаться похожим на «обычные» электронные таблицы. Но это не так.

Хотя в программе реализована возможность использования таблицы для непосредственного ввода, обработки и отображения данных различных типов, как в «обычных» электронных таблицах, таблицы в системе 1С:Предприятие используются в основном для представления уже обработанной информации, в частности, описания печатной формы элемента данных. Обработка информации и помещение ее в нужные места печатной формы для большинства объектов метаданных выполняется программными модулями на языке системы 1С:Предприятие (см. ниже п. «Два режима работы таблицы»).

Таблица в системе 1С:Предприятие, как и любая другая таблица, представляет собой совокупность ячеек прямоугольной формы, организованных в строки и столбцы.

Каждый столбец таблицы и каждая строка имеет свой уникальный номер. Строки и столбцы нумеруются независимо, нумерация начинается с 1 и ведется от левого верхнего угла таблицы. Таким образом, любая ячейка таблицы может быть обозначена парой чисел — номером строки и номером столбца, на пересечении которых она находится.

Кроме того, отдельным ячейкам и их диапазонам (компактным группам прямоугольной формы) можно присваивать собственные имена для удобства обращения к ним. Для присваивания имен и работы с ними используется панель формул или диалог «Имена» (см. ниже).

Самая верхняя ячейка столбца, изображенная серым цветом, называется «заголовком столбца». В ней выводится номер столбца, кроме того, она используется для выделения столбца. Аналогичное назначение имеет и самая левая ячейка строки, которая называется «заголовком строки».

Естественно, сама таблица также имеет название. Если редактор таблиц используется «внутри» редактора форм, название таблицы выводится на закладке, расположенной у нижнего обреза листа таблицы. Если редактор таблиц используется для редактирования документа табличного типа, название таблицы (оно же — название документа) выводится в заголовке окна табличного документа.

Редактор форм, одной из составляющих которого является редактор таблиц, может иметь несколько таблиц, содержащих различные шаблоны выходных форм. Та таблица, с которой пользователь работает в настоящий момент, называется активной. Название активной таблицы на ее закладке всегда выводится жирным шрифтом.

Два режима работы таблицы

В главе «Редактор форм» рассказывалось о том, что для обработок и отчетов, в том числе, внешних, можно настроить таблицу в 1С:Предприятии для работы в одном из двух принципиально разных режимов.

Таблица как итог отчета

В этом режиме при вызове отчета появляется диалог, в котором вводятся параметры отчета, после чего на основе этих параметров, данных информационной базы, исходной таблицы, по алгоритму, записанному в модуле, формируется отчет в виде итоговой таблицы, которая, в частности, может включать диаграмму, построенную по итогам обработки информации. Как ячейки итоговой таблицы, так и элементы диаграммы могут затем служить инструментом для получения дополнительной информации — так называемой расшифровки, или детализации.

Этот же режим работы таблицы реализуется для всех остальных объектов метаданных как единственно возможный (естественно, для всех, имеющих табличную форму).

В разделе «Свойства ячеек таблицы», в пункте «Закладка «Текст» в итоговой таблице отчета» описано, как подготовить ячейки исходной таблицы для использования в этом режиме: какие выражения можно помещать в текстовое поле ячейки, какие — в поле «Расшифровка», и как они будут использованы в итоговой таблице.

Таблица в режиме ввода данных

Для обработок и отчетов, в том числе внешних, таблица может быть настроена на работу в другом режиме — не как итоговой таблицы, а как интерактивного средства ввода, обработки и отображения данных. При вызове такого отчета в 1С:Предприятии таблица появляется в одном окне с диалоговой формой, или вместо нее. В некоторые ячейки такой таблицы, определенные на этапе конфигурирования, можно непосредственно вводить данные. В других ячейках таблицы, недоступных для непосредственного ввода, помещаются формулы, значения которых вычисляются после ввода данных и помещаются в доступные ячейки. После ввода всех данных и авто магического вычисления всех формул таблица становится итоговой таблицей отчета.

В разделе «Свойства ячеек таблицы» (пункты «Закладка «Текст» в таблице» и «Закладка «Данные»») описано, как в таблице в режиме ввода данных использовать выражения, помещенные в поле «Формула» ячейки таблицы, для ввода и непосредственной обработки данных или для последовательной обработки данных после вводя их в другие ячейки.

Общие принципы создания шаблона

Создание шаблона выходной формы заключается в «рисовании) составных частей, кирпичиков, из которых затем будет «собрана» готовая выходная форма — документ или отчет. Так как практически все деловые документы имеют «прямоугольную» структуру, удобнее всего создавать шаблоны таких документов в редакторе, способном манипулировать прямоугольными элементами.

Именно таким редактором и является табличный редактор, входящий в систему 1С:Предприятие. В процессе создания шаблона документа или отчета вы можете: вводить в ячейки таблицы разнообразный текст и формулы; задавать параметры форматирования как тексту, так и ячейке в целом; изменять высоту строк и ширину столбцов таблицы; включать в шаблон рисованные элементы — линии и прямоугольники, а также другие графические объекты: картинки, OLE-объекты и диаграммы.

В окончательном виде шаблон печатной формы представляет собой совокупность прямоугольных областей — секций, каждая из которых служит для выдачи какой-то части готового отчета: область для выдачи заголовочной части (наименования, даты и т. п.); область для выдачи шапки табличной части и так далее.

Любой секции отчета можно присвоить уникальное имя и в дальнейшем ссылаться на поименованную область.

Сам процесс построения отчета происходит следующим образом.

Вначале отчет строится как пустая таблица. Необходимо иметь в виду, что шаблон отчета не связан напрямую с готовым отчетом. Скорее, шаблон представляет собой некий конструктор, набор кирпичиков, из которых в процессе работы программного модуля складывается готовый отчет.

В процессе обработки алгоритма отчета из шаблона в нужном порядке извлекаются поименованные секции, транслируются (вместо имен переменных подставляются их значения) и копируются в таблицу готового отчета. Средства языка формирования отчетов позволяют наращивать отчет как вниз, так и вправо.

Другой способ построения отчета заключается в том, что пользователь вводит данные в предназначенные для этого ячейки таблицы, после чего эти данные обрабатываются программой по заданным в самой таблице отчета формулам. Результаты появляются в других ячейках таблицы, после чего отчет готов для просмотра и распечатки.

Работа с таблицами

Создание таблицы. Как уже говорилось, редактор форм может иметь несколько листов типа «Таблица». Когда редактор формы вызывается в первый раз для нового объекта метаданных, он содержит только одну таблицу, но в процессе работы пользователь может добавлять и удалять таблицы.

Чтобы добавить таблицу:

· поместите указатель мыши в любое место строки закладок редактора форм;

· нажатием правой кнопки мыши вызовите контекстное меню;

· в этом меню выберите пункт «Добавить таблицу».

Вновь созданной таблице будет присвоено имя, состоящее из слова «Таблица» и порядкового номера таблицы в окне редактора форм

Выбор таблицы. Все действия по редактированию содержимого таблицы производятся в активной таблице. Для того, чтобы сделать таблицу активной, необходимо щелкнуть мышью по закладке с названием нужной таблицы. Имя выбранной таблицы на закладке будет выделено жирным шрифтом.

При большом количестве закладок с названиями таблиц у правого края строки закладок появляются кнопки [image] и [image]. Нажимая мышью эти кнопки, можно вывести на экран невидимые закладки с на званиями листов.

Переименование таблицы. Вновь созданной таблице присваивается по умолчанию условное имя, состоящее из слова «Таблица» и порядкового номера этой таблицы. Чтобы изменить имя таблицы:

· поместите указатель мыши на закладку таблицы, которую не обходимо переименовать;

· нажатием правой кнопки мыши вызовите контекстное меню;

· в этом меню выберите пункт «Задать имя таблицы»;

· в выданном на экран запросе необходимо ввести новое имя таблицы. Имя может иметь длину до 30 символов и может включать буквы, цифры, пробелы и знаки подчеркивания.

Удаление таблицы. Удаление таблицы выполняется следующим образом:

· поместите указатель мыши на закладку таблицы, которую необходимо удалить;

· нажатием правой кнопки мыши вызовите контекстное меню;

· в этом меню выберите пункт «Удалить таблицу».

После ответа на запрос о необходимости удаления таблицы текущая таблица будет безвозвратно удалена.

Совместная работа таблицы и диалога

Для отчетов и обработок, в том числе внешних, табличный редактор системы 1С:Предприятие позволяет организовать совместную работу диалога и табличного документа.

Возможность совместной работы настраивается в диалоге «Свойства формы», который можно вызвать выбором пункта «Свойства формы из меню «Действия» главного меню Конфигуратора.

Использовать таблицу. Управляющие элементы этой группы служат для настройки порядка совместного использования диалога и табличного документа.

Переключатель «Нет» отключает совместное использование диалога и таблицы.

Переключатель «Пустую» означает, что в форму отчета или обработки будет включен табличный документ, а его формирование будет выполняться средствами встроенного языка системы 1С:Предприятие, как было описано выше в п. «Общие принципы создания шаблона».

Переключатель «Для ввода данных» означает, что в форму отчета или обработки будет включен табличный документ, который будет работать в режиме ввода данных. В поле ввода под этим переключателем необходимо указать имя таблицы, которая будет использоваться для ввода данных. В палитре свойств ячеек такой таблицы появляется закладка «Данные», и сама таблица должна быть настроена для ввода данных. Как организовать ввод данных в ячейке такой таблицы, рассказывается ниже в п. «Свойства ячеек таблицы».

Если выбран режим «Для ввода данных», в списке «Переход при вводе» можно выбрать вариант автоматического перехода по ячейкам таблицы:

По строкам | при вводе данных в ячейке при нажатии клавиши Enter будет автоматически выполняться переход к следующей вводимой ячейке в этой строке, а если таковых нет, то в самой левой вводимой ячейке следующей строки;
По столбцам | при вводе данных в ячейке при нажатии клавиши Enter будет автоматически выполняться переход к следующей вводимой ячейке в этом столбце, а если таковых нет, то в самой верхней вводимой ячейке следующего столбца;
Нет | при вводе данных в ячейке автоматический переход при нажатии клавиши Enter выполняться не будет.

Положение. Переключатели группы «Положение» управляют взаимным расположением диалога и табличного документа при использовании отчета или обработки.

Выбор переключателя «Во все окно» означает, что при использовании отчета или обработки в форме будет выводиться только табличный документ.

Создание или открытие табличного документа

Табличный редактор системы 1С:Предприятие может использоваться для создания документов табличного типа. Чтобы создать новый табличный документ, в меню «Файл» главного меню программы выберите пункт «Новый». В появившемся запросе выберите строку «Таблица» и нажмите кнопку «ОК». Будет открыто окно табличного редактора, содержащее пустой документ.

Чтобы открыть существующий табличный документ, в меню «файл» главного меню программы выберите пункт «Открыть». На экран будет выдан стандартный диалог открытия файла. В этом диалоге выберите имя файла документа.

Сохранение табличного документа

Табличный документ можно сохранить в файл, для того, чтобы его в дальнейшем можно было бы открыть, просмотреть и распечатать. Чтобы сохранить табличный документ в виде файла, в меню «Файл» главного меню программы выберите пункт «Сохранить».

В диалоге сохранения файла можно указать не только имя файла, но и выбрать тип файла.

Обычно табличные документы сохраняются в специальном формате, используемом системой 1С:Предприятие для хранения табличных документов. Такие файлы имеют расширение *.MXL. Сохраненные таким образом табличные документы можно открыть через меню «Файл» главного меню Конфигуратора.

Однако, существует возможность сохранить табличный документ в двух других форматах: «Таблица Excel» (расширение *.XLS) и «HTML Документ» (расширение *.НТМ или *.HTML).

Сохранение в формате «Таблица Excel» позволяет открывать сохраненный файл в электронной таблице MS Excel.

Сохранение в формате «HTML Документ» позволяет открывать сохраненный файл любым средством для просмотра HTML-документов, например, MS Internet Explorer.

Просмотр таблицы

Перемещение по таблице. Согласно общей концепции интерфейса MS Windows, окно таблицы в любой момент времени показывает только часть таблицы, лежащей «под» этим окном. Для перехода к любой ячейке в видимой области таблицы достаточно щелкнуть эту ячейку мышью. Выбранная ячейка становится активной. Для вывода на экран скрытых за границами окна областей таблицы используются линейки прокрутки.

Для прокрутки таблицы в окне выполните следующие действия:

Перемещение | Действия
На строку вверх или вниз | Щелкните мытью нижнюю или верхнюю кнопку со стрелкой на вертикальной линейке прокрутки
На столбец вправо или влево | Щелкните мышью левую или правую кнопку со стрелкой на горизонтальной линейке прокрутки
На окно вверх или вниз | Щелкните мышью ниже или выше бегунка на вертикальной линейке прокрутки
На окно вправо или влево | Щелкните мышью левее или правее бегунка на горизонтальной линейке прокрутки
На несколько экранов | Используя бегунки на линейках прокрутки, установите необходимое положение окна

Масштабирование изображения. Для удобства просмотра таблицы изображение можно дискретно масштабировать.

Для выбора масштаба изображения используется пункт «Масштаб» из меню «Вид» главного меню Конфигуратора: при выборе этого пункта открывается подменю, в котором можно выбрать желаемый масштаб изображения таблицы.

Управление видом таблицы. При помощи меню «Вид» главного меню Конфигуратора можно управлять отображением различных областей и компонентов таблицы: заголовков строк и столбцов, сеткой таблицы и т. д. Той же цели служит часть кнопок панели инструментов «Редактор таблиц».

Кратко поясним назначение пунктов меню «Вид» и кнопок панели инструментов «Редактор таблиц». Каждый пункт и каждая кнопка работает как переключатель: выбор (нажатие) вызывает или прекращает отображение соответствующей области таблицы:

«Заголовки» | управляет показом заголовков строк и столбцов таблицы;
«Сетка» | включает и отключает показ сетки таблицы — тонких линий, разделяющих ячейки таблицы;
«Секции» | включает и отключает показ секций — областей слева от заголовков строк и сверху от заголовков столбцов (см. стр. 21);
«Идентификаторы» | управляет показом идентификаторов секций. Если идентификаторы отключены, сами секции будут показаны только своими границами;
«Авторазбиение» | включает и отключает показ границ страницы при печати;
«Панель формул» | включает и отключает показ панели формул (о панели формул подробнее смотри ниже п. «Панель формул»);
«Черно-белый» | отключает и включает показ цветов, заданных для табличного документа. При включении этого пункта (в меню напротив него появляется галочка) все цвета будут определяться установками операционной системы MS Windows.

Фиксация шапки и боковика. Редактор таблиц системы 1С:Предприятие позволяет зафиксировать верхние строки и левые столбцы таблицы таким образом, чтобы при листании таблицы они постоянно присутствовали на экране. Это удобно, когда требуется просматривать какую-либо информацию, оформленную в виде таблицы большого размера. В этом случае на экране постоянно будут присутствовать шапка и боковик таблицы.

Для фиксации используется пункт «Зафиксировать» из меню «Вид» главного меню Конфигуратора или кнопка [image] панели инструментов «Редактор таблиц».

Чтобы зафиксировать верхние строки таблицы, следует выделить строку таблицы. Зафиксированы будут все строки, расположенные выше выделенной строки.

Чтобы зафиксировать столбцы таблицы, следует выделить столбец таблицы целиком. Зафиксированы будут столбцы, расположенные слева от выделенного столбца.

Чтобы зафиксировать одновременно строки и столбцы таблицы, следует выделить одну ячейку таблицы. Зафиксированы будут строки и столбцы, расположенные соответственно выше и левее выделенной ячейки.

Замечание. Фиксация строк и столбцов таблицы не переносится в готовый табличный документ. В этом случае необходимо использовать метод встроенного языка Опции().

Если в таблице существуют зафиксированные строки и (или) столбцы, для отмены фиксации следует выбрать пункт «Расфиксировать» из меню «Вид» главного меню Конфигуратора или кнопку [image] панели инструментов.

Защита от редактирования. Для запрета редактирования таблицы используется пункт «Только просмотр» из меню «Вид» главного меню Конфигуратора или кнопка [image] панели инструментов «Редактор таблиц».

Установка атрибута «Только просмотр» для готового табличного документа возможна из встроенного языка системы 1С:Предприятие. Кроме этого, для защиты от редактирования можно использовать метод встроенного языка 3ащита(), который полностью защищает готовый табличный документ от редактирования и копирования (в том числе через Буфер Обмена MS Windows).

Выделение ячеек, строк и столбцов таблицы

Все действия по редактированию данных, содержащихся в таблице, производятся в активной ячейке. Кроме этого, некоторые операции возможно выполнять над произвольной группой ячеек или только над диапазоном ячеек (так мы будем называть компактную группу ячеек, имеющую прямоугольную форму).

Перед выполнением таких операций соответствующая ячейка, диапазон или группа ячеек таблицы должны быть выделены.

Чтобы выделить какой-либо элемент таблицы, выполните следующие действия (см. таблицу).

Элемент | Действия
Ячейка | Щелкните ячейку мышью или используйте клавиши управления курсором.
Диапазон ячеек | Щелкните мышью первую ячейку диапазона; затем, не отпуская клавишу мыши, переместите указатель на последнюю ячейку диапазона.
Группу ячеек | Выделите первую ячейку или диапазон ячеек; затем нажмите клавишу Ctrl и, не отпуская ее, выделите следующую ячейку или диапазон ячеек.
Строка | Щелкните мышью заголовок строки.
Столбец | Щелкните мышью заголовок столбца.
Диапазон строк или столбцов | Щелкните мышью заголовок первой строки или столбца диапазона; затем, не отпуская клавишу мыши, переместите указатель на последнюю строку или столбец диапазона.
Группу строк или столбцов | Выделите первую строку или столбец; затем нажмите клавишу Ctrl и, не отпуская ее, выделите следующую строку или столбец.
Все ячейки в таблице | Щелкните кнопку в левом верхнем углу таблицы (это то место, где «пересекаются» заголовки строк и столбцов).

Для снятия выделения щелкните мышью любую невыделенную ячейку.

Имена

Отдельным ячейкам таблицы, диапазонам ячеек и графическим объектам можно присваивать имена.

Работа с именами производится при помощи диалога «Имена» или в панели формул (см. о ней на стр. 18).

Диалог вызывается выбором из меню «Таблица» пункта «Имена». Для присвоения имени выделите нужную область, откройте диалог «Имена», введите имя в поле ввода и выберите кнопку «Присвоить». Для удаления имени выберите его из списка и нажмите кнопку «Удалить». При нажатии кнопки «Выбрать» область, соответствующая выбранному имени, становится выделенной. Кнопка «Отмена» закрывает диалог.

Областям таблицы, не имеющим имени, присвоенного пользователем, программа формирует имена автоматически. Эти имена не присутствуют в списке диалога «Имена». Их можно видеть на панели формул (см. стр. 18). Области таблицы нельзя присвоить имя, совпадающее с автоматически формируемым именем. Эти имена имеют вид, например:

R5C7 | для ячейки, находящейся на пересечении пятой строки и седьмого столбца;
R5C7:R8C15 | для диапазона ячеек в виде прямоугольника, ограниченного по вертикали пятой и восьмой строками и по горизонтали седьмым и пятнадцатым столбцом;
R6 | для шестой строки;
R3:R9 | для диапазона строк с третьей по девятую;
С2 | для второго столбца;
С11:С20 | для диапазона столбцов с одиннадцатого по двадцатый;
D12 | для рисунка, где 12 — порядковый номер графического объекта;
Т | для всей таблицы.

Имена областей уникальны, т. е. различные области должны иметь различные имена, причем регистр букв в именах не различается. Присваивание какой-либо области имени, уже использованного для другой области, не запрещено, но тогда эта другая область теряет свое имя. Точнее, ее имя заменяется именем, автоматически формируемым программой (см. стр. 18). Присваивание какой-либо области нового имени отменяет ранее присвоенное имя, которое при этом исчезает из списка. Если две области совпадают не полностью, они могут иметь каждая свое имя. Например, одна из областей может являться частью другой, или они могут пересекаться только частично; в последнем случае их пересечению также вполне можно присвоить собственное имя. Требование уникальности имени не допускает только полного совпадения областей с разными именами (и, конечно, совпадения имен различных областей).

К именованным областям или графическим объектам таблицы можно обращаться из встроенного языка, используя метод Область().

Поиск и замена

Табличный редактор системы 1С:Предприятие позволяет искать в табличном документе любую последовательность символов, а также заменять ее другой последовательностью.

Поиск. Для осуществления поиска необходимо выбрать пункт «Искать» в подменю «Поиск» меню «Действия» главного меню программы, или нажать Ctrl+F3 на клавиатуре или кнопку [image] на панели инструментов «Стандартная». На экран будет выдан диалог для установки параметров поиска.

В поле «Искать» этого диалога следует ввести образец для поиска. Длина строки — образца поиска — не должна превышать 128 символов.

Чтобы различать при поиске прописные и строчные буквы, включите опцию «Учитывать регистр».

При включенной опции «Ячейки целиком» будут найдены только те ячейки, в которых с искомым текстом совпадает весь текст ячейки, а не его часть.

Всего имеется восемь вариантов обхода документа при поиске. Нужный вариант выбирается с помощью группы «Направление» и поля со списком «Просматривать». Все варианты обхода являются циклическими.

Группа «Направление» позволяет указать общее направление поиска: «Вперед» — по строкам вправо и по столбцам вниз от текущей позиции; «Назад» — по строкам влево и по столбцам вверх от текущей позиции.

Поле со списком «Просматривать» позволяет задать диапазон и порядок перебора направлений поиска, предоставляя выбор из четырех вариантов:

По текущему столбцу | искать, начиная от текущей ячейки, сдвигаясь вниз или вверх в пределах столбца в зависимости от указанного общего направления; после достижения конца столбца (или начала — при направлении назад) циклически переходить к началу (или, соответственно, к концу);
По текущей строке | искать, начиная от текущей ячейки, вправо или влево в зависимости от указанного общего направления; после достижения конца строки (или начала — при направлении назад) циклически переходить к началу (или, соответственно, к концу);
По столбцам | искать в пределах столбца как по текущему, после достижения конца (или начала) столбца менять столбец поиска, сдвигаясь вправо или влево на одну ячейку в указанном общем направлении, после достижения конца (или начала) документа циклически переходить к началу (или концу),
По строкам | искать в пределах строки как по текущей, после достижения конца (или начала) строки менять строку поиска, сдвигаясь вниз или вверх на одну ячейку в указанном общем направлении, после достижения конца (начала) документа циклически переходить к началу (концу).

После установки необходимых параметров для выполнения поиска следует нажать кнопку «Искать». Если ячейка с указанной последовательностью символов будет найдена, то она станет текущей.

Независимо от ранее заданного общего направления, можно повторить поиск, задав ему направление «Вперед», если

· выбрать пункт «Искать вперед» в подменю «Поиск» меню «Действия»,

· или нажать клавиши Shift+F3;

· или нажать кнопку [image] на панели инструментов «Стандартная».

Независимо от ранее заданного общего направления, можно повторить поиск, задав ему направление «Назад», если

· выбрать пункт «Искать назад» в подменю «Поиск» меню «Действия»,

· или нажать клавиши Alt+F3;

· или нажать кнопку [image] на панели инструментов «Стандартная».

Для повторения поиска с теми же параметрами, какие были в последнем поиске, можно использовать пункт «Повторить поиск» в подменю «Поиск» меню «Действия» или нажать клавишу F3.

Замена. Для выполнения замены символьной строки необходимо выбрать пункт «Заменить» в меню «Действия» главного меню программы. На экран будет выдан диалог для установки параметров замены.

В поле «Искать» этого диалога следует ввести образец для поиска. В поле «Заменить» необходимо указать последовательность символов, на которую будет заменяться образец поиска, указанный в поле «Искать».

Чтобы различать при поиске прописные и строчные буквы, включите опцию «Учитывать регистр».

При включенной опции «Ячейки целиком» будут найдены только те ячейки, в которых весь текст ячейки, а не его часть, совпадает с искомым текстом.

В поле со списком «Просматривать» можно задать диапазон и порядок перебора направлений поиска заменяемого значения в общем направлении «Вперед», выбрав один из четырех вариантов (см. выше).

При замене не применяется общее направление поиска «Назад».

После установки необходимых параметров для начала процесса поиска и замены следует нажать кнопку «Искать».

Если ячейка с указанной последовательностью символов будет найдена, то она станет текущей.

Для замены найденной последовательности символов следует нажать кнопку «Заменить», будет произведена ее замена, и поиск будет продолжен дальше.

Чтобы заменить сразу все вхождения искомой строки, следует нажать кнопку «Заменить все».

Кнопка «Закрыть» закрывает диалог режима поиска и замены.

Изменение высоты строк и ширины столбцов

Вы можете изменять высоту строк и ширину столбцов таблицы вручную или автоматически.

Изменение высоты строк и ширины столбцов «вручную». Для изменения высоты строки установите указатель мыши на нижнюю границу заголовка строки, пока курсор мыши не примет форму [image]. Теперь вы можете, перемещая мытью границу заголовка, установить нужную высоту строки.

Для изменения ширины столбца установите указатель мыши на правую границу заголовка столбца, пока курсор мыши не примет форму [image]. Теперь вы можете, перемещая мышью границу заголовка, установить нужную ширину столбца таблицы.

Изменение высоты строк и ширины столбцов автоматически. Для изменения высоты строки автоматически выделите нужную строку, щелкнув по ее заголовку левой кнопкой мыши. Затем в меню «Таблица» главного меню Конфигуратора выберите пункт «Высота строки». В выданном на экран запросе укажите требуемую высоту строки в пунктах (1 пункт равен 1/72 дюйма) и нажмите кнопку «OK» — высота строки будет установлена равной указанному значению.

Если в запросе нажать кнопку «Авто», то высота строки устанавливается равной максимальной высоте текста в этой строке.

Нажатие кнопки «Авто» включает режим автоматического изменения высоты строки в зависимости от высоты введенного в строку текста. При переносе строки в готовый табличный документ высота строки также будет автоматически установлена в соответствии с высотой текста в этой строке.

Порядок автоматической установки ширины столбца отличается от установки высоты строки. Поясним это подробнее.

При создании новой таблицы ширина всех ее столбцов устанавливается равной стандартной ширине столбца, которая по умолчанию равна 9 символам шрифта, установленного для текста таблицы. Шрифт текста таблицы, в свою очередь, задается при установке параметров интерфейса (меню «Сервис», пункт «Параметры», закладка «Интерфейс»).

Заданную по умолчанию стандартную ширину столбца таблицы можно изменить. Для этого необходимо выделить всю таблицу, выбрать пункт «Ширина столбца» в меню «Таблица» главного меню Конфигуратора и в появившемся запросе ввести число — новую стандартную ширину столбца, выраженную в количестве символов шрифта, установленного для текста таблицы. После нажатия кнопки «ОК» ширина всех столбцов таблицы будет изменена в соответствии с введенным значением.

Для изменения ширины конкретного столбца выделите столбец, щелкнув по его заголовку левой кнопкой мыши. Затем в меню «Таблица» главного меню Конфигуратора выберите пункт «Ширина столбца». В выданном на экран запросе укажите требуемую ширину столбца, выраженную в количестве символов шрифта, установленного для текста таблицы, и нажмите кнопку «OK» — ширина столбца будет установлена равной указанному значению.

Нажатие кнопки «Авто» устанавливает ширину этого столбца равной стандартной ширине столбца таблицы. В данном случае, в отличие от установки высоты строки, параметры текста в столбце не влияют на установку его ширины.

Ввод текста в ячейку

Будем называть текстом любую комбинацию символов, включающую буквы, цифры, знаки препинания, пробелы и служебные символы. Числа, введенные в ячейку, также считаются текстом.

Текст может быть введен в любую ячейку таблицы. При формировании документа или отчета текст ячейки обрабатывается в зависимости от установленных свойств ячейки и после обработки переносится в готовый отчет.

Ввод текста и установка его атрибутов выполняются только в активной ячейке. Чтобы сделать ячейку активной, щелкните на ней левой кнопкой мыши.

Для ввода текста в пустую ячейку просто начните набирать нужные символы на клавиатуре. Ячейка перейдет в режим редактирования — в ней появится текстовый курсор (мигающая вертикальная черта), и в ячейке будет отображаться вводимый текст. Для окончания ввода текста нажмите Enter. Закончить редактирование текста можно также, щелкнув мышью любую невыделенную ячейку. Это действие равносильно нажатию клавиши Enter.

Если редактируемая ячейка уже содержала какой-либо текст, то при вводе новых символов этот текст будет удален.

Если необходимо отредактировать текст в ячейке, не замещая, а дополняя существующий текст, — перед вводом текста нажмите клавишу Enter или F2, или выберите ячейку двойным щелчком мыши. Тогда ячейка перейдет в режим редактирования, и можно поместить курсор в нужную позицию текста, используя клавиши управления курсором или мышь.

Следует особо отметить комбинацию Ctrl+Enter. Нажатие этих клавиш позволяет начать новую строку текста в ячейке, не прекращая редактирование ячейки.

Чтобы отменить изменения, сделанные в тексте ячейки, нажмите Esc до окончания редактирования в ней.

Если текст полностью не помещается в ячейке, то для его показа будет использовано пространство соседних по горизонтали ячеек (слева, справа или с обеих сторон — зависит от типа выравнивания текста в ячейке).

Еще о двух способах ввода текста в ячейку — с помощью панели формул и с помощью диалога «Свойства ячейки» — см. ниже в описаниях этих инструментов.

Клавиши, используемые для редактирования. В процессе редактирования текста в ячейке таблицы вы можете использовать те же клавиши и комбинации клавиш, которые используются в других приложениях MS Windows. Ниже перечислены эти клавиши и приведено краткое описание совершаемых ими действий.

Клавиши | Действия
Клавиши управления курсором | Смещение курсора на 1 символ вправо, влево, вверх или вниз
Ctrl+Стрелка Вправо, Ctrl+Стрелка Влево | Смещение курсора на слово вправо/влево
Home | Перемещение курсора в начало строки
End | Перемещение курсора в конец строки
Del | Удаление: символа справа от курсора или выделенного фрагмента текста
Backspace | Удаление: символа слева от курсора или выделенного фрагмента текста
Ctrl+Del | Удаление текста от курсора до конца строки

Выражения в тексте ячейки. Содержимое ячейки таблицы, помимо текста, может включать выражения на встроенном языке системы 1С:Прсдприятие. Если содержимое ячейки представляет собой комбинацию из текста и выражений, последние должны быть заключены в квадратные скобки.

Тип содержимого ячейки определяется при задании свойств ячейки (см. стр. 12, п. «Свойства ячеек таблицы»). При формировании готового табличного документа содержимое ячейки обрабатывается в соответствии с указанным типом, и результаты обработки переносятся в готовый документ.

Когда результаты обработки выражений необходимо показать в готовом документе в каком-то заранее определенном виде, вместе с выражением можно задать также параметры форматирования его результата. Для этого после выражения необходимо поставить пробел и символ «#», а непосредственно после символа «#» указать шаблон форматирования. Отформатированный в соответствии с шаблоном результат вычисления выражения всегда представляет собой строку символов.

Если результат вычисления выражения является числом, шаблон форматирования должен иметь вид:

Ч(0) [0|-]m.nDT>x (синоним N(0) [0|-]m.nDT>x), где

Ч | тип значения результата вычисления выражения (число);
(0) | число будет выводиться с ведущими нулями в целой части;
0 | подавляет отображение нулевых значений (вместо нуля выводится пустая строка);
- («минус») | нулевые значения отображаются прочерком;

Можно использовать только один из управляющих символов: или 0, или «-».

m | целое положительное число — количество символов строки, в которой будет размещен сформатированный результат;
n | длина дробной части сформатированного результата;
D | любой символ, кроме пробела и цифры, — будет использован как разделитель целой и дробной части сформатированного результата (необязательный параметр);
Т | любой символ, кроме пробела и цифры, — будет использован как разделитель триад (троек цифр) в целой части сформатированного результата (необязательный параметр).

Если результат вычисления выражения не имеет дробной части, шаблон форматирования может быть указан в виде Nm (Чm).

Для вывода числового результата прописью используется шаблон форматирования вида:

ЧПДС (синоним NSMH), где

Ч | тип значения результата вычисления выражения (число);
П | обозначает вывод результата вычисления выражения прописью;
Д | обозначает, если это необходимо, что результат вычисления выражения является денежной величиной;
С | обозначает, если это необходимо, что результат вычисления выражения является денежной величиной с дробной частью.

Если результат вычисления выражения является строкой символов, шаблон форматирования должен иметь такой вид:

Сn (англоязычный синоним Sn), где

С | тип значения результата вычисления выражения (строка);
n | целое положительное число — количество символов строки, содержащей сформатированный результат. В случае, если n превосходит длину результирующей строки, результирующая строка будет дополнена пробелами справа; если n меньше — результирующая строка будет обрезана справа.

Для вывода результата типа «дата» используется шаблон форматирования вида

Д<формат> (синоним D<формат>), где

Д | тип значения результата вычисления выражения (дата);
<формат> | обозначение формата вывода даты; может быть следующих видов (в скобках приведены англоязычные синонимы):

ДДММГГ (DDMMYY) | дата в виде ДД.ММ.ГГ (число, порядковый номер месяца, 2 последние цифры года);
ДДММГГТГ (DDMMYYYY) | дата в виде ДД.ММ.ГГГГ (число, порядковый номер месяца, 4 цифры года);
ДДММММГГГГ (DDMMMMYYYY) | дата в виде: ДД месяц прописью ГГГГ;
(0)ДДММММГГГГ ((0)DDMMMMYYYY) | дата в виде: ДД месяц прописью ГГГГ, при этом число выводится двумя цифрами;
ГГГГММДД (YYYYMMDD) | дата в виде: ГГГГММДД (4 цифры года, помер месяца — двумя цифрами, помер дня в месяце — двумя цифрами)
ММММГГГГ (MMMMYYYY) | дата в виде: месяц прописью ГГГГ;
ММММГГ (MMMMYY) | дата в виде: месяц прописью ГГ;
ММММ (ММММ) | дата в виде: месяц прописью;
ККККГГГГ (QQQQYYYY) | дата в виде: N квартал ГГГГ;
ККККГГ (QQQQYY) | дата в виде: N квартал ГГ;
KKKK (QQQQ) | дата в виде: N квартал.
HHHH (WWWW) | наименование дня недели, соответствующего указанной дате (наименования дней недели берутся из файла прописи).

Свойства ячеек таблицы

Свойства ячейки таблицы редактируются в палитре свойств «Свойства ячейки». Для вызова палитры свойств на экран выполните следующие действия:

· выделите ячейку, диапазон или группу ячеек, которым необходимо присвоить атрибуты форматирования;

· нажатием правой кнопки мыши вызовите меню;

· в этом меню выберите пункт «Свойства».

Если выделен диапазон ячеек, то при форматировании выделенный диапазон воспринимается редактором таблица как одна большая ячейка. Например, рамка будет обведена вокруг диапазона в целом, то есть по внешним сторонам «внешних» ячеек выделенного диапазона.

Наоборот, если выделена группа ячеек, то каждая ячейка будет форматироваться независимо. В этом случае рамка будет обведена вокруг каждой ячейки в выделенной группе.

Палитра свойств, используемая при редактировании свойств элементов диалога, по порядку использования аналогична той, которая применяется при редактировании свойств объектов метаданных. Порядок использования палитры свойств можно узнать в главе «Метаданные».

Ниже будет описано, как влияют те или иные управляющие элементы палитры свойств на внешний вид и поведение ячейки таблицы.

Закладка «Текст»

В зависимости от режима использования таблицы при работе 1С:Предприятия (см. раздел «Два режима работы таблицы»): только для представления данных отчета или, кроме того, для их ввода и обработки — закладка «Текст» выглядит по-разному.

Закладка «Текст» в итоговой таблице отчета

Если в свойствах формы указано не использовать таблицу совместно с диалогом, закладка «Текст» имеет следующий вид.

Помимо ввода и редактирования текста непосредственно в ячейке таблицы, можно вводить и редактировать текст ячейки в многострочном поле этой закладки.

Тип. Пункты списка «Тип» устанавливают, какого рода информация введена в ячейку. Они не изменяют внешний вид ячейки, а используются только в процессе обработки шаблона при формировании готового табличного документа.

Пункты этого списка имеют следующий смысл (см. таблицу).

Тип текста | Пояснение
Текст | Информация в ячейке является текстом и при формировании табличного документа будет перенесена из исходной таблицы в готовый табличный документ без изменений.
Выражение | Информация в ячейке является выражением на встроенном языке системы 1С:Предприятие. При формировании табличного документа из исходной таблицы в готовый документ будет перенесен результат вычисления этого выражения.
Шаблон | Информация в ячейке представляет собой текст с включенными в него выражениями на встроенном языке системы 1С:Прсднриятие, заключенными в квадратные скобки. При формировании табличного документа выражения будут вычислены, а их результаты будут включены в текст вместо самих выражений. Место, отводимое в тексте для вывода результатов выражений, определяется длиной этих результатов.

Фикс. Шаблон

«Фиксированный шаблон», отличается от шаблона тем, что место, отводимое в тексте для вывода результатов выражений, определяется расстоянием между квадратными скобками, ограничивающими выражения в исходном тексте.

Информация в ячейке готового табличного документа преобразуется в тип «строка».

Контроль. Пункты списка «Контроль» позволяют установить, как показывать текст, если он не помещается в ячейке целиком (см. таблицу).

Контроль | Пояснение
Авто | Не помещающийся по ширине текст будет показан в соседних по горизонтали ячейках, если в них, в свою очередь, нет текста.
Обрезать | Видимая часть текста будет ограничена левой и правой границами ячейки.
Забивать | Видимая часть текста будет ограничена левой и правой границами ячейки, при этом все символы видимой части текста будут заменены на символы «#». (Применяется в случае, когда обрезанный текст может восприниматься ошибочно. Пример: число).
Переносить | Не помещающийся по ширине текст будет переноситься на следующие строки ячейки.
Красный | Если первым символом является минус, весь текст изображается шрифтом красного цвета, независимо от того, какой цвет шрифта установлен в закладке «Шрифт» (см. ниже).
Забивать+ Красный | Сочетание двух способов показа: «Забивать» и «Красный».

Расшифровка. В поле «Расшифровка» можно указать выражение на встроенном языке системы 1С:Предприятие. При формировании табличного документа это выражение будет вычислено и его результат будет записан в поле «Расшифровка» ячейки готового табличного документа. В отличие от текста, помещаемого в саму ячейку, значение выражения не преобразуется к типу «строка».

Когда готовый табличный документ открыт в режиме «Только просмотр», при помещении указателя мыши над ячейкой, содержащей заполненное поле «Расшифровка», указатель принимает форму [image]. Это значит, что возможна детализация (расшифровка) данных таблицы. Теперь, если дважды щелкнуть левой кнопкой мыши на этой ячейке (или сделать ее активной и нажать клавишу Enter), значение поля будет выдано на экран:

· значения типа «строка», «число», «дата» и «перечисление» будут выданы для просмотра;

· если значение имеет тип «документ», соответствующий документ будет открыт для просмотра и редактирования;

· если значение является элементом справочника, этот элемент будет открыт для просмотра и редактирования в диалоге. Если при настройке свойств справочника было задано редактирование в списке, будет открыта таблица справочника, а указатель в таблице будет установлен на нужный элемент справочника.

Кроме того, для динамической обработки значения ячейки в модуль соответствующей формы может быть помещена процедура с зарезервированным именем ОбработкаЯчейкиТаблицы(). Вызов процедуры выполняется по двойному щелчку левой кнопкой мыши или нажатию клавиши Enter на выбранной ячейке.

В конце выражения, записанного в поле «Значение», можно помещать управляющие символы «#» и «##» (без кавычек).

Символ «#» означает, что выражение расшифровки будет использовано как расшифровка для всех ячеек данной строки, для которых не указано своего выражения расшифровки. Установка символа «#» позволяет, тем самым, задавать значение расшифровки сразу для всей строки.

Символы «##» запрещают переключение курсора в форму [image] и вызов процедуры ОбработкаЯчейкиТаблицы() при двойном щелчке левой кнопкой мыши или нажатии клавиши Enter на выбранной ячейке. Данное свойство используется, когда значение расшифровки ячейки необходимо использовать при обработке других ячеек таблицы.

Защита. Этот флажок, будучи установлен, запрещает редактирование данной ячейки таблицы в режиме «Только просмотр» при работе 1С:Предприятия. Таким образом, если установить режим «Только просмотр» и запретить его отключение (в модуле отчета, средствами встроенного языка), можно установкой флажков защитить ячейки таблицы с важнейшими результатами отчета, и в то же время снятием флажков остальных ячеек разрешить корректирование общего вида итоговой таблицы для подготовки перед печатью.

Закладка «Текст» в таблице в режиме ввода данных

Если в свойствах формы указано использовать таблицу совместно с диалогом или вместо него для ввода и обработки данных, закладка «Текст» имеет следующий вид.

То, что касается текста и списка «Контроль», для этой таблицы не меняется, если текстовое поле вообще доступно для ввода, что теперь должно быть обусловлено выбором соответствующего типа данных на закладке «Данные» (см. ниже).

Поле «Расшифровка» заменяется на поле «Формула», содержимое которого используется в таблице при работе 1С:Предприятия по-разному, в зависимости от состояния флажка «Защита».

Если флажок снят, то текст, введенный в поле «Формула» на этапе конфигурирования, будет при работе 1С:Предприятия использоваться как формула, которая исполняется сразу после завершения редактирования значения в этой ячейке. Для ссылки на значение ячейки ей необходимо присвоить имя (в диалоге «Имена» или в панели формул редактора таблиц»), в соответствии с правилами написания имен переменных встроенного языка системы 1С:Предприятие.

Рациональным применением такой «формулы непосредственного действия» может стать, например, громоздкий длительный расчет, зависящий от единственного редко изменяющегося входного значения (скажем, какие-то многочисленные итоги на определенную дату). В этом случае имеет смысл производить расчет именно при смене этого значения (даты), присваивая значения полученных итогов каким-то переменным (например, помещая их в другие ячейки таблицы). При этом тип значения, установленный для ячейки, относится именно к вводимым данным, выходные данные могут быть любыми. Простейшим же примером использования ячейки со снятым флажком «Защита» в таблице в режиме ввода данных является пустое поле «Формула» с установленным числовым типом данных. В такую ячейку можно будет ввести число, где оно и будет оставаться в доступности для востребования остальными активными элементами таблицы и модуля.

В противном случае (флажок выставлен), текст в поле «Формула» будет при работе 1С:Предприятия обрабатываться как формула, которая будет вычисляться на основании каких-то других данных, а полученное значение будет присвоено данной ячейке. Вычисление таких формул будет производиться после каждой операции ввода данных, непосредственно после обработки формулы, привязанной к изменившемуся полю. Формулы обрабатываются справа налево и сверху вниз, т. е. сначала формулы в ячейках первой строки, с первого столбца и последнего, затем в ячейках второй строки и т. д. Простейшим примером такой формулы является сумма чисел, помещаемых в какие-то из ячеек, доступных для ввода; при этом будет сразу виден результат редактирования значения в каждой из них.

Между ячейками со снятым признаком защиты можно будет перемещаться с помощью клавиши Tab, при нажатии которой выделенной будет становиться ближайшая справа доступная для редактирования ячейка, а если такой нет, то самая верхняя левая доступная для редактирования ячейка в следующих строках. Переход происходит циклически, т. е. по достижении правой нижней позиции, выделенной становится опять левая верхняя. При завершении редактирования такой ячейки нажатием клавиши Enter, также происходит переход на следующую редактируемую ячейку. Если при нажатии на клавишу Tab удерживать нажатой клавишу Shift, то переход будет происходить в обратной последовательности, т. е. справа налево и снизу вверх.

Закладка «Данные»

Эта закладка присутствует только в палитре свойств ячеек таблицы, настроенной для использования совместно с диалогом или вместо него.

С помощью этой закладки можно задавать свойства как для одной ячейки, так и для группы ячеек, а также для рамки с текстом (см. ниже в разделе «Использование графических объектов»).

Для этих объектов с помощью закладки «Данные» можно настроить тип значения, которое в них будет содержаться. Можно выбрать в списке «Тип» базовые типы данных, такие как «Строка», «Дата» и «Число», а также типы, специфические для текущей конфигурации — документы, справочники, перечисления и т. д. Кроме того, можно установить тип значения «Неопределенный». В таком случае он может быть определен уже во время заполнения формы с помощью средств встроенного языка.

Для строкового и числового типов, кроме того, может быть задана длина, а для числового — точность представления и признаки разделения триад цифр и не отрицательности.

Типом значения по умолчанию является строка неограниченной длины, и в этом случае редактирование значения будет осуществляться так же, как и в остальных режимах работы табличного редактора.

На закладке «Данные», кроме того, располагается поле ввода «Формат». В нем можно задать форматную строку, которая будет использоваться при выводе значения.

При установке флажка «Кнопка выбора» при редактировании значения в данной ячейке будет появляться кнопка выбора. Установленный тип данных определяет, будет ли это календарь, калькулятор или кнопка «…» для доступа, например, к справочнику.

Флажок «Сделать недоступным» позволяет запретить редактирование ячейки. Управление этим свойством доступно из встроенного языка системы 1С:Предприятие, что позволяет динамически устанавливать для ячейки атрибут «Сделать недоступным».

Флажок «Запретить редактирование» запрещает редактирование содержимого ячейки с клавиатуры. Однако в такую ячейку можно вводить значение, используя выбор: например, ввести бухгалтерский счет, выбрав его из плана счетов. Если при вводе значения в ячейку кнопка выбора отсутствует, можно использовать клавишу F4.

Когда в поле «Тип значения» выбрана строка, вместо поля «Точность» в закладке появляется поле «Маска».

Маска позволяет назначить шаблон ввода строкового значения. Шаблон представляет собой последовательность символов, позиционно определяющих действия, которые будут выполняться при вводе символов в ячейку. Подробнее о использовании маски см. п. «Свойства элементов диалога», стр. Ошибка! Закладка не определена..

Закладка «Положение»

Для установки характеристик выравнивания текста в ячейке таблицы служат управляющие элементы закладки «Положение».

Группа переключателей «По горизонтали» задает выравнивание текста в ячейке таблицы по горизонтали:

Лево выравнивание текста по левой границе ячейки;

Право выравнивание текста по правой границе ячейки;

Центр текст размещается вдоль вертикальной линии, проходящей через центр ячейки;

По ширине текст выравнивается одновременно по правой и по левой границам ячейки. Высота и ширина ячейки автоматически устанавливаются такими, чтобы текст в ячейке был виден полностью.

На закладке может быть установлен специальный режим «По вы деленным столбцам». Если этот режим установлен, то текст, введенный в самой левой ячейке выделенной в данный момент области, будет расположен в соответствии с выбранным вариантом горизонтального положения в пределах всей выделенной области. Этот режим используется, прежде всего, для того, чтобы отцентрировать текст в пределах нескольких ячеек в строке.

Группа переключателей «По вертикали» задает выравнивание текста в ячейке таблицы по вертикали:

Низ текст располагается вдоль нижней границы ячейки;

Верх текст располагается вдоль верхней границы ячейки;

Центр текст размещается вдоль горизонтальной линии, проходящей через центр ячейки.

Если эти свойства устанавливаются для группы ячеек и ячейки не объединены, то выравнивание текста производится для каждой ячейки индивидуально.

Использование объединения ячеек. Для выравнивания текста и пределах нескольких ячеек можно использовать функцию объединения ячеек. Если несколько ячеек объединены в одну, при выравнивании текста границами выравнивания будут считаться границы этой объединенной ячейки.

Для объединения ячеек необходимо выделить желаемый диапазон ячеек и выбрать функцию «Объединить» из меню «Таблица» главного меню Конфигуратора или кнопку [image] на панели инструментов «Редактор таблиц».

Если в объединяемых ячейках был текст, он пропадет, за исключением текста левой верхней ячейки, который станет текстом объединенной ячейки.

Для разъединения объединенной ячейки достаточно выделить ее и выбрать функцию «Разъединить» из меню «Таблица» главного меню Конфигуратора или ту же кнопку панели инструментов.

Если в объединенной ячейке был текст, при разъединении он попадет в левую верхнюю ячейку, независимо от условий форматирования (например, он мог располагаться в правом нижнем углу объединенной ячейки, будучи сдвинут вправо по горизонтали и вниз по вертикали).

Закладка «Шрифт»

Для задания атрибутов шрифта для текста активной ячейки служат управляющие элементы закладки «Шрифт». Они позволяют выбрать гарнитуру (начертание) шрифта, его размер и стиль (жирный, курсив, подчеркнутый).

Поле «Цвет» позволяет установить цвет, которым будет изображаться шрифт на экране и при печати. Если в этом поле вместо конкретного цвета выбрать пункт «Авто», то цвет шрифта будет определяться установками операционной системы MS Windows.

Закладка «Рамка»

Управляющие элементы закладки «Рамка» служат для создания обрамления вокруг ячейки или группы ячеек таблицы.

Рамка. Управляющие элементы, сведенные в группу «Рамка», позволяют установить, вдоль каких границ ячейки будет идти обрамление. Для включения обрамления достаточно выбрать мышью поле с названием нужной стороны ячейки. Б выбранном поле будет изображен образец линии обрамления.

Совет. Если необходимо обвести рамками сразу несколько ячеек, предварительно выделите эти ячейки как группу — щелкая по ним мытью при нажатой клавише Ctrl.

Стиль. Элементы группы «Стиль» предназначены для задания стиля линии обрамления. Для установки стиля необходимо выбрать мышью нужный образец.

Выбирая поля из групп «Рамка» и «Стиль» в произвольных сочетаниях, можно устанавливать разные стили линии обрамления для различных сторон ячейки.

Цвет. В поле «Цвет» задается цвет обрамления.

Закладка «Узор»

При помощи управляющих элементов закладки «Узор» задаются цвета фона ячейки, а также цвет и картинка заполнения.

При изображении ячейки заполнение выводится поверх фона ячейки, а самый верхний «слой» составляет текст ячейки.

Панель формул

Панель формул — горизонтальная панель, находящаяся в верхней части окна программы и служащая для просмотра и редактирования текстов и формул ячеек табличного документа.

Отображение панели формул

Видимость панели формул включается и выключается в меню «Вид» пунктом «Панель формул». При включении панели формул этот пункт отмечается галочкой. Если включить режим «Только просмотр», этот пункт меню делается недоступным (в том состоянии, в каком был, включенном или выключенном).

На панели формул имеется кнопка «Прикрепить», которая определяет, будет ли панель формул присутствовать на экране:

только при работе с редактором таблиц, притом не находящемся в режиме «Только просмотр»;

постоянно.

Ввод и редактирование текста и формул

Основную часть панели формул занимает расположенное справа поле ввода, в котором отображается текст или формула выделенной ячейки — для ячейки таблицы, настроенной для режима ввода данных, текст или расшифровка — для «обычной» таблицы.

Для изменения текста можно щелкнуть левой кнопкой мыши по полю ввода и внести необходимые изменения в текст. Для завершения редактирования можно нажать клавишу Enter или щелкнуть мышью по табличному документу или по кнопке [image] («зеленая галочка»), расположенной слева от поля ввода. Для отказа от изменений, сделанных в поле ввода можно нажать клавишу Esc или щелкнуть мышью по кнопке [image] («красный крестик») слева от поля ввода. Нужно отметить, что эти кнопки видны только при редактировании содержимого поля ввода.

Кроме того, на панели формул располагается переключатель в виде кнопки [image]. С его помощью можно переключать режим показа и редактирования в поле ввода текста/формулы (текста/расшифровки). Если переключатель не нажат, то в поле ввода отображается и редактируется текст ячейки, а если нажат — формула (расшифровка). Для переключения режима нужно щелкнуть мышью по этому переключателю.

Ввод и редактирование имен

В левой части напели формул расположено поле со списком, служащее для задания имен (идентификаторов) отдельным ячейкам, диапазонам ячеек и рисункам (см. стр. 6). В этом поле отображается имя выделенного в данный момент диапазона ячеек или рисунка. Если выделенному элементу имя не было присвоено, то в этом поле отображается автоматически формируемое имя, состоящее из номера строки и номера столбца.

Если для выделенной области имя было задано, то оно выводится в поле со списком. Для того чтобы присвоить имя области или рисунку, ее (его) необходимо выделить, щелкнуть мышью, набрать имя в поле со списком и нажать клавишу Enter или щелкнуть мышью таблицу. Для отказа от ввода необходимо нажать клавишу Esc. Набранное имя не должно соответствовать автоматически формируемому имени какого-либо диапазона. В случае, если оно может быть проинтерпретировано таким образом, при нажатии клавиши Enter выделенной становится область с таким автоматическим именем, а присвоения не происходит. То есть, такое имя не попадает в список имен, присвоенных пользователем.

Имена областей уникальны, т. е. различные области должны иметь различные имена, причем регистр букв в именах не различается. Если набранное имя уже использовано для другой области, то при нажатии клавиши Enter ее имя заменяется на автоматическое, а введенное закрепляется за текущей выделенной областью.

При щелчке мышью по стрелочке с правой стороны поля имен или при нажатии клавиши F4 в то время, когда это поле активно, появляется выпадающий список всех имен, заданных для данного табличного документа. Его можно прокручивать клавишами «Вверх» и «Вниз» или мышью и выбирать одно из имен нажатием клавиши Enter или щелчком мыши. При этом область, соответствующая выбранному имени, становится выделенной.

Чтобы удалить ранее заданное имя, необходимо выбрать его из списка поля имен или выделить область таблицы, для которой оно задано, удалить весь текст в поле имен и нажать клавишу Enter. Данное действие приводит к тому, что имя удаляется из списка, а идентификация области меняется на автоматическую.

Перемещение и копирование ячеек

Любую ячейку таблицы можно переместить в другое место таблицы. Точнее, перемещается не сама ячейка, а содержащийся в ней текст и атрибуты форматирования ячейки. Также можно копировать ячейку, перенося таким образом атрибуты форматирования ячейки-образца в другие ячейки таблицы.

Перемещение ячеек. Для перемещения ячейки или диапазона ячеек выполните следующие действия:

· выделите ячейку или диапазон ячеек, которые требуется перенести;

· укажите мышью на рамку, обрамляющую ячейки, так, чтобы указатель мыши принял форму стрелки;

· перетащите ячейки на новое место.

Если необходимо переместить ячейки в ту часть таблицы, которая скрыта границами окна, — подведите указатель мыши к краю видимой части таблицы, и таблица начнет автоматически «прокручиваться».

Замечание. Группу ячеек переносить нельзя.

Копирование ячеек. С помощью мыши легко выполняется копирование ячейки или диапазона ячеек:

· выделите ячейку или диапазон ячеек, которые предполагается копировать;

· укажите мышью на рамку, обрамляющую ячейку, так, чтобы указатель мыши принял форму стрелки;

· перетащите ячейки на новое место при нажатой клавише Ctrl;

· после того, как ячейка займет нужное положение, отпустите сначала кнопку мыши, затем клавишу Ctrl.

Если в процессе перетаскивания копии ячейки отпустить клавишу Ctrl, то ячейка будет перемещена, а не скопирована.

Замечание. Нельзя копировать группу ячеек.

Использование Буфера Обмена. Для перемещения и копирования ячеек можно использовать также Буфер Обмена (Clipboard) MS Windows. Для работы с Буфером Обмена используются команды «Вырезать», «Копировать» и «Вставить», расположенные в меню «Действия» главного меню программы, а также соответствующие кнопки панели инструментов.

Для перемещения ячейки (или диапазона ячеек) следует сначала применить к ней команду «Вырезать». Эта команда удалит содержимое ячейки и поместит его в Буфер Обмена. При помощи команды «Вставить» содержимое можно извлечь из Буфера Обмена и поместить в текущую ячейку.

Для копирования ячейки необходимо воспользоваться нарой команд «Копировать» — «Вставить»: команда «Копировать» помещав в Буфер Обмена копию ячейки, а командой «Вставить» содержимое Буфера Обмена вставляется в текущую ячейку.

Для копирования в Буфер Обмена можно использовать кнопку «М» напели инструментов «Сервис», в этом случае в Буфере Обмена будет запомнено содержимое ячейки как число (если копируемая ячейка содержала число). Если выделен диапазон ячеек, то при нажатии кнопки «М» в Буфер Обмена будет помещенная сумма чисел, находящихся в выделенных ячейках.

Следует заметить, что копия ячейки остается в Буфере Обмена до тех нор, пока он не будет очищен или в него не будет помещена какая-либо другая информация. Это свойство можно использовать, когда необходимо создать несколько копий одной и той же ячейки.

Если при перемещении или копировании вместо команды «Вставить» использовать команду «Специальная вставка», на экран будет выдан запрос. Установкой соответствующих опций этого запроса можно указать, что необходимо вставить в таблицу: ячейку целиком, ее содержимое, формат текста или обрамление.

«Расширенное» перетаскивание. Для перемещения и копирования ячеек можно использовать также правую кнопку мыши, при этом осуществляется так называемая «расширенная» операция перетаскивания. Если не считать замены левой кнопки мыши на правую, способ осуществления операции тот же, как при описанном выше перемещении, но при отпускании кнопки возникает контекстное меню:

Это меню позволяет определить, что именно будет сделано с помощью расширенной операции перетаскивания: перемещение, копирование или копирование с вышеописанной специальной вставкой. Можно также отменить операцию.

Добавление и удаление ячеек

Достаточно часто возникает необходимость добавить в существующую таблицу новую ячейку, или вставить целиком строку или столбец, а также удалить существующие строки или столбцы.

Вставка строки (столбца). Для вставки строки или столбца выполните следующие действия:

· выделите в таблице такое количество строк или столбцов, которое необходимо вставить, и в том месте, которое должны будут занимать вставляемые строки или столбцы;

Следует учесть, что новые строки помещаются в таблицу сверху от выделенных, а новые столбцы — слева.

· поместите указатель мыши в пределах выделенного диапазона и нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в контекстном меню выберите пункт «Раздвинуть».

Помимо функции «Раздвинуть» контекстного меню, для выполнения вставки строк и столбцов можно использовать функцию «Раздвинуть» из меню «Действия» главного меню Конфигуратора.

Удаление строки (столбца). Для удаления строки или столбца выполните следующие действия:

· выделите в таблице те строки или столбцы, которые необходимо удалить;

· поместите указатель мыши в пределах выделенного диапазона и нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в контекстном меню выберите пункт «Удалить».

Выделенные строки или столбцы удаляются из таблицы вместе с содержащимся в них текстом. Их место занимают строки, расположенные снизу, или столбцы, расположенные справа.

Вставка ячейки. В любое место существующей таблицы можно вставить новую ячейку.

Для вставки ячейки выполните следующие действия:

· выделите в таблице ячейку, на место которой должна быть вставлена новая ячейка;

· поместите указатель мыши на выделенную ячейку;

· нажатием правой кнопки мыши вызовите на экран контекст-нос меню;

· в контекстном меню выберите пункт «Раздвинуть»;

· в выданном на экран запросе выберите, куда надо сдвинуть ячейки, чтобы освободить место для вставляемой ячейки: горизонтально — будут сдвинуты ячейки, расположенные справа от выделенной ячейки, вертикально — расположенные ниже;

· нажмите кнопку «ОК».

Помимо функции «Раздвинуть» контекстного меню, для выполнения вставки диапазона можно использовать функцию «Раздвинуть» из меню «Действия» главного меню программы.

Вставка диапазона ячеек. В случае необходимости в таблицу можно вставить диапазон ячеек.

Для вставки диапазона выполните следующие действия:

· выделите в таблице диапазон такого же размера, какой необходимо вставить, и в том месте, которое должен будет занимать вставляемый диапазон;

· поместите указатель мыши в пределах выделенного диапазона;

· нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в контекстном меню выберите пункт «Раздвинуть».

· в выданном на экран запросе выберите, куда надо сдвинуть ячейки, чтобы освободить место для вставляемого диапазона: горизонтально — будут сдвинуты ячейки, расположенные справа от выделенного диапазона, вертикально — расположенные ниже;

· нажмите кнопку «ОК».

Помимо функции «Раздвинуть» контекстного меню, для выполнения вставки диапазона можно использовать функцию «Раздвинуть» из меню «Действия» главного меню Конфигуратора.

Удаление диапазона ячеек. Для удаления диапазона выполните следующие действия:

· выделите в таблице диапазон, который необходимо удалить;

· поместите указатель мыши в пределах выделенного диапазона;

· нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в контекстном меню выберите пункт «Удалить»;

· в выданном на экран запросе выберите, какой диапазон займет место удаленного: «горизонтально» — место удаленного займет диапазон, расположенный справа от него; «вертикально» — диапазон, расположенный ниже;

· нажмите кнопку «ОК».

Работа с секциями таблицы

В табличном редакторе системы 1С:Предприятие существует возможность создания именованных секций таблицы. При построении выходной формы обращение к различным частям шаблона производится именно по присвоенным именам секций.

Создание секции

Секции бывают горизонтальные (включают в себя отмеченные строки) и вертикальные (включают в себя отмеченные столбцы).

Для присвоения имени какой-либо секции таблицы необходимо сначала отметить необходимые строки или столбцы, затем в меню «Таблица» главного меню программы выбрать пункт «Внести в секцию».

На экран будет выдан диалог «Идентификатор секции». По умолчанию каждой новой секции присваивается имя «Секция» с очередным порядковым номером. Для присвоения нового имени области таблицы необходимо ввести желаемое имя в поле ввода и нажать кнопку «ОК». Диалог будет убран с экрана, а поименованная область будет обведена тонкой рамкой красного цвета.

Внимание. Нельзя поименовать группу ячеек. Если выделить группу ячеек и попытаться присвоить ей имя, то имя будет присвоено секции, содержащей все строки (если в запросе выбрана горизонтальная секция) или все столбцы (если в запросе вы брана вертикальная секция) выбранного диапазона ячеек.

Переименование и удаление секций

При работе с именованными секциями можно их переименовывать, удалять, расширять (включать в них дополнительные соседние строки или столбцы), создавать вложенные или внешние секции.

Для переименования или удаления именованной секции выберите из меню «Таблица» главного меню программы пункт «Секции», а в открывшемся подменю — пункт «Горизонтальные» или «Вертикальные». На экран будет выдан диалог «Секции». Диалог содержит окно со списком существующих секций и кнопки для управления этим списком.

«Выбрать». Кнопка «Выбрать» служит для выделения именованной секции. Эту функцию удобно использовать, когда необходимо произвести какие-либо действия над всеми ячейками, входящими в секцию, например, изменить гарнитуру или размер шрифта.

«Изменить». Для переименования какой-либо секции таблицы служит кнопка «Изменить». Предварительно необходимо в списке существующих имей выбрать имя, которое требуется изменить. Нажатие на кнопку «Изменить» вызывает на экран диалог «Идентификатор секции», в котором следует отредактировать имя секции.

«Удалить». Для удаления какой-либо секции таблицы служит кнопка «Удалить». Предварительно необходимо в списке существующих имен выбрать имя секции, которую требуется удалить. Нажатие на кнопку «Удалить» удаляет имя секции из списка, красная рамка вокруг именованной области пропадает, но содержимое секции остается без изменений.

При удалении секции содержимое ячеек не меняется, просто удаляется привязка имени к выделенной области строк или столбцов.

Изменение размеров секций. Вложенные и внешние секции

При работе с именованными секциями можно изменять размеры секции (расширять — включать дополнительные соседние строки или столбцы, сужать — исключать крайние строки или столбцы), создавать вложенные или внешние секции.

Расширение секций. Для расширения секции необходимо выполнить следующие действия:

· выделите строки или столбцы, которые необходимо включить и новую секцию;

· выберите в меню «Таблица» главного меню программы пункт «Включить в секцию».

В зависимости от взаимного расположения выделенного диапазона и существующей секции редактор таблиц выполнит одно из следующих действий:

· если отмеченная область строк или столбцов не пересекается с существующими секциями, то будет создана новая именованная секция;

· если отмеченная область строк или столбцов частично пересекается с существующей секцией, то существующая секция будет расширена за счет соседних отмеченных строк или столбцов;

· если отмеченная область строк или столбцов находится внутри существующей секции, то будет создана новая секция, вложенная в существующую;

· если отмеченная область строк или столбцов охватывает полностью существующую секцию, то будет создана новая секция, внешняя для существующей, так что существующая секция будет вложена в новую.

Сужение секций. Для сужения секции необходимо выполнить следующие действия:

· выделите нужные строки или столбцы;

· выберите в меню «Таблица» главного меню программы пункт «Исключить из секции».

В зависимости от взаимного расположения выделенного диапазона и существующей секции редактор таблиц выполнит одно из следующих действий:

· если отмеченная область строк или столбцов не пересекается с существующими секциями, то никаких действий не произойдет;

· если отмеченная область строк или столбцов находится внутри существующей секции, то никаких действий не произойдет;

· если отмеченная область строк или столбцов пересекается с существующей секцией, то секция будет сужена за счет отмеченных строк или столбцов;

· если отмеченная область строк или столбцов охватывает полностью существующую секцию, то секция будет удалена полностью.

Использование графических объектов

При создании шаблонов табличных документов можно использовать графические объекты. Их применение позволяет улучшить оформление документов или внести в описание формы мелкие добавления, не затрагивая структуры шаблона.

К графическим элементам относятся линии, прямоугольники, тексты, картинки, внедренные объекты (OLE-объекты) и диаграммы.

Текстом в табличном редакторе системы 1С:Предприятие называется рамка с текстом внутри.

Ниже будет рассмотрена работа со всеми графическими объектами за исключением OLE-объектов и диаграмм, а особенности работы с OLE-объектами и диаграммами будут рассмотрены в отдельных параграфах.

Создание графических объектов

Добавление рисованных элементов в таблицу производится при помощи пункта «Вставить рисунок» меню «Таблица» главного меню программы или кнопок панели инструментов «Редактор таблиц».

Внимание! Контекстное меню ячейки (которое вызывается нажатием правой кнопки мыши) также содержит пункт «Вставить», но в данном случае подразумевается вставка ячеек в таблицу.

В меню «Вставить» следует выбрать мышью название того графического объекта, который необходимо поместить в шаблон табличного документа, либо нажать соответствующую кнопку панели инструментов. Теперь, если указатель мыши находится на рабочем поле таблицы, он примет вид тонкого перекрестия.

Для рисования линии:

· поместите указатель в ту позицию на рабочем поле таблицы, от который вы хотите начать рисование линии;

· нажмите левую клавишу мыши и, не отпуская ее, переместите указатель мыши в позицию, где будет заканчиваться линия. Пунктирная линия, идущая от начальной позиции до указателя мыши, показывает положение линии после окончания рисования;

· отпустите левую клавишу мыши.

На рабочем поле появится линия, а курсор примет стандартный вид [image].

Для рисования прямоугольника или текста:

· поместите указатель в ту позицию на рабочем поле таблицы, где должен находиться угол прямоугольника;

· нажмите левую клавишу мыши и не отпуская ее, переместите указатель мыши в позицию, где будет располагаться противоположный угол прямоугольника. По мере движения указателя мыши пунктирная линия будет показывать расположение и размеры будущего прямоугольника;

· отпустите левую клавишу мыши.

Если создается текст, то после окончания рисования внутри прямоугольника появится текстовый курсор (мигающая вертикальная полоска), и можно будет начать ввод текста надписи.

При вставке картинки на экран будет выдан стандартный диалог открытия файла, в котором можно указать имя графического файла. Если отказаться от указания имени файла, в таблице будет «зарезервировано место» под картинку.

Выделение графических объектов

Перед тем, как проводить какие-либо манипуляции с графическим объектом, его необходимо выделить. Перед выделением графического объекта следует переключить указатель мыши в режим выделения графических объектов, нажав кнопку [image] в панели инструментов «Редактор таблиц».

Для выделения одного объекта необходимо щелкнуть на нем левой кнопкой мыши.

Если выделяется прямоугольник или текст, то вокруг него появятся восемь небольших квадратных маркеров черного цвета: четыре из них расположены в середине каждой из четырех сторон рамки и четыре — в ее углах. Эти маркеры служат для изменения размеров объекта.

Если выделяется линия, то маркеры появятся только в се начальной и конечной точках.

Для выделения нескольких графических объектов используйте следующий способ: выделите первый объект, затем нажмите клавишу Shift и, не отпуская ее, выделите остальные объекты. Восемь маркеров появятся на воображаемой рамке, включающей все выделенные объекты.

Для снятия выделения с объекта или объектов достаточно щелкнуть мышью в любом свободном от объектов месте таблицы.

Для выключения режима выделения графических объектов следует повторно нажать кнопку [image] в панели инструментов «Редактор таблиц».

Перемещение и копирование графических объектов

Любой графический объект можно перемещать по таблице, а также копировать, создавая несколько объектов на основе одного объекта-образца.

Перемещение графического объекта. Для перемещения графического объекта надо перетащить его мышью в новое место. Пунктирная рамка (или линия — если перемещается линия), которая обозначает объект при движении мыши, поможет разместить его на рабочем поле.

Если необходимо переместить объект в ту часть таблицы, которая скрыта границами окна, — подведите указатель мыши к краю видимой части таблицы и таблица начнет автоматически «прокручиваться».

Перемещение графического объекта происходит также при нажатии на клавиатуре клавиш управления курсором.

Копирование графического объекта. Для копирования графического объекта перетащите его мышью при нажатой клавише Ctrl.

Если в процессе переноса копии объекта отпустить клавишу Ctrl, объект будет не скопирован, а перемещен.

Использование Буфера Обмена. Для перемещения и копирования графических объектов можно использовать Буфер Обмена (Clipboard) MS Windows.

Для работы с Буфером Обмена используются команды «Вырезать», «Копировать» и «Вставить», расположенные в меню «Действия» главного меню программы, или соответствующие кнопки [image], [image] и [image] на панели инструментов «Стандартная», или соответствующие сочетания клавиш Ctrl+X, Ctrl+C, Ctrl+V.

Для перемещения графического объекта (или группы объектов) следует сначала применить к нему команду «Вырезать». Эта команда удалит объект с рабочего поля и поместит его в Буфер Обмена.

При помощи команды «Вставить» объект можно извлечь из Буфера Обмена и вновь поместить па рабочее поле. Положение вставленного объекта (или группы объектов) будет определяться следующим образом: в левый верхний угол активной ячейки таблицы помещается левый верхний угол воображаемой прямоугольной рамки, обведенной вокруг вставляемых объектов.

Для копирования объекта необходимо поместить в Буфер Обмена не сам объект, а его копию. Это делается командой «Копировать». Вставляется объект так же, как это было описано выше

Следует заметить, что в любом случае копия объекта остается в Буфере Обмена MS Windows. Это свойство можно использовать, когда необходимо создать несколько копий одного и того же объекта.

Если при перемещении или копировании вместо команды «Вставить» использовать команду «Специальная вставка», на экран будет выдан стандартный запрос MS Windows, в котором можно указать, как будет интерпретирован вставляемый графический объект,

Изменение размеров графических объектов

Размер любого графического объекта нетрудно изменить. Для этого используются маркеры, которые появляются вокруг объекта (или группы объектов) при его выделении.

Технология изменения размеров несколько отличается для линии и, скажем так, «прямоугольных» графических объектов.

При выделении линии два маркера появляются у ее концов. Перемещая мышью любой маркер, можно изменять не только размер, но и наклон линии.

При выделении «прямоугольного» объекта вокруг него появляется 8 маркеров. Четыре из них, расположенные на сторонах объекта, служат для изменения одного размера — высоты или ширины, другие четыре, расположенные в углах, используются для одновременного изменения обоих размеров. Для изменения размеров объекта достаточно перетащить мышью один из маркеров.

Можно изменить размеры группы объектов. При выделении мышью нескольких объектов маркеры изменения размеров появляются на воображаемой рамке, охватывающей все выделенные объекты. Для изменения размеров выделенных объектов достаточно перетащить мышью один из маркеров, при этом размеры всех выделенных объектов изменятся пропорционально соотношению между начальным и конечным размерами области, занятой выделенными объектами.

Изменение порядка расположения графических объектов

Когда несколько графических объектов частично или полностью перекрывают друг друга, важно задать для них порядок расположения для достижения требуемого изобразительного эффекта.

Новый рисованный объект всегда помещается на передний план и перекрывает объекты, оказавшиеся под ним. Но всегда можно принудительно поместить объект позади всех других объектов, и, наоборот, перенести вперед всех.

Для переноса объекта необходимо выполнить следующие действия:

· выделите объект мышью;

· нажатием правой кнопки мыши вызовите на экран контекстное меню;

· в этом меню выберите одну из функций: «На передний план» — переноса объекта вперед всех объектов; «На задний план» — для размещения объекта позади всех других объектов.

Также для переноса объектов можно использовать аналогичные функции подменю «Положение рисунка» меню «Таблица» главного меню программы.

Удаление графических объектов

Для удаления рисованного объекта необходимо выделить его мышью и нажать клавишу Del. Также можно воспользоваться функцией «Удалить» из меню «Действия» главного меню программы, если предварительно выделить весь диапазон ячеек, на которых располагается графических объект. Если какая-то часть объекта окажется на других ячейках, объект останется в таблице.

Имена графических объектов

Графическим объектам, как и ячейкам таблицы, можно присваивать имена. Имена присваиваются либо при помощи диалога «Имена» (пункт «Имена» из меню «Таблица» главного меню Конфигуратора), или при помощи панели имен.

Вновь создаваемым графическим объектам Конфигуратор присваивает имена по умолчанию, состоящие из буквы D и порядкового номера графического объекта.

Свойства графических объектов

Свойства, которые могут быть назначены графическому объекту, включают параметры форматирования объекта (цвет, обрамление, заливка).

Свойства графического объекта редактируются при помощи палитры свойств «Свойства рисунка». Для вызова палитры свойств на экран необходимо выполнить следующие действия:

· выделите графический объект, для которого необходимо редактировать свойства;

· нажатием правой кнопки мыши вызовите контекстное меню;

· в этом меню выберите пункт «Свойства».

Палитра свойств, используемая при редактировании свойств графических объектов, по порядку использования аналогична той, которая применяется при редактировании свойств объектов метаданных. Порядок использования палитры свойств можно узнать в главе «Метаданные».

Состав закладок палитры свойств и состав управляющих элементов на каждой закладке зависит от типа графического объекта. Ниже будет приведено описание управляющих элементов каждой закладки, с указанием того, для каких типов графических объектов они могут использоваться.

Закладка «Текст»

Закладка «Текст» присутствует в палитре свойств при редактировании свойств графических объектов типа «Текст» и «Картинка».

Для графического объекта типа «Текст» состав и назначение управляющих элементов закладки полностью совпадают с управляющими элементами закладки «Текст» в палитре свойств ячейки таблицы. Управляющие элементы этой закладки описаны в п. «Свойства ячеек таблицы», стр. 12.

Для графического объекта типа «Картинка» в этой закладке будут отсутствовать управляющие элементы «Тип» и «Контроль».

Текст, введенный в многострочном поле этой закладки для графического объекта типа «Картинка» будет считаться именем функции на встроенном языке системы 1С:Предприятие. Текст, введенный в это поле, не отображается в графическом объекте.

Функция будет выполнена при переносе графического объекта в процессе обработки шаблона табличного документа. Текст функции должен присутствовать в модуле формы, содержащей редактируемый табличный документ.

Закладка «Линия»

Управляющие элементы закладки «Линия» используются для:

· создания обрамления вокруг «прямоугольных» графических объектов (объекты типа «Прямоугольник», «Текст», «Картинка», OLE-объект);

· назначения стиля графического объекта типа «Линия».

Состав управляющих элементов закладки меняется в зависимости от типа редактируемого графического объекта.

Стиль. Позволяет выбрать стиль графического объекта «Линия» или стиль обрамления для прямоугольных графических объектов.

Толщина. Позволяет выбрать толщину графического объекта «Линия» или толщину обрамления для прямоугольных графических объектов.

Цвет. В поле «Цвет» задается цвет графического объекта «Линия» или цвет обрамления.

Слева, сверху, справа, снизу. Эти опции присутствуют в закладке только при редактировании «прямоугольных» графических объектов. Включение или выключение этих опций позволяет выбрать рисование обрамления с соответствующей стороны графического объекта.

Выводить на печать. Если снять этот флажок, графический объект не будет выводиться на печать при печати таблицы.

Закладка «Узор»

Закладка «Узор» присутствует в палитре инструментов при редактировании свойств «прямоугольных» графических объектов. Состав и назначение управляющих элементов закладки полностью совпадают с управляющими элементами закладки «Узор» в палитре свойств ячейки таблицы. Управляющие элементы этой закладки описаны в п. «Свойства ячеек таблицы», стр. 12.

Закладки «Положение» и «Шрифт»

Закладки «Положение» и «Шрифт» присутствуют в палитре инструментов при редактировании свойств графического объекта типа «Текст». Состав и назначение управляющих элементов этих закладок полностью совпадают с управляющими элементами соответствующих закладок в палитре свойств ячейки таблицы. Управляющие элементы закладок описаны в п. «Свойства ячеек таблицы», стр. 12.

Работа с OLE-объектами

Одной из универсальных возможностей приложений, работающих в операционной системе MS Windows 95 (Windows NT), является возможность использования внедренных объектов, называемых также OLE-объектами. OLE-объект это часть текущего документа, которая создана другим Windows-приложением. Такой OLE-объект, как и любой рисованный объект, является полноценной частью документа с той лишь разницей, что для редактирования такого объекта будет загружено приложение, которым этот объект создан.

Для создания OLE-объскта необходимо выполнить следующие действия:

· в меню «Таблица» главного меню Конфигуратора выберите функцию «Вставить рисунок» и из открывшегося подменю выберите пункт «Объект» или нажмите кнопку [image] на панели инструментов «Редактор таблиц»;

· нарисуйте мышью прямоугольник желаемого размера в том месте, где предполагается разместить OLE-объскт;

· в выданном на экран запросе выберите тип внедряемого объекта;

Это вызовет загрузку той Windows-программы, которая поддерживает редактирование объектов указанного типа. При этом внешний вид окна Конфигуратора несколько изменится: в главном и контекстных меню появятся функции, а на рабочем поле — напели инструментов, характерные для вызванной программы.

Внимание! Программы для создания OLE-объектов не входят в комплект поставки. Это отдельные Windows-приложения, являющиеся лицензионными программными продуктами. Об использовании вызванной программы следует читать в документации, поставляемой с ней.

· отредактируйте OLE-объект;

· закончите редактирование OLE-объскта, щелкнув мышью в любом месте рабочего поля таблицы вне объекта.

После создания OLE-объекта он обладает всеми свойствами, присущими «обычным» рисованным объектам: вы можете менять его размер и положение, копировать, используя мышь или Буфер Обмена, как угодно компоновать с другими объектами и удалять за ненадобностью. О выполнении этих операций можно узнать из п. «Использование графических объектов», стр. 22.

Но кроме этого, OLE-объскт может быть отредактирован — его содержимое можно изменить. Для редактирования OLE-объекта необходимо дважды щелкнуть на нем мышью. В результате будет загружена та Windows-программа, в которой был создан данный объект, и вы можете отредактировать внедренный объект.

Работа с диаграммой

Табличный редактор включает специальный графический объект — диаграмму, которая позволяет размещать в табличных документах системы 1С:Предприятие диаграммы и графики различного вида.

Для создания диаграммы необходимо выполнить следующие действия:

· в меню «Таблица» главного меню Конфигуратора выберите пункт «Вставить рисунок» и из открывшегося подменю выберите пункт «Диаграмма»;

· в табличном документе нарисуйте мышью прямоугольник желаемого размера в том месте, где предполагается поместить диаграмму.

После создания диаграмму нужно активизировать, например, двойным щелчком мыши, и настроить ее внешний вид (см. ниже п. «Настройка диаграммы»).

Свойства диаграммы можно разделить на 2 группы.

В первую группу входят свойства диаграммы в целом, как графического объекта. Для редактирования этих свойств используется палитра свойств, которую можно вызвать, выбрав пункт «Свойства» из меню «Действия» главного меню Конфигуратора. Состав и назначение управляющих элементов палитры свойств диаграммы в основном совпадает с управляющими элементами палитры свойств других графических объектов.

В закладку «Текст» палитры свойств диаграммы нужно внести вызов процедуры, управляющей диаграммой. Сама диаграмма в момент вызова процедуры является текущим объектом таблицы и передается в процедуру параметром.

Например, этот вызов будет выглядеть так:

ПостроитьДиаграмму(Таб.ТекущийОбъект)

Управление диаграммой, наполнение се данными, осуществляется внутри этой процедуры.

Вторую группу свойств диаграммы образуют свойства се составных частей: общей области диаграммы, области построения диаграммы, заголовки и легенды.

Диаграмма «распадается», если дважды щелкнуть ее мышью или в контекстном меню диаграммы выбрать пункт «Объект 1С.V7Диаграмма — Изменить». После этого для каждой из перечисленных областей диаграммы можно вызвать диалог для определения формата области диаграммы (см. ниже).

Основные принципы и понятия

Диаграмма представляет собой определенную фигуру, которая строится на основе матрицы данных. Данные, организованные в виде матрицы, удобно представить как значения, полученные в результате замеров, причем замеры производились сериями. Для матрицы значений размером [M,N] M — количество точек, замерами в которых получены значения, N — количество серий значений (далее — серий).

Для количественной ориентации в диаграмме используются координатные оси. Каждому значению, отмеченному на оси, соответствует поясняющая метка (далее — метка). В зависимости от типа координатной оси, метка может быть рассчитанной, или определяться при заполнении данными. Например, для объемной диаграммы по одной горизонтальной оси откладываются номера замеров (1, 2, 3...), по другой — наименования серий, а по вертикальной оси — значения (числовые данные, по которым строится диаграмма).

С точки зрения настройки, диаграмма состоит из четырех областей:

· общая область диаграммы, или, для краткости, просто область диаграммы — совокупность всех областей, образующих диаграмму;

· область построения диаграммы — содержит координатное пространство и изображенную на нем фигуру;

· заголовок диаграммы;

· легенда — вспомогательная область, содержащая список меток, соответствующих сериям.

Настройка диаграммы

Настройка диаграммы обычно проводится па этапе конфигурирования. Задача настройки состоит в определении формата, специфического для каждой из областей, их размера и расположения. При этом настройка ограничена пределами, определяемыми теми требованиями, которые различные типы диаграмм предъявляют к организации данных (см. ниже). При попытке преобразовать тип диаграммы в другой, несовместимый с ним, данные будут потеряны.

Настройка размеров и положения областей диаграммы производится точно так же, как любого графического объекта в целом.

Диалог, с помощью которого настраивается формат каждой из четырех областей диаграммы, можно активизировать двумя способами:

· двойным щелчком указателя мыши на нужной области;

· с помощью контекстного меню области.

Формат общей области диаграммы

Диалог настройки формата общей области диаграммы состоит из двух закладок: «Свойства» и «Вид».

Показывать легенду. Флажок определяет, будет ли формируемая диаграмма содержать легенду со списком серий.

Показывать заголовок. Флажок определяет, будет ли формируемая диаграмма содержать заголовок.

Размерность данных. Эта группа элементов позволяет изменить количество серий и количество точек диаграммы.

Закладка «Вид» одинакова для всех областей диаграммы (см. ниже). Для общей области диаграммы она используется в сильно усеченном виде: из всех свойств можно изменить только цвет заливки.

Формат области построения диаграммы

Диалог настройки формата области построения диаграммы состоит из трех закладок: «Тип диаграммы», «Свойства» и «Вид».

Закладка «Тип диаграммы» служит для выбора типа диаграммы. С помощью списка, расположенного в верхней левой части закладки, выбирается основной тип диаграммы: гистограмма, линейчатая диаграмма и т. п. В верхней правой части находятся элементы, определяющие свойства конкретного типа. В нижней части закладки, в большинстве случаев выводится комментарий, поясняющий особенности построения диаграммы данного типа.

Закладка «Свойства» служит для управления составом и внешним видом отображаемых элементов диаграммы.

С помощью группы элементов «Шрифт» определяется шрифт, которым будут выполнены надписи к координатным осям диаграммы. По нажатию кнопки «Выбрать» будет активизирован стандартный диалог выбора шрифта.

Поле «Цвет текста» определяет цвет, которым будут выполнены надписи к координатным осям диаграммы.

Ниже приведено назначение флажков этой закладки:

Пропорциональные размеры если флажок установлен, размеры и расположение области будут изменяться пропорционально размерам диаграммы;

Логарифмическая шкала применяется при большем разбросе значений, линейная зависимость значений шкалы заменяется логарифмической зависимостью;

Показывать Х метки определяет, будут ли отображаться подписи под координатной осью X;

Показывать Y метки определяет, будут ли отображаться подписи под координатной осью Y;

Показывать Z метки определяет, будут ли отображаться подписи под координатной осью Z;

Сетка на переднем плане если флажок установлен, вспомогательная координатная сетка рисуется поверх изображения диаграммы;

Показывать Х линии определяет, будут ли отображаться Х линии сетки вспомогательной координатной сетки;

Показывать Y линии определяет, будут ли отображаться Y линии сетки вспомогательной координатной сетки;

Показывать Z линии определяет, будут ли отображаться Z линии сетки вспомогательной координатной сетки.

Закладка «Вид» управляет оформлением элементов диаграммы.

Группа элементов «Рамка» определяет внешний вид рамки вокруг области.

Группа элементов «Заливка» определяет цвет фона области. Заливка может быть прозрачной или сплошной, каким-либо цветом.

Группа элементов «Тень» определяет наличие и размер тени объекта.

Формат легенды

Контекстное меню легенды содержит два пункта, «Формат легенды» и «Очистить». Выбор пункта «Очистить» убирает легенду с экрана и снимает флажок «Показывать легенду» в закладке «Свойства» формата области диаграммы (см. выше). Легенду можно вернуть на экран в прежнем виде, вновь установив этот флажок.

Диалог настройки формата легенды состоит из двух закладок: «Свойства» и «Вид».

С помощью группы элементов «Шрифт» определяется шрифт, которым будут выполнены надписи к сериям замеров в легенде. По нажатию кнопки «Выбрать», будет активизирован стандартный диалог выбора шрифта. Сами наименования серий задаются в модуле отчета.

Поле «Цвет текста» определяет цвет, которым будут выполнены надписи к сериям замеров в легенде.

Если установлен флажок «Пропорциональные размеры», размеры и расположение области легенды будут изменяться пропорционально размерам диаграммы.

Формат заголовка

Контекстное меню заголовка содержит два пункта, «Формат заголовка» и «Очистить». Выбор пункта «Очистить» убирает заголовок с экрана и снимает флажок «Показывать заголовок» в закладке «Свойства» формата области диаграммы (см. выше). Заголовок можно вернуть на экран в прежнем виде, вновь установив этот флажок.

Диалог настройки формата заголовка состоит из двух закладок: «Свойства» и «Вид»

С помощью группы элементов «Шрифт» определяется шрифт, которым будет выполнен заголовок. По нажатию кнопки «Выбрать» будет активизирован стандартный диалог выбора шрифта.

Поле «Цвет текста» определяет цвет, которым будет выполнен заголовок.

Если установлен флажок «Пропорциональные размеры», размеры и расположение области заголовка будут изменяться пропорционально размерам диаграммы.

В поле «Текст» можно задать текст заголовка. Кроме этого, текст заголовка можно задать в модуле отчета, тогда при построении отчета он заменит текст, заданный в этом поле.

Если пользователю 1С:Предприятия для данного отчета предоставлена возможность редактирования, текст заголовка, заданный в модуле, будет, в свою очередь, замещен текстом, введенным в это поле при редактировании готового отчета.

Группа переключателей «Выравнивание» определяет тип выравнивания текста внутри заголовка.

Конструктор печати

Конструктор печати предназначен для облегчения процесса создания печатной формы объектов метаданных, а именно справочника (элемента и списка), документа и журнала документов.

Конструктор печати можно вызвать, выбрав пункт «Печать» из меню «Конструкторы» главного меню программы или нажав кнопку [image] на панели инструментов «Конструкторы». При этом должна быть открыта форма элемента или форма списка.

Предположим, что в конфигурации существует справочник «Контрагенты», в котором хранится информация о контрагентах. Чтобы вызвать Конструктор печати следует открыть окно редактирования справочника, а затем, например, открыть форму элемента.

При запуске Конструктор печати предлагает указать имя процедуры, которая будет выполнять построение печатной формы. По умолчанию процедуре присваивается имя «Печать». Если в модуле уже есть такая процедура, имя по умолчанию не предлагается.

Независимо от этого, можно ввести любое имя процедуры, не нарушающее правил встроенного языка (любая последовательность букв, цифр и знаков подчеркивания «_», начинающаяся с буквы или знака подчеркивания «_»). При нарушении правил (например, «Печать отчета» — с пробелом) будет выдано сообщение «Неверное имя процедуры Печать отчета». Если введенное имя процедуры совпадает с именем одной из процедур, уже присутствующих в модуле формы, будет выдано такое же сообщение.

Для одного объекта метаданных можно создать несколько шаблонов для печати выходных форм, с разными наборами реквизитов.

В том случае, если процедура построения печатной формы уже создавалась раньше, при запуске Конструктора сначала появится окно «Список найденных процедур». В списке можно выбрать снова имя процедуры «Печать» и отредактировать ранее созданную процедуру, или нажать «OK» и ввести другое имя для создания еще одной процедуры построения печатной формы (опять появится вышеописанное окно «Новая процедура»).

Поиск существующих в модуле процедур печати производится по символьной строке вида

//{{ПРОЦЕДУРА_ПЕЧАТИ(<имя_процедуры_печати>)

поэтому рекомендуется оставлять эти строки в тексте процедуры, полученном при помощи Конструктора печати.

После выбора названия («Печать») и подтверждения этого выбора кнопкой «ОК» открывается диалог «Конструктор печати справочника» (документа, журнала — конкретное название диалога зависит от редактируемого объекта метаданных).

В диалоге «Конструктор печати...» содержатся два окна. В правом окне находятся все реквизиты справочника (в нашем примере — справочника «Контрагенты»), левое окно — пока пустое. При редактировании уже созданной печатной формы оно заполнено, как описано ниже.

При создании печатной формы документа, имеющего табличную часть, Конструктор вызывает последовательно три окна: для включения в печатную форму реквизитов шапки документа, реквизитов табличной части и для формирования подвала документа. По умолчанию в шапку помещаются реквизиты для вывода номера и даты документа, а в табличную части — реквизит для вывода номера строки.

В левом окне отображаются реквизиты, которые должны присутствовать в печатной форме. Для его заполнения необходимо выбирать в нравом окне поочередно нужные реквизиты и, нажимая на кнопку [image], переносить их в левое окно. При необходимости перенести все реквизиты следует применить кнопку [image].

Реквизиты, которые не должны присутствовать в печатной форме, можно удалить, воспользовавшись кнопкой [image] — для удаления только выбранного реквизита, или кнопкой [image] — для удаления сразу всех реквизитов.

Кнопки вертикального перемещения [image] и [image] позволяют изменить взаимное расположение реквизитов по вертикали.

С помощью кнопки [image] можно отредактировать формат представления любого реквизита (см. ниже).

Свойства реквизита

По умолчанию реквизиты выводятся на печать так, как они записаны в информационной базе. С помощью кнопки [image] можно отредактировать формат представления любого реквизита, пользуясь этой функцией в интерактивном режиме.

Нажатие этой кнопки вызывает появление свойства «Свойства». Для получения нужного представления реквизита в печатной форме служит функция встроенного языка Формат(). Одним из параметров этой функции является шаблон представления реквизита, который задается в виде символьной строки. Этот шаблон можно указать в поле формат или сформировать его в диалоге, нажав кнопку «…»

Для числовых реквизитов табличной части документа (кроме номера строки) в этом окне присутствует флажок «Формировать итог по колонке».

Если его установить, в табличной части выходной формы будет сформирован подвал таблицы, куда будет включена сумма по данной колонке.

Для сохранения данного шаблона форматирования и выхода в окно конструктора служит кнопка «ОК», для выхода без сохранения сделанных изменений — кнопка «Отмена».

Формат представления реквизита

Диалог «Формат» позволяет выбрать нужное представление реквизита в печатной форме . Итогом работы диалога будет шаблон представления реквизита, который используется функцией Формат().

Элементы форматирования в диалоге зависят от выбора в поле со списком «Тип данного»: Число, Число прописью, Строка, Дата.

В поле «Результат» отображается шаблон, сформированный установками окна, а нижняя строка окна представляет собой пример в виде записи функции Формат(). В этой записи в скобках указаны аргументы функции: первый — форматируемые данные (их можно задать), второй — шаблон форматирования (<Результат>). Справа от знака равенства отображается представление данных, полученное с помощью функции «Формат» (значение, возвращаемое функцией).

Кнопки «ОК» и «Отмена» служат, соответственно, для выхода в окно «Формат» с сохранением сформированного шаблона в виде символьной строки или без сохранения.

Для числа можно определить длину (общую, включая разделители), точность (количеств знаков дробной части), сдвиг разрядов (например, для представления чисел в тысячах — сдвиг 3), задать разделители дробной части и триад. Установка флага «Подавлять нулевые значения» предотвращает выдачу нулевого результата, а флага «Нулевое значение — прочерк» — заменяет нулевой результат на прочерк.

Для числа прописью можно установить флаг «Денежная величина» и, если он установлен, флаг «Вывод с копейками». Рубли и копейки в соответствующих числам падежах берутся из файла прописей по умолчанию. С помощью данного конструктора заменить этот файл на другой (например, с долларами и центами) нельзя (только с помощью встроенного языка в модуле формы).

Для строки можно задать длину.

Для даты можно выбрать один из шаблонов представления.

Заданный шаблон форматирования с помощью кнопки «ОК» переносится в окно «Свойства». Для выхода в это окно без сохранения сделанного форматирования используется кнопка «Отмена».

Завершение работы Конструктора

На завершающем этапе работы Конструктора задастся порядок вызова процедуры формирования печатной формы и режим открытия готовой печатной формы.

Группа «Вызов процедуры» позволяет задать порядок вызова процедуры формирования отчета:

«Не вставлять» диалог справочника не будет содержать кнопки для построения печатной формы;

«Новая кнопка» в диалоге появится новая кнопка, надпись на ней по умолчанию совпадает с именем процедуры, определенным при запуске Конструктора;

«Выбрать кнопку» из выпадающего списка можно выбрать название одной из кнопок, уже существующих в диалоге.

Если включить «Режим "только просмотр"», то созданная печатная форма будет открываться только для просмотра. Для редактирования печатной формы пользователю необходимо будет отключить этот режим.

Результат работы Конструктора печати

В результате работы «Конструктора печати» в форме элемента справочника «Контрагенты» появится новый лист — таблица «Печать». Этот табличный документ — шаблон выходной печатной формы. Для элемента справочника таблица состоит из одной секции «Шапка»; она содержит реквизиты шапки документа, выбранные в диалоге «Конструктор печати справочника».

Для документа с табличной частью таблица шаблона печатной формы состоит из трех секций, «Шапка», «Строка» и «Подвал».

В секцию «Шапка» включены реквизиты шапки документа, выбранные в диалоге «Конструктор печати документа: Шапка». Кроме того, она содержит заголовки колонок табличной части документа.

Реквизиты табличной части документа выводятся в секции «Строка». Они выбраны в диалоге «Конструктор печати документа: Таблица».

В секцию «Подвал» включены реквизиты подвала документа, выбранные в диалоге «Конструктор печати документа: Подвал». Кроме того, в нес могут быть включены еще суммарные итоги по колонкам табличной части документа (см. выше «Свойства реквизита»).

В ячейке с текстом «Служебная ячейка» хранятся все реквизиты, выбранные для печати в окне «Конструктор печати...». Поэтому, если предполагается редактирование шаблона с помощью конструктора, не рекомендуется редактировать его вручную. При ручном редактировании нарушается связь между содержимым табличного документа и служебной ячейкой. В окне «Конструктор печати...» будут показаны реквизиты, записанные в служебной ячейке, а не те, что помещены в шаблон при ручном редактировании.

В модуль формы добавлена процедура Печать(), в диалоге появилась новая кнопка — «Печать».

Если в режиме запуска «1С:Предприятие» нажать на эту кнопку, по шаблону будет сформирована печатная форма.

Настройка печати

Колонтитулы

Колонтитулы — это области вверху и внизу страницы, служащие для вывода какого-либо повторяющегося текста на каждой странице документа: номера страницы, названия документа, даты и времени создания, другой информации.

Для создания колонтитула используется пункт «Колонтитул» из меню «Таблица» главного меню программы. При выборе этого пункта меню на экран выдается подменю, из которого следует выбрать, какой колонтитул необходимо создать — верхний или нижний.

Диалог для управления внешним видом колонтитула организован п виде картотеки. Свойства, которые можно определить для колонтитула, объединены в три группы. Для доступа к управляющим элементам конкретной группы щелкните мышью на соответствующей закладке в окне диалога.

Закладка «Колонтитул»

Управляющие элементы закладки «Колонтитул» предназначены для указания текста колонтитула и управления выводом колонтитула на печать.

В многострочном поле закладки «Колонтитул» можно указать текст, который будет помещен в колонтитул. Текст колонтитула может включать следующие управляющие конструкции (используются латинские символы):

#Т при печати в данном месте будет вставлено время печати документа;

#D при печати в данном месте будет вставлена дата печати документа;

#Р при печати в данном месте будет вставлен номер страницы документа.

Также текст колонтитула может включать выражения на встроенном языке системы 1С:Предприятие, заключенные в квадратные скобки. Выражения вычисляются при формировании документа и результаты их вычислений помещаются в текст колонтитула.

Опция «Выводить с» позволяет указать, с какой страницы будет начинаться вывод колонтитула при печати документа. Текст колонтитула и параметры его форматирования остаются без изменения.

Размер области листа, которая будет отводиться для печати колонтитулов, задастся в режиме «Параметры страницы» (пункт «Параметры страницы» из меню «Файл» главного меню Конфигуратора).

Закладка «Шрифт»

Для задания атрибутов шрифта текста колонтитула служат управляющие элементы закладки «Шрифт». Они позволяют выбрать гарнитуру (начертание) шрифта, его размер и стиль (жирный, курсив, подчеркнутый).

Поле «Цвет» позволяет установить цвет, которым будет изображаться шрифт на экране и при печати. Если в этом поле вместо конкретного цвета выбрать пункт «Авто», то цвет шрифта будет определяться установками операционной системы MS Windows.

Закладка «Положение»

Для установки характеристик выравнивания текста колонтитула служат управляющие элементы закладки «Положение».

Выравнивание по горизонтали:

Лево выравнивание текста по левой границе колонтитула;

Право выравнивание текста по правой границе колонтитула;

Центр текст размещается вдоль вертикальной линии, проходящей через центр колонтитула;

По ширине текст выравнивается одновременно по правой и по левой границам колонтитула.

Выравнивание по вертикали:

Низ текст располагается вдоль нижней границы колонтитула;

Верх текст располагается вдоль верхней границы колонтитула;

Центр текст размещается вдоль горизонтальной линии, проходящей через центр колонтитула.

Разбиение на страницы

При печати таблиц большого размера редактор таблиц системы 1С:Предприятие выполняет автоматическое разбиение документа на страницы в соответствии с установками параметров страницы. Кроме того, при разбиении на страницы учитываются принудительные переводы страницы и установки положения на странице.

Установки положения на странице не переносятся из шаблона табличного документа в готовый документ.

Принудительный перевод страницы. Для принудительной расстановки переводов страниц можно воспользоваться пунктом «Вставить перевод страницы» из меню «Таблица» главного меню Конфигуратора.

Для вставки горизонтального перевода страницы следует выделить ячейку или строку таблицы и выбрать пункт «Вставить перевод страницы» из меню «Таблица» главного меню Конфигуратора. Перевод страницы будет вставлен над выделенной ячейкой или строкой. Он будет обозначен пунктирной линией.

Чтобы убрать горизонтальный перевод страницы, необходимо выделить ячейку или строку под переводом страницы и выбрать пункт «Убрать перевод страницы» из меню «Таблица» главного меню Конфигуратора.

Для вставки вертикального перевода страницы следует выделить столбец таблицы и выбрать пункт «Вставить перевод страницы». Перевод страницы будет вставлен слева от выделенного столбца, он будет обозначен пунктирной линией.

Чтобы убрать перевод страницы по вертикали, необходимо выделить столбец слева от перевода страницы и выбрать пункт «Убрать перевод страницы» из меню «Таблица» главного меню Конфигуратора.

Положение на странице. Для любой строки или столбца таблицы (а также диапазона строк или столбцов) могут быть заданы параметры размещения на странице. Для этого необходимо выделить соответствующий диапазон и выбрать пункт «Положение па странице» из меню «Таблица» главного меню Конфигуратора.

На экран будет выдан диалог, в котором можно включить 2 опции:

с новой страницы выделенный диапазон строк или столбцов при печати всегда будет выводиться на новой странице;

вместе со следующим при автоматическом разбиении на страницы перевод страницы не будет вставляться между выделенным диапазоном и ячейками, расположенными ниже (или столбцами, расположенными справа). Установка этой опции не влияет на установки принудительного перевода страницы.

Для изменения опций положения на странице следует вновь выделить соответствующий диапазон и вызвать диалог «Положение на странице».

Автоматическое повторение строк и столбцов

Для любой строки и столбца таблицы (а также для диапазона строк и столбцов) можно задать повторение при печати на каждой странице. Для этого необходимо выделить строку или диапазон строк (столбец или диапазон столбцов) и выбрать пункт «Повторять па каждом листе» из меню «Таблица» главного меню Конфигуратора.

Диапазон, который выбран для повторения, на первом листе будет размещен так, как он расположен в табличном документе, то есть в соответствии со своим положением на листе относительно заголовков строк и столбцов. На последующих листах повторяющиеся строки будут располагаться вверху листа, а столбцы — слева.

Убрать повторение на каждом листе можно, выбрав пункт «Убрать повторение» из меню «Таблица» главного меню Конфигуратора. Это свойство будет снято со всех диапазонов, для которых оно было установлено ранее.

Установки автоматического повторения срок и столбцов не переносятся из шаблона табличного документа в готовый документ.

Задание области печати

Вместо печати всего табличного документа целиком, редактор таблиц позволяет задать область печати — диапазон, который будет напечатан.

Для задания области печати следует выделить диапазон в таблице и выбрать пункт «Задать область печати» из меню «Таблица» главного меню Конфигуратора.

Отменить печать диапазона можно, выбрав из меню «Таблица» пункт «Убрать область печати».

Настройка параметров страницы

Режим настройки параметров страницы позволяет выбрать печатающее устройство и установить размер и ориентацию бумаги, на которой будет производиться печать табличного документа. Для вызова этого режима выберите пункт «Параметры страницы» в меню «файл» главного меню Конфигуратора. На экран будет выдай диалог «Параметры страницы».

Назначение управляющих элементов диалога в большинстве своем стандартно для многих программ MS Windows. Пояснения требуют те особенности, которые касаются редактора таблиц системы 1С:Предприятие.

Экземпляров на страницу. Группа «Экземпляров на страницу» позволяет выбрать количество экземпляров документа, которые при печати будут помещаться на 1 страницу (экземпляры помещаются один под другим).

Если выбрана опция «Авто», то программа сама будет определяв количество экземпляров: если при выбранном размере листа и поля печати па странице помещается 2 экземпляра документа целиком те будет напечатано два экземпляра, а если не помещается — то один.

Колонтитулы. Группа «Колонтитулы» позволяет задать размеры области листа, которая будет отводиться для печати колонтитулов Размеры задаются в миллиметрах и отсчитываются от верхнего или нижнею поля в сторону соответствующего края листа.

Масштаб. Поле «Масштаб» позволяет задать масштаб печати табличного документа. Установленный масштаб не влияет на масштаб просмотра документа в редакторе таблиц.

По ширине листа. Если включен данный режим, редактор таблиц автоматически подбирается масштаб таким образом, чтобы документ при печати умещался по ширине на один лист.

Черно-белая печать. Если включен данный режим, цвета, заданные для табличного документа, игнорируются, и документ выводится на печать в черно-белом режиме.

Печать табличного документа

Просмотр документа перед печатью. Вы можете перед печатью просмотреть документ в том виде, как он будет напечатан. Для этого следует выбрать пункт «Просмотр» в меню «Файл» главного меню программы.

При показе документа будут использоваться параметры печати, установленные в режиме настройки параметров страницы. Это размер бумаги, границы области печати, масштаб и др. Будут использоваться и параметры размещения строк и столбцов, установленные п редакторе таблиц. Это принудительное разбиение на страницы, повторение строк и столбцов, параметры размещения строк и столбцов, установленные в режиме «Положение на странице» и др.

Печать документа. Для вывода документа па принтер следует в меню «Файл» главного меню Конфигуратора выбрать пункт «Печать». На экран будет выдан стандартный диалог для настройки параметров печати.

В этом диалоге следует установить необходимые параметры печати: выбрать принтер, диапазон страниц для печати, количество копий, — и нажать кнопку «ОК» для выполнения печати.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 27

Глава 27.
Администрирование

  • Ведение списка пользователей
    • Создание нового пользователя
    • Копирование пользователя
    • Установка пароля
    • Удаление пользователя
    • Упорядочивание списка пользователей
    • Сохранение списка пользователей
    • Редактирование свойств пользователя
  • Тестирование и исправление информационных баз
    • Принципы работы процедуры тестирования
    • Запуск процедуры
    • Сообщения при тестировании
  • Пакетный режим
    • Запуск Конфигуратора в пакетном режиме
    • Структура файла пакетного режима.
    • Работа в пакетном режиме
  • Настройка параметров журнала регистрации

При работе пользователей с системой 1С:Преднриятие в сети значение приобретают два вопроса — интеграция и разделение доступа.

Каждый пользователь системы должен иметь свободный доступ к общей информации, такой, как справочники, константы или перечисления.

С другой стороны, необходимо, чтобы каждый пользователь имел дело только с той информацией, которая необходима ему для работы, и никак не мог своими неосторожными действиями повлиять на работу других пользователей или на работоспособность системы в целом.

Конфигуратор системы 1С:Предприятие содержит развитые средства администрирования, предназначенные для решения указанных задач.

Прежде всего, в процессе создания конфигурации создается необходимое число типовых наборов прав, описывающих полномочия различных категорий пользователей на доступ к информации, обрабатываемой системой. Права могут быть заданы в достаточно широких пределах — от возможности только просмотра ограниченного числа видов документов до полного набора прав по вводу, просмотру, корректировке и удалению любых видов данных. Порядок создания типовых наборов нрав и редактирования прав излагается в главе «Пользовательские права».

Для эффективной работы пользователей в процессе настройки конфигурации задачи для каждого пользователя может быть создан индивидуальный пользовательский интерфейс. Такой интерфейс включает команды главного меню и панели инструментов, настроенные на работу пользователя с той информацией, доступ к который разрешен его набором прав.

Наконец, в системе 1С:Предприятие существует возможность создания списка пользователей, которым разрешена работа с системой. Этот список будет использоваться для авторизации пользователя при его входе в систему. Следует обратить внимание, что список пользователей системы 1С:Предприятие не является частью конфигурации задачи: он создается отдельно в конкретной организации, и которой используется система.

Для каждого пользователя может быть установлен пароль на вход в систему. Пароль используется для подтверждения прав пользователей на работу в системе 1С:Предприятие.

В этой главе будут рассмотрены вопросы ведения списка пользователей системы 1С:Предприятие и назначения пользователям наборов прав и интерфейсов.

Ведение списка пользователей

Список пользователей вызывается на экран выбором функции «Пользователи» из меню «Администрирование» главного меню Конфигуратора.

Внешний вид списка пользователей зависит от положения переключателей «Список»/«Таблица» в меню «Действия» главного меню Конфигуратора.

Окно со списком пользователей в режиме «Таблица» имеет 3 колонки.

В колонке «Имя» выводится список пользователей, зарегистрированных для работы с системой 1С:Предприятие.

Колонка «Полное имя» может содержать расшифровку имени, выданного в первой колонке.

В колонке «Роль» выводятся (через запятую) наименование набора нрав, присвоенных этому пользователю, и наименование интерфейса, который будет использоваться при работе этого пользователя. Если какое-то из этих свойств пользователя указано неверно, в этой колонке будет выдано соответствующее диагностическое сообщение.

Создание нового пользователя

Для создания нового пользователя необходимо выбрать пункт «Новый» в меню «Действия» главного меню Конфигуратора. В списке пользователей появится новая строка, а на экран будет выдан диалог для редактирования свойств пользователя. Вновь созданному пользователю присваивается условное имя, состоящее из слова «Новый» и числа — порядкового номера нового пользователя.

В диалоге для редактирования свойств пользователя не обязательно заполнять сразу все поля — это можно сделать позднее. Однако, следует отредактировать имя, которое было присвоено автоматически при создании пользователя. Имя пользователя — это произвольная строка длиной не более 24 символов, состоящая из букв, цифр и знаков подчеркивания. Имя нового пользователя не должно совпадать с именами, уже имеющимися в списке.

Совет. Желательно задавать пользователям смысловые имена, используя фамилию сотрудника, наименование должности, характер выполняемых им функций и тому подобное. В дальнейшем это имя будет использоваться сотрудником для входа в систему 1С:Предприятие.

После присвоения новому пользователю имени и задания других необходимых свойств, для сохранения сделанных изменений необходимо нажать кнопку «ОК». Если при вводе каких-либо свойств пользователя были допущены ошибки, на экран будет выдано соответствующее сообщение.

Если отказаться от сохранения изменений, нажав кнопку «Отмена», новый пользователь будет создан, но у него будет сохранено автоматически присвоенное имя.

Копирование пользователя

Нового пользователя можно создать путем копирования существующего пользователя. Используя такую возможность, нет необходимости создавать нового пользователя «с нуля» — достаточно скопировать одного из уже существующих в списке пользователей и отредактировать его свойства.

Для копирования используются возможности Буфера Обмена MS Windows.

Чтобы скопировать пользователя, необходимо сначала «запомнить» его в Буфере Обмена MS Windows, использовав команды «Копировать» или «Вырезать» из меню «Действия» главного меню Конфигуратора. Если используется команда «Вырезать», то выделенный пользователь будет удален из списка.

Для вставки пользователя необходимо использовать команду «Вставить». Имя пользователя может быть преобразовано с целью соблюдения уникальности. Остальные свойства нового пользователя будут такие же, как и у пользователя, выбранного в качестве образца.

Установка пароля

С целью предотвращения входа пользователей в систему 1С:Предприятие под чужими именами, каждому пользователю, которому разрешена работа с системой, может быть установлен пароль на вход. Как и имя пользователя, пароль служит для подтверждения полномочий пользователя на работу в системе.

Для установки пароля выделите в списке пользователей имя пользователя, для которого необходимо установить пароль, и в меню «Действия» главного меню программы выберите пункт «Изменить пароль». На экран будет выдан запрос для ввода пароля.

В поле для ввода пароля введите пароль пользователя. Пароль представляет из себя произвольную строку длиной не более 10 символов, состоящую из букв и цифр. Пароль не должен содержать пробелов и специальных символов.

При вводе пароль отображается звездочками, поэтому будьте внимательны.

После ввода пароля нажмите кнопку «ОК». Для надежности программа запрашивает пароль еще раз. Повторите ввод пароля и для подтверждения нажмите кнопку «ОК». Запрос для ввода пароля будет закрыт, а пользователю будет присвоен новый пароль. Если пароль у пользователя уже существовал, старый пароль будет удален и заменен новым.

Если вы передумали устанавливать пароль, нажмите кнопку «Отмена».

Пользователь, которому назначен пароль, помечается особым значком в списке пользователей.

Внимание! Присвоенный пользователю пароль нельзя посмотреть, поэтому будьте внимательны при установке пароля и твердо запомните его.

Если пользователь забыл свой пароль, необходимо задать ему новый пароль.

Удаление пользователя

Для удаления пользователя из списка выделите имя пользователя, которого необходимо удалить, и в меню «Действия» главного меню Конфигуратора выберите пункт «Удалить».

В появившемся на экране запросе нажмите «ОК» для подтверждения необходимости удаления пользователя.

Совет. Если необходимо восстановить ошибочно удаленного пользователя, следует закрыть окно со списком пользователей, отказавшись от сохранения списка. После повторного открытия этого окна удаленный пользователь вновь появится в списке.

Упорядочивание списка пользователей

Как и любой другой список, список пользователей можно упорядочить, расставив имена пользователей в нужном порядке. В таком же порядке список пользователей будет выдаваться при входе в систему 1С:Предприятие для выбора пользователя.

Для перестановки имени пользователя необходимо выделить его в списке и использовать кнопки [image] («Переместить вверх»), [image] («Переместить вниз») и [image] («Упорядочить»), расположенные в панели инструментов окна «Пользователи», или соответствующие команды меню «Действия» главного меню Конфигуратора.

Сохранение списка пользователей

Для сохранения списка пользователей необходимо выбрать пункт «Сохранить» в меню «Файл» главного меню Конфигуратора.

Если при сохранении списка пользователей на экран выдается сообщение «Список пользователей не будет сохранен. Нет пользователя с нравом администрирования», это значит, что в списке нет ни одного пользователя, набор прав которого содержит право «Административные функции». В этом случае необходимо либо присвоить одному из пользователей набор прав, содержащий такое право, либо в окне «Наборы прав» включить операцию «Административные функции» у одного из уже присвоенных пользователям наборов прав.

При самом первом сохранении списка пользователей в каталоге с информационной базой автоматически создается подкаталог USRDEF. Вся информация о пользователях и параметрах их работы с системой 1С:Предприятие сохраняется в файле с зарезервированным именем USERS.USR, который помещается в этот подкаталог.

Авторизацию пользователей можно отключить, если удалить или переименовать файл USERS.USR.

Внимание! Если система 1С:Предприятие используется в сети, для защиты файла USERS.USR от несанкционированного редактирования или удаления следует средствами сети ограничить доступ пользователей к каталогу USERDEF (и, соответственно, к файлу USERS.USR).

Редактирование свойств пользователя

Свойства пользователя редактируются в палитре свойств «Свойства пользователя», которую можно вызвать на экран двойным щелчком мыши на имени пользователя.

Палитра свойств, используемая при редактировании свойств пользователя, по порядку использования аналогична той, которая применяется при редактировании свойств объектов метаданных. Порядок использования палитры свойств можно узнать в главе «Метаданные».

Ниже будет приведено описание управляющих элементов палитры свойств «Свойства пользователя».

Закладка «Атрибуты»

Закладка «Атрибуты» содержит управляющие элементы для присвоения пользователю краткого и полного имени и указания рабочего каталога.

Имя. Поле «Имя» служит для присвоения и редактирования имени пользователя.

Имя пользователя — это произвольная строка длиной не более 24 символов, состоящая из букв, цифр и знаков подчеркивания.

Если редактируется имя пользователя, то новое имя не должно совпадать с именами, уже существующими в списке пользователей.

Полное имя. В поле «Полное имя» может быть указана расшифровка имени пользователя, указанного в поле «Имя». Полное имя представляет собой произвольную строку символов и может содержать пробелы.

Рабочий каталог. В поле «Рабочий каталог» можно указать имя каталога, который будет использоваться для размещения индивидуальных файлов конфигурации и различных временных и служебных файлов, создаваемых системой 1С:Предприятие.

Если в поле «Рабочий каталог» указать имя каталога, которого еще нет на жестком диске, то при нажатии кнопок «ОК» или «Обновить» Конфигуратор выдаст запрос о необходимости создания указанного каталога.

Указанный рабочий каталог должен существовать на жестком диске к моменту входа пользователя в систему 1С:Предприятие, в противном случае система прекратит работу с выдачей соответствующего сообщения.

Если в качестве рабочего каталога предполагается использовать один из каталогов, уже существующих на жестком диске компьютера, то нажатием кнопки «…» можно открыть стандартный диалог выбора каталога и указать каталог, который будет использоваться в качестве рабочего.

Если в качестве рабочего выбран подкаталог каталога информационной базы, на экран будет выбран запрос «Построить путь к каталогу относительно каталога базы данных?». Если в ответ на запрос нажать кнопку «Да», в поле «Рабочий каталог» вместо полного имени каталога будет помещено имя, построенное относительно каталога базы данных.

Если в строке запуска системы 1С:Прсдприятие при помощи параметра /U указано иное имя рабочего каталога, последнее и будет использоваться при работе системы 1С:Предприятие.

Закладка «Роль»

Управляющие элементы закладки «Роль» служат для выбора наименования пользовательского интерфейса и набора прав, которые будут поставлены в соответствие имени пользователя.

Права. В поле «Права» необходимо указать название набора нрав пользователя. Набор нрав определяет объем информации, с которой может работать указанный пользователь в системе 1С:Предприятие.

Название набора прав представляет собой произвольную строку символов. Название можно ввести с клавиатуры, при этом следует указать его точно так же, как оно записано в списке наборов прав (окно «Конфигурация — Права»).

Нажав кнопку [image], можно открыть список созданных к данному моменту наборов прав, и выбрать нужный набор нрав, щелкнув мышью его название в этом списке.

Внимание. Если название набора прав не указано, считается, что пользователю заданы все права.

Интерфейс. В поле «Интерфейс» можно указать наименование индивидуального пользовательского интерфейса. Такой пользовательский интерфейс включает команды главного меню и панели инструментов, настроенные на работу пользователя с той информацией, доступ к которой разрешен его набором прав.

При работе пользователя с системой 1С:Предприятие указанный интерфейс будет подключен как расширение стандартного интерфейса программы.

Наименование пользовательского интерфейса представляет собой произвольную строку символов. Наименование можно ввести с клавиатуры, при этом следует указать его точно так же, как оно записано в списке пользовательских интерфейсов (окно «Конфигурация — Интерфейсы»). Нажав кнопку [image], можно открыть список созданных к данному моменту пользовательских интерфейсов, и выбрать нужный интерфейс, щелкнув мышью его наименование в этом списке.

Если наименование пользовательского интерфейса не указано, при работе системы 1С:Предприятие будет использован стандартный интерфейс.

Отключить контроль прав. Опция «Отключить контроль прав» позволяет отменить для указанного пользователя контроль доступа к различным видам информации в соответствии с его набором прав. Если опция включена, контроль прав пользователя в процессе его работы с системой проводиться не будет. Данная ситуация равносильна тому, как если бы пользователю были предоставлены все права.

Отключение контроля прав доступа для конкретного пользователя не влияет на других пользователей с таким же набором прав.

Тестирование и исправление информационных баз

В процессе работы системы 1С:Предприятие могут возникать различные внештатные ситуации - отключение питания компьютера «зависание» операционной системы, сбои оборудования и прочее. Такие ситуации, возникшие в процессе записи изменений в таблицы информационной базы системы 1С:Предприятие, могут привести к некорректному состоянию информационной базы. Внешние проявления некорректного состояния информационной базы могут быть различными, вплоть до невозможности запуска 1С:Предприятия.

Процедура «Тестирование и исправление информационных баз» предназначена для диагностики и устранения ошибочных состояний информационных баз, имеющих как формат DBF, так и формат MS SQL Server 6.5, при любом составе установленных компонент системы 1С:Предприятие.

Принципы работы процедуры тестирования

Все проверки состояния информационной базы, выполняемые процедурой, можно условно разделить на три логических уровня.

На первом уровне, выполняемом только для файл-серверного формата информационной базы, происходит проверка физической целостности таблиц, составляющих информационную базу. Следует отметить, что, в случае SQL-формата информационной базы, соответствующие проверки следует выполнять диагностическими средствами, входящими в состав SQL-сервера. На этом уровне проверяется наличие всех dbf-файлов, необходимых для работы информационной базы. В каждом dbf-файлс анализируется корректность его заголовка, соответствие объявляемых заголовком полей и их типов ожидаемому (состав и тип полей, составляющих многие таблицы, определяется конфигурацией информационной базы). Проверяется равенство вычисленной на основании описания полей длины записи той длине записи, которая объявлена в заголовке. Сравнивается фактическая длина файла с величиной, полученной на базе информации о длине заголовка, длине записи и их количестве. Появление на данном уровне сообщения о невосстановимой ошибке, как правило, говорит о том, что после внесения изменений в конфигурацию не была выполнена процедура реструктуризации. После окончания анализа заголовка процедура производит сканирование всех записей и проверяет содержимое каждого поля записи с точки зрения типа этого поля. Например, если поле объявлено как строковое, то каждый байт информации, входящий в состав поля, должен быть символом — печатным или управляющим (например, возврат каретки).

Все таблицы, входящие в состав информационной базы можно условно разбить на две группы — базовые и производные.

Записи в базовых таблицах образуются, модифицируются и удаляются в результате работы пользователей, исполнения модулей.

Содержание производных таблиц определяется состоянием базовых и полностью может быть восстановлено при выполнении процедур пересчета итогов. Во время выполнения тестирования второго уровня происходит сканирование записей базовых таблиц и проверка содержимого полей на корректность с точки зрения системы 1С:Предпритияе, а не управления базами данных в dbf-формате, как это происходило на предыдущем уровне. Например, поле, объявленное в заголовке dbf-файла как строковое, может рассматриваться системой 1С:Предприятие как ссылка на конкретный элемент конкретного справочника. Содержимое такого поля формируется по правилам, определяемым системой 1С:Предприятие. Естественно, содержание такого поля имеет более существенные ограничения, чем способна наложить система управления базами данных, и тестирование содержимого на этом уровне представляет собой отдельную задачу. По окончании сканирования всех записей таблицы происходит ее реиндексация. Также на этом уровне происходит проверка логической связки «журнал документов — документ —табличная часть документа».

Логическая целостность таблиц, входящих в состав информационной базы, осуществляется совокупностью проверок третьего уровня. На этом уровне тестируются внутренние связи таблиц, определяемые системой 1С:Предприятие, проверяется фактическое существование элементов данных, на которые имеются ссылки в полях записей. Также па этом уровне происходит анализ записей о периодических реквизитах справочников и бухгалтерских счетов (если установлена компонента «Бухгалтерский учет»).

По окончании проверок производится полный пересчет итогов. Конкретный состав пересчитываемых итогов зависит от состава установленных компонент и набора типов используемых тестируемой информационной базой объектов.

Запуск процедуры

ВНИМАНИЕ!!! Все изменения, сделанные в таблицах информационной базы в процессе тестирования, будут необратимыми. Поэтому перед запуском процедуры рекомендуется сделать резервную копию информационной базы на случай, если ее выполнение не приведет к желаемому результату и потребуется помощь специалиста.

Для запуска процедуры нужно в меню «Администрирование» выбрать пункт «Тестирование и исправление ИБ...». Появится окно «Тестирование и исправление информационной базы».

По умолчанию установлены все этапы тестирования, кроме упаковки таблиц информационной базы. Установки можно изменить.

Этапы тестирования можно производить независимо друг от друга, устанавливая любые флажки. Правда, в случае, если восстановление физической целостности базы нарушило ее индексную структуру, реиндексация будет проведена независимо от того, установлен ли соответствующий флажок.

Упаковка таблиц информационной базы — это дополнительная возможность, имеющая отношение не к целостности базы, а к ее величине (и, соответственно, скорости работы). Дело в том, что для экономии времени записи, удаляемые из информационной базы, на самом деле физически не уничтожаются, а считаются удаленными (не путать с пометкой на удаление!) и пропускаются при чтении (иначе при каждом удалении приходилось бы сдвигать все записи после удаляемой на ее место, что занимало бы много времени). Перед архивированием информационной базы, чтобы не занимать лишнего места, или вообще при дефиците места на диске, полезно физически стереть все удаленные записи, сдвинув оставшиеся записи на их места.

Кнопка «Настройка» предоставляет доступ к диалогу «Настройка исправления информационной базы». В нем нужно определить две настройки. Первая определяет, должна ли программа при обнаружении ссылок на несуществующие объекты создавать эти объекты, или удалять ссылки. Можно также отказаться от исправлений ошибок этого типа. Если задать создание объектов, потом можно будет просмотреть их и, если какие-то из них на самом деле не нужны, корректно удалить вместе со ссылками. Для этого можно в режиме 1С:Предприятия воспользоваться поиском ссылок на объекты, или просто начать удалять объект: в качестве первого этапа перед удалением производится контроль ссылок, специально чтобы не нарушить ссылочную целостность базы.

Вторая настройка касается объектов, по которым данные были частично потеряны, но оставшихся данных достаточно для того, чтобы восстановить потерянные. Например, по имеющимся проводкам можно восстановить бухгалтерскую операцию, а по ссылке на документ оперативного учета с указанием его типа и по записям о вызванных им движениях регистров — сам документ, и т. д.

Определив эти две настройки, необходимо нажать кнопку «OK» для продолжения процесса запуска с измененными настройками. Нажатие кнопки «Отмена» позволяет отказаться от изменений.

Для запуска процесса тестирования информационной базы следует нажать кнопку «Выполнить».

Однако, даже в этом случае выданные в процессе тестирования сообщения могут оказаться весьма полезными и существенно сократить время, которое потребуется специалисту для восстановления работоспособности. Перед выполнением каких-либо действий над информационной базой процедура выведет напоминание о необходимости сделать резервную копию. Если она еще не сделана, нажмите кнопку «Нет», выйдите из процедуры, после чего сделайте резервную копию и снова запустите процедуру. При нажатии кнопки «Да» процесс тестирования запускается и уже не может быть остановлен до своего окончания по завершению списка выполняемых проверок или до возникновения неустранимой ошибки.

В процессе тестирования информационной базы строка состояния используется процедурой для вывода информации о выполняемой в данный момент проверке.

Все изменения, внесенные в таблицы информационной базы, фиксируются в окне сообщений. По окончании процесса тестирования текст из этого окна может быть выделен (целиком или фрагментарно) и сохранен в Буфере Обмена MS Windows, потом вставлен из Буфера Обмена в любом текстовом редакторе и сохранен в виде файла или распечатан на принтере. Параллельно с выводом в окно сообщений оно отмечается в Мониторе пользователей (см. гл. «Монитор пользователей), где его можно просмотреть впоследствии.

Выход из процедуры осуществляется нажатием кнопки «Выход».

Сообщения при тестировании

Сообщения, которые могут появляться при тестировании и исправлении информационной базы, приведены в нижеследующем списке. Список разбит на разделы по этапам тестирования.

Здесь из каждого сообщения приведена переменная часть, по которой их легко опознать. Реально в них, в частности, включается и название этапа тестирования.

Если в сообщении указан только тип значения (поля, реквизита и т. д.), это просто означает, что его значение не соответствует ограничениям, наложенным в системе 1С:Предприятие на это тип данных.

Объявления в сообщениях о сделанных исправления имеют силу для режима исправления, но не для режима тестирования.

Проверка физической целостности

Сообщение | Объяснение
Неисправимая ошибка | Не является самостоятельной ошибкой. Сигнализирует о том, что в результате обнаруженных ранее ошибок дальнейшее тестирование информационной базы бессмысленно

Открытие доступа к таблице

Сообщение | Объяснение
Создана таблица | Выдается в режиме тестирования и исправления, если отсутствует файл таблицы
Не удалось открыть файл | Ошибка при открытии файла таблицы. Файл может отсутствовать, или произошла ошибка при его создании в режиме тестирования и исправления, или таблица может быть открыта другим приложением. Тестирование завершается с сообщением о неисправимой ошибке

Проверка заголовка файла таблицы

Сообщение | Объяснение
Неверная длина заголовка dbf-файла Длина записи не соответствует ожидаемой Ошибка в имени поля <номер> Ошибка в типе поля | Поля заголовка таблицы содержат неверную информацию или конфликтуют друг с другом. Тестирование завершается с сообщением о неисправимой ошибке
Длина файла не соответствует количеству и длине записей | Длина файла таблицы не соответствует вычисленной на основании длины заголовка, количества и длины записей. В режиме тестирования и исправления предпринимается попытка привести в соответствие длину файла и количество записей
Не сошлось наименование поля <номер> Не сошлись типы полей <номер> Не сходится количество полей | Информация о поле вступает в конфликт со словарем данных, содержащемся в DD-файле. Тестирование завершается с сообщением о неисправимой ошибке

Проверка содержимого записи

Сообщение | Объяснение
Неверный признак удаленности записи | Флаг удаленности записи имеет недопустимое значение. В режиме тестирования и исправления записи ставится признак «удалена»

Проверка содержимого поля

Сообщение | Объяснение
Неверное содержимое Неверное содержимое поля Numeric Неверное содержимое логического поля Неверное содержимое поля даты | Содержимое поля неверно с точки зрения текстового поля хранения в таблице значений определенного типа. В режиме тестирования и исправления содержимое поля «очищается» в соответствии с типом хранимого значения.

Проверка таблиц(ы) XX

Сообщение | Объяснение
Запись YYY. Поле ZZZ. | Содержимое поля не соответствует типу поля
Ссылка на несуществующий элемент метаданных | При проверке таблицы констант — обнаружена запись о периодическом реквизите справочника, который не определен в метаданных. При проверке таблицы журнала документов — обнаружена запись о документе, который не определен в метаданных. Такие записи уничтожаются
Нет в журнале документов | Существует запись о заголовочной части документа, у которой нет соответствующей записи в журнале документов
Нет ответной заголовочной части | Существует запись в журнале документов, у которой нет соответствующей записи о заголовочной части документа

Проверка значений констант

Сообщение | Объяснение
Удалена запись о константе | Было только значение константы, но ее самой не было в списке констант
Удалена дублирующая запись о константе | Было два или более значений у одной непериодической константы

Проверка периодических реквизитов

Сообщение | Объяснение
Справочник XXX. Элемент YYY. Реквизит ZZZ. Значение на DDD. Счет XXX. Реквизит ZZZ. Значение на DDD. | В информационной базе отсутствует объект, являющийся значением данного реквизита
Справочник XXX. Элемент YYY. Реквизит ZZZ. Значение на DDD. Очищен признак изменения документом | Не было соответствующего документа

Проверка содержания справочников

Сообщение | Объяснение
Перенесен на 1-й уровень | Отсутствовал элемент, на который данный элемент ссылается, как на элемент первого (верхнего) уровня; обнаружено зацикливание по родительскому элементу (ссылки образовали замкнутую цепочку); превышение допустимого уровня вложенности элементов
Убран признак группы | Элемент, находящийся на максимальном (нижнем) уровне вложенности, имел признак группы
Изменено подчинение | Элемент подчиненного справочника, находящийся на нижнем уровне, был подчинен не тому элементу, которому подчинен элемент верхнего уровня; элемент подчиненного справочника был подчинен отсутствующему элементу в справочнике-родителе. Подчинение изменяется следующим образом: начиная с верхнего уровня вложенности подчиненного справочника его элементы понижающихся уровней вложенности подчиняются тем же элементам справочника-родителя, которым подчинены элементы верхних уровней
Удалено подчинение | Справочник не является подчиненным, а справочник-родитель был указан
Элемент XXX. Реквизит YYY Элемент XXX. Реквизит YYY. Значение на DDD | Реквизит содержит ссылку на отсутствующий в ИБ объект. В зависимости от режима работы, оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки

Проверка уникальности внутреннего идентификатора в справочнике

Сообщение | Объяснение
Нарушена уникальность внутреннего идентификатора в справочнике. Можно исправить только вручную |

Проверка содержимого документов

Сообщение | Объяснение
Номер XXX. Реквизит YYY | Реквизит содержит ссылку на отсутствующий в ИБ объект. В зависимости от режима работы оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки

Проверка уникальности внутреннего идентификатора документов

Сообщение | Объяснение
Обнаружено два (или более) документа с одинаковыми идентификаторами. Можно исправить только вручную. |

Проверка содержимого движения регистров

Сообщение | Объяснение
Удалена запись о движении регистра | Имелась запись о движении, вызванном отсутствующим документом
Документ XXX не проводился. Удалена запись о движении регистра | Имелась запись о движении, вызванном не проведенным документом
Документ XXX. Измерение YYY | Измерение регистра содержит ссылку на отсутствующий в ИБ объект. В зависимости от режима работы оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки

Проверка содержимого планов счетов

Сообщение | Объяснение
Не принадлежит ни одному плану счетов | Неверно указана принадлежность к плану счетов
Удален признак принадлежности к метаданным | Была неверно указана принадлежность к метаданным
Изменен признак XXX счета в соответствии с метаданными | Свойства счета различались с указанными в метаданных
Не соответствует маске плана счетов | Код счета не соответствовал маске плана счетов (формату, определенному для данного плана счетов). Счет удаляется
Отсутствует родитель | Субсчет содержал ссылку на отсутствующий в информационной базе счет-родитель. Такой субсчет удаляется
Изменен признак XXX | Счет и субсчет имели различные свойства. Признак XXX субсчета устанавливается таким, как у его счета-родителя
Исправлен уровень | Для счета (субсчета) был указан неверный уровень. Запись об уровне счета/субсчета исправлена по коду
Счет XXX. Реквизит YYY Счет XXX. Реквизит YYY. Значение на DDD | Реквизит содержит ссылку на отсутствующий в информационной базе объект. В зависимости от режима работы оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки
Изменен список субконто | Конфликт состава субконто у счета и субсчета. Состав субсчета приводится в соответствие с составом счета

Проверка уникальности внутреннего идентификатора счетов

Сообщение | Объяснение
Нарушена уникальность внутреннего идентификатора счетов. Исправляется только вручную. |

Проверка содержимого проводок

Сообщение | Объяснение
Проводка... — «висящая» | Информационная база не содержала информации о документе и/или операции, которому/которой принадлежит проводка (в зависимости от настроек процедуры программа или создает документ и/или операцию, или уничтожает проводку)
Документ XXX не имеет проводок | У документа, на который ссылается проводка, отсутствовал признак, что он имеет проводки. Такая проводка уничтожается
Неверный счет | Неверно указан счет дебета или кредита. Проводка уничтожается
Отсутствуют счета | Не указан ни один из счетов. Проводка уничтожается
Счета с различным признаком забалансовости | Проводка удаляется
Счета из разных планов счетов | Проводка удаляется
Счет не имеет признака забалансовости | Простая проводка в единственной корреспонденции содержит счет, не имеющий признака забалансовости. Проводка удаляется
Исправлены параметры проводки в соответствии с параметрами счетов | Был конфликт между данными проводки и параметрами счетов
Счет XXX. Субконто YYY | Субконто содержит ссылку на отсутствующий в информационной базе объект. В зависимости от режима работы оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки
Реквизит XXX | Реквизит содержит ссылку на отсутствующий в информационной базе объект. В зависимости от режима работы оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки

Проверка операций

Сообщение | Объяснение
Операция... — «висящая» | Информационная база не содержит информации о документе, которому принадлежит операция. В зависимости от режима работы, удаляется операция или создается документ
Документ XXX не имеет операции | У документа, на который ссылается операция, отсутствует признак, что он имеет операцию. Проводка удаляется
Изменена дата Изменено время | Документ и операция имели различную дату или время
Исправлена нумерация проводок | Была нарушена нумерация принадлежащих операции проводок
Обнулен дебет-счет Обнулен кредит-счет Сделана простой, остальные удалены | Главная проводка сложной проводки имела и дебетовую, и кредитовую части
Изменен счет в соответствии с главной проводкой Изменены субконто в соответствии с главной проводкой | Конфликт данных подчиненной проводки, являющейся частью сложной проводки, с главной проводкой
Изменена сумма главной проводки | Не были равны суммы главной и подчиненных корреспонденции сложной проводки
Исправлен признак про | У простой проводки не был установлен стой проводки соответствующий признак
Реквизит XXX | Реквизит содержал ссылку на отсутствующий в ИБ объект. В зависимости от режима работы оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки

Проверка корректных проводок

Сообщение | Объяснение
Изменены коды счетов | Неверно указан(ы) код(ы) счета(ов)

Проверка типовых операций

Сообщение | Объяснение
Изменен шаблон типовой операции | Некритичная ошибка. Как правило, вы- звана несоответствием форматов хранения типовой операции различными релизами 1С:Предприятия
Перенесена на 1-й уровень | Была нарушена иерархия в списке типовых операций
Изменен список прав | Был неверно указан список прав доступа к типовой операции
Исправлена нумерация проводок | Неверная нумерация проводок в типовой операции

Проверка содержания журналов расчетов

Сообщение | Объяснение
Ссылка на несуществующий алгоритм | Ссылка на не описанный в метаданных алгоритм. Запись удаляется
Ссылка на несуществующий элемент связанного справочника | Ссылка на элемент справочника, отсутствующего в информационной базе. Запись удаляется
Ссылка на несуществующий документ Ссылка на несуществующий родительский документ | Ссылка на документ, отсутствующий в информационной базе. Запись удаляется
Ссылка на несуществующую пересчитываемую строку | Ссылка на строку, отсутствующую в - журнале расчетов. Запись удаляется
Исправлен приоритет | Указанный приоритет не соответствовал указанному для алгоритма

Реквизит XXX

Реквизит содержит ссылку на отсутствующий в информационной базе объект. В зависимости от режима работы оставшаяся часть сообщения может содержать информацию по диагностике или диагностике и исправлению ошибки

Пакетный режим

В данном разделе описывается специальный режим работы конфигуратора — «Пакетный режим». Он предназначен для выполнения конфигуратором административных функций без участия пользователя. Данный режим применяется в специальных случаях. Например, с его помощью можно организовать специальный ярлык на рабочем столе 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С:Предприятия и завершения работы;
Административные | события связанные с действиями по изменению конфигурации и функциями администрирования информационной базы, например, создание резервной копии;
Изменения данных | события изменяющие данные информационной базы, такие как запись документа, элемента справочника и т. д.
Информационные | события отражающие действия пользователя не изменяющие данных информационной базы, например, открытие документа, или содержащие дополнительную информацию к другим событиям;
Предупреждения | специальные события записываемые в журнал регистрации различными механизмами 1 С: Предприятия в тех случаях, когда в ходе обработки данных возникла ситуация, о которой выдастся предупреждение;
Ошибки | специальные события записываемые в журнал регистрации при возникновении ошибок при работе 1С:Предприятия, например к этой категории относятся ошибки встроенного языка.

В большинстве случаев целесообразно, чтобы в журнале отражались все события. Для отключения регистрации событий отдельных категорий следует выключить соответствующий флажок. Разумеется, уже записанные в журнал события при отключении флажка не удаляются.

В нижней части диалога расположена кнопка «Установить пароль просмотра журнала». Она предназначена для того, чтобы исключить возможность несанкционированного просмотра журнала регистрации. При нажатии на данную кнопку предлагается ввести пароль. При вводе пароля вводимые символы показываются в виде символа «*». Для исключения ошибок при вводе пароля он запрашивается два раза. Для снятия установленного пароля следует ввести пустой пароль.

Если пароль установлен, то при начале просмотра журнала регистрации будет выполняться запрос пароля.

Для подтверждения внесенных изменений в настройку журнала регистрации следует нажать кнопку «ОК». Для отказа следует нажать кнопку «Отмена».


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 28

Глава 28.
Сохранение и восстановление данных

  • Сохранение данных
  • Восстановление данных

Накопленная в системе 1С:Предприятие информация может быть случайно повреждена в результате ошибок пользователя, воздействия вируса или поломок оборудования. Чтобы избежать потери информации, 1С:Конфигуратор позволяет создавать резервную копию информации, а в случае повреждения данных — восстановить потерянную информацию из резервной копии.

Резервная копия может быть сохранена на дискетах или на жестком диске. При создании резервной копии выполняется сжатие информации и сохранение в формате ZIP. При большом объеме сохраняемой информации программа автоматически разделяет информацию по дискетам.

По умолчанию резервная копия содержит все файлы данных (DBF-файлы) и системные файлы, содержащие конфигурацию задачи (1CV7.DD, 1CV7.MD, 1CV7.SPL). При необходимости можно расширить список сохраняемых файлов.

Сохранение данных

Перед созданием резервной копии подготовьте необходимое количество чистых отформатированных дискет или убедитесь в наличии достаточного свободного пространства на локальном или сетевом диске, на котором предполагается сохранить резервную копию. Затем необходимо закрыть систему 1С:Предприятие, Отладчик и все открытые окна в Конфигураторе.

Создание резервной копии выполняется в режиме «Сохранение в архив», который вызывается выбором пункта «Сохранить данные» в меню «Администрирование» главного меню Конфигуратора.

Диалог «Сохранение» содержит список сохраняемых файлов и кнопки управления этим списком, поле для ввода имени файла резервной копии и кнопку запуска процесса создания резервной копии.

Кнопка «Закончить» служит для выхода из режима «Сохранение в архив».

Список сохраняемых файлов. Список сохраняемых файлов содержит имена и маски файлов, которые будут сохраняться в резервной копии. Изначально этот список содержит файлы, жизненно важные для функционирования системы 1С:Прсдприятие:

*.DBF файлы данных;

1CV7.MD описание конфигурации задачи;

1CV7.DD описание структуры файлов данных;

1CV7.SPL словарь, который используется для выдачи чисел, наименований денежных единиц и дат прописью.

Список сохраняемых файлов можно расширить, включив в него любые другие файлы, которые необходимо сохранять в резервной копии.

Для добавления файла в список следует нажать кнопку «Добавить», тогда на экран будет выдан диалог со списком файлов информационной базы.

Чтобы добавить файл в список сохраняемых файлов, необходимо выделить его клавишами или мышью и нажать кнопку «ОК». Нажав кнопку «Отмена», можно отказаться от выбора файла.

Кнопка «Добавить маску» вызывает на экран запрос, в котором можно указать имя файла или группы файлов для добавления в список сохраняемых файлов. Для включения в список группы файлов при указании имени используйте символы-заменители «*» и «?».

Для исключения файла или группы файлов из списка необходимо выделить наименование файла в списке и нажать кнопку «Удалить». Из списка нельзя удалить системные файлы и файлы данных — при выборе таких файлов кнопка «Удалить» станет недоступной.

При выделении файлов можно использовать комбинации клавиш Shift+Стрелка Вверх и Shift+Стрелка Вниз для выбора группы файлов. При выборе файлов мышью можно, держа нажатой клавишу Ctrl, выбрать для удаления сразу несколько файлов.

После нажатия кнопки «Удалить» на экран будет выдан запрос для подтверждения удаления выбранных файлов. Нажатие кнопки «ОК» удаляет выбранные файлы, кнопка «Отмена» возвращает в режим «Сохранение в архив».

Список сохраняемых файлов запоминается при выходе из режима «Сохранение в архив». На экран выдается запрос «Сохранить список сохраняемых файлов?», при ответе «Да» список будет сохранен.

Список сохраняемых файлов сохраняется в файле с именем 1CV7FILE.LST, который располагается в каталоге с информационной базой системы 1С:Предприятие.

Имя файла резервной копии. Поле «Сохранять в» предназначено для указания имени файла резервной копии.

В качестве пути к файлу можно указать гибкий диск или каталог на локальном или сетевом диске компьютера.

По умолчанию файл резервной копии имеет имя 1CV7.ZIP, одна ко, можно указать и любое другое имя. Если не указано расширение файла, по умолчанию присваивается расширение ZIP. Если указали расширение, отличное от ZIP, сохранение все равно выполняется и формате ZIP.

Нажатием кнопки «…» можно открыть стандартный диалог для ввода имени файла, который позволяет выбрать путь и имя файла резервной копии.

Создание резервной копии. После того, как составлен список сохраняемых файлов и указаны путь и имя файла архивной копии, для сохранения следует нажать кнопку «Сохранить». Далее следует руководствоваться указаниями программы.

Прежде всего, если на указанном жестком диске или дискете уже существует файл с именем, совпадающим с именем файла резервной копии, будет выдано соответствующее сообщение. Необходимо подтвердить перезапись существующего файла или отказаться от сохранения.

Процесс создания резервной копии различается в зависимости от того, где создается копия — на жестком диске или на дискетах.

При создании резервной копии на жестком диске после нажатия кнопки «Сохранить» начинается сжатие информации и запись се в указанный файл.

Если создание архивной копии закончилось успешно, на экран выдается соответствующее сообщение и информация о размере файла резервной копии и количестве частей резервной копии (1 часть, если резервная копия создастся на жестком диске).

В случае нехватки места на жестком диске создание резервной копии будет прекращено и файл создан не будет. В этом случае следует либо выделить достаточное количество свободного места на диске, либо указать другой диск для создания резервной копии.

Процесс создания резервной копии на дискетах состоит из двух этапов.

На первом этапе сохраняемые файлы сжимаются и записываются во временный файл.

На втором этане временный файл записывается на дискеты, при этом ему присваивается имя, указанное в поле «Сохранять в» диалога «Сохранение данных».

Если на дискете недостаточно места для размещения файла резервной копии целиком, он будет автоматически разделен на не сколько частей. Количество частей зависит от размера файла резервной копии и величины свободного пространства на дискетах. Каждая часть файла резервной копии записывается на дискету до исчерпания свободного пространства на ней, после этого выдается запрос об установке очередной дискеты в дисковод. Если в ответ на этот запрос вы отказались от продолжения сохранения, нажав кнопку «Отмена», созданная резервная копия не будет пригодна для восстановления данных.

Восстановление данных

Если файлы информационной базы системы 1С:Предприятие на жестком диске оказались испорченными, их можно восстановить из резервной копии.

Перед восстановлением данных следует подготовить дискеты с резервной копией. Затем необходимо закрыть систему 1С:Предприятие, Отладчик и все открытые окна в Конфигураторе.

Для восстановления данных используется режим «Восстановление из архива», который можно вызвать выбором пункта «Восстановить данные» в меню «Администрирование» главного меню Конфигуратора.

В запросе следует указать путь и имя файла, из которого будет восстанавливаться информация. Если не указано иначе, в качестве имени архивного файла будет предложено имя, использованное при создании резервной копии.

Нажатием кнопки «…» можно открыть стандартный диалог, который позволяет выбрать путь и имя файла резервной копии.

Информация из резервной копии будет восстанавливаться в каталог текущей информационной базы системы 1С:Предприятие.

Внимание! Если в каталоге текущей информационной базы существуют какие-либо файлы системы 1С:Предприятие, — они будут полностью заменены информацией из резервной копии.

После того, как указано имя файла резервной копии, для запуска процесса восстановления следует нажать кнопку «Восстановить».

Если происходит восстановление из резервной копии на дискетах, следует по запросам программы вставлять дискеты, содержащие части копии, в указанный вами дисковод. Если дискеты вставляются в неверном порядке, программа выдаст соответствующее сообщение.

При восстановлении информации из резервной копии, расположенной на жестком диске, программа сразу начнет распаковку информации и запись ее в каталог информационной базы.

Не рекомендуется прерывать процесс восстановления информации из архива, так как в этом случае информационная база системы 1С:Предприятие будет восстановлена не полностью и, скорее всего, окажется неработоспособной.

При восстановлении информации из резервной копии, расположенной на дискетах, файл резервной копии сначала будет «собран» из частей, находящихся на дискетах, а после этого начнется распаковка и запись информации. Остановить процесс восстановления данных вы можете только, пока идет чтение информации с дискет.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 29

Глава 29.
Сервисные возможности

  • Служебные окна
  • Настройка параметров Конфигуратора
    • Установка параметров модулей
    • Установка параметров текста
    • Установка параметров интерфейса
    • Настройка параметров Синтакс-Помощника
  • Калькулятор
  • Календарь
  • Временная блокировка
  • Синтакс-Помощник
    • Окно Синтакс-Помощника
    • Параметры Синтакс-Помощника
    • Копирование элементов встроенного языка
    • Поиск в Синтакс-Помощнике
  • Шаблоны
    • Ведение списка шаблонов
    • Создание нового шаблона
    • Копирование шаблона
    • Удаление шаблона
    • Упорядочивание списка шаблонов
    • Сохранение списка шаблонов
    • Редактирование шаблона
    • Управляющие конструкции шаблона
    • Использование шаблонов
  • Панели инструментов
    • Виды панелей инструментов
    • Управление панелями инструментов
    • Редактирование панелей инструментов
    • Параметры панелей инструментов
  • Сравнение файлов
  • «Советы дня»
  • Запуск системы 1С:Предприятие, Отладчика и Монитора пользователей

Система 1С:Прсдприятие включает в себя массу различных сервисных возможностей и вспомогательных режимов. Они будут описаны в этой главе.

Служебные окна

В процессе работы с Конфигуратором для выдачи пользователю различной вспомогательной информации используются служебные окна. К таким окнам относятся:

· окно сообщений;

· Синтакс-Помощник;

· окно результата поиска во всех текстах.

За исключением Синтакс-Помощника, эти окна автоматически вызываются на экран в случае необходимости (окно Синтакс-Помощника вызывается пользователем). Они отличаются от прочих окон Конфигуратора тем, что выполнены в виде закрепляемых («docking») окон. Такие окна объединяют в себе функциональность обычных окон и особенности поведения панелей инструментов.

Назначение каждого из перечисленных окон описано в соответствующих разделах данного Руководства, а в настоящем параграфе будут изложены общие приемы работы с такими окнами.

Для управления окнами используются контекстные меню. Для каждого окна контекстное меню, помимо специфических пунктов, содержит следующие общие пункты, управляющие поведением закрепляемого окна.

Разрешить закрепление. Если этот пункт контекстного меню включен, окно будет «прилипать» к краям главного окна программы, подобно панелям инструментов. Но, в отличие от панелей инструментов, размер закрепляемого окна можно изменять.

Спрятать. Закрывает служебное окно. Действие этого пункт контекстного меню аналогично действию кнопки [image] закрытия окна.

Перемещать в главном окне. Регулирует область перемещения служебного окна. Если пункт включен, служебное окно перемещается только внутри главного окна Конфигуратора. В этом случае пункт «Разрешить закрепление» игнорируется — окно не может «прилипать».

Если пункт «Перемещать в главном окне» выключен, служебное окно может перемещаться по всему экрану, независимо от положения и размеров главного окна Конфигуратора. В этом случае окно будет располагаться поверх всех остальных окон.

Совет. Служебное окно, которое можно перемещать по всему экрану, при приближении к какому-либо краю главного окна Конфигуратора будет пытаться «прилипнуть» к нему. Чтобы окно не «прилипало», выполняйте перемещение окна при нажатой клавише Ctrl.

Настройка параметров Конфигуратора

Для установки различных параметров работы Конфигуратора используется функция «Параметры» из меню «Сервис» главного меню Конфигуратора.

Диалог «Настройка параметров системы» организован в виде картотеки. Все параметры, которые можно установить, объединены в 4 группы. Для доступа к управляющим элементам конкретной группы щелкните мышью на соответствующей закладке в окне диалога.

Установка параметров модулей

Управляющие элементы закладки «Модули» позволяют настроить выделение цветом синтаксических конструкций в модулях, автоотступ и задать шаг табуляции для модулей.

Выделение цветом синтаксических конструкций. Текстовый Редактор системы 1С:Предприятие имеет возможность выдавать различным цветом синтаксические элементы встроенного языка системы 1С:Предприятие. Выделение цветом облегчает восприятие текста модуля и уменьшает вероятность появления ошибок.

Для настройки цвета необходимо в списке выбрать название синтаксического элемента и щелкнуть мышью на верхнем поле справа от списка. На экран будет выдана палитра цветов, в которой необходимо выбрать цвет для выделения указанного элемента встроенного языка. Если вместо какого-то конкретного цвета выбрать слово «Авто», то цвет синтаксического элемента будет определяться установками MS Windows.

Опция «Запретить выделение цветом», если она включена, отменяет выделение цветом синтаксических конструкций в модулях. Назначенные ранее цвета при этом полностью сохраняются, поэтому включение данной опции сразу восстанавливает цветовую палитру модулей.

Проверять автоматически. Эта опция включает режим, при котором автоматически будет выполняться синтаксический контроль модулей при сохранении конфигурации или закрытии окна редактируемого модуля.

Автоподстановка. Если включена эта опция, при редактировании модулей будет задействована функция автоматической замены шаблонов (см. п. «Использование шаблонов», стр. 8).

Шаг табуляции. Поле «Ширина табуляции» позволяет выбрать ширину шага табуляции в символах. В это поле можно ввести целое число в пределах от 1 до 16 включительно. Изменение числа в этом поле приводит к изменению шага табуляции во всех модулях (в том числе тех, которые открыты для редактирования).

Автоотступ. Текстовый редактор системы 1С:Предириятие имеет функцию автоматического форматирования управляющих конструкций встроенного языка при редактировании модулей. Список «Автоотступ» позволяет выбрать один из двух видов автоотступа.

Синтаксический отступ выполняет автоматическое форматирование текста модуля, смещая вправо текст, расположенный внутри управляющих конструкций типа Если...Тогда...КонецЕсли, Пока...Цикл...Конеццикла и подобных. Смещение выполняется за счет добавления в начало строк необходимого количества знаков табуляции.

«Обыкновенный» отступ автоматически выравнивает текст строки по левой границе предыдущей не пустой строки.

Если автоотступ отключен, автоматического форматирования текста модуля выполняться не будет.

Установка параметров текста

Управляющие элементы закладки «Текст» позволяют настроить параметры редактора текстов, используемые при редактировании текстовых документов.

Цвет закладок. В этом поле можно выбрать цвет закладок, который используется для пометки строк в редакторе текстов (см. п. «Использование закладок», стр. Ошибка! Закладка не определена.).

Открывать текст как модуль. Если опция включена, то при редактировании текстового документа редактор текстов будет использовать специфические возможности, применяемые при редактировании модулей: выделение цветом синтаксических конструкций, использование синтаксического автоотступа и другие (см. п. «Редактирование модулей», стр. Ошибка! Закладка не определена.).

Перетаскивание текста. В редакторе текстов для перемещения и копирования блоков текста можно использовать режим «drag & drop» («перенеси и оставь»).

Автоподстановка. Если включена эта опция, при редактировании текста будет задействована функция автоматической замены шаблонов (см. п. «Использование шаблонов», стр. 8).

Шаг табуляции. Поле «Шаг табуляции» позволяет выбрать ширину шага табуляции в символах. В это поле можно ввести целое число в пределах от 1 до 16 включительно. Изменение числа в этом поле приводит к изменению шага табуляции в текстовых документах.

Автоотступ. Если автоотступ включен, то при редактировании текстов текстовый редактор системы 1С:Предприятие автоматически выравнивает текст новой строки по левой границе предыдущей не пустой строки.

Установка параметров интерфейса

Управляющие элементы закладки «Интерфейс» позволяют определить используемые экранные шрифты.

Настройка шрифтов. Для установки экранного шрифта, используемого в каком-либо режиме работы Конфигуратора, следует выбрать в списке наименование этого режима и нажать кнопку «Выбрать шрифт». На экран будет выдан стандартный диалог выбора шрифта, в котором можно выбрать наименование, стиль и размер шрифта. Описание шрифта, установленного для того или иного режима, выводится в рамке «Установленный шрифт» справа от списка.

Строки в списке режимов программы имеют следующий смысл:

Формы все экранные формы: стандартные и созданные в процессе настройки конфигурации задачи;

Табличные документы документы, созданные при помощи функции «Новый — Таблица» из меню «Файл» главного меню программы; таблицы в редакторе форм;

Текстовые документы документы, созданные при помощи функции «Новый — Текст» из меню «Файл» главного меню программы;

Модули программные модули системы 1С:Предприятие;

Табло информация в окне «Табло»;

Окно сообщений сообщения в окне сообщений;

Описание текст темы в окне описания.

Показывать пиктограммы в меню. Эта опция включает показ в главном меню Конфигуратора и контекстных меню образов команд меню. Аналогичные образы используются на кнопках панелей инструментов.

Настройка параметров Синтакс-Помощника

Закладка настройки параметров Синтакс-Помощника позволяет выбрать язык, на котором будут выдаваться элементы встроенного языка в окне Синтакс-Помощника (см. п. «Параметры Синтакс-Помощника», с. 4), и определить файл шаблонов (см. п. «Сохранение списка шаблонов», с. 6).

Калькулятор

Для выполнения несложных текущих расчетов система 1С:Предприятис имеет встроенный калькулятор. Его можно вызвать в любом режиме программы (кроме случаев, когда программа ждет ответа на запрос), нажав клавиши Ctrl+F2 или выбрав пункт «Калькулятор» из меню «Сервис» главного меню Конфигуратора.

Для удобства окно калькулятора всегда располагается «поверх» других окон. Можно мышью перетащить окно калькулятора в любое место экрана.

Калькулятор позволяет выполнять все арифметические действия, вычислять проценты и обратные значения, запоминать число и выполнять сложение и вычитание с запомненным значением. При вводе числа калькулятор позволяет редактировать введенное значение, удаляя неверно введенные разряды.

Для работы с калькулятором можно использовать как мышь, так и клавиатуру. По выполняемым функциям числовой калькулятор напоминает «настоящие» калькуляторы.

Если результат какой-либо операции превышает разрядность калькулятора или производится деление на 0, то на дисплее появляется «сообщение об ошибке» красного цвета: от 10 000 000 000 000 е4 (1 + максимальное для калькулятора число из девяток 99 999 999 999 999 999 999) до 999 999 999 999 999 e18 (попытка умножить 99 999 999 999 999 999 999 на 99 999 999 999 999 999 999) или просто Е (при делении на ноль). В таком случае для продолжения работы необходимо очистить дисплей калькулятора, нажав кнопку «С».

Календарь

Конфигуратор системы 1С:Предприятие содержит встроенный календарь. Его можно вызвать в любом режиме программы, выбрав пункт «Календарь» из меню «Сервис» главного меню Конфигуратора.

Для удобства окно календаря всегда располагается «поверх» других окон. Можно мышью перетащить окно калькулятора в любое место экрана.

Для листания календаря используйте кнопки «<» или «>» для смены месяца и «<<» или «>>» — для смены года.

Временная блокировка

Режим временной блокировки позволяет закрыть доступ к работающему Конфигуратору.

Для включения блокировки необходимо выбрать пункт «Временная блокировка» из меню «Сервис» главного меню Конфигуратора. На экран будет выдан запрос «Система заблокирована» и никаких действий в Конфигураторе выполнить будет нельзя (на экране не останется никаких элементов интерфейса Конфигуратора, кроме этого запроса).

Чтобы снять блокировку, следует в поле запроса ввести пароль, который пользователь вводил при входе в Конфигуратор. Если пароль указан верно, после нажатия кнопки «ОК» запрос будет убран и будет разрешена работа с Конфигуратором.

Синтакс-Помощник

Синтакс-Помощник — средство, облегчающее разработку модулей. Основная задача Синтакс-Помощника — предоставить специалисту, выполняющему конфигурирование системы 1С:Предприятие, оперативную подсказку по встроенному языку.

Для вызова Синтакс-Помощника служит пункт «Синтакс-Помощник» в меню «Сервис» главного меню Конфигуратора.

Окно Синтакс-Помощника

Окно Синтакс-Помощника является закрепляемым окном (см. п. «Служебные окна», стр. 1), поэтому удобно располагать его, «прилепив» к боковой стороне главного окна Конфигуратора.

Окно Синтакс-Помощника состоит из двух частей. В верхней части в виде дерева выдается список элементов встроенного языка системы 1С:Предприятие: операторов, управляющих конструкций, процедур и функций, системных констант и др. Для удобства все элементы встроенного языка объединены в тематические разделы, представленные в виде ветвей дерева.

Замечание. Помимо элементов встроенного языка, дерево в верхней части окна Синтакс-Помощника содержит список существующих шаблонов (см. п. «Шаблоны», стр. 5).

В нижней части окна Синтакс-Помощника выдается краткое описание элемента встроенного языка, выбранного в верхнем окне. Для получения описания следует дважды щелкнуть мышью на наименовании элемента языка в верхней части окна Синтакс-Помощника.

Параметры Синтакс-Помощника

Для настройки параметров Синтакс-Помощника используется закладка «Синтакс-Помощник» настройки параметров Конфигуратора (пункт «Параметры» меню «Сервис» главного меню Конфигуратора). В ней можно выбрать язык, на котором будут выдаваться элементы встроенного языка в окне Синтакс-Помощника, и создаваться «заготовки» элементов встроенного языка в редакторе текстов. Можно выбрать либо только русский язык (не устанавливать флажок «Использовать оба языка»), либо дублированное описание по-русски и по-английски. Описание элементов встроенного языка в нижнем окне Синтакс-Помощника всегда выдается по-русски.

Копирование элементов встроенного языка

Синтакс-Помощник имеет функцию копирования выбранного элемента встроенного языка в редактор текстов.

Для копирования необходимо выделить наименование нужного элемента языка в древовидном списке и использовать пункт «Выбрать» из контекстного меню Синтакс-Помощника. В окно редактора текстов, в место расположения курсора будет перенесена «заготовка» элемента встроенного языка. Язык, который будет использоваться при вставке элементов встроенного языка, определяется установкой «Основной язык» в свойствах конфигурации.

Пункт контекстного меню «Выбрать и спрятать» переносит «заготовку» элемента встроенного языка и закрывает окно Синтакс-Помощника.

Кроме использования пунктов контекстного меню, для переноса «заготовок» элементов встроенного языка можно использовать режим «перенеси и оставь» («drag & drop»): достаточно перетащить мышью выбранный элемент встроенного языка из окна Синтакс-Помощника в окно редактора текстов.

Поиск в Синтакс-Помощнике

Для удобства поиска в Синтакс-Помощнике нужного элемента языка существует специальный режим контекстного поиска.

Для вызова режима контекстного поиска необходимо выбрать пункт «Поиск» из контекстного меню Синтакс-Помощника.

Диалог «Контекстный поиск» содержит окно со списком элементов встроенного языка, строку поиска - поле ввода со списком для быстрого поиска в списке элементов, и список вхождений.

Для поиска нужного элемента языка можно набирать первые символы элемента на клавиатуре — курсор в списке элементов будет установлен на первый элемент, начало которого совпадает с указанными символами. В окне вхождений появится список тематических разделов, имеющих отношение к выделенному элементу. Теперь, если нажать кнопку «ОК», диалог контекстного поиска будет закрыт, а в окне Синтакс-Помощника будет выдано описание найденного элемента языка, выбранное в окне вхождений.

Перейти из списка к описанию найденного элемента языка также можно, дважды щелкнув на элементе языка в списке элементов или на тематическом разделе в списке вхождений левой кнопкой мыши.

Описание элемента встроенного языка можно искать в Синтакс-Помощнике непосредственно при редактировании модуля. Для выполнения поиска следует поместить курсор на элемент встроенного языка, по которому требуется получить подсказку, или выделить блок текста, и нажать клавиши Ctrl+F1.

Если слово, на котором находится текстовый курсор, или выделенный блок, является элементом встроенного языка, описанным в Синтакс-Помощнике, сразу откроется окно Синтакс-Помощника с описанием этого элемента языка.

Если элемент встроенного языка описан в нескольких тематических разделах Синтакс-Помощника, то сначала откроется окно контекстного поиска с этим элементом для выбора нужного тематического раздела.

Если выбранное слово или блок текста не являются элементами встроенного языка, при нажатии клавиш Ctrl+F1 также будет открыто окно контекстного поиска в Синтакс-Помощнике.

Произведенный поиск запоминается в списке «История обращений к Синтакс-Помощнику», который можно вызвать, выбрав пункт «История» в контекстном меню Синтакс-Помощника. Двойным щелчком левой кнопки мыши по запомненному в списке значению можно воспроизвести поиск.

Шаблоны

Конфигуратор системы 1С:Предприятие имеет возможность сохранения часто используемых фрагментов текста и быстрой вставки запомненных фрагментов в редактируемый текстовый документ или модуль.

Фрагменту текста ставится в соответствие условная комбинация символов — краткое имя фрагмента, называемое шаблоном. Если в параметрах Конфигуратора включен режим автоподстановки, то нужный фрагмент текста будет автоматически вставляться в редактор при вводе шаблона (внимание: режим автоподстановки включается отдельно для модулей и текста на разных закладках окна настройки параметров Конфигуратора!).

Ведение списка шаблонов

Шаблоны настраиваются в режиме «Настройка шаблонов», который можно вызвать:

· выбрав пункт «Настройка шаблонов» из меню «Сервис» главного меню Конфигуратора;

· из контекстного меню Синтакс-Помощника;

· выбрав пункт «Шаблоны — Настройка» в контекстном меню текстового документа.

Ведение списка шаблонов выполняется в окне «Настройка шаблонов».

Шаблоны в списке шаблонов могут быть организованы в группы. Заголовок группы не является шаблоном, а служит только для визуального объединения шаблонов, входящих в эту группу. Группы шаблонов могут быть вложены одна в другую.

Для раскрытия списка шаблонов, входящих в группу, необходимо дважды щелкнуть мышью на заголовке группы.

Созданный список шаблонов автоматически отображается также в окне Синтакс-Помощника. Структура дерева шаблонов совпадает со структурой списка шаблонов в окне «Настройка шаблонов».

Кроме того, шаблоны, для которых включена опция «Включать в меню», будут выдаваться также в контекстном меню редактора текстов.

Создание нового шаблона

Для создания нового шаблона необходимо выбрать пункт «Новый» в меню «Действия» главного меню Конфигуратора. В списке шаблонов появится новая строка, а на экран будет выдан диалог для редактирования свойств шаблона. Вновь созданному шаблону присваивается условное имя, состоящее из слова «Шаблон» и числа — порядкового номера нового шаблона.

Для создания новой группы необходимо выбрать пункт «Новая группа» в меню «Действия» главного меню Конфигуратора. В окне «Настройка шаблонов» группа обозначается значком [image].

Для создания нового шаблона или группы внутри уже существующей группы следует выделить название группы или название любого шаблона в этой группе.

В диалоге «Свойства шаблона» рекомендуется сразу задать название шаблона. Название — это произвольная строка символов, которая будет выдаваться в списке шаблонов, в окне Синтакс-Помощника и в контекстном меню редактора текстов. В пределах одной группы шаблонов названия должны быть уникальными.

Копирование шаблона

Новые шаблоны можно создавать путем копирования существующих шаблонов — как в пределах одной конфигурации, так и между конфигурациями. Для копирования используются возможности Буфера Обмена MS Windows.

Чтобы скопировать шаблон (или группу шаблонов), необходимо сначала «запомнить» его в Буфере Обмена MS Windows, использовав команды «Копировать» или «Вырезать» из меню «Действия» главного меню Конфигуратора. Если используется команда «Вырезать», то выделенный шаблон или группа шаблонов будут удалены из списка.

Затем необходимо выделить название любого шаблона в той группе, куда требуется вставить копию, и использовать команду «Вставить». Если у вставляемых шаблонов образцы текста для замены совпадают с образцами уже имеющихся в списке шаблонов, на экран будет выдано сообщение об очистке ключей подстановки. В этом случае для подтверждения очистки ключей подстановки следует нажать кнопку «Да», или нажать «Нет» и отказаться от вставки шаблонов.

После вставки в списке шаблонов появится новый шаблон (или группа). Название шаблона может быть преобразовано с целью соблюдения уникальности названий в пределах группы.

При копировании группы шаблонов копируются также все шаблоны и группы шаблонов, входящие в выбранную группу.

Для копирования шаблонов можно использовать также режим «перенеси и оставь» («drag & drop»), для этого необходимо перетаскивать название шаблона мышью при нажатой клавише Ctrl.

Удаление шаблона

Для удаления шаблона или группы шаблонов следует выделить название шаблона или группы в списке шаблонов, нажатием правой кнопки мыши вызвать контекстное меню и в этом меню выбрать пункт «Удалить».

После подтверждения выбранный шаблон или группа будут удалены из списка шаблонов.

Совет. Если необходимо восстановить ошибочно удаленный шаблон, следует закрыть окно «Настройка шаблонов», отказавшись от сохранения шаблонов. После повторного открытия этого окна удаленный шаблон вновь появится в списке.

Упорядочивание списка шаблонов

Названия шаблонов и групп в окне «Настройка шаблонов» можно расставить в требуемом порядке. В таком же порядке названия шаблонов будут выдаваться в окне Синтакс-Помощника и в контекстном меню редактора текстов.

Для перестановки названия шаблона или группы необходимо выделить его в списке и использовать кнопки [image] («Переместить вверх»), [image] («Переместить вниз») и [image] («Упорядочить»), расположенные в панели инструментов окна «Настройка шаблонов», или соответствующие команды меню «Действия» главного меню Конфигуратора.

Названия шаблонов и названия групп сортируются независимо друг от друга: в верхней части списка располагаются названия групп, а затем — названия шаблонов.

Для перестановки названий шаблонов также можно использовать режим «drag & drop» («перенеси и оставь»). Таким же образом можно перемещать шаблоны и группы шаблонов между группами, а также организовывать вложенные группы.

Сохранение списка шаблонов

Для сохранения списка шаблонов необходимо выбрать пункт «Сохранить» в меню «Файл» главного меню Конфигуратора.

Список шаблонов сохраняется в файле с зарезервированным именем 1CV7SRCT.ST и по умолчанию помещается в каталог информационной базы системы 1С:Предприятие.

Файл 1CV7SRCT.ST может быть скопирован или перенесен в рабочий каталог пользователя или в каталог, где расположены исполняемые файлы системы 1С:Предприятие. При вызове режима «Настройка шаблонов» поиск файла 1CV7SRCT.ST будет выполняться сначала в рабочем каталоге пользователя, затем — в каталоге с информационной базой, и, наконец, в каталоге с исполняемыми файлами системы 1С:Предприятие.

Размещение файла 1CV7SRCT.ST в одном из указанных каталогов позволяет изменять «область действия» настройки шаблонов.

Редактирование шаблона

Редактирование шаблона выполняется в палитре свойств «Свойства шаблона», которую можно вызвать на экран двойным щелчком мыши на названии шаблона.

Палитра свойств, используемая при редактировании шаблона, по порядку использования аналогична той, которая применяется при редактировании свойств объектов метаданных. Порядок использования палитры свойств можно узнать в главе «Метаданные».

Палитра свойств «Свойства шаблона» содержит только одну закладку — «Основные».

Название — произвольная строка символов, которая будет выдаваться в списке шаблонов, в окне Синтакс-Помощника и в контекстном меню редактора текстов при редактировании текстового документа.

Заменять... На. В поле «Заменять» необходимо ввести образец для замены — последовательность символов, которая будет заменяться фрагментом текста при использовании шаблона, а в поле «На» — текст, который будет заменять эту последовательность символов.

Поле «Заменить» можно оставить пустым, тогда вставку шаблонов можно будет выполнять не путем автоподстановки, а «вручную» из Синтакс-Помощника или контекстного меню редактора текстов (см. н. «Использование шаблонов», стр. 8).

Если включена опция «Ред. в окне» («Редактировать в окне»), то нажатием кнопки «Редактировать» можно вызвать редактор текстов для редактирования заменяющего текста. Данную возможность удобно использовать, если заменяющий текст представляет собой многострочный текстовый фрагмент.

Включать в меню. Первые 10 шаблонов, у которых включена эта опция, будут вставлены в контекстное меню редактора текстов. В этом случае вставку шаблона можно выполнять, выбрав его название из контекстного меню.

Совет. Рекомендуется включать эту опцию для шаблонов, у которых не задан текст для замены.

Исп. в типовых операциях. Если включена эта опция, редактируемый шаблон будет присутствовать в списке шаблонов Синтакс-Помощника при редактировании шаблонов типовых операций. Режим работы с типовыми операций доступен в системе 1С:Предприятие, если установлена компонента «Бухгалтерский учет».

Управляющие конструкции шаблона

В тексте шаблона могут быть размещены управляющие конструкции — последовательности символов, которые при вставке заменяющего текста шаблона вызывают выполнение каких-либо действий. Например, управляющие конструкции позволяют запрашивать у пользователя какую-либо информацию и помещать эту информацию во вставляемый текст.

Управляющие конструкции в шаблон можно вставлять вручную или использовать специальный запрос для интерактивной вставки управляющих конструкций.

При редактировании шаблона можно выбрать в меню «Действия» или в контекстном меню пункт «Управление...» или нажать комбинацию клавиш Ctrl+Shift+C. Будет вызвано окно «Управляющая конструкция», в котором можно определить следующие управляющие конструкции:

· произвольный запрос;

· выбор метаданного;

· форматную строку;

· установку курсора.

Общим элементом всех управляющих конструкций является подсказка.

Произвольный запрос. Управляющие конструкции этого типа позволяют запрашивать у пользователя строку символов.

Для определения произвольного запроса в поле «Подсказка» нужно поместить имя запроса и нажать «ОК».

В тексте шаблона появится управляющая конструкция вида <?"Текст подсказки">.

Управляющая конструкция типа «произвольный запрос» используется следующим образом.

Если в заменяющем тексте встречается конструкция <?"Текст подсказки">, то перед вставкой заменяющего текста на экран будет выдан запрос с текстом подсказки и полем для ввода текста. В поле ввода можно указать текст, который будет вставлен в заменяющий текст вместо конструкции <?"Текст подсказки">.

Конструкций типа «произвольный запрос» в заменяющем тексте может быть несколько, причем несколько конструкций могут иметь одинаковый текст подсказки. При вставке заменяющего текста на каждую из различающихся конструкций будет выдан свой запрос для ввода текста. На каждый набор одинаковых конструкций будет выдан один общий запрос, а введенный в запрос текст заменит псе одинаковые конструкции.

Выбор метаданного. Управляющая конструкция этого типа служит для вставки в редактируемый текст наименования объекта метаданных.

Для определения произвольного запроса в поле «Подсказка» нужно поместить имя запроса и нажать «ОК».

Для помещения в шаблон управляющей конструкции типа «выбор метаданного» с помощью окна «Управляющая конструкция» нужно в поле «Подсказка» поместить имя запроса и в списке выбрать объект метаданных: Справочник, Документ, Журнал, Регистр, ПланСчетов, Счет, СчетПоКоду, Субконто, Перечисление, Отчет или Обработка.

После нажатия «ОК» в текст шаблона будет помещена конструкция вида <?"Текст подсказки", Справочник> (документ, журнал, регистр — текст после запятой зависит от выбранного объекта метаданных).

Если в заменяющем тексте встречается эта управляющая конструкция, при вставке на экране появится запрос со списком указанных в конструкции объектов метаданных для выбора.

После выбора объекта и нажатия кнопки «ОК» в окне запроса, в редактируемом тексте будет вставлено наименование объекта. Если нажать кнопку «Пропустить», появится следующий запрос (относящийся к следующей управляющей конструкции в тексте шаблона), и вставлено ничего не будет, за исключением случая управляющей конструкции <?"Текст подсказки", СчетПоКоду> — при ее пропуске появится текст СчетПоКоду ("","").

Форматная строка. Управляющая конструкция этого типа служит для вставки в заменяющий текст форматной строки, которая используется в функции встроенного языка Формат().

При выборе в окне «Управляющая конструкция» форматной строки и нажатии «ОК» в тексте шаблона появляется управляющая конструкция <?"Текст подсказки", Формат>.

Если в заменяющем тексте встречается такая управляющая конструкция, при вставке на экране появится диалог «Форматная строка».

Работа с диалогом «Форматная строка» подробно описана в главе «Табличный редактор», п. «Конструктор печати» (см. стр. Ошибка! Закладка не определена.).

Итогом работы с диалогом будет появление в тексте форматной строки, например, «Ч-11.2>3,'». Созданную форматную строку можно использовать как параметр функции Формат().

Установка курсора. Управляющая конструкция этого типа служит для вставки курсора в определенную позицию заменяющего текста. При выборе в диалоге «Управляющая конструкция» переключателя «форматная строка» и нажатия кнопки «ОК» в заменяющий текст шаблона будет вставлена конструкция вида <?>. Такая конструкция указывает, куда следует поместить курсор после ввода заменяющего текста.

Если таких конструкций в заменяющем тексте несколько, то курсор будет установлен на место первой по порядку конструкции <?>.

Использование шаблонов

Существует несколько режимов использования шаблонов.

Автоподстановка. Если в настройке параметров Конфигуратора в закладах «Модули» и (или) «Текст» включена опция «Автоподстановка», то вводимый шаблон будет заменяться на фрагмент текста автоматически в процессе редактирования модуля или текстового документа.

Синтакс-Помощник. Синтакс-Помощник позволяет вставить заменяющий текст напрямую, без ввода образца для замены.

Для вставки текста необходимо выделить название шаблона в древовидном списке и использовать пункт «Выбрать» из контекстного меню Синтакс-Помощника. В окно редактора текстов в место расположения курсора будет введен заменяющий фрагмент текста.

Пункт контекстного меню «Выбрать и спрятать» вводит в редактор заменяющий фрагмент и закрывает окно Синтакс-Помощника.

Кроме использования пунктов контекстного меню, для ввода заменяющего текста можно использовать режим «drag & drop» («перенеси и оставь»): достаточно перетащить мытью выбранный шаблон из окна Синтакс-Помощника в окно редактора текстов.

Контекстное меню редактора текстов. Контекстное меню в редакторе текстов включает пункт «Шаблоны». При выборе этого пункта открывается подменю, содержащее команду «Настройка» для вызова режима «Настройка шаблонов», и список шаблонов.

Выбрав шаблон из этого списка, можно вставить фрагмент текста в редактируемый текст или модуль.

Панели инструментов

В операционной системе MS Windows управление работой приложения осуществляется при помощи набора команд, доступ к которым, в соответствии в принятым в MS Windows стандартом, организован в виде меню. Для быстрого доступа к часто используемым командам используют так называемые панели инструментов.

Панель инструментов представляет собой окно с набором кнопок. Нажатие мышью на любую из кнопок вызывает немедленное выполнение связанной с этой кнопкой команды. Как правило, каждая кнопка снабжена картинкой, образно отражающей характер команды, связанной с этой кнопкой.

Панели инструментов можно располагать в любом удобном месте: как «прижав» к какой-либо стороне окна программы, так и «подвесив» в любом месте экрана. При перемещении напели инструментов ее будущее положение показывается инверсным прямоугольником.

Система 1С:Предприятие использует панели инструментов двух типов: жестко связанные с окном и плавающие.

Панели, жестко привязанные к какому-либо окну, обычно содержат кнопки, предназначенные для работы с информацией, расположенной только в этом окне. Они занимают в окне фиксированное положение (обычно под заголовком окна) и не могут изменяться пользователем. В режиме «Панели инструментов» (см. ниже) можно задать расположение таких панелей вдоль определенной стороны окна или совсем отключить их.

Плавающие панели инструментов содержат, как правило, кнопки для вызова команд общего применения, не привязанных к информации конкретного окна. Количество панелей инструментов, одновременно находящихся в главном окне Конфигуратора, может меняться в зависимости от режима работы программы. Кроме того, можно определять собственные панели инструментов, компонуя их из заранее заданного набора кнопок.

Управление панелями инструментов ведется при помощи пункта «Панели инструментов», расположенного в меню «Сервис» главного меню программы и в контекстном меню, вызываемом правой кнопкой мьнпи на области панелей инструментов и строки состояния.

Виды панелей инструментов

В Конфигураторе могут существовать следующие виды «плавающих» панелей инструментов.

Системные панели инструментов. Эти панели инструментов «зашиты» в программу и не могут быть удалены средствами системы 1С:Предприятие. Можно изменить состав находящихся на них кнопок и даже удалить все кнопки, однако программа «помнит» конфигурацию таких панелей и по команде пользователя может ее восстановить.

Панели инструментов, создаваемые пользователем. В процессе работы с Конфигуратором пользователь может создать свои собственные панели инструментов. Такие панели создаются из заранее заданного набора кнопок и их количество не ограничено.

Управление панелями инструментов

Для управления панелями инструментов выберите пункт «Панели инструментов» из меню «Сервис» главного меню Конфигуратора или из контекстного меню панелей инструментов.

Диалог «Панели инструментов» содержит три закладки. Для доступа к управляющим элементам конкретной закладки необходимо щелкнуть мышью ее название.

Закладка «Панели инструментов»

С помощью управляющих элементов данной закладки ведется вся работа по созданию, редактированию и удалению панелей инструментов

В списке панелей инструментов символом [image] отмечены панели, находящиеся в настоящий момент на экране. Эту отметку можно ставить и снимать, щелкая мышью в рамке слева от имени панели инструментов, и, таким образом, вызывать выбранную панель инструментов на экран и убирать ее.

Совет. Аналогичные функции можно выполнять также из контекстного меню панели инструментов. Чтобы открыть это меню, необходимо поместить указатель мыши на любой панели инструментов и нажать правую кнопку мыши.

При первом открытии этого диалога в списке панелей инструментов будут присутствовать только системные панели. При создании пользователем новых панелей инструментов в список будут добавлены их названия.

Опция «Показ подсказок» включает и отключает выдачу подсказок к кнопкам.

Опция «Плоские кнопки» позволяет переключать внешний вид кнопок между «традиционным» трехмерным и плоским — в этом случае кнопка в панели инструментов обозначается пиктограммой, а сама кнопка появляется, когда над пиктограммой проходит указатель мыши.

Создание панелей инструментов

Для создания панели инструментов необходимо перейти в закладку «Панели инструментов» и нажать кнопку «Новая». В появившемся запросе необходимо ввести имя новой панели инструментов. После нажатия кнопки «ОК» на экране появится новая панель инструментов — пока еще без кнопок.

Переименование панели инструментов

Переименовывать можно только панели инструментов, созданные пользователем.

Для переименования напели необходимо выбрать се имя в списке и в поле, расположенном в нижней части диалога, указать повое имя. После выбора имени другой панели в списке или закрытия окна диалога кнопкой «Закрыть» панели инструментов будет присвоено новое имя.

Удаление панели инструментов

Удалить можно только панели инструментов, созданные пользователем.

Для удаления панели необходимо выбрать се имя в списке и нажать кнопку «Удалить». Панель инструментов удаляется без дополнительного предупреждения.

Восстановление системных панелей инструментов

Системные панели инструментов, измененные в результате редактирования, можно восстановить в первоначальном виде. Для этого необходимо выбрать имя системной панели в списке и нажать кнопку «Восстановить».

Редактирование панелей инструментов

При редактировании панелей инструментов можно изменять состав и взаимное расположение кнопок, что позволяет организовать панели инструментов наиболее удобным образом. Редактирование выполняется при помощи закладки «Модификация» диалога «Панели инструментов».

Все кнопки, которые могут быть размещены на панелях инструментов, для удобства объединены в несколько категорий. Список категорий размещается в левой верхней части закладки.

Если выбрать в этом списке имя какой-либо категории, в правой верхней части закладки выдается набор кнопок, входящих в эту категорию. Этот набор не может быть изменен.

Чтобы узнать назначение конкретной кнопки, необходимо щелкнуть на ней мышью — в нижней части закладки будет выдано описание кнопки.

Процесс редактирования панелей инструментов не ограничивается элементами закладки «Модификация». Он осуществляется также непосредственно на самих панелях.

Все действия по редактированию панелей инструментов выполняются методом «drag & drop» («перенеси и оставь»).

Для того чтобы добавить кнопку на панель инструментов, необходимо перетащить ее мышью на эту панель с закладки «Модификация» или с другой панели. Если при перетаскивании кнопки с панели на панель держать нажатой клавишу Ctrl, кнопка будет сдублирована на вторую панель и останется на первой.

Для удаления кнопки с панели инструментов необходимо перетащить ее мышью в любое место окна программы.

Если же перетащить не на панель инструментов, а оставить в любом месте окна программы кнопку не с напели инструментов, а с закладки «Модификация», будет автоматически создана новая панель инструментов с условным именем ToolBar1 (цифра может изменяться в зависимости от количества подобных панелей инструментов). Таким образом можно создавать новые панели инструментов. Автоматически присвоенные имена можно впоследствии изменить.

Совет. Для того чтобы редактировать панели инструментов, открывать диалог «Панели инструментов» необязательно. При удерживании клавиши Alt можно перетаскивать кнопки панели инструментов, как в описанном режиме редактирования.

Параметры панелей инструментов

Закладка «Дополнительные» диалога «Панели инструментов» позволяет управлять показом панелей инструментов.

Инструментальные панели окон. Список «Инструментальные панели окон» позволяет указать расположение «оконных» панелей инструментов. Можно выбрать расположение панелей вдоль одной из границ окна или совсем отключить эти панели.

Единая настройка для всех режимов работы. Опция «Единая настройка для всех режимов работы» отключает смену состава панелей инструментов при смене режима работы Конфигуратора. Поясним это подробнее.

Набор панелей инструментов, присутствующих на экране, постоянно изменяется в зависимости от режима работы Конфигуратора. Например, при работе с редактором текстов на экране появится панель инструментов «Редактор текстов». При работе с редактором диалогов панель «Редактор текстов», естественно, будет убрана, а на экран будут выданы панели «Редактор диалогов» и «Элементы диалога». Первоначальный состав панелей инструментов, выдаваемых на экран в том или ином режиме работы, определяется на уровне системы.

При помощи контекстного меню панели инструментов или закладки «Панели инструментов» можно изменить состав присутствующих на экране панелей. Выполненная настройка будет запомнена только для текущего режима работы — при смене режима состав присутствующих на экране панелей также изменится.

Если опция «Единая настройка для всех режимов работы» включена, то на экране, вне зависимости от режима работы Конфигуратора, постоянно будет присутствовать один набор панелей инструментов. Этот набор можно редактировать, однако для всех режимов он всегда будет одинаковым.

Замечание. Состав кнопок, расположенных на панелях инструментов, не меняется в зависимости от режима работы,

Сравнение файлов

Режим сравнения файлов дает возможность пользователю сравнить 2 любых файла. Для сравнения файлов необходимо выбрать пункт «Сравнить файлы» в меню «Файл» главного меню Конфигуратора. На экран будет выдан диалог для выбора сравниваемых файлов.

В полях «Сравнить» и «С» необходимо указать имена сравниваемых файлов. Имена файлов можно ввести вручную, выбрать из выпадающего списка или нажатием кнопки «…» вызвать стандартный диалог открытия файл и выбрать файл в этом диалоге.

Установка флажка «Игнорировать пустое пространство» означает, что пробелы сравниваться не будут.

Флажок «Различать регистр» позволяет при сравнении различать прописные и строчные буквы. Если флажок установлен, одна и та же прописная и строчная буква будут считаться разными символами.

Для начала сравнения необходимо нажать кнопку «ОК».

В зависимости от типа сравниваемых файлов, режим предоставляет различные возможности сравнения.

В двоичных файлах определяется только наличие или отсутствие различий, о чем выдастся соответствующее сообщение.

Для текстовых файлов на экран будет выдано окно просмотра различий. В двух колонках окна просмотра различий будут помещены сравниваемые тексты. В текстах разными цветами выделены удаленные, измененные и добавленные (новые) строки. В окне имеется панель инструментов со стандартными для текстового редактора 1С:Предприятия кнопками поиска и закладок, а также двумя кнопками, специфическими для данного окна. Это большие желто-зеленые стрелки, направленные одна вверх, другая вниз, служащие для перехода на начало ближайшего предыдущего или последующего измененного текста. Они полезны в том случае, если попался большой кусок текста без изменений.

При открытии файлов для сравнения при помощи стандартного диалога открытия файлов, в поле «Тип файлов» можно указать тип открываемого файла «Внешний отчет (обработка) (*.ert)» и выбрать для сравнения файлы этого типа. Для таких файлов Конфигуратор выдаст окно просмотра различий, поместив в него модули сравниваемых внешних отчетов (обработок).

«Советы дня»

«Советы дня» — это разнообразная полезная информация, которую Конфигуратор показывает в специальном окне. Основное назначение «Советов дня» — напоминать пользователю о наличии в сие теме 1С:Преднриятие различных полезных возможностей и приемов работы.

Окно «Советы дня» автоматически показывается в начале работы Конфигуратора, кроме того, его можно вызвать, выбрав пункт «Советы дня» в меню «Помощь» главного меню Конфигуратора.

При помощи кнопок «<Предыдущий» и «Следующий>» можно просмотреть другие советы.

«Советы дня» также показываются и при запуске системы 1С:Предприятие, при этом для Конфигуратора и для системы 1С:Предприятие существуют разные списки «советов дня».

Показ «советов дня» при запуске можно отключить, для этого надо отключить опцию «Показывать при запуске» в окне «Совет дня» Чтобы вновь включить «совет дня», необходимо вызвать окно «Совет дня».

Текст «советов дня» для Конфигуратора хранится в файле с зарезервированным именем 1cv7Cnfg.tip и располагается в каталоге с исполняемыми файлами системы 1С:Прсднриятие.

Текст «советов дня» для системы 1 С: Предприятие хранится в файле с зарезервированным именем lcv7Main.tip и по умолчанию располагается также в каталоге с исполняемыми файлами системы 1С:Прсднриятис.

Файлы 1cv7Cnfg.tip и lcv7Main.tip представляют собой текстовые файлы в кодировке MS Windows. Каждый «совет» занимает в этих файлах одну строку.

«Советы дня» извлекаются из файла один за другим в прямой или обратной последовательности (при нажатии кнопки «<Предыдущий»). При достижении последней строки файла следующей извлекается первая строка (а при достижении первой строки — соответственно, последняя). Последний просмотренный «совет» запоминается, и при очередном вызове «Советов дня» будет показан «совет» из следующей строки файла.

Если файл lcv7Main.tip перенести или скопировать в каталог информационной базы, то «Советы дня» будут извлекаться из этого каталога. Таким образом, при необходимости, для каждой информационной базы можно создать свой набор «советов дня», отражающих особенности работы именно с этой конфигурацией.

Запуск системы 1С:Предприятие, Отладчика и Монитора пользователей

Пункт «1С:Предприятие» в меню «Сервис» главного меню Конфигуратора, кнопка [image] панели инструментов «Конфигурация» или клавиша F11 позволяют запустить систему 1С:Предприятие, минуя процедуру выбора информационной базы и авторизации пользователя—в этом случае используются те же параметры запуска, которые были указаны при запуске Конфигуратора. Перед запуском системы 1С:Предприятие будет выдан запрос о необходимости сохранения изменений.

Пункт «Отладчик» в меню «Сервис» главного меню Конфигуратора, кнопка [image] панели инструментов «Конфигурация» или клавиша F12 так же позволяют запустить Отладчик, минуя процедуру выбора информационной базы. Перед запуском Отладчика будет выдан запрос о необходимости сохранения изменений.

Пункт «Монитор пользователей» в меню «Сервис» главного меню Конфигуратора или кнопка [image] панели инструментов «Конфигурация» так же позволяют запустить Монитор, минуя процедуру выбора информационной базы. Перед запуском Монитора будет выдан запрос о необходимости сохранения изменений.


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 30

Глава 30.
Конвертирование данных из предыдущих версий программ «1С»

  • Запуск конвертора
    • Выбор варианта конвертирования
  • Преобразование базы данных 1С:Бухгалтерия 6.0 в конфигурацию
    • Назначение конвертора
    • Установка параметров конвертора
    • Краткое описание процесса конвертирования
    • Рекомендации по изменению конфигурации после выполнения конвертирования
  • Загрузка базы данных 1С:Бухгалтерии 6.0 в конфигурацию
    • Общее описание процесса преобразования
    • Анализ остатков
    • Настройка переноса констант
    • Настройка переноса субконто
    • Настройка переноса остатков и проводок по счетам
    • Выполнение преобразования
    • Действия после выполнения конвертирования
  • Методика конвертирования данных программы 1С:Зарплата для DOS
    • Рекомендации

Система 1С:Преднриятис является совершенно новым продуктом, не имеющим программ-предшественников, созданных на других платформах. Тем не менее, система содержит набор конверторов данных, позволяющих перенести накопленную информацию из других экономических программ разработки фирмы «1С», или максимально облегчающих подобный перенос.

Конверторы позволяют перенести информацию из программ:

· 1С:Бухгалтерия 6.0 (базовая) для MS Windows;

· 1С:Бухгалтерия 6.0 (базовая) для MS Windows 95;

· 1С:Бухгалтерия-ПРОФ 6.0 для MS Windows;

· 1С:Бухгалтерия-ПРОФ 6.0 сетевая для MS Windows;

· 1С:Бухгалтерия-ПРОФ 6.0 для MS Windows 95;

· 1С:Бухгалтсрия-ПРОФ 6.0 сетевая для MS Windows 95;

· 1С:Зарплата 3.0;

· 1С:Зарплата 3.1;

· 1С:3арплата 4.0.

Перенос данных из программы 1С:Бухгалтерия-ПРОФ 6.0 «клиент-сервер» для MS Windows рекомендуется выполнять в 2 этапа:

· сначала конвертором DBF-Btrieve, входящим в комплект поставки программы, преобразовать базу данных 1 С: Бухгалтерии из формата Btrieve в формат DBF

· затем выполнить конвертирование базы данных в формате DBF конвертором системы 1С:Преднриятис.

Внимание! Преобразование информации из других экономических программ разработки фирмы «1С» выполняется с некоторыми ограничениями. Это связано с тем, что система 1С:Предприятие построена на совершенно иных технологических принципах, в корне отличных от тех, которые использовались в предыдущих разработках экономических программ фирмы «1С». Поэтому перед выполнением переноса информации рекомендуется внимательно ознакомиться с описанием соответствующих конверторов, приведенных ниже в этой главе.

Запуск конвертора

Перед выполнением конвертирования рекомендуем выполнить операцию резервного копирования текущей конфигурации системы 1С:Предприятие. Это делается при помощи пункта «Сохранить данные» меню «Файл» главного меню Конфигуратора (см. п. «Сохранение данных» на стр. Ошибка! Закладка не определена.). Если по каким-либо причинам результат конвертирования будет неудовлетворительным, впоследствии можно будет вернуться к исходному состоянию текущей конфигурации (пункт «Восстановить данные» меню «Файл» главного меню Конфигуратора) и повторить процесс.

Перед запуском конвертора необходимо закрыть систему 1С:Прсдприятие, Отладчик и все открытые окна в Конфигураторе.

Запуск конвертора осуществляется выбором пункта «Конвертировать данные» из меню «Конфигурация» главного меню Конфигуратора. На экран будет выдан диалог для выбора каталога, содержащего базу данных одной из программ, перечисленных в начале этой главы.

Нажатием кнопки «…» можно открыть стандартный диалог выбора каталога и указать каталог, в котором расположена база данных.

После нажатия кнопки «Выполнить» Конфигуратор автоматически определяет, данные какой программы лежат в указанном пользователем каталоге, и вызывает соответствующий конвертор. Если каталог не содержит данных, которые могут быть обработаны одним из

входящих в состав Конфигуратора конверторов, на экран будет выведено сообщение.

Если же в указанном каталоге обнаружена база данных одной из перечисленных выше программ, Конфигуратор выведет сообщение, какая именно база данных содержится в указанном каталоге.

Для базы данных 1С:Бухгалтерии 6.0 сообщение будет также содержать переключатели для выбора варианта конвертирования.

Выбор варианта конвертирования

Если выполняется конвертирование базы данных 1С:Бухгалтерии 6.0, необходимо выбрать один из двух вариантов преобразования данных.

Первый вариант («Преобразовать базу данных в конфигурацию») позволяет получить новую конфигурацию 1С:Предприятия, максимально соответствующую существующей настройке 1С:Бухгалтерии 6.0. В этом случае конвертор создаст справочники, документы и константы, соответствующие видам субконто, документам и константам 1С:Бухгалтерии 6.0. Все диалоги, печатные формы и алгоритмы макроязыка будут преобразованы в соответствующие форматы и языковые конструкции 1С:Предприятия. Также будут перенесены план счетов и проводки.

Выполняя перенос данных из 1С:Бухгалтсрии 6.0 этим способом, пользователь получает новую конфигурацию 1С:Предприятия, построенную на основе настройки 1С:Бухгалтерии 6.0. Но при этом из-за существенных отличий в концепции двух программ, а также в синтаксисе встроенного языка 1С:Предприятия и макроязыка 1С:Бухгалтерии 6.0, в полученной конфигурации не будут использованы все новые возможности ведения бухгалтерского учета 1С:Прсдприятия. Применение документов и отчетов, содержащихся в поставляемой с 1С:Предприятием конфигурации, становится невозможным. Также становится невозможным использование ежеквартально обновляемых регламентированных отчетов (баланса, приложений к балансу, расчетов налогов, ведомостей в фонды и других), так как они ориентированы на структуру учета типовых конфигураций. Кроме того, для начала работы в полученную после конвертации конфигурацию необходимо будет внести некоторые исправления, связанные с отличиями возможностей встроенного языка 1С:Предприятия от макроязыка 1С:Бухгалтерии 6.0, то есть потребуется дополнительная доработка сконвертированных алгоритмов встроенного языка.

При втором варианте конвертации («Загрузить базу данных в текущую конфигурацию»), в отличие от первого, новая конфигурация не создается. В этом случае данные 1С:Бухгалтерии 6.0 загружаются в существующую конфигурацию 1С:Предприятия. При этом из информационной базы 1С:Бухгалтерии 6.0 переносится нормативно-справочная информация (константы и субконто), а также формируются входящие остатки по бухгалтерским счетам и могут быть перенесены проводки после даты формирования входящих остатков. После преобразования данных пользователь получает возможность работать с типовой конфигурацией 1С:Бухгалтерии 7.7 или с любой другой конфигураций 1С:Прсдприятия, в которую была выполнена конвертация, но при этом начальные данные (константы, справочники и входящие остатки) будут заполнены соответствующими данными из 1С:Бухгалтерии 6.0.

После конвертации указанным способом пользователь может полностью применять все возможности типовой конфигурации (либо другой конфигурации), ее документы и отчеты, включая регламентированные.

Однако следует учесть, что, если созданным в 1С:Бухгалтерии 6.0 документам и отчетам нет аналогов в типовой конфигурации 1С:Предприятия, то их нужно будет создавать заново.

Выбор второго варианта конвертации, фактически, означает начало ведения учета заново, с чистого листа, но с автоматическим переносом необходимой для начала ведения учета информации. Разумеется, конвертацию вторым способом целесообразно выполнять при переходе к новому отчетному периоду — кварталу или году.

Таким образом, выбирая способ конвертации, пользователь должен решить, с какой конфигурацией он желает в будущем работать.

Если он хочет работать с конфигурацией, созданной по принципам организации учета 1С:Бухгалтерии 6.0, то ему нужно использовать первый вариант конвертации.

Если же он желает применять в работе все возможности бухгалтерского учета 1С:Предприятия, которые значительно расширены по сравнению с 1С:Бухгалтерией 6.0, то ему нужно воспользоваться вторым вариантом.

Конвертирование базы данных 1С:Бухгалтерии производится Конфигуратором системы «1С:Прсдприятие» с установленной компонентой «Бухгалтерский учет».

Преобразование базы данных 1С:Бухгалтерия 6.0 в конфигурацию

В этом параграфе рассматривается работа с конвертором баз данных программ «1С:Бухгалтерия» версии 6.0, работающим по варианту преобразования базы данных 1С:Бухгалтерии 6.0 в конфигурацию. Для выбора этого варианта конвертации следует в диалоге «Выбор способа конвертации» указать переключатель «Преобразовать базу данных в конфигурацию».

Назначение конвертора

Конвертор создает элементы метаданных конфигурации, соответствующие элементам базы данных программы «1С:Бухгалтерия 6.0»: константы, справочники, документы, отчеты (как произвольной формы, так и текстовые), план счетов и входящие в него счета (субсчета), виды субконто. Конвертор переносит значения констант, списки субконто, документы вместе с созданными ими проводками, проводки, план счетов, типовые операции. Конвертор выполняет преобразование алгоритмов на макроязыке программы «1С:Бухгалтерия 6.0» (алгоритмы формирования проводок документов; содержимое разделителей секций произвольных отчетов; формулы реквизитов документов, формулы вычисления сумм проводок в типовых операциях и т. д.) во встроенный язык 1С:Предприятия. Преобразование программных фрагментов не всегда может быть выполнено полностью корректно из-за различий в системах учета версий 6.0 и 7.5 и языках программирования.

Также конвертор можно использовать в целях обучения, так как результаты работы конвертора представляют собой готовый материал, по которому можно начинать осваивать работу как с компонентой «Бухгалтерский учет», так и с системой «1С:Предприятие» в целом.

Установка параметров конвертора

Конвертирование рекомендуется производить в специально поставляемую конфигурацию «Для конвертора». Данная конфигурация содержит некоторые диалоговые формы и печатные формы, соответствующие стандартным отчетам программы «1С:Бухгалтерия 6.0». Таким образом, во вновь создаваемой конфигурации обеспечивается преемственность свойств программы «1С:Бухгалтерия 6.0».

Процесс запуска конвертора описан в п. «Запуск конвертора» на стр. 1.

Если указанный пользователем каталог содержит информационную базу программы «I С: Бухгалтерия», на экран будет выдан диалог, позволяющий задать параметры конвертирования.

Диалог «Параметры конвертора» организован в виде картотеки: параметры, которые могут быть заданы, объединены в несколько групп. Для доступа к управляющим элементам конкретной группы необходимо щелкнуть мышью на соответствующей закладке диалога.

Закладка «Конфигурация»

Управляющие элементы этой закладки служат для выбора конфигурации, в которую будет конвертироваться база данных 1С:Бухгалтерии 6.0.

Как уже упоминалось выше, при конвертировании рекомендуется использовать поставляемую специальную конфигурацию для конвертора, обеспечивающую преемственность свойств 1С:Бухгалтерии 6.0. Однако, можно отказаться от использования этой конфигурации, для этого следует выключить опцию «Использовать конфигурацию для конвертора».

В этом случае конвертирование будет выполняться в текущую конфигурацию или в пустую, если при запуске системы 1С:Преднриятиев качестве рабочего каталога указан пустой каталог.

Однако, если текущая конфигурация содержит хотя бы один не пустой план счетов, то использование конфигурации для конвертора становится обязательным.

Если опция «Использовать конфигурацию для конвертора» включена, то в поле «Имя файла конфигурации для конвертора» следует указать полный путь к файлу, содержащему специальную конфигурацию для конвертора. Файл поставляется на дискете в упакованном виде и имеет имя «CnvB6Cfg.zip».

Нажатием кнопки «…» можно открыть стандартный диалог для ввода имени файла, который позволяет выбрать путь и имя файла специальной конфигурации для конвертора.

При включенной опции «Использовать конфигурацию для конвертора» конфигурация создастся заново, «с нуля»; все старые данные текущей информационной базы в процессе конвертации будут уничтожены, о чем выдастся соответствующее предупреждение с требованием подтвердить указанное действие.

Закладка «Константы»

Управляющие элементы этой закладки служат для установки параметров конвертации констант.

При конвертации константы 1С:Бухгалтерии 6.0 будут преобразованы в объекты метаданных типа «Константа».

В программе «1С:Бухгалтерия» версии 6.0 все константы представляют собой строки с максимальной длиной 40 символов. Однако, в процессе работы с программой, в зависимости от контекста обращения к значению константы и от содержания константы, она могли интерпретироваться также и как число или дата.

Если включена опция «Анализировать тип», то конвертор будет анализировать фактическое содержание каждой константы, которая определена в настройке 1С:Бухгалтерии, и присвоит ей тип, соответствующий ее содержимому.

Константам, имеющим пустое значение, конвертор будет присваивать тип, заданный группой управляющих элементов «Тип непроинициализ. константы».

Закладка «Параметры субконто»

Управляющие элементы этой закладки служат для установки параметров конвертации параметров субконто.

Все сказанное выше о константах, во многом справедливо и для параметров субконто 1С:Бухгалтерии 6.0.

При конвертации константы 1С:Бухгалтерии 6.0 будут преобразованы в объекты метаданных типа «Реквизит справочника».

В программе «1С:Бухгалтерия» версии 6.0 параметры субконто представляют собой строки с максимальной длиной 50 символов. Однако, в процессе работы с программой, в зависимости от контекста обращения к значению параметра и от содержания параметра, его значение могло интерпретироваться также и как число или дата.

Если включена опция «Анализировать тип», то конвертор будет анализировать фактическое содержание параметров субконто и присвоит реквизитам справочника тип, соответствующий содержимому параметра.

Для определения возможного типа параметра субконто, конвертор будет просматривать всю совокупность значений параметра — у всех субконто.

Закладка «Документы»

Закладка «Документы» позволяет управлять процессом переноса документов из базы данных «1С:Бухгалтерии» в конфигурацию системы 1С:Предприятие.

В окно с полосой прокрутки выводится список всех существующих в базе данных 1С:Бухгалтерии видов документов. Две колонки в левой части окна предназначены для отображения текущего режима преобразования данного документа и управления им.

Галочка в крайней левой колонке сигнализирует о том, что должна быть сконвертирована структура документов данного вида (то есть, в терминах Конфигуратора, реквизиты документа, форма диалога документа, шаблон печатной формы документа, модуль формы документа и модуль документа).

Наличие галочки во второй колонке указывает на то, что все документы данного вида, существующие в базе данных 1С:Бухгалтерии, будут переноситься в текущую конфигурацию системы 1С:Предприятие. В противном случае сами документы переноситься не будут, а вместо каждого не перенесенного документа конвертор создаст документ предопределенного вида «Операция» и назначит ему все проводки, существующие для этого документа.

Для изменения режима переноса документов нужно поставить или снять отметку в соответствующей колонки списка видов документов. Устанавливать (или снимать) отметки можно двойным щелчком мыши, при этом указатель мыши должен быть установлен в нужной колонке напротив наименования вида документа.

В нижней части закладки расположены две флажка, содержимое которых синхронизировано с индикаторами режима для выбранного вида документа в списке. Они предназначены для более наглядного представления текущих параметров конвертирования документов данного вида и также могут быть использованы для управления этими параметрами.

Краткое описание процесса конвертирования

После того, как в диалоге «Параметры конвертора», установлены все необходимые параметры, для продолжения процесса конвертирования следует нажать кнопку «ОК».

Процесс конвертирования условно можно разбить на две стадии: на первой выясняется состав и свойства новых элементов метаданных, которые необходимо ввести в текущую конфигурацию в процессе конвертирования (константы, справочники, виды документов, внешние отчеты, виды субконто, план счетов), на второй стадии заполняются значения констант, элементы справочников, принимаются документы, конвертируются типовые операции, выполняется расчет бухгалтерских итогов.

Перед переходом ко второй стадии на экран выдается список изменений в метаданных, которые сделал конвертор на первой стадии. Для продолжения процесса конвертирования нажмите кнопку «Принять».

Присваивание идентификаторов элементам метаданных

Для улучшения «читаемости» программных модулей и формул получающихся при преобразовании настройки «1С:Бухгалтерии» конвертор присваивает осмысленные идентификаторы создаваемым элементам метаданных. При этом в качестве исходных данных для образования идентификатора берется наименование или описание преобразуемого элемента.

Например, если константе с номером 1 в настройке «1С:Бухгалтерии» присвоено наименование «Наименование организации», то конвертор создаст новый элемент метаданных — константу «НаименованиеОрганизации», и всюду в текстах модулей и Формулах обращение к константе «К1» будет заменено на «Константа.НаименованиеОрганизации».

Определение типа элемента метаданных

Константы и параметры субконто. Константы и параметры субконто в настройке «1С:Бухгалтерии» имеют строковый тип. Несогласованность типа данных, подразумеваемого создателем настройки, и типа созданного элемента метаданных может привести к неправильным результатам при исполнении созданной в процессе конвертирования конфигурации (подробнее об этом см. ниже в п. «Рекомендации по изменению конфигурации после выполнения конвертирования»). Поэтому, если установлен соответствующий параметр конвертора, происходит анализ всех значений, назначенных данному элементу настройки 1С:Бухгалтсрии, и присвоение подходящего типа данных создаваемому элементу метаданных. При этом правила определения типа следующие:

· если все значения удовлетворяют формату даты (ДД.ММ.ГГ), тип данных определяется как «Дата»

· если все значения могут быть преобразованы к типу «Число длины n, точность m», таким же образом определяется и тип данных

· если ни первый, ни второй вариант не подходят, тип данных определяется как строка минимальной длины, способной вместить все значения параметра

Реквизиты документа. В 1С:Бухгалтерии для реквизита документов явно указывался его тип значения. Аналогичный тип значения получит и соответствующий ему элемент метаданных системы «1С:Прсдприятие». При этом может быть выполнено согласование идентификаторов метаданных: например, реквизит документа, имевший тип значения «Субконто Вид 7», может получить тип значения «Справочник.Сотрудники».

Преобразование констант

При выполнении конвертации каждой константе, созданной в 1С:Бухгалтерии, ставится в соответствие новый элемент метаданных — константа. Элементу присваивается осмысленный идентификатор и, если установлен соответствующий параметр конвертора, анализируется тип значения.

Программа 1С:Бухгалтерия допускает использование в программных текстах обращение к константам, не существующим в списке констант. Обнаружив данную ситуацию при конвертировании программного текста, конвертор создаст новый элемент метаданных, присвоив ему тот же идентификатор, который используется в настройке (например, «К2317») и тип значения «Строка».

Преобразование субконто

На первой стадии конвертор просматривает список видов субконто 1С:Бухгалтсрии и для каждого в конфигурации создает элемент метаданных типа «Справочник». Если данный вид субконто используется хотя бы в одном счете плана счетов 1С:Бухгалтерии, конвертор также создает в конфигурации новый объект метаданных типа «Вид Субконто».

Для каждого справочника, соответствующего виду субконто, автоматически создается числовой реквизит «Цена». Просматривается список параметров каждого вида субконто 1С:Бухгалтерии, и для соответствующего справочника системы 1С:Предприятие создаются дополнительные реквизиты.

Справочнику, виду субконто и реквизитам справочника даются осмысленные идентификаторы. Если установлен соответствующий параметр конвертора, решение о типе значения реквизита справочника принимается на основании всех значений соответствующего ему параметра субконто, определенных в конвертируемой настройке 1С:Бухгалтерии.

На второй стадии конвертор просматривает весь список значений каждого вида субконто и создаст новые элементы в соответствующем справочнике.

Преобразование документов

На первой стадии происходит просмотр документов, определенных в настройке 1С:Бухгалтсрии. Если у конвертора включена опция конвертирования документов данного вида, конвертор вводит в конфигурацию новые объекты метаданных — документ и его реквизиты.

Реквизиты шапки и невычислясмыс реквизиты табличной части документа «1С:Бухгалтерии» преобразуются в реквизиты вводимого в конфигурацию документа. Происходит преобразование формы диалога документа, печатной формы документа, описания формирования проводок и формул реквизитов преобразуемого документа. Преобразованному документу и его реквизитам присваиваются осмысленные идентификаторы, созданные на основании краткого наименования вида документов и названий реквизитов документов 1С:Бухгалтерии.

На второй стадии выполняется анализ всех документов, созданных в процессе работы с 1С:Бухгалтсрией. После определения вида очередного документа производится проверка, установлен ли перенос документов данного вида. Если установлен, документ переносится вместе со всеми образованными им проводками. В противном случае конвертор создает документ предопределенного типа «Операция» и назначает ему все проводки не перенесенного документа.

Аналогично переносятся проводки, введенные вручную или при помощи типовых операций в процессе работы «1С:Бухгалтерией».

Преобразование произвольных отчетов

Преобразование произвольных отчетов происходит на первой стадии работы конвертора. Для каждого произвольного отчета 1С:Бухгалтсрии 6.0 в конфигурации создается новый объект метаданных типа «Отчет». Ему присваивается идентификатор, и конвертируется печатная форма отчета.

Преобразование плана счетов

Счета из плана счетов 1С:Бухгалтерии 6.0 переносятся в план счетов с идентификатором «ОсновнойПланСчетов» конфигурации, предназначенной для конвертирования.

Счета (субсчета) в план счетов системы 1С:Предприятие могут вводиться как в Конфигураторе (в этом случае они становятся составной частью метаданных), так и в информационную базу при работе с системой 1С:Предприятие.

В конфигурацию в качестве метаданных счета (субсчета) заносятся при выполнении одного из следующих условий:

· если по счету или субсчету ведется аналитический учет по какому-либо виду субконто;

· если счет имеет хотя бы один субсчет с параметрами, отличными от параметров счета;

· если субсчет имеет параметры, отличные от параметров родительского счета.

Если ни одно из этих условий не выполнено, счет (субсчет) переносится непосредственно в информационную базу.

В отличие от 1С:Бухгалтерии версии 6.0, система 1С:Предприятие 7.5 может использовать в проводке только счета (субсчета), не имеющие подчиненных субсчетов. Если при обработке проводки 1С:Бухгалтерии 6.0 конвертор обнаружит, что она использует счет, имеющий субсчета, будет создан новый фиктивный субсчет, принадлежащий данному счету, и проводке будет использован этот субсчет.

Преобразование типовых операций

Типовые операции 1С:Бухгалтсрии 6.0 конвертируются без переноса печатной формы, так компонента «Бухгалтерский учет» системы «1С:Предприятие» не поддерживает печатных форм документов для типовых операций.

Рекомендации по изменению конфигурации после выполнения конвертирования

Конвертор освобождает пользователя от большого количества рутинной работы: создает необходимые элементы метаданных, формы диалогов, шаблоны печатных форм, преобразует программные фрагменты настройки во встроенный язык системы «1С:Предприятие» переносит информацию из базы данных 1С:Бухгалтерии. Однако, по окончании работы конвертора необходимо провести тщательное изучение, а затем тестирование полученной конфигурации.

Ниже изложено основное, на что следует обратить внимание при изучении конфигурации после выполнения конвертирования.

Ссылки на счета, имеющие субсчета

Как уже отмечалось выше, проводки могут ссылаться только на «конечные», т. е. не имеющие подчиненных, счета (субсчета). Однако, в алгоритмах формирования проводок или в формулах типовых операций 1С:Бухгалтерии 6.0 может встретится ссылка на счет, имеющий субсчета. В таком случае конвертор не выполняет образование фиктивного субсчета (это сделано во избежание излишнего загромождения плана счетов фиктивными субсчетами). По этой причине во время исполнения сконвертированного модуля будет выдаваться ошибка проведения документа. Пользователь должен самостоятельно проанализировать текст модуля, вызвавшего ошибку, и принять решение: образовать ли новый субсчет или сделать ссылку на какой-либо из уже существующих.

Согласование типов значений

Несмотря на то, что при выполнении конвертации базы данных 1С:Бухгалтерии 6.0 предпринимаются попытки определить тип значения конвертируемых констант и параметров субконто (если установлены соответствующие параметры конвертора), это не всегда возможно сделать полностью корректно. Последнее может привести к ошибкам при использовании сконвертированных значений в арифметических выражениях. В Конфигураторе следует просмотреть типы значений, присвоенных конвертором константам и реквизитам справочников, и, при необходимости, изменить их.

Вызов глобальной функции Зн60()

Программа 1С:Бухгалтерия 6.0, в отличие от системы 1С:Предприятие, при обращении к значениям параметров субконто и констант, возвращает строку без заключительных пробелов. Чтобы решить эту проблему, конвертор вставляет вызов глобальной функции Зн60() с параметром или константой в качестве параметра функции. Функция проверяет тип параметра и, в случае, если он текстовый, усекает его справа. Применение функции Зн60(), а не функции СокрП(), обусловлено тем, что если пользователь изменит тип значения (см. предыдущий пункт), это не вызовет необходимости просмотра всех текстов с целью исключения вызова функции СокрП() с параметром, тип значения которого не текстовый.

Определение вида субконто и идентификатора реквизита субконто

В отдельных случаях не представляется возможным установить при конвертации вид объекта аналитического учета (субконто) или идентификатор реквизита соответствующего ему справочника. Конвертор в таких случаях подставляет несуществующий идентификатор, в расчете на выдачу ошибки при трансляции или исполнении модуля, чтобы пользователь смог внести изменения в текст модуля самостоятельно.

Использование необъявленной переменной в командах ввода

В программе 1С:Бухгалтерия 6.0 было возможно, не объявив предварительно показатель, ввести его значение с помощью команд !ВВЕСТИ или !ВВЕСТИ ТЕКСТ. В таком случае, при выполнении сконвертированпого программного модуля, возникает ошибка попытки использования необъявленной переменной.

Циклы по субконто, счетам и субсчетам

Строго говоря, в макроязыке программы 1С:Бухгалтерия 6.0 команды организации цикла по субконто, счетам и субсчетам, с точки зрения структурного языка, таковыми не являются. Например, команда !ВЫБРАТЬ СУБКОНТО могла использоваться также и для вызова диалога выбора субконто, и не требовала команды завершения цикла (например, !ПОВТОРИТЬ СУБКОНТО).

Чтобы полностью воспроизвести все нюансы исполнения команд организации циклов по субконто, счетам и субсчетам программы 1С:Бухгалтерия 6.0, конвертор генерирует текст, использующий команду перехода. После конвертации рекомендуется просмотреть сгенерированные тексты с точки зрения организации циклов и, возможно, внести изменения в тексты модулей.

Подсчет развернутого сальдо по субконто верхнего уровня

В связи с изменениями концепций, потерял смысл подсчет развернутого сальдо по субконто (справочнику) верхнего уровня. Фрагмент программного текста, в который преобразуется вызов макроимени подсчета развернутого сальдо по субконто верхнего уровня, будет вычислять развернутое сальдо по «конечным» субконто. В текст также будет включен комментарий, предупреждающий о том, что подсчет производится по «конечным» субконто. Пользователь, при необходимости, должен самостоятельно изменить структуры справочников и список объектов аналитического учета по счету.

Временный расчет итогов

Компонентой «Бухгалтерский учет» системы 1С:Предприятие не поддерживается автоматически в актуальном состоянии временный расчет бухгалтерских итогов. Это приводит к неверной отработке команды !ВРЕМРАСЧ.

Команды задания формата вывода чисел

Команды задания формата вывода показателей !Е, !Т, !ТТ, !РАЗДЕЛЯТЬ, !НЕРАЗДЕЛЯТЬ не отрабатываются конвертором, т. к. переменные во встроенном языке системы «1С:Преднриятис» не хранят в себе информации о том, каким образом их следует форматировать при выводе — для этого существуют другие средства. Это может привести к непривычному для пользователя представлению чисел во внешних формах и диалогах. Следует изменить формат вывода, используя штатные средства системы «1С:Предприятие».

Задание параметров отчетов

Отчеты в системе «1С:Предприятие» имеют специальное диалоговое окно, чтобы пользователь мог ввести некий набор параметров, влияющих на формирование отчета. В программе 1С:Бухгалтерия 6.0 для того, чтобы задать параметры отчета, приходилось последовательно делать несколько вызовов предопределенных диалогов, используя команды типа !ВВЕСТИ, !ВЫБРАТЬ СУБКОНТО и подобные.

При конвертации подобные команды 1С:Бухгалтерии 6.0 преобразуются в вызовы предопределенных диалогов системы 1С:Предприятие. Однако, для улучшения внешнего вида и интуитивной ясности рекомендуется исключить вызовы таких диалогов из модуля формы отчета и с помощью Конфигуратора изменить форму диалога отчета таким образом, чтобы в ней задавать все параметры, влияющие на его формирование.

Загрузка базы данных 1С:Бухгалтерии 6.0 в конфигурацию

В этом параграфе рассматривается работа с конвертором баз данных программ «1С:Бухгалтерия» версии 6.0, работающим по варианту загрузки базы данных 1С:Бухгалтерии 6.0 в текущую конфигурацию. Для выбора этого варианта конвертации следует в диалоге «Выбор способа конвертации» указать переключатель «Загрузить базу данных в текущую конфигурацию».

Общее описание процесса преобразования

Процесс конвертации данных можно разделить на 3 этапа:

· анализ остатков;

· настройка параметров конвертации;

· выполнение конвертации.

Для выполнения этих действий используются закладки диалога конвертации.

Настройка параметров позволяет описать соответствие констант, субконто, счетов и субсчетов 1С:Бухгалтерии 6.0 соответствующим объектам конфигурации 1С:Предприятия.

Конвертор имеет две важные особенности.

Первая особенность состоит в том, что настройку параметров конвертации не обязательно производить за один сеанс работы, допускается ее выполнение за несколько сеансов. Дело в том, что при сложной организации учета в 1С:Бухгалтерии 6.0 настройка параметров переноса может быть весьма трудоемким процессом, поэтому существует возможность в любой момент сохранить текущие настройки режима конвертации, нажав кнопку «Сохранить». Все введенные настройки будут сохранены в том каталоге, в котором расположена конвертируемая база данных 1С:Бухгалтсрии 6.0. После этого можно выйти из режима конвертации, нажав кнопку «Закрыть». При повторном обращении к режиму конвертации в этом или в последующих сеансах работы с Конфигуратором, введенные настройки будут автоматически восстановлены, и процесс настройки параметров конвертации может быть продолжен.

Второй важной особенностью конвертора является возможность повторной конвертации данных 1С:Бухгалтерии 6.0 в одну и ту же информационную базу 1С:Предприятия. Это может потребоваться, если при анализе результатов преобразования будут обнаружены ошибки, случившиеся в результате неправильной настройки параметров конвертации. В этом случае преобразование необходимо будет повторить.

Для того чтобы обеспечить возможность выполнения повторной конвертации, конвертор сохраняет в каталоге базы данных 1С:Бухгалтерии 6.0 дополнительную информацию о действиях, выполненных им при преобразовании.

При выполнении повторной конвертации ранее сформированные операции с проводками удаляются, и на их место записываются новые. Перенесенные ранее элементы справочников не удаляются, так как они уже могут быть использованы при ведении учета в информационной базе 1С:Предприятия. Если по новым правилам переноса субконто и субсчетов, установленным при повторной конвертации, некоторые элементы справочников в информационной базе 1С:Предприятия присутствовать не должны, то оставшиеся после первой конвертации элементы следует удалить вручную.

Если после конвертации реальный учет в информационной базе 1С:Предприятия еще не ведется, то перед повторной конвертацией всю информационную базу можно удалить, заново установить ее из поставочного комплекта 1С:Предприятия, и заново выполнить конвертацию. В этом случае в информационной базе будет содержаться только та информация, которая определена в последних правилах конвертации.

Анализ остатков

В первую очередь следует обратиться к закладке «Анализ остатков».

На этой закладке пользователь должен указать дату свертки остатков, то есть ту дату, на которую будет происходить перенос остатков из 1С:Бухгалтерии 6.0 в 1С:Предприятие.

Заметим, что конвертор может выполнять перенос не только остатков на дату свертки, но и проводок после даты свертки. Однако целесообразно выбрать дату свертки, по возможности, более поздней — так, чтобы объем конвертации проводок, начиная с даты свертки, был минимальным: это упростит начало ведения учета.

Можно рекомендовать выполнять переход с версии 6.0, начиная с нового периода (года, квартала, месяца), с тем, чтобы в базе 1С:Бухгалтсрии 6.0 не вводились проводки нового периода. Тогда, фактически, перенос проводок выполняться не будет, и все проводки нового периода будут вводиться уже в информационной базе 1С:Предприятия.

В диалоге анализа остатков размещается переключатель, который определяет вариант получения остатков в базе данных 1С:Бухгалтерии 6.0 на дату свертки.

Если выбран вариант «Рассчитать остатки на дату свертки», то остатки рассчитываются в результате анализа всех существующих проводок информационной базы 1С:Бухгалтерии 6.0 с начала ведения учета до даты свертки (дата свертки при этом в расчет не включается). Этот вариант не может быть использован, если в базе данных 1С:Бухгалтерии 6.0 когда-либо выполнялось удаление операций, но итоги при этом не корректировались, другими словами, если в базе данных присутствуют не все проводки с начала ведения учета. В этом случае программа выдаст соответствующее сообщение.

Если выбран вариант «Использовать рассчитанные остатки», то будут использоваться текущие рассчитанные остатки в базе данных 1С:Бухгалтерии 6.0. В этом случае дата свертки должна быть началом месяца, и в базе данных 1С:Бухгалтсрии 6.0 должны быть рассчитаны итоги за квартал, в который входит месяц, предшествующий дате свертки.

Далее следует нажать кнопку «Выполнить анализ остатков». По этой команде конвертор выполняет расчет остатков базы данных 1С:Бухгалтерии 6.0 на указанную дату. Полученные остатки будут использованы для формирования входящих остатков в информационной базе 1С:Прсдприятия. Помимо этого, результаты анализа остатков будут использованы для настройки условий конвертации.

Кроме остатков на дату свертки, анализируются также проводки после даты свертки остатков, так как конвертор может выполнить и перенос этих проводок в информационную базу 1С:Предприятия.

Следует иметь в виду, что если перед повторной конвертацией выполнялись изменения в базе данных 1С:Бухгалтерии 6.0, то перед изменением настроек конвертации (или перед выполнением конвертации, если настройки не меняются) следует снова выполнить анализ остатков. Это необходимо для того, чтобы и настройка конвертации, и сама конвертация учитывали последние изменения в базе данных 1С:Бухгалтерии 6.0.

Настройка переноса констант

На закладке «Перенос констант» выполняется настройка конвертации значений констант 1С:Бухгалтсрии 6.0 в константы 1С:Предприятия.

На этой закладке выводится список констант 1С:Бухгалтерии 6.0. Справа от каждой константы пользователь должен указать соответствующую ей константу 1С:Предприятия, в которую при конвертации будет перенесено значение константы из 1С:Бухгалтерии 6.0.

Для выбора константы 1С:Предприятия следует установить курсор на нужную строку в колонке «Константа 1С:Предприятия» и дважды щелкнуть мышью (или нажать клавишу Enter) в выделенном поле. При этом появляется список констант конфигурации 1С:Предприятия, из которого следует выбрать ту, в которую будет происходить перенос.

Следует иметь в виду, что в 1С:Бухгалтерии 6.0 все константы, фактически, имеют строковый тип значения. В 1С:Предприятии, помимо значения «Строка», константа может принимать значения типа «Дата», «Число», «Справочник» и другие. При переносе констант 1С:Бухгалтерии 6.0 будет выполняться преобразование значений в тот тип, который имеет константа 1С:Предприятия. Преобразование в типы «Число» и «Дата» выполняется достаточно просто, аналогично тому, как в макроязыке 1С:Бухгалтерии 6.0 эти константы заносились в реквизиты документов.

При преобразовании в тип «Справочник», «Перечисление» или «Документ» система будет пытаться интерпретировать строковое значение константы, соответственно, как код справочника, или идентификатор значения перечисления, или как номер документа. Разумеется, для выполнения преобразования эти данные (на которые ссылается константа) уже должны находиться в информационной базе.

Тип константы 1С:Предприятия указывается в списке констант в процессе выбора.

Существует возможность автоматического заполнения настройки переноса констант. Для выполнения автоматического заполнения следует нажать кнопку «Заполнить». Автоматическое заполнение будет выполнено на основании соответствия наименований констант в базе данных 1С:Бухгалтерии 6.0 идентификаторам констант конфигурации 1С:Предприятия.

Настройка переноса субконто

Далее следует перейти к закладке «Перенос субконто».

На этой закладке настраиваются правила конвертации субконто 1С:Бухгалтерии 6.0 при переносе данных в информационную базу 1С:Предприятия. На закладке выводится список видов субконто 1С:Бухгалтерии 6.0. Каждая строка будет являться настройкой переноса субконто 1С:Бухгалтерии 6.0 в информационную базу 1С:Предприятия.

Конвертация субконто 1С:Бухгалтерии 6.0 в конфигурацию 1С:Предприятия может потребовать для одного вида субконто указать несколько настроек конвертации. Для этого случая предусмотрена возможность добавления новых условий преобразования.

Чтобы добавить настройку, требуется установить курсор на субконто нужного вида и нажать кнопку «Добавить Субк.». Для удаления созданных условий переноса следует установить курсор на выбранную строку и нажать кнопку «Удалить». Последняя строка по некоторому виду субконто из списка не удаляется, но условия переноса в ней очищаются.

В нижней части окна диалога выводится краткая информация о том условии преобразования субконто, на котором установлен курсор.

Для настройки правил переноса вида субконто нужно установить курсор на строку с этим видом и нажать кнопку «Изменить». При этом выводится диалог для настройки условий конвертации выбранного вида субконто.

Существует возможность автоматического заполнения настройки переноса субконто. Для выполнения автоматического заполнения следует нажать кнопку «Заполнить». Автоматическое заполнение будет выполнено на основании соответствия наименований видов субконто в базе данных 1С:Бухгалтерии 6.0 идентификаторам справочников, перечислений и видов субконто конфигурации 1С:Предприятия.

Выбор варианта конвертации субконто

В системе 1С:Предприятия виды субконто могут иметь различные типы значений, но, как правило, чаще всего используются два типа — «Справочник» и «Перечисление». Конвертор предоставляет пользователю возможность выбрать, в субконто какого типа — «Справочник» или «Перечисление» — он будет преобразовывать субконто 1С:Бухгалтерии 6.0. Для этого пользователь должен выбрать вариант конвертации в диалоге настройки условий преобразования вида субконто. Выбирая вариант конвертации, пользователь должен обратить внимание на то, какой тип имеет в конфигурации 1С:Предприятия субконто, являющееся аналогом вида субконто 1С:Бухгалтерии 6.0, которое пользователь хочет преобразовать.

Первый вариант «Сконвертировать данные в справочник 1С:Предприятия» используется в том случае, если вид субконто 1С:Прсдприятия, являющийся аналогом выбранного субконто 1С:Бухгалтерии 6.0, имеет тип «Справочник». Этот вариант следует выбирать также в тех случаях, когда субконто 1С:Бухгалтерии 6.0 не использовалось для ведения аналитического учета (например, применялось для заполнения документов), но его данные также нужно перенести в справочник. В результате список субконто 1С:Бухгалтерии 6.0 будет сконвертирован в выбранный справочник 1С:Прсдприятия. При конвертации данных бухгалтерского учета в формируемых проводках будут подставлены полученные при конвертации элементы справочника, полностью соответствующие использованным в 1С:Бухгалтерии 6.0 значениям субконто.

При выборе способа преобразования «Установить соответствие со значениями перечисления 1С:Предприятия» данные субконто 1С:Бухгалтерии 6.0 не переносятся, но устанавливается соответствие значений субконто 1С:Бухгалтерии 6.0 значениям перечисления 1С:Предприятия. Это необходимо для правильной конвертации остатков и проводок.

Перечисления являются специальным объектом конфигурации 1С:Прсдприятия. Значения перечисления определены в конфигурации и не могут быть изменены в информационной базе. Настройка соответствия субконто 1С:Бухгалтерии 6.0 значениям перечисления 1С:Предприятия используется в тех случаях, когда разрез аналитического учета по некоторому счету в плане счетов 1С:Предприятия задан видом субконто, имеющим тип «Перечисление». Для того чтобы остатки и проводки по этому счету могли быть перенесены в разрезе аналитики, необходимо установить соответствие значений субконто 1С:Бухгалтерии 6.0 значениям перечисления 1С:Предприятия.

После выбора варианта конвертации, в зависимости от выбранного варианта, происходит выбор вида справочника или перечисления конфигурации 1С:Прсдприятия. В списке выбора для каждого вида справочника и перечисления указываются идентификаторы видов субконто конфигурации 1С:Предприятия, в которых они использованы. В большинстве случаев эти идентификаторы совпадают с идентификаторами самих справочников и перечислений, но могут и отличаться.

Настройка переноса субконто в справочник

Рассмотрим параметры настройки конвертации субконто в справочник 1С:Предприятия. Все варианты настройки параметров, описанные далее в этом разделе, представляют собой, фактически, различные способы настройки фильтра для отбора конкретных значений субконто 1С:Бухгалтерии 6.0 в соответствии с принятыми правилами организации информации в 1С:Прсдприятии и способами конвертации параметров субконто.

На закладке «Вариант конвертации» существует возможность указать конвертору режим, при котором новый элемент справочник;. будет создаваться только в случае, если по данному коду субконто еще не создавался элемент справочника. Для выбора этого режима следует включить флажок «Не создавать новых элементов с совпадающим кодом».

Данная возможность позволяет соединить несколько значении субконто 1С:Бухгалтерии 6.0 в один элемент справочника 1С:Преднриятия.

Например, если в 1С:Бухгалтерии 6.0 существовало два вида субконто «Покупатели» и «Поставщики», и оба они конвертируются в справочник 1С:Преднриятия «Контрагенты», возможна ситуация, когда одна и та же организация присутствовала и в одном, и в другом виде субконто. Если при этом коды субконто таких организаций в обоих списках субконто совпадали, указание данного режима для конвертации обоих видов субконто позволит избежать появления в справочнике «Контрагенты» двух элементов для одной организации. При этом остатки будут правильно перенесены и по тем счетам 1С:Бухгалтерии 6.0, у которых аналитический учет велся по субконто «Покупатели», и по тем, у которых аналитический учет велся по субконто «Поставщики».

Аналогичную возможность предоставляет режим «Не создавать новых элементов с совпадающим наименованием». При его выборе соответственно идентичность субконто будет определяться по совпадению наименования.

Заметим, что, если коды субконто в 1С:Бухгалтерии 6.0 менять нельзя, то наименования субконто перед конвертацией можно изменить таким образом, чтобы поставщик и покупатель, являющиеся на самом деле одной организацией, имели бы одинаковое наименование.

Здесь же, на закладке «Вариант конвертации», находится флажок «При переносе подчинять создаваемые элементы справочника группе...». Указание этого параметра позволяет поместить все переносимые в данной настройке значения субконто 1С:Бухгалтерии 6.0 в определенную группу справочника 1С:Предприятия, код которой указывается тут же. Если данная группа не существует, то она будет создана.

Например, если в 1С:Бухгалтерии 6.0 существовало два вида субконто «Товары» и «Продукция», и оба они должны быть сконвертированы в справочник 1С:Прсдприятия «Номенклатура», то для удобства работы с этим справочником можно поместить все товары в одну группу (например, 1), назвав ее в дальнейшем «Товары», а продукцию — в другую (например, 2), назвав ее в дальнейшем «Продукция собственного производства».

На закладке «Отбор значений для переноса» указываются различные параметры, которые ограничивают перенос элементов списка субконто 1С:Бухгалтерии 6.0 в указанный справочник 1С:Предприятия.

Использование ограничений в основном применяется для приведения структуры субконто 1С:Бухгалтерии 6.0 в соответствие с составом справочников конфигурации 1С:Предприятия.

Прежде всего, существует возможность ограничить перенос субконто уровнями. В 1С:Бухгалтерии 6.0 многоуровневость субконто являлась, практически, единственным способом реализации сложного аналитического учета. Однако, в бухгалтерском учете 1С:Прсднриятия возможности настройки аналитического учета более разнообразны. Поэтому часто структуру многоуровневых субконто 1С:Бухгалтсрии 6.0 при конвертации приходится преобразовывать.

Например, если в 1С:Бухгалтерии 6.0 учет материалов велся по виду субконто «Материалы», но на первом уровне указывался склад, то при конвертации будет необходимо отделить первый уровень и настройке конвертации субконто «Материалы» в справочник «Места хранения», а второй и третий уровни отделить при настройке конвертации субконто «Материалы» в справочник «Материалы». То есть для субконто «Материалы» нужно будет задать две настройки конвертации: одну — в справочник «Места хранения», а другую — в справочник «Материалы», указав в каждом случае уровни, которые будут переноситься в конкретный справочник.

Следующие два параметра — «Переносить только субконто, имеющие подчиненные субконто» и «Переносить только субконто, не имеющие подчиненных субконто» — позволяют ограничить перепое субконто в случае, если структура многоуровневого субконто 1С:Бухгалтерии 6.0 не имела четкого деления на уровни.

Например, предположим, что учет по виду субконто «Покупатели» велся в разрезе договоров, то есть для каждого покупателя вводились подчиненные ему субконто — договора, а деление на группы не имело четкого деления по уровням. Следовательно, часть покупателей расположилась на нервом уровне, а часть — объединилась в группы. В 1С:Предприятии контрагенты и договора обычно помещаются в различные справочники, причем, справочник «Договора» обычно подчинен справочнику «Контрагенты». В этом случае для настройки конвертации субконто «Покупатели» в справочник «Контрагенты» нужно будет установить режим переноса только тех субконто, которые имеют подчиненные элементы, а для настройки конвертации субконто «Контрагенты» в справочник «Договора» необходимо будет указать режим переноса субконто, не имеющих подчиненных элементов.

Следующие два параметра позволяют ограничить перенос субконто наличием остатков по бухгалтерским счетам или проводок, начиная с даты свертки остатков.

Флажок «Переносить только субконто, по которым имеются остатки или проводки» устанавливает режим, при котором будут переноситься только те субконто, по которым хотя бы на одном счете, имеющем аналитический учет по этому виду субконто, есть остаток на указанную дату свертки остатков или существуют проводки, начиная с даты свертки остатков.

Флажок «Переносить только субконто по которым имеются остатки (проводки) на конкретных счетах» позволяет установить аналогичное ограничение, но для переноса будет требоваться наличие остатка или проводок по указанным в этом параметре счетам. Коды счетов должны быть указаны через запятую.

Первый из этих режимов позволяет просто не переносить давно не используемые субконто, остатки по которым равны нулю. Второй режим позволяет выполнить разделение одного вида субконто 1С:Бухгалтсрии 6.0 на два справочника 1С:Предприятия.

Например, в 1С:Бухгалтерии 6.0 был вид субконто «ТМЦ», в котором вводились как основные средства, так и материалы, и МБП. При конвертации в информационную базу 1С:Предприятия они должны быть сконвертированы в три отдельных справочника: «Основные средства», «Материалы» и «МБП». Для этого должны быть указаны три настройки конвертации. Воспользовавшись данным параметром, можно добиться того, что в каждый справочник 1С:Предприятия попадут только те субконто 1С:Бухгалтерии 6.0, которые имели остатки на счетах, отвечающих за учет каждого вида ТМЦ. К примеру, для конвертации субконто «ТМЦ» в справочник «Основные средства» необходимо будет указать счета «01», «02», «03».

Флажок «Переносить только субконто, подчиненные субконто с кодом...» также позволяет ограничить переносимые в данной настройке субконто, выделив некоторую группу. Например, если в приведенном выше примере в субконто «ТМЦ», на первом уровне были введены группы «Основные средства», «Материалы» и «МБП» и все субконто подчинялись соответствующей их типу группе, то для выделения необходимых элементов можно было воспользоваться данным параметром, указав для каждой настройки код субконто (группы), которому подчинены субконто, переносимые в выбранный справочник.

Параметр «Ограничить перенос значением параметра...» позволяет выполнить ограничение переносимых в данной настройке субконто значением выбранного параметра субконто в базе данных 1С:Бухгалтерии 6.0. Данный режим может быть использован в случае, если ни один из других режимов не позволяет выделить требуемое подмножество субконто.

Этот режим позволяет использовать один из существующих параметров субконто в качестве фильтра для отбора необходимых элементов. Заметим, что изменение структуры подчиненности субконто в 1С:Бухгалтерии 6.0 невозможно. Поэтому, если существующая структура не позволяет выделить нужные значения субконто ни по уровням, ни по наличию подчиненных субконто, ни по наличию остатков, существует возможность перед конвертацией создать новый параметр, заполнить его необходимыми значениями для каждого субконто и использовать его для их отбора. Для использования данного режима следует указать код параметра и его значение.

В приведенном выше примере, чтобы выделить основные средства, можно создать в 1С:Бухгалтерии 6.0 параметр субконто «ТМЦ», проставить всем основным средствам в этом параметре значение «ОС» и в настройке конвертации задать код параметра и значение «ОС» в поле «имеет значение».

Аналогично нужно будет поступить и с другими типами ТМЦ.

Следующая закладка, «Перенос параметров субконто», предназначена для настройки конвертации значений параметров субконто 1С:Бухгалтерии 6.0 в реквизиты справочника 1С:Предприятия.

На закладке выводится список параметров того вида субконто, для которого настраивается конвертация. Справа от каждого параметра указывается наименование реквизита справочника 1С:Прсдприятия. Для выбора реквизита следует установить курсор на нужную строку в колонке «Реквизит справочника» и дважды щелкнуть мышью в выделенном поле. При этом появится список реквизитов справочника, из которого следует выбрать наименование реквизита, в который будет переноситься значение параметра субконто.

Заметим, что среди параметров субконто выводится также код субконто, его наименование и цена. Среди реквизитов справочника выводится код и наименование справочника. Заполнение кода справочника из кода субконто и наименования справочника из наименования субконто устанавливаются автоматически. Следует иметь в виду, что все параметры субконто в 1С:Бухгалтерии 6.0 имели, фактически, строковый тип. При переносе значений параметров в реквизиты справочника будет выполняться преобразование в тот тип, который имеет реквизит справочника.

Преобразование в числовой тип и тип «Дата» выполняется достаточно просто, аналогично тому, как в макроязыке 1С:Бухгалтерии 6.0 эти параметры заносились в реквизиты документов. При преобразовании в тип «Справочник», «Перечисление» или «Документ» система будет пытаться интерпретировать строковое значение параметра соответственно, как код справочника, идентификатор значения перечисления или как номер документа. Разумеется, для выполнения преобразования эти данные (на которые ссылается параметр) уже должны находиться в информационной базе. Если два параметра преобразуются к одному реквизиту строкового типа, то в него помещается строка, составленная из значений обоих параметров.

Тип реквизита 1С:Предприятия указывается в списке реквизитов в процессе выбора.

Кроме переноса значений параметров из базы данных 1С:Бухгалтерии 6.0, существует также возможность заполнения реквизитов справочника 1С:Предприятия фиксированными значениями. Эта возможность полезна в том случае, если для всех переносимых субконто (в рамках данного правила переноса) значение некоторого реквизита справочника нужно заполнить одним значением и его невозможно получить из базы данных 1С:Бухгалтерии 6.0. Для этого в диалоге следует нажать кнопку «Добавить значение». В появившемся диалоге следует ввести строку, которая будет использоваться для заполнения реквизита справочника. После этого следует так же, как и при настройке переноса параметра, выбрать в правой колонке заполняемый реквизит. Заполнение значения реквизита в зависимости от его типа будет работать аналогично заполнению из параметра субконто 1С:Бухгалтерии 6.0. В списке параметров введенное значение будет выводиться в кавычках. Для удаления введенного значения следует установить курсор на нужную строку и нажать кнопку «Удалить значение».

Существует возможность автоматического заполнения настройки переноса параметров субконто. Для выполнения автоматического заполнения следует нажать кнопку «Заполнить». Автоматическое заполнение будет выполнено на основании соответствия наименований параметров в базе данных 1С:Бухгалтерии 6.0 идентификаторам реквизитов справочника конфигурации 1С:Преднриятия.

Настройка соответствия субконто значениям перечисления

Теперь рассмотрим настройку соответствия субконто 1С:Бухгалтерии 6.0 значениям перечисления 1С:Предприятия. Эта настройка выполняется на закладке «Значения перечисления».

В ней выводится таблица, в левой колонке которой находятся существующие значения субконто 1С:Бухгалтерии 6.0, а в правой следует указать значения перечисления 1С:Предприятия, которые соответствуют этим субконто. Для выбора значения перечисления следует установить курсор на нужную строчку в колонке «Значение перечисления» и дважды щелкнуть мышью в выделенное поле (или нажать клавишу Enter). При этом появится список значений перечисления, из которого следует выбрать то значение, которое соответствует субконто 1С:Бухгалтерии 6.0, указанному в этой строке.

После выполнения этих действий при формировании проводок в информационной базе 1С:Предприятия в сформированных проводках в соответствующие значения субконто будут подставлены значения перечисления, полученные по данной таблице соответствия из субконто счета 1С:Бухгалтерии 6.0.

Настройка переноса субсчетов в субконто

При настройке переноса субконто существует специальная возможность настроить конвертацию субсчетов выбранных счетов 1С:Бухгалтерии в справочник 1С:Предприятия. Данная возможность используется в тех случаях, когда в базе данных 1С:Бухгалтерии 6.0 субсчета использовались для получения того разреза учета по счету, для которого в конфигурации 1С:Прсдприятия используется субконто.

Для создания такого переноса нужно в закладке «Перенос субконто» нажать кнопку «Добавить счет». При этом появляется список счетов базы данных 1С:Бухгалтерии 6.0. Из него следует выбрать счет, субсчета которого будут конвертироваться в справочник 1С:Предприятия. Для выполнения настройки правил переноса субсчетов нужно установить курсор на строку с выбранным счетом и нажать кнопку «Изменить». По этой команде программа переходит в режим настройки правил конвертации субсчетов указанного счета.

На закладке «Вариант конвертации» в поле «Выберите справочник» следует выбрать вид справочника 1С:Предприятия, в который будут конвертироваться субсчета выбранного счета.

Заметим, что при необходимости перенести остатки и проводки из конкретного субсчета 1С:Бухгалтерии 6.0 в конкретное субконто 1С:Предприятия, имеющее тип «Перечисление», такое соответствие можно будет установить при настройке переноса счетов. В данном режиме настраивается перенос субсчетов только в справочник.

На этой закладке также доступна установка режимов «Не создавать новых элементов с совпадающим кодом» и «Не создавать новых элементов с совпадающим наименованием». Как и в настройке переноса субконто в справочник, эти параметры настройки переноса позволяют установить режим, при котором элементы справочника не будут создаваться, если код (наименование) конвертируемого субсчета совпадает с кодом (наименованием) другого элемента, ранее помещенного в процессе конвертации в этот справочник. Причем, при формировании проводок ранее созданный элемент будет подставляться в конвертируемые проводки по данному счету.

Эта возможность позволяет соединить при конвертации субсчета нескольких счетов в единый справочник, без повторений. Например, на двух счетах (10 и 41) учет в разрезе складов велся на субсчетах. При этом код (номер) субсчета фактически являлся номером склада.

При конвертации в 1С:Предприятие в проводках по этим счетам вместо субсчетов должны быть проставлены значения субконто «МестаХрансния» имеющего тип «Снравочник.МестаХранения». Для этого нужно настроить перенос субсчетов обоих счетов в этот справочник. Если установить параметр переноса «Не создавать новых элементов с совпадающим кодом», то в справочник склады будут помещены один раз, а формируемые проводки будут ссылаться на элементы справочников, соответствующие субсчетам конвертируемых остатков и проводок 1С:Бухгалтсрии 6.0.

Параметр «При переносе подчинять создаваемые элементы справочника группе...» позволяет при записи в справочник элементов, конвертируемых из субсчетов, помещать их в группу справочника с указанным кодом.

На закладке «Отбор значений для переноса» существует возможность установить параметр «Переносить только субсчета, по которым имеются остатки». Он позволяет ограничить запись в справочники только тех элементов, соответствующих субсчетам 1С:Бухгалтерии 6.0, по которым имеются остатки на дату свертки или проводки, начиная с даты свертки остатков.

Настройка создания значений субконто

При настройке переноса субконто существует специальная возможность установить режим автоматического создания новых значений субконто, имеющих тип «Справочник», для тех случаев, когда эти значения не могут быть перенесены из базы данных 1С:Бухгалтерии 6.0.

Для вызова этого режима следует нажать кнопку «Создавать значения». При этом появляется список справочников, которые в конфигурации 1С:Предприятия используются для ведения аналитического учета. Для установки режима автоматического создания значений для конкретных справочников следует установить признак в соответствующих строках списка. Признак устанавливается щелчком мыши или клавишей Пробел.

Если признак установлен, то при переносе данных по счетам, если не удалось заполнить в формируемой проводке значение субконто на основании правил переноса субконто, то создастся новый элемент справочника, который используется во всех формируемых проводках для этого справочника.

Наиболее эффективен этот режим для подчиненных справочников. Например, в конфигурации 1С:Предприятия учет по некоторому счету ведется в разрезе субконто, имеющего тип «Справочник.Организации», и в разрезе субконто, имеющего тип «Справочник.Договора», причем, справочник «Договора» подчинен справочнику «Организации». В базе данных 1С:Бухгалтерии 6.0 аналитический учет в разрезе договоров не ведется. То есть, при конвертации заполнить значения субконто по договорам на основании данных 1С:Бухгалтерии 6.0 невозможно.

Если установить признак «Создавать значение» для справочника «Договора», то при выполнении конвертации для каждой организации, по которой в информационной базе 1С:Предприятия формируются проводки, будет создан элемент справочника «Договора» и использован во всех формируемых проводках по данной организации. То есть, учет в разрезе договоров будет начат с созданного автоматически договора. Если этот режим не использовать, то в формируемых проводках значение субконто окажется пустым, что уменьшит наглядность при формировании отчетов и дальнейшем ведении учета.

Настройка переноса остатков и проводок по счетам

На закладке «Перенос счетов» настраиваются правила конвертации данных бухгалтерского учета: остатков до даты свертки и проводок, начиная с даты свертки. В ней размещается список настроек конвертации данных бухгалтерского учета по счетам.

В левой колонке выводится список счетов 1С:Бухгалтерии 6.0. В него включаются только те счета, по которым имеются остатки на дату свертки остатков, или проводки, начиная с даты свертки. Для того чтобы в списке выводились все счета, следует переключить расположенный в нижней части диалога флажок «Показывать только счета 1С:Бух. 6.0 по которым имеются остатки или проводки».

Также в нижней части диалога располагается дополнительная информация по текущей строке настройки (наименования счетов, виды субконто и т. д.).

Для счетов с субсчетами в списке выводятся только субсчета, так как настройка переноса данных учета будет выполняться по субсчетам. Строка со счетом, имеющим субсчета, будет выводиться в списке только в том случае, если в 1С:Бухгалтерии 6.0 существовали проводки по счету, но при этом субсчет не был указан. В этом случае в строке со счетом будет настраиваться правило переноса суммы остатка и проводок по счету без учета субсчетов. Если остаток по счету полностью состоит из сумм остатков по субсчетам, и проводок без указания субсчета не было, то строка со счетом выводиться не будет.

Существует возможность указывать различные правила переноса дебетовых и кредитовых остатков по счету. Для разворачивания правил по дебету/кредиту следует дважды щелкнуть мышью в строке выбранного счета в колонке «Сч. 6.0». При этом появляются две отдельных строки по данному счету (с буквами «Д» и «К»). В них можно выполнить настройку специфических правил переноса для дебетовых и кредитовых остатков.

Данная возможность позволяет, например, установить различные правила переноса для дебетовых и кредитовых остатков по субконто на некотором счету.

Заметим, что такая возможность не имеет смысла, если выполняется перенос не только остатков, но и проводок.

Для того чтобы вернуться к режиму единой настройки переноса для дебетовых и кредитовых остатков следует снова дважды щелкнуть мышью в колонке «Сч. 6.0» в строке счета.

При конвертации остатков и проводок по некоторому счету, ни отдельным субконто или по отдельным валютам, можно установить единые или различные параметры преобразования для всех субконто этого счета или для всех валют данного счета.

Рядом со счетом выводится колонка «Субк./Вал. 6.0». В ней для счетов, по которым ведется аналитический или валютный учет, выводится обозначение «Все». Это означает, что правило конвертации данных учета будет настраиваться единообразно для всех субконто и всех валют этого счета.

Установить различные параметры преобразования для отдельных значений субконто или отдельных валют можно, дважды щелкнув мышью в строке выбранного счета в колонке «Субк./Вал. 6.0». При этом появляется диалог с предложением: «Развернуть правило для счета...».

В этом диалоге для счетов, по которым ведется и валютный, и аналитический учет, следует выбрать вариант развертывания правил: «По субконто» или «По валютам». Если по счету ведется только валютный или только аналитический учет, будет доступен только один вариант развертывания субконто. Для подтверждения развертывания следует нажать кнопку «Развернуть», для отказа — «Отмена».

При выполнении развертывания настройка переноса данных учета будет выполняться отдельно по каждому значению субконто счета 1С:Бухгалтерии 6.0 или по каждой валюте (в зависимости от выбранного варианта).

Для того чтобы вернуться к режиму единой настройки переноса для всех значений субконто и валют, следует снова дважды щелкнуть мышью по этой колонке в строке счета. Разумеется, при этом все настройки для отдельных субконто (валют) будут потеряны.

Отдельные настройки для переноса остатков и проводок по различным валютам могут использоваться, например, в тех случаях, когда в плане счетов 1С:Предприятия для учета валютных и рублевых средств по счету используются различные субсчета. Выполнив развертывание правил «По валютам» можно настроить перенос данных по валюте «Рубли» на один субсчет, а по остальным валютам — на другой.

В колонке «Сч. 1С:Предпр.» следует выбрать один из счетов конфигурации 1С:Прсдприятия, а именно тот счет, на который будут переноситься остатки и проводки по счету 1С:Бухгалтсрии 6.0, указанному в этой строке. Для выбора конкретного счета следует дважды щелкнуть мышью в этой колонке. При выборе доступны счета основного плана счетов.

Следует отметить, что для выбора предлагаются только счета, не имеющие субсчетов, так как в 1С:Предприятии проводки могут записываться только по счетам, не имеющим субсчетов.

Если на этапе настройки переноса субконто заданы правила переноса субсчетов некоторого счета 1С:Бухгалтерии 6.0 в справочник 1С:Предприятия, то строки по субсчетам этого счета выводиться не будут, а будет выведена строка для настройки переноса данных по счету.

Для тех счетов 1С:Бухгалтерии 6.0, для которых не указан счет 1С:Предприятия, перенос остатков и проводок выполняться не будет.

Существует возможность автоматического заполнения настройки переноса данных по счетам. Для выполнения автоматического заполнения следует нажать кнопку «Заполнить». Автоматическое заполнение будет выполнено на основании соответствия кодов счетов в базе данных 1С:Бухгалтерии 6.0 и в конфигурации 1С:Предприятия.

Колонки «Субконто...» предназначены для настройки переноса остатков и проводок по субконто. Количество колонок определяется максимальным количеством субконто для счета, определенным в конфигурации 1С:Прсдприятия. Настройка в этих колонках будет выполняться только в том случае, если аналитический учет ведется и для счета 1С:Бухгалтерии 6.0, и для счета 1С:Предприятия, указанных в этой строке.

После того, как счет 1С:Прсдприятия выбран, в данной строке становятся доступны для изменения колонки, соответствующие установленным в плане счетов видам субконто для выбранного счета 1С:Предприятия. Например, если для счета в плане счетов указано два вида субконто, то настройку переноса субконто можно будет выполнять в колонках «Субконто1» и «Субконто2».

Для настройки переноса остатков и проводок по субконто следует дважды щелкнуть мышью в соответствующей колонке. В появившемся списке можно выбрать один из вариантов переноса данных по этому субконто.

Вариант «Авто» устанавливается системой автоматически, если при настройке переноса субконто (закладка «Перенос субконто») было установлено правило переноса вида субконто счета 1С:Бухгалтерии 6.0, указанного в данной строке, в тот вид субконто счета 1С:Прсдприятия, для которого сейчас выполняется настройка.

Например, выполняется настройка переноса данных по счету «63» 1С:Бухгалтерии 6.0 на счет «63» 1С:Предприятия. В 1С:Бухгалтерии 6.0 аналитический учет по счету «63» велся по виду субконто «Организации». В плане счетов конфигурации 1С:Предприятия для счета «63» в качестве первого субконто указан вид субконто «Контрагенты». В этом случае, если при настройке переноса субконто определен перенос субконто «Организации» 1С:Бухгалтерии 6.0 в справочник «Контрагенты» 1С:Предприятия, то в колонке «Субконто1» настройки переноса счетов будет установлено значение «Авто». Этот режим позволит автоматически подставить в формируемые проводки элементы справочника «Контрагенты» 1С:Предприятия, перенесенные из соответствующих значений субконто «Организации» 1С:Бухгалтерии 6.0.

Режим «Авто» будет доступен и в том случае, если настроено соответствие субконто 1С:Бухгалтерии 6.0 значениям перечисления 1С:Предприятия, если вид субконто имеет тип «Перечисление».

Вариант «Пусто» устанавливает режим, при котором в формируемые проводки по этому счету будут записываться пустые значения данного субконто.

Например, если для счета «63» в 1 С: Предприятии в качестве второго субконто используются «Основания» (значения справочника «Договора»), то они не могут быть заполнены при конвертации данных учета из 1С:Бухгалтерии 6.0, если в ней не велся учет по счету «63» в разрезе договоров. В этом случае в колонке «Субконто2» следует выбрать вариант «Пусто». В формируемых проводках значение этого субконто будет пустым. Его можно будет не использовать при анализе итогов, или заполнить после конвертации в проводках входящих остатков, введя значения в справочник и отредактировав проводки.

Вариант «Выбрать конкретный элемент» используется для того, чтобы указать непосредственно один из уже существующих в информационной базе элементов справочника. При выборе этого варианта предлагается выбрать конкретный элемент. Если субконто имеет тип «Перечисление», то непосредственно при выборе варианта переноса в списке выводятся все значения перечисления, из которых можно выбрать нужное значение. Этот вариант используется, если все остатки и проводки по счету (настраиваемые в данной строке) должны быть перенесены с одним конкретным значением субконто.

Заметим, что в 1С:Бухгалтерии 6.0 существовала возможность вести аналитический учет по счету в целом и не вести аналитический учет по субсчетам. В бухгалтерском учете 1С:Предприятия учет по субсчету обязательно должен вестись с той же аналитикой, что и на счете, которому подчинен субсчет. Если входящие остатки для конвертации были получены не анализом проводок 1С:Бухгалтерии 6.0, а анализом рассчитанных остатков, то перенос остатков в разрезе субконто не может быть выполнен в разрезе субсчетов. То есть деление на субсчета, если это необходимо, можно будет выполнить уже в информационной базе 1С:Предприятия вводом дополнительных проводок. Если входящие остатки получаются путем анализа проводок базы данных 1С:Бухгалтерии 6.0, то можно до начала анализа остатков и конвертации в 1С:Бухгалтерии 6.0 включить в плане счетов ведение аналитического учета по субсчетам.

На закладке «Перенос счетов» выполняется также настройка переноса реквизитов проводки. Эти настройки используются в том случае, если предполагается выполнять не только перенос остатков на дату свертки, по и перенос проводок, начиная с даты свертки остатков. Для вызова этого режима следует нажать кнопку «Рекв. пров».

В появившемся диалоге предлагается выбрать реквизиты проводки конфигурации 1С:Предприятия, соответствующие содержанию проводки и номеру журнала 1С:Бухгалтерии 6.0. По умолчанию конвертор будет использовать реквизиты «СодержаниеПроводки» и «НомерЖурнала», если таковые имеются в конфигурации.

При переносе проводок данные из содержания проводки и номера журнала будут помещаться в выбранные реквизиты проводки. Если выбрать вариант «Не переносить», то информация из содержания проводки или номера журнала переноситься не будет.

Выполнение преобразования

На этой закладке «Выполнение конвертации» выполняется процесс конвертации, в соответствии с правилами, установленными ранее на других закладках.

На закладке размещены флажки, позволяющие установить данные, которые будут конвертироваться (константы, справочник валют, субконто, остатки на дату свертки, проводки, начиная с даты свертки). Как правило, устанавливается конвертация всех данных.

Заметим, что конвертация справочника валют выполняется без настройки, так как в 1С:Бухгалтерии 6.0 справочник валют являлся системным и не настраивался, а в 1С:Преднриятии для бухгалтерского учета справочник валют также должен быть определен в конфигурации.

Для выполнения конвертации следует нажать кнопку «Выполнить перенос». Далее система выполняет процесс конвертации, отображая ход процесса в индикаторах на данной закладке.

Заметим, что при выполнении конвертации проводок, начиная с даты свертки, некоторые проводки могут быть не сконвертированы из-за неполной или неверной настройки правил переноса счетов, о чем будет выдано соответствующее сообщение.

При нажатии кнопки «Сохранить» введенные настройки переноса запоминаются для возможности выполнения повторной конвертации. После выполнения конвертации диалог настройки можно закрыть.

Действия после выполнения конвертирования

После выполнения конвертации следует запустить систему 1С:Предприятие в режиме запуска «1С:Предприятие» и проанализировать содержимое констант и справочников, в которые переносилась информация, а также сформированные конвертором операции с проводками.

Для анализа сформированных входящих остатков и проводок рекомендуется использовать стандартные отчеты «Оборотно-сальдовая ведомость» и «Оборотно-сальдовая ведомость по счету». Так как все проводки входящих остатков записываются в корреспонденции со счетом «000», то о правильности переноса остатков, как и при ручном вводе остатков, можно судить по сумме остатка на счету «000»: при правильном переносе остатков должен быть равен нулю.

При обнаружении ошибок в конвертации из-за неправильной настройки параметров следует закрыть 1С:Предприятие и снова воспользоваться конвертором, изменив параметры настройки. В ряде случаев, после формирования конвертором проводок входящих остатков будет необходимо вручную внести в эти проводки изменения или ввести дополнительные корректирующие проводки для более точного ввода входящих остатков в соответствии со структурой учета конфигурации 1С:Прсдприятия.

Например, может потребоваться проставить в проводках входящих остатков незаполненные значения субконто или ввести проводки, разделяющие суммы остатков на несколько сумм по отдельным субсчетам или значениям субконто. Кроме того, разумеется, необходимо ввести вручную те остатки, для которых не были определены правила переноса из 1С:Бухгалтерии 6.0.

Методика конвертирования данных программы 1С:Зарплата для DOS

Конвертор данных системы 1С:Предприятие позволит перенести данные из справочников программы 1С:Зарплата, Реализация в программе 1С:Зарплата принципа хранения «свернутых» архивных данных приводит к тому, что при помощи стандартного конвертора данных невозможен адекватный перенос информации из архивов этой программы в информационную базу 1С:Прсдприятия.

С другой стороны, используя возможности встроенного языка системы 1С:Предприятие, предназначенные для работы с внешними xBase-таблицами, можно создать процедуру переноса архивных данных 1С:Зарплаты в информационную базу 1С:Предприятия.

Создание такой процедуры требует определенной квалификации от администратора системы 1С:Предприятие, знания типовой конфигурации «Расчет зарплаты и Кадровый учет» и, разумеется, хорошего знания структуры данных конкретной настройки программы 1С:Зарплата, данные которой необходимо перенести.

Ниже, в параграфе «Рекомендации» приведен ряд общих замечаний, которые призваны помочь создать такого рода процедуру переноса не только справочных данных, но и архивов прежней системы расчета заработной платы.

Внимание. Стандартный конвертор данных программы 1С:Зарплата позволит Вам перенести информацию всех справочников программы, но не предназначен для переноса архивных данных расчета.

Ниже изложена информация, предполагающая хорошее знание программы 1С:Зарплата. Большинство терминов этой программы приводятся без дополнительных пояснений.

Конвертор «умеет» конвертировать данные программы 1С:Зарплата версий 3.0, 3.1 и 4.0. При переносе содержимого справочников программы 1С:Зарплата производятся следующие действия.

· Конвертирование, т. е. перенос данных в информационную базу, производится полуавтоматически: конвертор пытается, основываясь на названиях справочников 1С:Зарплаты и идентификаторах уже существующих справочников текущей информационной базы, установить соответствие между ними, и предлагает пользователю подтвердить или отвергнуть найденные соответствия.

· Основной справочник программы 1С:Зарплата (как правило, это справочник «Сотрудники») конвертируется в двухуровневый справочник системы 1С:Предприятие. При этом группы элементов справочника (папки) па первом уровне соответствуют ведомостям программы 1С:Зарплата, а собственно элементы справочника соответствуют сотрудникам.

· Локальные справочники программы 1С:Зарплата, которые связаны с основным справочником по его коду, конвертируются в подчиненные справочники системы 1С:Предприятие. Например, справочник «Дети сотрудников» программы 1С:Зарплата, который является локальным и имеет ключевое выражение типа «Сотрудники:ТабНомер», будет конвертирован в справочник, подчиненный справочнику «Сотрудники» в рамках системы 1С:Предприятие.

· Общие справочники программы 1С:Зарплата конвертируются в обычные, одноуровневые справочники системы 1С:Предприятие.

· В процессе конвертирования конвертор разбирает взаимосвязи справочников программы 1С:Зарплата и на основании набора ключевых выражений каждого справочника устанавливает тип данных связанных с ним граф других справочников. Это приводит к тому, что реквизиты вновь создаваемых справочников могут иметь типы данных, отличные от базовых («число», «строка» и «дата»). Например, если в рамках программы 1С:Зарплата существовал справочник «Банки» связанный с графами «Банк» справочника перечислений, алиментов и пр. (т.н. «связанные макроимена»), то при конвертировании эти графы получат тип «Справочник» конкретного типа «Банки».

Выбор настройки. Процесс конвертирования начинается с выбора конвертируемой настройки программы 1С:Зарплата. При этом конвертор предлагает выбрать каталог с так называемой типовой настройкой программы 1С:Зарплата. Этот каталог распознается конвертором по наличию файла-описателя Config.tn, который содержит описание типовой настройки, и, как правило, находится в подкаталогах с расширением имени 1SZ каталога 1SZ.40, 1SZ.31 или 1SZ.30 (в зависимости от версии программы 1С:Зарплата для DOS, например, ...\1SZ.40\RFBASIC.1SZ).

После выбора настройки конвертор пытается проанализировать содержимое настройки и определить версию программы 1С:Зарплата.

В случае, если чтение и разбор файла-описателя прошли удачно, конвертор считывает данные о типовой настройке программы 1С:Зарпл\та и выдает основную панель.

Основная панель конвертора содержит список обнаруженных справочников программы 1С:Зарплата с первоначальной настройкой параметров их конвертирования.

В списке справочников панели конвертора выводятся значки [image] для тех справочников, к


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 31

Глава 31.
Отладчик

  • Использование Отладчика
  • Запуск Отладчика
  • Список модулей
  • Окно модуля
  • Точка останова
  • Пошаговое выполнение
  • Табло
  • Диалог «Выражение»
  • Стек вызовов
  • Замеры производительности
  • Настройка интерфейса

Отладчик — вспомогательный инструмент, облегчающий разработку программных модулей системы 1С:Предприятие. Отладчик предоставляет следующие возможности:

· пошаговое выполнение модуля;

· расстановка точек останова;

· прерывание и продолжение выполнения модуля;

· возможность отладки нескольких модулей одновременно;

· вычисление выражений для анализа состояния переменных;

· просмотр стека вызовов процедур и функций;

· замеры производительности.

Использование Отладчика

Ниже приведен порядок использования 1С:Отладчика. Отладчик является внешним инструментом, поэтому для его работы необходимо, чтобы одновременно с ним была запущена система 1С:Предприятис. Последовательность запуска программ не имеет значения (кроме случая использования Отладчика для замера производительности; для этого случая порядок действий описан ниже в соответствующем разделе).

1. Запустите Отладчик и систему 1С:Предприятие. Это можно сделать стандартным способом запуска программ или воспользоваться соответствующими пунктами меню «Сервис» главного меню Конфигуратора. Кроме того, Отладчик может быть запущен при редактировании текста модуля с помощью пункта «Открыть в отладчике» меню «Действия» главного меню Конфигуратора.

2. Перейдите в Отладчик и откройте в списке программных модулей нужный модуль.

3. Расставьте в интересующих пас строках модуля точки останова.

4. Перейдите в систему 1С:Предприятие.

5. Выполните действия, которые вызовут исполнение отлаживаемого модуля (например, проведите документ или сформируйте отчет).

6. После того, как сработала точка останова, управление автоматически перейдет к Отладчику.

7. Проведите пошаговое выполнение нужного вам фрагмента модуля.

Внимание. В процессе пошагового исполнения модуля не рекомендуется закрывать ни одну из двух взаимодействующих программ.

С помощью табло и диалога «Выражение» вы можете получить значения интересующих вас выражений. Стек вызовов позволяет проследить последовательность вызова процедур и функций.

В случае, если вы не хотите продолжать пошаговое выполнение модуля дальше, с помощью команды «Продолжить» меню «Отладка» главного меню Отладчика разрешите системе 1С:Предприятие свободное выполнение модуля (до следующей точки останова). Система 1С:Предприятис активизируется автоматически.

В случае, если вы хотите прервать процесс отладки в целом, снимите все точки останова со всех модулей, либо просто закройте Отладчик. Если вы хотите прервать отладку только данного модуля, воспользуйтесь командой «Прекратить» из меню «Отладка» главного меню Отладчика.

Ниже более подробно описаны функции Отладчика.

Запуск Отладчика

Для запуска Отладчика выберите пункт «Отладчик» в меню Пуск — Программы — 1С:Предприятие.

При работе в Конфигураторе Отладчик можно вызвать, выбрав пункт «Отладчик» в меню «Сервис» главного меню Конфигуратора. Результат этого действия будет аналогичен запуску Отладчика обычным для MS Windows способом.

Внимание. Нельзя запустить несколько копий Отладчика одновременно.

Если в процессе редактирования конкретного модуля в Конфигураторе возникла необходимость отладки модуля, в меню «Действия» главного меню Конфигуратора выберите пункт «Открыть в отладчике». В этом случае будет запущен Отладчик (если он не был запущен ранее) и в Отладчике будет автоматически активизировано окно с текстом редактируемого модуля.

Список модулей

Основным окном Отладчика является список всех модулей, содержащихся в текущей конфигурации. Список модулей имеет древовидную структуру и в основной своей части повторяет структуру метаданных, которую можно видеть в окне Конфигуратора «Конфигурация — Метаданные». Дополнительно «дерево модулей» содержит ветвь «Внешние отчеты (обработки)» — для работы с модулями внешних отчетов, и глобальный модуль.

Для открытия окна с текстом конкретного модуля необходимо дважды щелкнуть мышью на наименовании нужного программного модуля.

Отладка внешних отчетов. Для отладки модуля внешнего отчета необходимо открыть файл внешнего отчета в Отладчике, воспользовавшись пунктом «Внешний Отчет» в меню «Файл» главного меню Отладчика. Открытый файл внешнего отчета автоматически будет добавлен в список модулей на ветвь «Внешние отчеты (обработки)».

В дальнейшем с модулем внешнего отчета в Отладчике можно работать так же, как и с любым другим модулем.

Добавление внешнего отчета в список модулей сохраняется только до выхода из Отладчика: при повторном входе в Отладчик потребуется вновь загрузить внешние отчеты, которые требуется отлаживать.

Окно модуля

Окно, содержащее текст конкретного модуля, представляет собой редактор текстов системы 1С:Предприятие, открытый в режиме «только для чтения».

В этом режиме доступны практически все возможности редактора, не связанные с изменением текста модуля — поиск, переход к нужной строке и др., которые необходимы для удобного поиска нужного фрагмента модуля. Текущее положение в тексте модуля отмечает курсор — мигающая вертикальная полоска.

Подробнее о работе с текстовым редактором можно узнать в главе «Редактор текстов».

Точка останова

Точкой останова называется маркер, устанавливаемый на конкретную строку программного модуля. При достижении точки останова исполнение программного модуля останавливается, и управление передается Отладчику.

Точку останова можно установить в любой строке модуля, в любой момент работы с Отладчиком. В случае, если строка, на которой устанавливается точка останова, не содержит операторов (например, пустая строка) или является продолжением оператора, начатого на предыдущих строках, в процессе работы положение точки останова будет автоматически скорректировано. Место нахождения точки останова отмечается специальным знаком в левой колонке окна модуля. Для включенных и отключенных точек останова используются разные знаки.

Для управления точками останова используются следующие команды меню «Отладка» главного меню Отладчика (см. таблицу).

Команда | Пояснение
Точка останова | Устанавливает либо стирает точку останова на той строке, на которой стоит курсор. Установить или снять точку останова можно также двойным щелчком мыши на желтой полосе в левой части окна модуля.
Точка останова с условием | Устанавливает точку останова и выдает запрос для ввода условия останова — логического выражения. Останов в указанной точке будет выполняться только если условие останова истинно.
Отключить точку останова | В случае, если на той строке, на которой стоит курсор, находится точка останова, включает либо отключает ее действие
Убрать все точки останова | Стирает все ранее расставленные точки останова во всех модулях
Отключить все точки останова | Запрещает действия всех ранее расставленных точек останова во всех модулях, не удаляя их

Кроме того, свободное выполнение модуля можно прервать, воспользовавшись командой «Остановить» из меню «Отладка» главного меню Отладчика. Данная команда позволяет начать пошаговое выполнение модуля, начиная с исполняемой в этот момент строки. Данная команда полезна при анализе «зацикливания» модуля.

Пошаговое выполнение

В режиме пошагового исполнения система 1С:Предприятие, выполнив очередную команду, ждет от Отладчика инструкций о продолжении работы.

На каждом шаге исполнения модуля существует 5 вариантов продолжения. Для выбора варианта продолжения используются пункты меню «Отладка» главного меню Отладчика (см. таблицу).

Команда | Пояснение
Шагнуть в | В случае, если следующим выполняемым оператором модуля является вызов функции или процедуры, начинается ее пошаговое выполнение, иначе Отладчик переходит к следующему оператору
Шагнуть через | Если следующим выполняемым оператором модуля является вызов функции или процедуры, она выполняется целиком (не пошагово) и Отладчик переходит к следующему оператору
Шагнуть из | Прервать пошаговое выполнение функции или процедуры и остановиться на нервом операторе, находящемся после ее вызова
Идти до курсора | Прервать пошаговое выполнение модуля, выполнять все операторы до той строки, на которой стоит курсор.
Продолжить | Прервать пошаговое выполнение модуля и продолжить свободное выполнение.

Команда «Прекратить» прекращает выполнение модуля и возвращает управление системе 1С:Предприятие.

Табло

Табло — специальное окно, в котором отображаются результаты вычисления введенных в него выражений на встроенном языке системы 1С:Предприятие.

Вызов табло на экран выполняется выбором команды «Табло» в меню «Отладка» главного меню Отладчика или нажатием кнопки [image] в панели инструментов. Окно «Табло» является «закрепляемым» окном (см. п. «Служебные окна», стр. Ошибка! Закладка не определена.).

Обычно в табло помещаются выражения, результаты вычисления которых необходимо контролировать в процессе пошагового выполнения модуля. Каждое выражение находится на отдельной строке.

Результат вычисления выдается справа от выражения, после знака «=».

Для ввода в табло нового выражения следует поместить курсор на первую свободную строку, набрать выражение и нажать клавишу Enter. Справа от выражения появится знак «=» и результат вычисления выражения.

Если выражение не может быть вычислено, вместо результата появится фраза «Ошибка в выражении!».

Если курсор не переходит на новую строку, следует поместить его в конец последней строки в табло, нажать клавишу Enter и после этого перевести курсор на новую строку.

Обновление табло выполняется автоматически после выполнения любого оператора модуля, после которого управление передается Отладчику.

Диалог «Выражение»

Кроме использования табло, во время пошагового выполнения имеется возможность рассчитать выражение с помощью диалога «Выражение». Этот диалог вызывается на экран выбором пункта «Вычислить выражение» в меню «Отладка» главного меню Отладчика.

В поле «Выражение» этого диалога необходимо ввести выражение на встроенном языке системы 1С:Предприятие. Выражение можно ввести «вручную» или, нажав кнопку [image], выбрать из списка ранее введенных выражений.

Если при вызове диалога «Выражение» курсор в окне модуля находится на каком-либо выражении, оно автоматически подставляется в поле «Выражение».

Для вычисления выражения следует нажать кнопку «Рассчитать». Результат вычисления выражения будет выдан в поле «Результат».

Кнопка «Включить в табло» помещает введенное выражение в табло. Это позволит в дальнейшем прослеживать изменение результата вычисления выражения в процессе отладки модуля.

Стек вызовов

Стек вызовов показывает последовательность вызовов процедур и функций, приведшую к строке модуля, которая отлаживается в данный момент. Двойным щелчком мыши на имени процедуры в стеке вызова можно перейти в соответствующую строку процедуры.

Замеры производительности

С помощью Отладчика можно оценить скорость работы всей конфигурации или ее части. Измеряется частота использовани


1С-Предприятие. Документация | Конфигурирование и администрирование. Глава 32

Глава 32.
Монитор пользователей

  • Запуск системы 1С:Предприятие в режиме «Монитор»
  • Активные пользователи и Журнал регистрации
  • Архивирование журнала регистрации

Монитор пользователей является дополнительным средством, предназначенным для администрирования системы 1С:Предприятис.

Монитор позволяет просматривать список активных пользователей, то есть тех пользователей, которые в данный момент работают с информационной базой. Кроме того, монитор позволяет анализировать журнал регистрации действий, выполняемых пользователями за любые периоды времени (историю работы пользователей).

Разумеется, наибольшую ценность этот механизм представляет при работе с сетевой (многопользовательской) версией 1С:Предприятия. Однако он может применяться и для однопользовательской версии. Например, если к информационной базе поочередно обращаются разные пользователи, то с помощью монитора можно определить, кто сейчас работает с информационной базой. Анализ истории работы также может быть весьма интересен при работе одного пользователя.

Монитор пользователей в 1С:Предприятии может применяться в двух режимах запуска. Основные функции монитора пользователей (просмотр списка активных пользователей и журнала регистрации) могут быть вызваны непосредственно из режима запуска «1С:Предприятие». Кроме того, существует специальный режим запуска «Монитор», который предоставляет доступ исключительно к функциям монитора пользователей. Кроме основных функций (которые доступны и в режиме запуска «1С:Предприятие»), в режиме запуска «Монитор» может выполняться архивирование истории журнала регистрации.

Режим запуска «Монитор» может быть применен в тех случаях, когда кто-либо работает с информационной базой в монопольном режиме и система не может быть запущена в режиме запуска «1С:Предприятие».

В этой главе изложены особенности работы с монитором пользователей из режима запуска «Монитор». Основные функции монитора описаны в руководстве пользователя по 1С:Предприятию.

Запуск системы 1С:Предприятие в режиме «Монитор»

Для запуска 1С:Предприятия в режиме «Монитор» выберите пункт «Монитор пользователей» в меню Пуск — Программы — 1С:Предприятие. Кроме того, режим запуска «Монитор» можно выбрать в диалоге запуска 1С:Предприятия.

При работе в Конфигураторе запустить 1С:Предприятие в режиме «Монитор» можно, выбрав пункт «Монитор пользователей» в меню «Сервис» главного меню Конфигуратора.

Главное меню в режиме запуска «Монитор» имеет стандартные колонки: «Файл», «Сервис», «Окна» и «Помощь». Функции, вызываемые в них, аналогичны стандартным функциям этих колонок в других режимах запуска 1С:Предприятия. Для вызова собственно функций Монитора пользователей предназначена колонка «Монитор».

Активные пользователи и Журнал регистрации

Для вызова основных функций Монитора пользователей в режиме запуска «Монитор» используются пункты «Активные пользователи» и «Журнал регистрации» колонки «Монитор» главного меню или соответствующие кнопки панели инструментов. Работа с этими функциями ведется также, как и в режиме запуска «1С:Предприятие».

Основным отличием от режима запуска «1С:Предприятие» является отсутствие возможностей открытия объекта из журнала регистрации и установки фильтра по существующему объекту путем выбора его из списка существующих объектов. В колонке «Объект» окна журнала не отображается актуальное на текущий момент представление объекта, а отображается внутренняя идентификация объекта, которая может быть использована только для установки фильтра по объекту в виде строки.

Архивирование журнала регистрации

Кроме основных функций (просмотра списка активных пользователей и журнала регистрации), в режиме запуска «Монитор» доступна функция архивирования журнала регистрации.

Журнал регистрации поддерживается системой в специальном файле 1CV7.MLG, расположенном в каталоге SYSLOG, подчиненном каталогу информационной базы. Этот журнал называется «текущим». При интенсивной работе большого количества пользователей за продолжительный период времени текущий журнал может иметь достаточно большой размер. Архивирование журнала позволяет уменьшить размер текущего журнала путем помещения определенной его части или всего журнала в архив. В архиве данные журнала хранятся в сжатом виде. Файлы архива также хранятся в каталоге SYSLOG.

Режим просмотра журнала регистрации имеет возможность показывать события из текущего журнала, а также события тех периодов, которые помещены в архив. При этом, если выбранный для просмотра интервал включает периоды, за которые события помещены в архив, то извлечение данных из архива происходит автоматически. Разумеется, при обращении к данным архива на извлечение необходимой информации будет тратиться дополнительное время.

Для вызова функции архивирования журнала регистрации следует выбрать пункт меню «Архивирование журнала» из колонки «Монитор» главного меню или нажать соответствующую кнопку панели инструментов.

Режим архивирования может быть вызван только в том случае, если с данной информационной базой больше не работает ни один пользователь ни в каком режиме запуска 1С:Предприятия.

При вызове режима архивирования появляется диалог, в котором устанавливается период, за который данные журнала регистрации должны быть помещены в архив. В верхней части диалога выводится начальная и конечная даты текущего журнала.

Архивирование всегда выполняется, начиная с самых ранних событий текущего журнала: фактически, начальная граница архивируемого периода всегда определяется началом текущего журнала. В диалоге задается конечная граница периода архивирования.

Для указания конечной границы возможны следующие варианты:

Весь журнал регистрации | в архив будут помещены все события журнала;
До начала текущего месяца | в архив будут помещены все события, предшествующие текущему месяцу;
До начала текущей недели | в архив будут помещены все события, предшествующие текущей неделе;
До начала текущей даты | в архив будут помещены все события, предшествующие текущей дате;
До начала даты .... | в архив будут помещены все события, предшествующие указанной дате.

В нижней части диалога можно указать пароль, с которым будет выполнено архивирование журнала. Если пароль указан, то при обращении к журналу регистрации за данный период будет запрашиваться пароль.

Для выполнения архивирования следует нажать кнопку «ОК». Для отказа от архивирования следует нажать кнопку «Отмена».


1С-Предприятие. Документация | SQL - Особенности установки и конфигурирования: Введение

Введение

  • Структура руководства
  • Что вы должны знать
  • Изменения и дополнения
  • Соглашения

Система 1C:Предприятие версия 7.5 для SQL представляет собой расширение системы 1С:Предприятие версия 7.5, позволяющее организовать работу с базой данных в режиме клиент-сервер, что существенно повышает надежность и стабильность функционирования системы, особенно при работе значительного числа пользователей с информационными базами большого размера. В качестве сервера баз данных система 1С:Предприятие версия 7.5 для SQL использует MS SQL Server 6.5.

Настоящее руководство описывает отличительные особенности системы 1C:Предприятие версия 7.5 для SQL по отношению к сетевой версии системы 1C:Предприятие версия 7.5 в части ее установки и эксплуатации, а также содержит ряд необходимых сведений по установке и настройке серверной платформы Microsoft SQL Server 6.5.

Структура руководства

Общие сведения, необходимые для использования системы 1С:Предприятие, содержатся в соответствующих руководствах, входящих в комплект поставки системы. Целью данного руководства является описание отличительных особенностей системы 1C:Предприятие для SQL.

В главе 1 содержится общее описание системы 1С:Предприятие для SQL, дается представление о структуре информационных баз, с которыми может работать система, а также приводится описание дополнительного программного обеспечения, необходимого для работы с сервером базы данных.

Глава 2 содержит описание установки самой системы 1C:Предприятие для SQL, а также сопутствующего программного обеспечения.

В главе 3 дается описание отличительных особенностей, касающихся создания и администрирования информационных баз и настройки их параметров в системе 1C:Предприятие для SQL.

Что вы должны знать

Характер изложения данного руководства предполагает, что Вы имеете представление об особенностях архитектуры клиент-сервер и обладаете навыками по администрированию и установке Microsoft SQL Server 6.5.

Вам должны быть знакомы следующие понятия и навыки:

· установка и работа с программным обеспечением в среде операционных систем MS Windows 95 и MS Windows NT 4.0;

· настройка системы MS Windows NT Server 4.0;

· установка и настройка параметров MS SQL Server 6.5;

· создание и администрирование баз данных в среде MS SQL Server 6.5;

· установка и настройка клиентского программного обеспечения в среде операционных систем MS Windows 95 и MS Windows NT 4.0.

Изменения и дополнения

Фирма «1С» оставляет за собой право вносить изменения в программы и их документацию. Изменения отражаются во вкладыше в документацию или в файле README.TXT, входящем в комплект поставки.

Соглашения

Обозначения кнопок. Наименования кнопок в диалогах будут даваться их названиями в кавычках, например «ОК», «Отмена» и так далее.


1С-Предприятие. Документация | SQL - Особенности установки и конфигурирования: Глава 1

Глава 1
Принципы построения системы 1C:Предприятие для SQL

  • Общее описание
  • Особенности хранения данных в системе 1С: Предприятие для SQL
  • Преимущества использования специализированных серверов баз данных
  • Структура программных средств
  • Требования к аппаратуре и программному обеспечению

Общее описание

Система 1С:Предприятие для SQL представляет собой расширение сетевой версии системы 1C: Предприятие и, в отличие от последней, обладает возможностью работать как с «обычными» информационными базами системы 1C:Предприятие, так и с информационными базами, в которых таблицы базы данных размещены на специализированном сервере баз данных. В качестве сервера баз данных 1C:Предприятие для SQL использует MS SQL Server 6.5. Для доступа к базе данных на сервере используются средства ODBC 3.5. То есть, можно сказать, что 1С:Предприятие для SQL представляет собой систему, способную работать в режиме клиент-сервер, но при этом сохраняющую возможность работы с обычными для системы 1С:Предприятие информационными базами (в которых таблицы базы данных представляются в виде файлов формата DBF-CDX).

В остальном системы 1С:Предприятие и 1С:Предприятие для SQL практически неразличимы. То есть сохраняется полная функциональная идентичность между указанными системами. Конфигурации, разработанные для одной из систем, могут без изменения переноситься для использования в среде другой. Имеющиеся отличия не затрагивают принципиальным образом основы построения и функционирования системы.

Использование технологии клиент-сервер дает ряд преимуществ, причем эти преимущества становятся очевиднее по мере роста объема информационной базы и числа одновременно работающих с ней пользователей.

Особенности хранения данных в системе 1С: Предприятие для SQL

Особенности хранения данных в системе 1 1C:Предприятие для SQL лучше всего пояснить в сравнении с тем, как хранятся данные в «обычной» системе 1C:Предприятие. При этом, хотя в дальнейшем и будет говориться о способах хранения данных в «обычной» системе 1C:Предприятие и в системе 1С:Предприятие для SQL, не следует забывать, что система 1С:Предприятие для SQL имеет возможность полноценной работы с информационной базой «обычной» системы 1C:Предприятие.

Для системы 1С:Предприятие важным понятием является каталог информационной базы. В этом каталоге и его подкаталогах, как правило, хранятся все файлы данных, с которыми работает система 1C:Предприятие, то есть то, что принято называть информационной базой системы. Все множество данных, составляющее информационную базу системы 1C:Предприятие можно разделить на две группы:

· файлы конфигурации системы;

· таблицы базы данных;

Файлы конфигурации системы, как правило, содержат значительные по размерам объекты данных, такие как конфигурация прикладной системы, ее словарь данных, различные тексты, таблицы и т. п. Чтение и запись таких объектов производится, как правило, за один прием, и одновременный доступ к одному и тому же файлу со стороны нескольких экземпляров системы 1С:Предприятие (особенно на запись), как правило, не допускается.

В базе данных информация представлена в виде таблиц и индексов и, с точки зрения целостности данных, вся база данных (все множество таблиц ее составляющих) представляет собой единую информационную сущность. В отличие от файлов конфигурации, доступ к базе данных может осуществляться одновременно со стороны нескольких экземпляров системы 1С:Предприятие. При этом отдельные части таблиц могут независимо считываться или модифицироваться различными экземплярами системы. В таблицах базы данных сосредоточена основная масса данных, с которыми работает система 1С:Предприятие, и частота обращения на чтение или запись таблиц базы данных в режиме нормальной работы системы многократно превышает частоту обращения к файлам конфигурации.

Варианты организации информационных баз систем 1С:Предприятие и 1С:Предприятие для SQL отличаются способом хранения и организации доступа к таблицам базы данных. Схематически организацию информационной базы «обычной» системы 1С:Предприятие можно представить следующим образом:

Как видно из рисунка для хранения таблиц и индексов базы данных «обычная» система 1C:Предприятие использует файлы в формате DBF и CDX, которые размещаются в каталоге информационной базы системы.

1C:Предприятие для SQL для хранения таблиц базы данных использует не файловую систему, а средства специализированного сервера баз данных Microsoft SQL Server. Схема организации информационной базы

системы 1С:Предприятие для SQL выглядит следующим образом:

Как видно из схемы, каталог информационной базы системы 1С: Предприятие для SQL отличается двумя важными деталями. Вместо файла словаря данных «обычной» системы 1C:Предприятие - 1CV7.DD, присутствует другой файл - 1CV7.DDS. Это тоже словарь данных, но для информационной базы системы 1C:Предприятие для SQL. Второе важное отличие - это то, что каталог информационной базы больше не содержит файлов таблиц базы данных (*.DBF, *.CDX). Вместо них в указанном каталоге содержится файл 1CV7.DBA, содержащий параметры, с помощью которых система 1C:Предприятие для SQL устанавливает соединение с базой данных, хранимой на сервере баз данных.

Таким образом, данный способ организации информационной базы системы 1С:Предприятие предполагает перемещение в среду сервера баз данных той части данных, которая организована в виде таблиц и подвергается в процессе работы наиболее частым изменениям.

Преимущества использования специализированных серверов баз данных

Какие же преимущества дает такая модель организации данных? Как отмечалось выше, частота, с которой система 1С:Предприятие обращается к базе данных, во много раз превосходит частоту обращения к файлам конфигурации. В случае использования для доступа к таблицам базы данных обычной модели работы с файлами, любые, даже простейшие операции взаимодействия с базой данных представляются в виде ряда отдельных файловых операций чтения и записи страниц индексных файлов и отдельных записей файлов данных. При этом, даже очень простые операции с базой данных, например, поиск записи по значению ключевого поля, не могут быть сведены к одиночной файловой операции. Сервер баз данных предоставляет возможность работы с данными, представленными в виде таблиц, индексов и т. п. Соответственно, и операции взаимодействия с базой данных, хранящейся в среде такого специализированного сервера, ориентированы на логику работы с данными, организованными в виде таблиц. Так выборка одиночной записи может быть представлена в виде единичной операции. При этом сервер, получив запрос на выполнение операции, сам произведет все необходимые промежуточные действия, и вернет запрашивающей стороне только требуемый результат, в данном случае - искомую запись. Кроме того, сервер баз данных способен производить гораздо более сложные операции по выборке и обработке данных.

Очевидно, что с точки зрения построения прикладных систем это означает, что сервер баз данных берет на себя часть (временами значительную часть) нагрузки по обработке данных, разгружая компьютеры пользователей и, что может быть еще более важно, снижая нагрузку на сеть.

Еще одно важное для практического использования преимущество хранения данных на сервере баз данных - это повышенная устойчивость данных к неполадкам и сбоям аппаратуры и программных средств. Как правило, типичная операция модификации базы данных (транзакция), такая, как запись или проведение документа системой 1C:Предприятие, состоит из согласованного обновления записей в нескольких таблицах. При этом совершенно недопустима такая ситуация, при которой изменения будут внесены не во все таблицы, в которые они должны быть внесены. В таком случае можно говорить о нарушении целостности базы данных. Естественно, что сервер базы данных содержит специальные механизмы, обеспечивающие целостность хранимых данных. Например, операция фиксации изменений в данных, произведенных в процессе выполнения транзакции - это отдельная операция сервера базы данных, которая может быть либо выполнена, либо нет, в то время как при работе с файлами может произойти такая ситуация, когда не все требуемые изменения будут внесены в файлы данных, например, но причине разрыва сетевого соединения или отключения электропитания на компьютере пользователя во время выполнения операции записи в файл.

Конечно, аварийные ситуации могут произойти и на машине, работающей в качестве сервера, но, как правило, в роли серверов работают специально предназначенные для этого компьютеры, отличающиеся лучшими характеристиками производительности и надежности. Кроме того, для обеспечения устойчивости их работы принимаются дополнительные меры: применяются источники бесперебойного питания, используются программные продукты, специально предназначенные для работы на серверах и отличающиеся повышенной устойчивостью и т. п.

Кроме того, сервер баз данных обладает дополнительными возможностями по сохранению и восстановлению данных, что позволяет поддерживать в более актуальном состоянии резервные копии данных и более оперативно восстанавливать данные в случае, если их разрушение все-таки произойдет. Это позволяет достичь лучших показателей готовности системы, то есть свести к минимуму потери времени в вынужденных простоях, вызванных сбоями аппаратуры и программных средств.

Структура программных средств

Подпись: 1С :Предприятие версия 7.5 для SQL. ODBC 3.5 <—> Клиентская часть ODBC 3.5 MS SQL Server база данных на MS SQL Server

Как отмечалось выше, 1C:Предприятие для SQL для взаимодействия с базой данных на сервере использует средства ODBC 3.5. Комплект ODBC 3.5, включающий общие компоненты ODBC 3.5 и драйвер для MS SQL Server входит в комплект поставки системы. 1С:Предприятие для SQL и должен быть установлен на машины пользователей с отдельной дискеты, входящей в комплект поставки системы 1С: Предприятие версия 7.5 для SQL (естественно, что для работы с «обычными» информационными базами системы 1 С:Предприятие не требуется наличие ODBC). В целом комплект программных средств, требующихся для работы системы 1С:Предприятие с MS SQL Server можно представить следующим образом:

На приведенной схеме особое место занимает клиентская часть MS SQL Server. Зачем она здесь нужна? Как известно, 32-разрядные драйверы ODBC для MS SQL Server способны «напрямую» работать с сервером, не используя «родной» для MS SQL Server клиентский интерфейс DB-Library. При этом для взаимодействия с сервером и ODBC и DB-Library пользуются одним и тем же промежуточным слоем - Net-Library, задачей которого является передача данных по сети. Net-Library - это набор взаимозаменяемых динамических библиотек, каждая из которых обеспечивает возможность взаимодействия сервера и клиентской части с помощью того или иного сетевого протокола.

При установке драйвера ODBC для MS SQL Server, на машину пользователя копируется библиотека, позволяющая работать с сервером по протоколу Named Pipes, и сам драйвер, в отсутствие иных указаний, будет стремиться воспользоваться именно этой библиотекой. Named Pipes - это достаточно удобный протокол, он не требует специальных настроек и стабильно работает в различных конфигурациях сетей. Но в некоторых ситуациях использование этого протокола для связи с MS SQL Server сопровождается весьма существенной потерей производительности. Поэтому, в большинстве случаев, для взаимодействия с MS SQL Server целесообразно воспользоваться каким-либо другим протоколом из числа возможных (TCP/IP, NWLink IPX и т. п.). Динамические библиотеки для работы с указанными протоколами устанавливаются на компьютер пользователя в процессе установки клиентской части MS SQL Server. Но одной только установки соответствующих библиотек недостаточно. Для того чтобы обеспечить взаимодействие с MS SQL Server по сетевому протоколу, отличному от Named Pipes необходима утилита SQL Client Configuration Utility. С помощью данной утилиты можно настроить клиентскую часть MS SQL Server на работу с выбранной библиотекой Net-Library. Эта же библиотека будет использоваться и драйвером ODBC для MS SQL Server.

Требования к аппаратуре и программному обеспечению

Требования к аппаратуре и программному обеспечению, предъявляемые системой 1С:Предприятие для SQL, можно разделить на три части:

· требования к компьютерам пользователей, на которых будет работать система 1C:Предприятие для SQL;

· требования к программному обеспечению сервера базы данных со стороны системы 1С: Предприятие для SQL;

· требования к программному и аппаратному обеспечению компьютера, работающего в качестве сервера базы данных.

Все требования к компьютерам пользователей, предъявляемые системой 1 1C:Предприятие версия 7.5 для SQL полностью совпадают с требованиями системы 1C:Предприятие версия 7.5.

В качестве сервера баз данных система 1С: Предприятие версия 7.5 для SQL должен использоваться сервер баз данных на основе MS SQL Server 6.5 + Service Pack 3.

Формальные требования к программному и аппаратному обеспечению компьютера, работающего в качестве сервера баз данных, предъявляемые со стороны MS SQL Server 6.5 изложены в различных документах компании Microsoft. Но, в конечном счете, надо говорить не о работе сервера баз данных самого по себе, а о работе прикладной системы, построенной на его основе. Наиболее заметным параметром функционирования системы 1C:Предприятие для SQL, на который может оказать влияние выбор той или иной аппаратной платформы для сервера базы данных, является производительность. Причем, в большинстве случаев, затруднительно дать точные спецификации на аппаратную часть сервера, так как в различных случаях применения системы интенсивность использования сервера базы данных может различаться существенным образом, в зависимости от числа одновременно работающих пользователей, объема базы данных и других факторов.

В качестве общей рекомендации, организациям, где с системой 1C:Предприятие для SQL работают не менее 15-20 человек, и объем базы данных составляет более 100 МБ в качестве сервера базы данных целесообразно рассматривать компьютер со следующими характеристиками:

· 2 процессора PentiumPro 200 или Pentium II 266;

· не менее 128 МБ оперативной памяти (желательно 256 МБ);

· быстрая дисковая подсистема (SCSI-2, аппаратная поддержка RAID);

· 32-разрядная сетевая плата, снабженная процессором и встроенной кэш-памятью и подключаемая через слот PCI или EISA.

При этом следует учитывать, что работа в качестве сервера базы данных системы 1С:Преднриятие для SQL практически полностью загружает ресурсы аппаратной части компьютера. Поэтому, крайне нежелательно, чтобы компьютер, использующийся в качестве сервера базы данных, был задействован в каком-либо другом качестве (сервер Internet, файл-сервер и т. п.), так как это приведет к значительному ухудшению производительности сервера баз данных.


1С-Предприятие. Документация | SQL - Особенности установки и конфигурирования: Глава 2

Глава 2
Установка системы 1C:Предприятие для SQL

  • Общее описание
  • Особенности установки MS SQL Server 6.5 для совместной работы с системой 1С:Предприятие для SQL.
  • Установка ODBC 3.5
  • Установка клиентской части MS SQL Server
  • Установка 1C:Предприятие 7.5 для SQL. MS SQL Server

Общее описание

Установка системы 1C:Предприятие для SQL может быть представлена в виде четырех отдельных процедур:

· установка самой системы 1С:Предприятие для SQL;

· установка MS SQL Server на компьютере, выделенном для работы в качестве сервера базы данных;

· установка ODBC 3.5 на компьютеры пользователей;

· установка клиентской части MS SQL Server на компьютеры пользователей.

Процедура установки самой системы 1C:Предприятие для SQL не отличается от процедуры установки «обычной» системы 1C:Предприятие и описана в соответствующем руководстве. Выполнения этой процедуры вполне достаточно, чтобы система 1C:Предприятие для SQL получила возможность работать с информационными базами «обычной» системы 1C:Предприятие.

Особенности установки MS SQL Server 6.5 для совместной работы с системой 1С:Предприятие для SQL.

Процедура установки MS SQL Server 6.5 полностью описана в соответствующих руководствах, поставляемых в комплекте MS SQL Server 6.5. В настоящем руководстве будут затронуты только детали, существенные для совместной работы MS SQL Server с системой 1С:Предприятие для SQL. Таких деталей немного. На функциональность системы 1 1C:Предприятие для SQL существенным образом оказывают влияние два параметра, которые необходимо определить в процессе установки MS SQL Server 6.5.

Первый параметр - это набор символов (Character Set), с которым будет работать MS SQL Server. Для пользователей, работающих с русским языком, рекомендуется использовать кодовую страницу 1251 (русская кодовая страница Windows).

Второй параметр - это порядок сортировки (Sort Order). Для работы с системой 1C:Предприятие рекомендуется использовать порядок сортировки, соответствующий словарю и не зависящий от регистра букв (Dictionary order, case-insensitive). Данный порядок наилучшим образом соответствует порядку сортировки, который используется для кириллицы в «обычных» информационных базах системы 1С:Предприятие.

Установка ODBC 3.5

Установка ODBC 3.5 осуществляется с установочной дискеты -«1С: Предприятие версия 7.5 для SQL - ODBC 3.5», входящей в комплект поставки системы 1С:Предприятие для SQL. Для установки следует поместить дискету с ODBC 3.5 в дисковод и запустить программу установки с помощью командной строки вида:

A:\SETUP.EXE

Далее программа установки самостоятельно определит состав компонент, уже установленных на компьютере пользователя, и произведет необходимые действия. В результате на компьютере пользователя будут установлены:

· компоненты ODBC 3.5;

· драйвер ODBC версии 3.5 для MS SQL Server (SQLSRV32.DLL);

· динамическая библиотека ODBCBCP.DLL, используемая драйвером для ускоренной загрузки и выгрузки данных.

В случае если на компьютере пользователя была установлена более старая версия ODBC, будет произведено обновление на версию 3.5. Драйвер ODBC для MS SQL Server, в случае необходимости, также будет заменен более новой версией.

Внимание! Для работы с системой 1С:Предприятие для SQL рекомендуется использовать драйвер для MS SQL Server, поставляемый в комплекте системы 1С:Предприятие для SQL, так как известны случаи, когда при установке драйвера, полученного из других источников, наблюдалось рассогласование версий динамических библиотек SQLSRV32.DLL и ODBCBCP.DLL, в результате чего ряд функций системы 1С: Предприятие для SQL (загрузка данных, реструктуризация данных после изменения конфигурации) оказывались неработоспособными.

Установка клиентской части MS SQL Server

Как отмечалось выше, для того чтобы система 1С:Предприятие для SQL могла работать с сервером базы данных, достаточно установить на компьютеры пользователей ODBC 3.5. Но в этом случае не будет возможности управлять сетевым протоколом, используемым для обмена данными между компьютером пользователя и сервером баз данных. Именно этой причиной обусловлена потребность в наличии на машинах пользователей клиентской части MS SQL Server.

Клиентская часть MS SQL Server 6.5 устанавливается с того же CD, с которого устанавливается и серверная часть. Процедура установки описана в соответствующих руководствах, поставляемых в комплекте MS SQL Server 6.5. Здесь будет рассмотрен только ряд необходимых деталей.

При установке клиентской части MS SQL Server пользователю предлагается возможность выбора из набора различных утилит. Эти утилиты могут быть полезны при работе с MS SQL Server 6.5. С их помощью можно управлять сервером, создавать и удалять базы данных и пользователей, производить операции резервного копирования и т. п. Но с точки зрения работы с системой 1С:Предприятие для SQL, в первую очередь интересна возможность выбора и настройки сетевого протокола. Для обеспечения возможности выбора сетевого протокола, на клиентской машине необходимо установить утилиту SQL “Client Configuration Utility". Остальные утилиты не влияют на функционирование системы 1С:Предприятие для SQL и устанавливать их на компьютеры пользователей нет необходимости.

Набор устанавливаемых сетевых протоколов определяется программой установки и не может быть изменен.

Установка 1C:Предприятие 7.5 для SQL. MS SQL Server

При установке «1С:Предприятие для SQL. Оперативный учет. MS SQL Server» или «1С:Предприятие для SQL. Расчет. MS SQL Server», автоматически запускается программа интегрированной установки SETUP.EXE из корневого каталога компакт-диска. Программа дает возможность установки соответствующей компоненты 1С:Предприятия версии 7.5 для SQL, типовой конфигурации для данной компоненты, MS SQL server 6.5 5 пользователей и ODBC 3.5. При инсталляции MS SQL Server, программа установки запрашивает Product ID. Для версии, распространяемой с программными продуктами системы 1С:Предприятие для SQL, Product ID 67407-040-1225911. Установка программ зависит от планируемого способа их использования: 1С:Предприятие и типовая конфигурация могут быть установлены как локально, так и в сетевом варианте. MS SQL Server рекомендуется устанавливать на выделенном сервере, ODBC 3.5 устанавливается на локальные станции. Программа интегрированной установки предлагает установку MS SQL Server 6.5 для систем Intel386, для установки MS SQL Server на платформы, отличные от Intel386 необходимо запустить программу SETUP.EXE из каталога \SQL65.


1С-Предприятие. Документация | SQL - Особенности установки и конфигурирования: Глава 3

Глава 3
Работа с системой 1C:Предприятие для SQL

  • Общее описание
  • Инициализация информационной базы
  • Перенос информационной базы из формата системы 1C:Предприятие 7.5 в формат системы 1С:Предприятие 7.5 для SQL
  • Каталог информационной базы и база данных на сервере
  • Длина реквизитов текстового типа
  • Особенности пользовательского интерфейса
  • Особенности выполнения транзакций
  • Работа системы 1С:Предприятие для SQL в распределенных информационных базах
  • Резервное копирование данных

Общее описание

В нормальной работе система 1С:Предприятие для SQL практически не отличается от «обычной» системы 1С:Предприятие, за исключением некоторых деталей, которые, как правило, не сказываются существенным образом на повседневной работе пользователей системы. Изменение формата хранения информационной базы главным образом оказывает влияние на процедуры администрирования системы, резервного копирования данных и т. п. Кроме того, некоторые особенности полезно знать специалистам, занимающимся конфигурированием систем 1C:Предприятие. Именно на системных администраторов и специалистов по конфигурированию ориентировано дальнейшее изложение. Внимание будет уделено отдельным процедурам и режимам работы, которые подверглись изменению в системе 1C:Предприятие для SQL по сравнению с «обычной» системой 1C:Предприятие.

Инициализация информационной базы

Под процедурой инициализации информационной базы понимается создание новой информационной базы системы 1C:Предприятие на «пустом месте», то есть в каталоге, в котором еще нет никаких данных системы 1С:Предприятие, кроме файла конфигурации (1CV7.MD). Для инициализации информационной базы следует запустить программу Конфигуратор, указав в качестве каталога информационной базы пустой вышеупомянутый каталог. Если в качестве каталога информационной базы Конфигуратору при запуске указан каталог, в котором не находится ни одного из возможных файлов словаря базы данных: 1CV7.DD или 1CV7.DDS, то сразу после запуска будет предпринята попытка выяснить формат хранения таблиц данных инициализируемой информационной базы:

После того, как сделан выбор формата хранения таблиц, работа с Конфигуратором может быть продолжена в привычном режиме. Однако особенности на этом не кончаются. Для того чтобы инициализировать таблицы базы данных, надо указать параметры доступа к базе данных на сервере. Но прежде надо создать саму базу данных.

Здесь необходимо заметить, что система 1C:Предприятие для SQL не берет на себя такие функции управления сервером баз данных, как создания баз данных, ведение списков пользователей и. т. п. Предполагается, что указанные задачи системный администратор решает средствами самого MS SQL Server 6.5, а система 1C:Предприятие для SQL использует уже созданные базы данных. Однако, готовая база данных - это практически все, что нужно. Все дальнейшие действия с содержимым базы данных: создание и изменение таблиц, индексов и хранимых процедур система 1C:Предприятие для SQL берет на себя. При создании базы данных, используемой для хранения таблиц информационной базы системы 1C:Предприятие для SQL, рекомендуется руководствоваться набором несложных правил:

· базу данных и журнал транзакций не следует размещать на одном и том же устройстве хранения баз данных (database device).

· не следует создавать базу данных размером меньше 64 МБ.

· размер журнала транзакций должен быть равен приблизительно половине размера базы данных.

Помимо создания базы данных на сервере, необходимо решить еще одну задачу: выбрать пользователя, имя и пароль которого система 1С:Предприятие для SQL будет использовать для установления соединения с базой данных. Для того, чтобы система имела достаточный набор привилегий по управлению базой данных, необходимо, чтобы этим пользователем был либо системный администратор MS SQL Server - SA, либо какой-либо другой пользователь, являющийся собственником (owner) базы данных, с которой будет работать система 1C:Предприятие для SQL. Все пользователи системы 1C:Предприятие для SQL для установки соединения с базой данных на сервере пользуются одними и теми же параметрами доступа, которые устанавливаются однократно при инициализации информационной базы.

Итак, предположим, что база данных на сервере уже создана и выбран пользователь, имя и пароль которого будут служить для установления соединения с базой данных. Для задания этих сведений следует, находясь в программе Конфигуратор, обратиться к пункту меню «Операции/Параметры базы данных SQL...». В поля появившегося на экране диалога следует занести требуемые параметры базы данных.

При нажатии на кнопку «ОК» Конфигуратор пробует установить соединение с базой данных, используя введенные параметры. Если попытка установить соединение завершилась успешно, параметры базы данных запоминаются для дальнейшего использования.

Еще одной особенностью работы с информационными базами системы 1C:Предприятие для SQL, является необходимость задания списка пользователей. При работе с «обычной» информационной базой системы 1C:Предприятие задавать список пользователей нет необходимости, и, в случае, если ни один пользователь не задан, процедура авторизации доступа к информационной базе производиться не будет. При работе с информационной базой системы 1C:Предприятие для SQL такой вариант невозможен. Если список пользователей пуст, доступ к информационной базе будет закрыт. Поэтому, при инициализации информационной базы необходимо ввести в список пользователей хотя бы одного пользователя.

Внимание! Система 1C:Предприятие для SQL согласованно отслеживает изменения в списке пользователей и в параметрах доступа к базе данных. Поэтому произвольная замена или удаление файла списка пользователей (USERDEF\USERS.USR) приведет к потере информации о параметрах соединения с базой данных и потребуется ее повторный ввод. Такой подход гарантирует обязательность выполнения процедуры авторизации доступа к информационной базе.

Перенос информационной базы из формата системы 1C:Предприятие 7.5 в формат системы 1С:Предприятие 7.5 для SQL

При переходе от системы 1С:Предприятие 7.5 к системе 1C:Предприятие 7.5 для SQL неизбежно возникает проблема переноса информационной базы из одного формата в другой. Инструментом решения данной проблемы служат средства загрузки/выгрузки информационных баз, доступ к которым производится из Конфигуратора. Процедура переноса может быть представлена в виде последовательности таких шагов:

· выгрузка существующей информационной базы в файл переноса данных;

· инициализация новой информационной базы;

· загрузка файла переноса данных в новую информационную базу;

· копирование рабочих каталогов пользователей, файлов внешних отчетов, файлов прописи и т. п. из каталога исходной информационной базы в каталог вновь созданной информационной базы.

Рассмотрим перечисленные шаги подробнее. Для выгрузки существующей информационной в файл переноса данных следует запустить Конфигуратор, указав в качестве каталога информационной базы каталог информационной базы, которую надо выгрузить. Затем выбрать пункт меню «Файл./Выгрузить данные...». На экране появится диалоговое, в котором следует задать имя файла переноса данных, а также обозначить, следует ли выгружать сведения о пользователях системы. В случае переноса информационной базы выгрузка сведений о пользователях представляется целесообразной.

Следующий шаг - это инициализация информационной базы, в которую будут перенесены данные. Процесс инициализации информационной базы системы 1С:Предприятие для SQL был подробно рассмотрен в предыдущем разделе. Следует сделать замечание о размере создаваемой базы данных. В качестве размера создаваемой базы данных следует указать число, равное сумме размеров всех файлов .DBF и .CDX исходной информационной базы, умноженное на коэффициент приблизительно равный 2.5...3. Указанный объем позволит гарантированно вместить переносимые данные и позволит некоторое время не беспокоиться о том, что в ходе работы с базой данных не произойдет ее переполнения. Размер журнала транзакций также следует определить как половину размера базы данных.

Очередным этапом является загрузка файла переноса в проинициализированную информационную базу. Для загрузки данных следует запустить Конфигуратор системы 1 1C:Предприятие для SQL и выбрать пункт меню «Файл./Загрузить данные...». На экране появится диалог, в котором следует указать имя файла переноса данных, из которого будет производиться загрузка. Естественно, что это должен быть тот же файл, в который ранее выгружалась исходная информационная база.

Процесс переноса информационной базы завершается копированием файлов, которые в результате всех предпринятых действий так и не были перемещены из каталога исходной информационной базы в каталог вновь созданной информационной базы. Дело в том, что при выгрузке в файл переноса данных попадают данные только из нескольких основных файлов информационной базы:

· файла конфигурации (1CV7.MD);

· файла словаря данных (1CV7.DD);

· файла списка пользователей (USERDEF\USERS.USR);

· таблиц базы данных.

Информация из остальных файлов, находящихся в каталоге исходной информационной базы не попадает в файл переноса данных и, соответственно, не загружается во вновь созданную информационную базу. В файл переноса данных также не попадает содержимое рабочих каталогов пользователей. При этом наличие указанных файлов и каталогов может являться критическим для работы системы. Наиболее простым способом приведения вновь созданного каталога информационной базы к требуемому виду является полное копирование содержимого каталога исходной информационной базы, включая подкаталоги, за исключением следующих файлов:

· 1CV7.MD;

· 1CV7.DD;

· USERDEF\USERS.USR (если сведения о пользователях были включены в файл переноса данных);

· •.DBF, •.CDX.

В случае необходимости, аналогичным способом может быть осуществлен перенос информационной базы из формата системы 1С:Предприятие для SQL в формат «обычной» информационной базы системы 1С:Предприятие.

Каталог информационной базы и база данных на сервере

Как было отмечено выше, каталог информационной базы системы 1C:Предприятие для SQL содержит файл 1CV7.DBA, в котором находятся параметры доступа к размещенной на сервере базе данных. Это позволяет, в случае необходимости, перемещать файлы, расположенные в каталоге информационной базы, в другой каталог, изменяя, таким образом, местоположение самого каталога информационной базы и сохраняя при этом доступ к той же самой базе данных на сервере.

Однако, при перемещении данных, содержащихся в рабочем каталоге информационной базы, из каталога в каталог, возникает опасность того, что доступ к одной и той же базе данных становится возможным из более чем одного каталога информационной базы.

Система 1C:Предприятие для SQL при установке соединения с сервером базы данных создает динамическую связку между каталогом информационной базы и базой данных на сервере, гарантируя тем самым, что одновременный доступ к базе данных на сервере может осуществляться только из одного каталога информационной базы. Тем самым обеспечивается правильность работы организованных на уровне файлов механизмов блокировки различных объектов информационной базы.

Но при этом остается возможность попеременного доступа к базе данных из нескольких каталогов информационной базы, что, в случае изменения конфигурации, может привести к нарушению соответствия между содержимым каталога информационной базы и базой данных на сервере. Для недопущения такого рода ситуации при переносе данных из одного каталога информационной базы в другой рекомендуется удалять содержимое старого каталога сразу же после выполнения операции копирования файлов в новый каталог.

Длина реквизитов текстового типа

При разработке конфигураций следует учитывать тот факт, что система 1C:Предприятие для SQL не может работать с константами и реквизитами текстового типа, длина которых превышает 255. Это обусловлено тем, что MS SQL Server 6.5 не поддерживает полей типа CHAR или VARCHAR с длиной, превышающей 255. Однако данное свойство не распространяется на текстовые реквизиты неограниченной длины.

При планировании переноса информационной базы из формата системы 1С:Предприятие в формат системы 1C:Предприятие для SQL следует изменить конфигурацию исходной информационной базы, проставив всем текстовым реквизитам, длина которых превышает 255, признак неограниченной длины.

Особенности пользовательского интерфейса

Как было отмечено выше, с точки зрения рядового пользователя, работа с системой 1C:Предприятие для SQL ничем практически не отличается от работы с «обычной» системой 1C:Предприятие. Это так, но небольшие отличия все-таки имеются.

Первое, что бросается в глаза пользователю, впервые начавшему работать с системой 1C:Предприятие для SQL - это полосы прокрутки с «движками», находящимися посередине и не меняющими своего местоположения в зависимости от положения текущей строки в списке.

При этом полосы прокрутки не вполне утратили своей функциональности. Щелкнув мышкой выше или ниже движка, можно, как и прежде, достичь эффекта нажатия клавиш PageUp или PageDown соответственно, а передвинув движок в верхнее или нижнее положение - эффекта от нажатия клавиш Ноте или End. Кнопки в верхней и нижней части полосы прокрутки также функционируют по-прежнему.

Особенности выполнения транзакций

Между системами 1C:Предприятие и 1C:Предприятие для SQL имеется различие в видимости для других пользователей изменений данных, производимых в процессе выполнения транзакций. Если при работе с информационной базой «обычной» системы 1C:Предприятие изменения, внесенные в базу данных при выполнении транзакции, становятся видимыми другим пользователям только после фиксации транзакции, то есть тогда, когда они уже не могут быть отменены, то при работе с информационной базой системы 1C:Предприятие для SQL изменения становятся видны другим пользователям немедленно после их внесения в базу данных. В дальнейшем, при завершении транзакции, произведенные изменения могут быть зафиксированы или отменены. В случае отмены изменений данные возвращаются к виду, который они имели до начала транзакции. Таким образом, имеет место так называемая проблема «иллюзий» или видимости незафиксированных изменений базы данных.

Эта особенность обусловлена режимом отработки транзакций сервером MS SQL Server, а также режимом работы с базой данных системы 1С:Предприятие для SQL, и, при некоторых условиях, может оказывать влияние на поведение системы, что следует учитывать при разработке конфигураций. Для предотвращения появления "иллюзий" там, где это критично, следует производить операции, связанные с чтением данных в рамках транзакции, что предотвращает возможность изменения считываемых данных со стороны других пользователей.

Работа системы 1С:Предприятие для SQL в распределенных информационных базах

В одной распределенной информационной базе в различных узлах могут одновременно работать различные варианты системы 1С:Предприятие версия 7.5, включая систему 1C:Предприятие версия 7.5 для SQL. При этом информационные базы в форматах как «обычной» системы 1C:Предприятие, так и системы 1C:Предприятие для SQL могут присутствовать в распределенной информационной базе данных в различных комбинациях без ограничений.

Резервное копирование данных

Система 1C:Предприятие содержит встроенные средства, предназначенные для сохранения/восстановления информационной базы. Доступ к функциям сохранения/восстановления производится через пункты «Сохранить данные» и «Восстановить данные» из меню «Файл» главного меню Конфигуратора. Используя указанные средства, можно сохранить файлы каталога информационной базы в архиве, размещаемом на дискетах или на жестком диске. Имеется возможность управлять составом файлов, попадающих в архив. Главным недостатком является отсутствие возможности планирования времени и периодичности выполнения операций сохранения данных. Поэтому во многих случаях, особенно когда речь идет о больших объемах данных, для сохранения/восстановления данных имеет смысл использовать специализированные средства резервного копирования данных, входящие в состав операционных систем или поставляемые отдельно третьими фирмами. Данные средства позволяют планировать время и периодичность выполнение операций сохранения данных, помещать архивную копию данных на магнитные ленты, производить копирование данных без прекращения работы и многое другое.

Средства сохранения и восстановления данных системы 1С:Предприятие для SQL ничем не отличаются от аналогичных средств «обычной» системы 1С:Предприятие, то есть возможности сохранения и восстановления данных поддерживаются только на уровне файлов, и не могут рассматриваться как инструмент резервного копирования информационной базы в случае, если для хранения таблиц информационной базы используется сервер баз данных.

MS SQL Server 6.5 также имеет встроенные средства резервного копирования базы данных. Копии могут сохраняться в файл на жестком диске или на магнитную ленту. Для MS SQL Server различаются две разновидности операции резервного копирования: дамп всей базы данных и дамп журнала транзакций.

Такое разделение операций позволяет получать резервные копии высокой степени актуальности. Из дампа всей базы данных можно восстановить полное состояние базы данных на момент выполнения операции копирования. Резервное копирование журнала транзакций позволяет сохранять только изменения базы данных, происшедшие с момента выполнения предыдущего дампа базы данных или журнала транзакций, и выполняется очень быстро. Время и периодичность выполнения операций может планироваться. Операции сохранения всей базы данных и журнала транзакций могут выполняться без прекращения нормальной работы пользователей с базой данных. Как правило, рекомендуется такой распорядок выполнения операций резервного копирования базы данных, когда сохранение всей базы данных производится в выходные дни и сохранение журнала транзакций – ежедневно (при круглосуточной работе предприятия – по окончании смены).


1С-Предприятие. Документация | Технология создания внешних компонент. Введение.

Введение

Система программ 1С:Предприятие предназначена для решения самых разнообразных задач автоматизации деятельности организаций Она обладает мощными средствами конфигурирования, которые позволяют штатными средствами настроить систему на особенности обработки информации в конкретной организации. В тоже время, 1С:Предприятие является открытой системой. Для связи с другими программами могут использоваться встроенные средства загрузки-выгрузки информации в текстовом формате и в формате DBF, система поддерживает современные стандарты интеграции программ DDE, OLE Automation Однако для специальных задач интеграции может потребоваться более тесное взаимодействие между 1С:Предприятием и другими программами

Для решения таких задач разработана "Технология создания внешних компонент" Данная технология позволяет создавать программы, которые будут динамически подключаться и тесно взаимодействовать с системой 1С:Предприятие, расширяя ее возможности Внешние компоненты позволяют решать широкий спектр специальных задач, в частности, задачи, связанные с использованием различного торгового оборудования совместно с 1С:Предприятием.

В комплект поставки входит данное руководство и набор примеров реализации внешних компонент с помощью различных программных средств.

В данном руководстве описана технология создания внешних компонент версии 1.0 и 2.0.

Версии компонент

Технология создания внешних компонент версии 2 0 является развитием версии 1 0 и предназначена для использования с 1 С Предприятием 7 7 Все возможности, описанные в данной книге, относятся к версиям 1 0 и 2 0, если нет явного указания, что данная возможность относится исключительно к версии 2 0 Ниже приводится информация о совместимости различных версий внешних компонент и 1 С Предприятия между собой Версия компоненты определяется по возвращаемому методом Getlnfo значению (см стр ).

Компоненты версии 1.0 полностью совместимы с 1С:Предприятием 7.5 и 7.7. При работе компоненты с 1С:Предприятием 7.7 создание нескольких однотипных объектов невозможно (см стр *).

Компоненты версии 2.0 полностью совместимы с 1С:Предприятием 7.7. Эти компоненты могут работать с 1С:Предприятием 7.5 при условии, что они используют только возможности версии 1.0. При работе компоненты с 1С:Предприятием 7.5 создание нескольких однотипных объектов невозможно.

1С:Предприятие 7.5 может использовать внешние компоненты версии 1.0 Компоненты версии 2.0 могут быть использованы при условии, что они не задействуют возможностей версии 2.0.

1С:Предприятие 7 .7 может использовать внешние компоненты версий 1.0 и 2.0 При использовании компоненты версии 1.0 создание нескольких однотипных объектов невозможно.

Что Вы должны знать

Настоящая методика предназначена для специалистов, выполняющих конфигурирование 1С:Предприятия и решающих задачи, выходящие за возможности встроенных в 1С:Предприятие механизмов.

Для работы с методикой необходимо знание основ OLE (ActiveX). Желательно, также знакомство с используемыми средами программирования.

Внимание! Для работы внешних компонент, поставляемых в этом комплекте, необходимы дополнительные библиотеки, входящие в поставку используемых сред программирования. Компонента, реализованная на Visual C++, использует только библиотеки, входящие в поставку 1С:Предприятия, в отличии от компонент реализованных на VisualBasic или Delphi.

Структура руководства

В первой части настоящей методики описывается стандарт, которому должна следовать внешняя компонента при работе с 1С:Предприятием В этой части также приводится описание интерфейсов, предоставляемых 1С:Предприятием внешней компоненте.

Во второй части разбираются примеры построения внешних компонент в различных средах программирования . Используются следующие программные продукты Visual C++ 5.0 и 6.0, VisualBasic 5.0 и 6. 0 (Enterprise Edition), Borland Delphi 3.0 и 4.0 Для каждой среды разобраны структура и код примера и сложные детали реализации.

Третья часть описывает основы OLE и может быть использована как краткая справка по OLE. В ней также приводится список литературы, которую Вы можете использовать при дальнейшем изучении OLE.


1С-Предприятие. Документация | Технология создания внешних компонент. Часть 1 - Внешние компоненты

Часть 1. Внешние компоненты

  • Внешние компоненты
  • Средства встроенного языка 1С:Предприятия, предназначенные для работы с внешними компонентами.
    • ЗагрузитьВнешнююКомпоненту
    • ПодключитьВнешнююКомпоненту
    • ОбработкаВнешнегоСобытия
  • Разработка внешней компоненты
    • Создание OLE-объекта внешней компоненты
    • Инициализация и выгрузка компоненты
      • HRESULT Init(IDispatch *pBackConnection)
      • HRESULT Done(void)
      • HRESULT GetInfo(SAFEARRAY **pInfo)
  • Страница свойств
  • Расширение встроенного языка
    • HRESULT RegisterExtensionAs(BSTR *pExtensionName):
  • Свойства расширения
    • HRESULT GetNProps(long *plProps)
    • HRESULT FindProp(BSTR pszPropName,long*plPropNum)
    • HRESULT GetPropName(long lPropNum,long lAliasNum,BSTR *pPropName)
    • HRESULT GetPropVal(long lPropNum,VARIANT *pvPropVal)
    • HRESULT SetPropVal(long lPropNum, VARIANT *pvPropVal)
    • HRESULT IsPropReadable(long lPropNum, BOOL *pboolPropReadable)
    • HRESULT IsPropWritable(long lPropNum, BOOL *pboolPropWritable)
  • Методы расширения
    • HRESULT GetNMethods(long *plMethods)
    • HRESULT FindMethod(BSTR bstrMethodName,long *plMethNum)
    • HRESULT GetMethodName(long lMethodNum, long lAliasNum,BSTR *pbstrMethName)
    • HRESULT GetNParams(long lMethodNum, long *plMethParams)
    • HRESULT GetParamDefValue(long lMethodNum, long lParamNum,VARIANT *pvParamDefVal)
    • HRESULT HasRetVal(long lMethodNum,BOOL *pboolHasRetVal)
    • HRESULT CallAsProc(long lMethodNum, SAFEARRAY **pVars)
    • HRESULT CallAsFunc(long lMethodNum, VARIANT *pRetValue, SAFEARRAY**pVars)
  • Использование типа OLE VARIANT при обмене данными
  • Вызов функции компоненты
  • Возвращение значений из компоненты
  • Вызов метода объекта 1С:Предприятия из компоненты
  • OLE интерфейсы 1C:Предприятия
  • Сохранение параметров объекта компоненты
    • HRESULT RegisterProfileAs(BSTR bstrProfileName)
  • Информационные сообщения о работе объекта
    • HRESULT AddError(BSTR pszPropName, LPEXCEPINFO pExcepInfo)
  • Внешние события
    • HRESULT SetEventBufferDepth(long lDepth)
    • HRESULT GetEventBufferDepth(long *plDepth)
    • HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData)
    • HRESULT CleanBuffer()
  • Работа с строкой состояния
    • HRESULT SetStatusLine(BSTR bstrStatusText)
    • HRESULT ResetStatusLine()
  • Создание окон в среде 1С:Предприятия
    • Модальные диалоги
    • Немодальные диалоги
    • Формы
    • HRESULT GetAppMainFrame(HWND *pHWnd)
    • HRESULT GetAppMDIFrame(HWND *pHWnd)
    • HRESULT CreateAddInWindow(BSTR bstrProgID, BSTR bstrTitle, long lStyles,long lExStyles, RECT *rctSize, long lFlags, HWND *pHwnd, IDispatch **pDisp)
  • Доступ к 1С:Предприятию через механизм OLE Automation
  • Доступ к методам интерфейсов 1С:Предприятия через OLE Automation

Внешние компоненты

Внешняя компонента -программный модуль, расширяющий функциональность 1С:Предприятия. Внешние компоненты являются OLE серверами и вследствие этого могут быть написаны с использованием произвольных инструментов разработки программ, поддерживающих создание OLE объектов.

Возможности внешней компоненты:

  • расширение встроенного языка 1С:Предприятия (добавление новых агрегатных объектов);
  • добавление страницы свойств в параметры 1С:Предприятия;
  • сохранение параметров внешней компоненты через механизмы сохранения параметров 1С:Предприятия;
  • создание дополнительных окон в окне 1С:Предприятия (версия 2.0);
  • доступ к функциям 1С:Предприятия через OLE Automation (версия 2.0);
  • вызов процедуры обработки событий, контролируемых внешней компонентой;
  • доступ к строке состояния 1С:Предприятия.

Внешние компоненты используются в 1С:Предприятии для расширения его возможностей при выполнении различных задач. В частности, в число таких задач входит вызов функции из библиотеки (DLL), использование различного торгового оборудования, нестандартное отображение данных и т.д. Все

внешние компоненты следуют единому стандарту, поэтому при работе можно использовать как уже существующие компоненты, так и разрабатывать новые. В данную поставку входят шаблоны и примеры для различных сред программирования, которые позволяют упростить разработку новых компонент.

Средства встроенного языка 1С:Предприятия, предназначенные для работы с внешними компонентами.

ЗагрузитьВнешнююКомпоненту

Загружает внешнюю компоненту, создает соответствующие OLE объекты и подключает их к 1С:Предприятию .

Синтаксис:

ЗагрузитьВнешнююКомпоненту ( <ИмяФайлаКомпоненты>)

Англоязычный синоним:

LoadAddIn

Параметры:

ИмяФайлаКомпоненты

имя файла внешней компоненты. ИмяФайлаКомпоненты иметь вид "Имя.Расширение" и не должно содержатьпуть. Файл компоненты ищется последовательно в каталоге пользователя, в каталоге информационной базы, и в каталоге c исполняемым файлом 1С:Предприятия.

Возвращаемое значение:

0 - при загрузке компоненты произошла ошибка

1 - компонента успешно загружена

Описание:

Внешние компоненты загружаются функцией встроенного языкаЗагрузитьВнешнююКомпоненту. Файл внешней компоненты должен быть динамически загружаемой библиотекой (например, DLL или OCX), то есть работать как InProc сервер. При загрузке внешней компоненты 1С:Предприятие вызывает функцию, если она экспортирована из внешней компоненты. Это позволяет просто переносить компоненты между компьютерами без дополнительной регистрации их как OLE серверов. При возникновении ошибок при загрузке 1С:Предприятие выдает информацию об ошибке в окно сообщений.

О создании OLE объекта внешней компоненты при загрузке - см. Разработка внешней компоненты, стр. * .

ПодключитьВнешнююКомпоненту

Создает OLE объекты внешней компоненты и подключает их к 1С:Предприятию.

Синтаксис:

ПодключитьВнешнююКомпоненту ( <ИмяОбъектаКомпоненты>)

Англоязычный синоним:

AttachAddIn

Параметры:

ИмяОбъектаКомпоненты

ProgID (Programmatic Id entifier) объекта внешней компоненты. ИмяОбъектаКомпоненты должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).

Возвращаемое значение:

0 - при подключении компоненты произошла ошибка

1 - компонента успешно подключена

Описание:

Внешние компоненты подключаются функцией встроенного языка ПодключитьВнешнююКомпоненту . Внешняя компонента может быть как динамически загружаемой библиотекой (например, DLL или OCX), так и приложением. При возникновении ошибок при подключении 1С:Предприятие выдает информацию об ошибке в окно сообщений.

ОбработкаВнешнегоСобытия

Предопределенная процедура встроенного языка. Вызывается при возникновении сообщения от внешней компоненты.

Синтаксис:

ОбработкаВнешнегоСобытия( < Источник>, <Событие>, <Данные> )

Англоязычный синоним:

ExternEventProcessing

Параметры:

Источник | строка с наименованием источника сообщения.
Событие | строка с наименованием сообщения.
Данные | строка с параметрами сообщения.

Возвращаемое значение:

отсутствует

Описание:

Процедура ОбработкаВнешнегоСобытия - предопределенная процедура обработки сообщений от внешних компонент.

Процедура может быть описана в любом модуле системы 1С:Предприятие. При получении сообщения будет вызвана процедура ОбработкаВнешнегоСобытия, определенная в модуле активной на этот момент формы. Если в этом модуле процедура ОбработкаВнешнегоСобытия не определена, то будет вызвана процедура ОбработкаВнешнегоСобытия , определенная в глобальном модуле. Если в глобальном модуле процедура ОбработкаВнешнегоСобытия отсутствует, будет выдано сообщение об отсутствии процедуры ОбработкаВнешнегоСобытия . Процедура ОбработкаВнешнегоСобытия в глобальном модуле не ызывается,

если событие обработано в модуле активной формы.

Вызов этой процедуры синхронизирован с обработкой сообщений системой 1С:Предприятие и происходит только при отсутствии других выполняемых системой операций (проведении документов, построении отчетов и т.д.).

Разработка внешней компоненты

Создание OLE-объекта внешней компоненты

При загрузке внешней компоненты функцией ЗагрузитьВнешнююКомпоненту 1С:Предприятие определяет ProgID OLE-объекта компоненты следующим образом:

ProgID имеет вид <Vendor>.<Component>;

в качестве первой части (<Vendor>) используется строка "AddIn";

в качестве второй части (<Component>) используется строка с ID 100 из таблицы строк компоненты. Cтрока может иметь вид "Name1|Name2|...|NameN", и в этом случае будут созданы все объекты с ProgID вида "AddIn.NameX". Если такая строка отсутствует, то используется имя файла внешней компоненты без расширения.

При использовании функции ПодключитьВнешнююКомпоненту ProgID OLE-объекта компоненты передается в качестве параметра функции и также может представляться строкой вида ProgID1| ProgID2|...|ProgIDX.

Инициализация и выгрузка компоненты

Для инициализации и выгрузки компоненты используется интерфейс IInitDone. Этот интерфейс наследован от IUnknown и предназначен для инициализации объекта и завершения работы с объектом.

HRESULT Init(IDispatch *pBackConnection)

Параметры:

pBackConnection

указатель на интерфейс 1С:Предприятия.

Возвращаемое значение:

E_FAIL - при инициализации произошла ошибка

S_OK - инициализация прошла успешно

Описание:

При загрузке 1С:Предприятие инициализирует объект компоненты, вызывая метод Init и передавая указатель на IDispatch. Объект не должен вызывать Release этого интерфейса, но может сохранить этот указатель для дальнейшего использования. Все остальные интерфейсы 1С:Предприятия объект может получить, вызвав метод QueryInterface переданного ему интерфейса IDispatch. Объект должен возвратить S_OK, если инициализация прошла успешно, и E_FAIL при возникновении ошибки. Данный метод может использовать интерфейс IErrorLog (см. стр. * ) для вывода информации об ошибках. При этом инициализация считается неудачной, если одна из переданных структур EXCEPINFO имеет поле scode, не равное S_OK. Все переданные в IErrorLog данные обрабатываются при возврате из данного метода. В момент вызова этого метода свойство AppDispatch не определено.

HRESULT Done(void)

Параметры:

отсутствуют

Возвращаемое значение:

S_OK - объект завершил работу

Описание:

1С:Предприятие вызывает этот метод при завершении работы с объектом компоненты. Объект должен возвратить S_OK. Этот метод вызывается независимо от результата инициализации объекта (метод Init).

HRESULT GetInfo(SAFEARRAY **pInfo)

Параметры:

pInfo

Двойной указатель на массив структур VARIANT . Память для массива выделяется 1С:Предприятием.

Возвращаемое значение:

S_OK - информация о компоненте возвращена

Описание:

1С:Предприятие вызывает этот метод для получения информации о компоненте. В текущей версии 2.0 компонентной технологии в элемент с индексом 0 необходимо записать версию поддерживаемой компонентной технологии в формате V_I4 - целого числа, при этом старший номер версии записывается в тысячные разряды, младший номер версии - в единицы. Например: версия 3.56 - число 3560. В настоящее время все объекты внешних компонент могут поддерживать версию 1.0 (соответствует числу 1000) или 2.0 (соответствует 2000). Память для pInfo выделяется 1С:Предприятием. Метод должен возвращать S_OK.

Объект внешней компоненты обязан реализовать этот интерфейс. При его отсутствии компонента не будет загружена.

Страница свойств

Для добавления страницы свойств объекта компоненты в диалог настройки параметров 1С:Предприятия используются интерфейсы IPropertyPage или ISpecifyPropertyPages (объект может реализовать любой из этих интерфейсов). Каждый объект может добавитьодну страницу свойств. Странице свойств при инициализации передается указатель на интерфейс Iunknown соответствующего объекта внешней компоненты. Интерфейсы IPropertyPage, ISupplyPropertyPages являются стандартными для OLE, поэтому их описание Вы сможете найти в документации на OLE и книгах, приводимых в списке

литературы.

Расширение встроенного языка

Для расширения встроенного языка компонента должна реализовать интерфейс ILanguageExtender . Этот интерфейс унаследован от IUnknown и предназначен для расширения встроенного языка 1С:Предприятия. Для использования этого расширения необходимо вызвать функцию СоздатьОбъект, передав ей строку вида "AddIn._ИмяРасширения_", где _ИмяРасширения_ возвращается методом этого интерфейса Затем можно использовать созданный объект, вызывая его методы и свойства.

В отличие от предыдущей версии версия 2.0 позволяет создавать несколько объектов одного типа "AddIn._ИмяРасширения_", однако компонента должна явно указать поддержку версии 2.0 в методе GetInfo. В противном случае допускается создание только одного объекта.

HRESULT RegisterExtensionAs(BSTR *pExtensionName):

Параметры:

pExtensionName

Наименование расширения встроенного языка 1С:Предприятия.

Возвращаемое значение:

S_OK

Описание:

В переменную pExtensionName помещается наименование расширения. Память для строки выделяется объектом компоненты стандартными системными функциями для работы с OLEстроками (например, SysAllocString. 1С:Предприятие освобо ж дает эту память вызовом SysFreeString).

Свойства расширения

Первое свойство имеет порядковый номер 0.

HRESULT GetNProps(long *plProps)

Параметры:

plProps

Указатель на переменную, содержащую при возврате количество свойств расширения.

Возвращаемое значение:

S_OK

Описание:

Возвращает количество свойств данного расширения, 0 - при отсутствии свойств. Память для переменной plProps выделяется 1С:Предприятием.

HRESULT FindProp(BSTR pszPropName,long*plPropNum)

Параметры:

pszPropName | Наименование свойства.
plPropNum | Указатель на переменную, содержащую при возврате порядковый номер свойства.

Возвращаемое значение:

S_OK - операция завершена успешно

S_FALSE - свойство с именем pszPropName в данном расширении отсутствует

Описание:

Возвращает порядковый номер свойства с именем pszPropName; -1, если свойство не найдено. Память для переменной plPropNum выделяется 1С:Предприятием.

HRESULT GetPropName(long lPropNum,long lAliasNum,BSTR *pPropName)

Получить имя свойства по порядковому номеру

Параметры:

lPropNum | Порядковый номер свойства.
lAliasNum | Язык наименования: 0 - английское наименование; 1 - локальное наименование.
pPropName | Указатель на строку, содержащую при возврате наименование свойства.

Возвращаемое значение:

S_OK - операция завершена успешно

S_FALSE - свойство с номером lPropNum в данном расширении отсутствует

Описание:

В переменную pPropName помещается имя свойства с порядковым номером lPropNum ; если свойство с таким номером отсутствует, в pPropName помещается пустая строка. Память для строки выделяется объектом компоненты стандартными системными функциями для работы с OLEстроками (например,

SysAllocString. 1С:Предприятие освобо ж дает эту память вызовом SysFreeString ) .

HRESULT GetPropVal(long lPropNum,VARIANT *pvPropVal)

Получить значение свойства по его порядковому номеру.

Параметры:

lPropNum | Порядковый номер свойства.
pvPropVal | Указатель на структуру VARIANT, содержащую при возврате значение свойства.

Возвращаемое значение:

S_OK - операция завершена успешно

S_FALSE - свойство с номером lPropNum в данном расширении отсутствует или недоступно для чтения.

Описание:

В переменную pvPropVal помещается значение свойства с порядковым номером lPropNum ; если свойство с таким номером отсутствует или недоступно для чтения, должен иметь тип VT_EMPTY.

HRESULT SetPropVal(long lPropNum, VARIANT *pvPropVal)

Присвоить свойству новое значение.

Параметры:

lPropNum | Порядковый номер свойства.
pvPropVal | Структура VARIANT, содержащая новое значение свойства.

Возвращаемое значение:

S_OK - операция завершена успешно

S_FALSE - свойство с номером lPropNum в данном расширении отсутствует или недоступно для записи.

Описание:

Переменная pvPropVal содержит значение свойства с порядковым номером lPropNum ; если свойство с таким номером отсутствует, недоступно для чтения или тип переданного pvPropVal не приводится к необходимому, метод должен возвратить S_FALSE.

HRESULT IsPropReadable(long lPropNum, BOOL *pboolPropReadable)

Получить флаг доступности свойства для чтения.

Параметры:

lPropNum | Порядковый номер свойства.
pboolPropReadable | Указатель на переменную, содержащую при возврате флаг возможности чтения свойства.

Возвращаемое значение:

S_OK - операция завершена успешно.

S_FALSE - свойство с номером lPropNum в данном расширении отсутствует.

Описание:

В переменную pboolPropReadable помещается флаг возможности чтения свойства с порядковым номером lPropNum : FALSE(0) - свойство недоступно для чтения, TRUE(1) - свойство допускает чтение. Если свойство с таким номером отсутствует, метод должен возвращать S_FALSE.

HRESULT IsPropWritable(long lPropNum, BOOL *pboolPropWritable)

Получить флаг доступности свойства для записи.

Параметры:

lPropNum | Порядковый номер свойства.
pboolPropWritable | Указатель на переменную, содержащую при возврате флаг возможности записи свойства.

Возвращаемое значение:

S_OK - операция завершена успешно.

S_FALSE - свойство с номером в данном расширении отсутствует.

Описание:

В переменную pboolPropWritable помещается флаг возможности записи свойства с порядковым номером lPropNum : FALSE(0) - свойство недоступно для записи, TRUE(1) - свойство допускает запись. Если свойство с таким номером отсутствует, метод должен возвращать S_FALSE.

Методы расширения

Первый метод имеет порядковый номер 0. Первый параметр метода имеет порядковый номер 0.

HRESULT GetNMethods(long *plMethods)

Получить количество методов расширения

Параметры:

plMethods

Указатель на переменную, содержащую при возврате количество методов расширения языка.

Возвращаемое значение:

S_OK

Описание:

В переменную plMethods помещается количество методов данного расширения, 0 - при отсутствии методов.

HRESULT FindMethod(BSTR bstrMethodName,long *plMethNum)

Найти порядковый номер метода по его имени.

Параметры:

bstrMethodName | Имя метода
plMethNum | Указатель на переменную, содержащую при возврате порядковый номер метода с именем methodName.

Возвращаемое значение:

S_OK

Описание:

В переменную plMethNum помещается порядковый номер метода с именем bstrMethodName ; -1 - при отсутствии метода.

HRESULT GetMethodName(long lMethodNum, long lAliasNum,BSTR *pbstrMethName)

Получить имя метода по его порядковому номеру.

Параметры:

lMethodNum | Порядковый номер метода
lAliasNum | Язык имени метода: 0 - английское наименование; 1 - локальное наименование.
pbstrMethName | Указатель на строку, содержащую при возврате имя метода

Возвращаемое значение:

S_OK - операция завершена успешно

S_FALSE - метод с номером в данном расширении отсутствует

Описание:

В переменную помещается имя свойства с порядковым номером; если свойство с таким номером отсутствует, в помещается пустая строка. Память для строки выделяется объектом компоненты стандартными системными функциями для работы с OLEстроками (например, SysAllocString. 1С:Предприятие освобо ждает эту память вызовом SysFreeString) .

HRESULT GetNParams(long lMethodNum, long *plMethParams)

Получить количество параметров метода.

Параметры:

lMethodNum | Порядковый номер метода
plMethParams | Указатель на переменную, содержащую при возврате количество параметров метода

Возвращаемое значение:

S_OK - операция завершена успешно

S_FALSE - метод с номером в данном расширении отсутствует

Описание:

В переменную plMethParams помещается количество параметров метода с порядковым номером lMethodNum ; если свойство с таким номером отсутствует или не имеет параметров, в помещается 0. Память для переменной выделяется 1С:Предприятием .

HRESULT GetParamDefValue(long lMethodNum, long lParamNum,VARIANT *pvParamDefVal)

Получить значение параметра метода по умолчанию.

Параметры:

lMethodNum | Порядковый номер метода.
lParamNum | Порядковый номер параметра.
pvParamDefVal | Указатель на структуру VARIANT, содержащую при возврате значение параметра по умолчанию.

Возвращаемое значение:

S_OK - операция завершена успешно (вне зависимости от наличия у параметра значения по умолчанию)

S_FALSE - метод или параметр метода отсутствует

Описание:

В переменную pvParamDefVal помещается значение по умолчанию параметра lParamNum метода с порядковым номером lMethodNum . В pvParamDefVal помещается тип VT_EMPTY, если метод с таким номером отсутствует, не имеет параметра с номером или параметр не имеет значения по умолчанию. Память для переменной выделяется 1С:Предприятием .

HRESULT HasRetVal(long lMethodNum,BOOL *pboolHasRetVal)

Получить флаг наличия возвращаемого значения.

Параметры:

lMethodNum | Порядковый номер метода.
pboolHasRetVal | Указатель на переменную, содержащую при возврате флаг наличия возвращаемого значения.

Возвращаемое значение:

S_OK - операция завершена успешно

S_FALSE - метод отсутствует

Описание:

В переменную pboolHasRetVal помещается флаг наличия возвращаемого значения у метода с порядковым номером lMethodNum : TRUE для методов с возвращаемым значением и FALSE в противном случае. Память для переменной выделяется 1С:Предприятием .

HRESULT CallAsProc(long lMethodNum, SAFEARRAY **pVars)

Вызов метода без возвращаемого значения (процедуры).

Параметры:

lMethodNum | Порядковый номер метода.
pVars | Двойной указатель на массив структур VARIANT, содержащий значения параметров метода. Если метод не имеет параметров, то содержит NULL.

Возвращаемое значение:

S_OK - соответствующий метод вызван, ошибок не произошло.

E_FAIL - соответствующий метод вызван, произошла ошибка времени исполнения (runtime error). Исполнение модуля прекращается.

S_FALSE - отсутствует метод, соответствующий переданному lMethodNum.

Описание:

Выполняется метод с порядковым номером lMethodNum . Если метод возвращает E_FAIL, возникает ошибка времени выполнения и выполнение модуля 1С:Предприятия прекращается. Память для массива параметров выделяется 1С:Предприятием.

HRESULT CallAsFunc(long lMethodNum, VARIANT *pRetValue, SAFEARRAY**pVars)

Вызов метода с возвращаемым значением (функции).

Параметры:

lMethodNum | Порядковый номер метода.
pRetValue | Указатель на структуру VARIANT, при возврате содержащую возвращаемое значение.
pVars | Двойной указатель на массив структур VARIANT, содержащий значения параметров метода. Если метод не имеет параметров, то содержит NULL.

Возвращаемое значение:

S_OK - соответствующий метод вызван, ошибок не произошло.

E_FAIL - соответствующий метод вызван, произошла ошибка времени исполнения (runtime error). Исполнение модуля прекращается.

S_FALSE - отсутствует метод, соответствующий переданному lMethodNum.

Описание:

Выполняется метод с порядковым номером lMethodNum . Если метод возвращает E_FAIL, возникает ошибка времени выполнения и выполнение модуля 1С:Предприятия прекращается. Память для массива параметров и возвращаемого значения выделяется 1С:Предприятием.

Использование типа OLE VARIANT при обмене данными

Вызов функции компоненты

неопределенное значение соответствует VT_EMPTY;

целочисленное значение соответствует VT_I4 и помещается в lVal;

дробное значение соответствует VT_R8 и помещается в dblVal;

Следует учесть, что внутреннее представление может иметь точность,превосходящую точность типа double (около 15 цифр после запятой), поэтому при конвертации может происходить потеря точности.

значение даты соответствует VT_DATE и помещается в date;

строковое значение соответствует VT_BSTR и помещается в bstrVal;

значения перечисление, субконто, документ, алгоритм, календарь, счет соответствуют VT_DISPATCH и помещаются в pdispVal. Указатель на Idispatch освобождается непосредственно после возврата из функции компоненты вызовом Release. Для указателя на IDispatch выполняется AddRe f . При использовании объектов 1С:Предприятия в компоненте необходимо определить DISPIDы методов объекта (вызвав GetIDsOfNames) и затем вызвать Invoke;

значение OLE объекта соответствует VT_DISPATCH и помещается в pdispVal. Для указателя на IDispatch выполняется AddRef.

При конвертации OLE объекта в IDispatch проверяются ситуации взаимного вызова "1С:Предприятие->Компонента->1С:Предприятие" и "Компонента->1С:Предприятие->Компонента" и все необходимые операции проводятся корректно.

Возвращение значений из компоненты

VT_EMPTY соответствует неопределенному значению. При передаче в качестве параметра метода подставляется значение параметра по умолчанию;

значения типа VT_I2, VT_I4, VT_BOOL, VT_ERROR, VT_UI1 соответствуют целочисленному значению и находятся в lVa l;

значения типа VT_R4, VT_R8, VT_CY соответствуют дробному значению и находятся в dblVal;

значение типа VT_DATE соответствует значению даты и находится в date;

значение типа VT_BSTR соответствует строковому значению и находится в bstrVal;

значение типа VT_DISPATCH соответствует значению OLE объекта и находится в pdispVal.

Типы VT_DECIMAL, VT_VARIANT, VT_UNKNOWN и VT_ARRAY не поддерживаются.

При конвертации IDispatch в OLE объект проверяются ситуации взаимного вызова "1С:Предприятие->Компонента->1С:Предприятие" и "Компонента->1С:Предприятие->Компонента" и все необходимые операции проводятся корректно.

Вызов метода объекта 1С:Предприятия из компоненты

Для вызова метода объекта необходимо вызвать метод Invoke полученного ранее интерфейса IDispatch, передав ему все необходимые параметры, в том числе номер (DISPID) вызываемого метода объекта. Этот номер можно получить из метода GetIDsOfNames интерфейса IDispatch, передав ему название метода объекта.

Соответствие между параметрами метода объекта и массивом структур VARIANT прямое: первому параметру соответствует структура с индексом 0, второму параметру - структура с индексом 1 и т.д. При передаче параметров метода объекта следует учесть, что необходимо передавать значения всех параметров, включая значения параметров, подставляемые по умолчанию. Для подстановки значений по умолчанию достаточно присвоить тип VT_EMPTY соответствующей структуре VARIANT.

OLE интерфейсы 1C:Предприятия

Все нижеприведенные интерфейсы могут быть получены вызовом QueryInterface переданного при инициализации объекта указателя на IDispatch. Их идентификаторы (IID) Вы можете найти в шаблонах, включенных в данную поставку.

Сохранение параметров объекта компоненты

Для сохранения параметров объект внешней компоненты может использовать механизмы сохранения 1С:Предприятия через интерфейс IPropertyProfile.

Этот интерфейс унаследован от интерфейса IPropertyBag , стандартного для OLE, и отличается единственным методом:

HRESULT RegisterProfileAs(BSTR bstrProfileName)

Регистрация списка параметров компоненты.

Параметры:

bstrProfileName

Наименование списка параметров компоненты.

Возвращаемое значение:

S_OK - регистрация прошла успешно.

E_FAIL - при регистрации произошла ошибка. Информация об ошибке выводится в окно сообщений.

Описание:

Регистрирует список параметров компоненты с именем bstrProfileName.

При загрузке и сохранении параметры могут быть структурированы в виде дерева - для этого при передаче в методах Read и Write имя параметра необходимо записывать в виде "Узел1\Узел2\...\УзелN\ИмяПараметра:ЗначениеПараметраПоУмолчанию". При работе с 1С:Предприятием 7.5 параметры сохраняются в регистрационной базе данных системы (Registry) под ключом HKEY_CURRENT_USER\Software\1C\1Cv7\7.5\Options, при работе с 1С:Предприятием 7.7 - под ключом

HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Options .

Информационные сообщения о работе объекта

Для сообщения пользователю информации о своей работе объект может использовать интерфейс IErrorLog, стандартный для OLE (описание метода AddError интерфейса IErrorLog приводится здесь исключительно для удобства работы). Возникающие сообщения обработываются как в течение работы

программы (при асинхронном помещении их в очередь), так и в следующих случаях: при возврате из метода инициализации Init ( см. стр. * ) и при возврате из метода расширения . Все сообщения помещаются в очередь и обрабатываются по порядку появления. Количество запоминаемых сообщений не ограничено.

HRESULT AddError(BSTR pszPropName, LPEXCEPINFO pExcepInfo)

Добавить сообщение.

Параметры:

pszPropName | В настоящей реализации параметр pszPropName игнорируется.
pExcepInfo | Указатель на структуру EXCEPINFO .

Возвращаемое значение:

S_OK - сообщение добавлено успешно.

E_OUTOFMEMORY - Недостаточно памяти.

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

Добавляет информационное сообщение при работе методов расширения языка.

Возможные коды сообщений:

#define ADDIN_E_NONE 1000

#define ADDIN_E_ORDINARY 1001

#define ADDIN_E_ATTENTION 1002

#define ADDIN_E_IMPORTANT 1003

#define ADDIN_E_VERY_IMPORTANT 1004

#define ADDIN_E_INFO 1005

#define ADDIN_E_FAIL 1006

#define ADDIN_E_MSGBOX_ATTENTION 1007

#define ADDIN_E_MSGBOX_INFO 1008

#define ADDIN_E_MSGBOX_FAIL 1009

Код сообщения помещается в wCode структуры EXEPINFO. Коды ошибок 1000 - 2000 зарезервированы.

При обработке сообщения выводится окно предупреждения (Message Box) для кодов ADDIN_E_MSGBOX_ATTENTION, ADDIN_E_MSGBOX_INFO и ADDIN_E_MSGBOX_FAIL или строка с сообщением в окне сообщений для остальных кодов. В общем случае строка имеет вид:

< Иконка > < ИсточникСообщения > : < ОписаниеСообщения > ( Код сообщения = <КодСообщения >),

где < Иконка >:

ADDIN_E_NONE - иконка отсутствует

ADDIN_E_ORDINARY -

ADDIN_E_ATTENTION -

ADDIN_E_IMPORTANT -

ADDIN_E_VERY_IMPORTANT -

ADDIN_E_INFO -

ADDIN_E_FAIL -

Иконка отсутствует, если используется код cообщения, не совпадающий с вышеперечисленными.

< ИсточникОшибки > : поле bstrSource в структуре EX CEPINFO

< ОписаниеОшибки > : поле bstrDescription в структуре EXCEPINFO

< КодОшибки > : числовой код c ообщения в десятичном виде. Код c ообщения не выводится, если используется один из вышеперечисленных кодов.

Для кодов ADDIN_E_MSGBOX_ATTENTION, ADDIN_E_MSGBOX_INFO и ADDIN_E_MSGBOX_FAIL выводится окно сообщения с кнопкой OK и иконками MB_ICONEXCLAMATION, MB_ICONINFORMATION и MB_ICONERROR соответственно.

Сообщение имеет вид:

<Источник Сообщения >:<Описание Сообщения >(Код c ообщения = <Код Сообщения >),

где <ИсточникСообщения >, < ОписаниеСообщения > и < КодСообщения> см. выше.

Внешние события

При возникновении асинхронного события (например, считывания штрих-кода) объект может использовать интерфейс IAsyncEvent для создания внешнего события в 1С:Предприятии. Интерфейс IAsyncEvent унаследован от IUnknown.

Все события помещаются в очередь и обрабатываются по порядку появления. Количество запоминаемых событий ограничено длиной очереди. При инициализации длина очереди устанавливается равной 1 и может быть изменена вызовами GetEventBufferDepth и SetEventBufferDepth .. Для каждого объекта

внешней компоненты поддерживается своя очередь событий. Обработка внешнего события производится процедурой ОбработкаВнешнегоСобытия.

HRESULT SetEventBufferDepth(long lDepth)

Установить размер очереди событий.

Параметры:

lDepth

Длина очереди сообщений.

Возвращаемое значение:

S_OK - размер очереди установлен успешно

E_FAIL - при установке размера очереди произошла ошибка

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

Устанавливает размер очереди событий для данного объекта. Если текущее

количество событий в очереди больше устанавливаемой длины, последние

события обрезаются.

HRESULT GetEventBufferDepth(long *plDepth)

Получить размер очереди событий.

Параметры:

plDepth

Указатель на переменную, содержащую при возврате длину очереди сообщений.

Возвращаемое значение:

S_OK - размер очереди возвращен успешно

E_FAIL - при получении размера очереди произошла ошибка

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

В переменную plDepth помещается размер очереди событий для данного объекта.

HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData)

Поместить событие в очередь.

Параметры:

BstrWho | строка с наименованием источника сообщения.
BstrWhat | строка с наименованием сообщения.
BstrData | строка c параметрами сообщения.

Возвращаемое значение:

S_OK - событие помещено в очередь

E_FAIL - очередь переполнена или неизвестная ошибка

E_OUTOFMEMORY - отсутствие памяти

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

Помещает событие в очередь, записывая источник события, наименование и параметры события. При обработке события эти данные передаются процедуре ОбработкаВнешнегоСобытия. При вызове метода ExternalEvent дальнейшая обработка события происходит следующим образом: событие записывается в очередь событий (если очередь полностью занята, событие теряется), затем при отсутствии системных событий из очереди берется первое событие (если очередь не пуста) и вызывается соответствующая функция ОбработкаВнешнегоСобытия. Этот процесс повторяется для всех объектов внешних компонент. Таким образом, обработка внешних событий синхронизируется с обработкой системных событий.

HRESULT CleanBuffer()

Очищает очередь событий.

Параметры:

Отсутствуют

Возвращаемое значение:

S_OK - очередь успешно очищена

E_FAIL - при очищении очереди произошла ошибка

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

Очищает очередь событий, удаляя все присутствующие в очереди события.

Работа с строкой состояния

Для информирования пользователя о своем состоянии объект компоненты может использовать интерфейс IStatusLine. При вызове метода SetStatusLine переданный текст немедленно отображается в строке состояния. При вызове метода ResetStatusLine в строке состояния отображается стандартный текст.

HRESULT SetStatusLine(BSTR bstrStatusText)

Установить текст строки состояния.

Параметры:

bstrStatusText

Текст строки состояния.

Возвращаемое значение:

S_OK - текст отображен в строке состояния

E_FAIL - неизвестная ошибка

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

Устанавливает текст строки состояния.

HRESULT ResetStatusLine()

Установить текст строки состояния.

Параметры:

отсутствует

Возвращаемое значение:

S_OK -строка состояния успешно переинициализирована

E_FAIL - неизвестная ошибка

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

Инициализирует строку состояния.

Создание окон в среде 1С:Предприятия

Версия технологии: 2.0 и выше

Внешние компоненты могут создавать свои окна для отображения различной информации, используя интерфейс IExtWndsSupport. Компонента может создавать три типа окон: модальные диалоги, немодальные диалоги и формы.

Модальные диалоги

Модальные диалоги создаются самой компонентой, но при их создании необходимо в качестве родительского окна указать окно, возвращаемое методом GetAppMainFrame для того, чтобы диалог не воспринимался операционной системой как отдельная задача с кнопкой на полосе задач. Работа системы 1С:Предприятие приостанавливается до завершения работы с диалогом.

Немодальные диалоги

Немодальные диалоги также создаются самой компонентой, но при их создании необходимо в качестве родительского окна указать окно, возвращаемое методом GetAppMDIFrame для того, чтобы диалог не воспринимался операционной системой как отдельная задача с кнопкой на полосе задач. Диалог не останавливает работу 1С:Предприятия и по сути аналогичен формам 1С:Предприятия. Однако следует учесть, что созданный диалог не входит в список открытых окон и не появляется на панели окон, поэтому использование таких диалогов не рекомендуется (вместо них можно использовать формы самого 1С:Предприятия или формы, созданные внешней компонентой).

Формы

Формы создаются функцией CreateAddInWindow и аналогичны формам, созданным в 1С:Предприятии. При создании окна внешняя компонента передает в качестве одного из параметров ProgID OLE-объекта, поддерживающего некоторый предопределенный набор интерфейсов, описанный в технологии Активных документов (Active Documents, см. документацию по OLE). Этот объект отображается в окне 1С:Предприятия и может управляться внешней компонентой через возвращаемый интерфейс IDispatch.

От объекта, отображаемого в окне 1С:Предприятия, не требуется следование технологии внешних компонент, необходимо лишь следование стандарту на Активные документы.

HRESULT GetAppMainFrame(HWND *pHWnd)

Получить основное окно 1С:Предприятия.

Параметры:

pHWnd

указатель на дескриптор окна

Возвращаемое значение:

S_OK

Описание:

Возвращает дескриптор основного окна 1С:Предприятия.

HRESULT GetAppMDIFrame(HWND *pHWnd)

Получить окно 1С:Предприятия, являющееся родительским для форм 1С:Предприятия.

Параметры:

pHWnd

указатель на дескриптор окна

Возвращаемое значение:

S_OK

Описание:

Возвращает дескриптор окна 1С:Предприятия, содержащего формы 1С:Предприятия.

HRESULT CreateAddInWindow(BSTR bstrProgID, BSTR bstrTitle, long lStyles,long lExStyles, RECT *rctSize, long lFlags, HWND *pHwnd, IDispatch **pDisp)

Создать окно 1С:Предприятия.

Параметры:

bstrProgID | ProgID OLE-объекта, являющегося Активным документом
bstrWindowName | Заголовок окна
lStyles | Стили окна
lExStyles | Дополнительные стили окна
rctSize | Размеры окна
lFlags | Дополнительные флаги
pHwnd | Указатель на дескриптор окна
pDisp | Указатель на интерфейс Idispatch созданного Активного документа.

Возвращаемое значение:

S _OK -окно успешно создано

E_FAIL -ошибка при создании окна

Возможны другие коды возврата, сигнализирующие об ошибке.

Описание:

Создает окно 1С:Предприятия с объектом bstrProgID . Окно имеет заголовок bstrWindowName и стили lStyles и lExStyles . При передаче 0 в качестве стилей используются стили окна по умолчанию. Размеры окна указываются следующим образом: верхний левый угол rctSize обозначает верхний левый

угол создаваемого окна в координатах экрана, ширина и высота rctSize соответствуют ширине и высотеклиентской части создаваемого окна (т.е. той части, где отображается Активный документ). Параметр lFlags в настоящее время не используется и должен быть равен 0. В параметрах pHwnd и pDisp возвращаются соответственно дескриптор созданного окна и интерфейс IDispatch объекта bstrProgID. Для указателя pDisp необходимо вызвать Release.

Доступ к 1С:Предприятию через механизм OLE Automation

Версия технологии: 2.0 и выше

Переданный в методе Init указатель на IDispatch позволяет получить доступ

к 1С:Предприятию через механизм OLE Automation. Из полученного указателя

можно получить свойство AppDispatch, доступное только для чтения. Это

свойство содержит указатель на IDispatch 1C:Предприятия (не путайте с

переданным в Init). При получении указателя его необходимо освободить

вызовом Release. Visual Basic и Borland Delphi позволяют делать это

автоматически.

Свойство AppDispatch становится доступно только после полной инициализации всей системы 1С:Предприятие, поэтому в момент загрузки внешней компоненты и вызова метода Init это свойство недоступно.

Доступ к методам интерфейсов 1С:Предприятия через OLE Automation

Visual Basic имеет ограниченные возможности по работе с различными интерфейсами. Наиболее "естественным" механизмом для Visual Basic является работа с OLE Automation, для этого в VB используется тип Object, который представляет собой указатель на IDispatch. Поэтому 1С:Предприятие предоставляет возможность использовать механизм OLE Automation, передавая указатель на IDispatch в методе Init и обеспечивая вызовы методов вышеперечисленных интерфейсов через OLE Automation.

Методы, доступные через OLE Automation:

RegisterProfileAs (<ИмяСпискаПараметров>)

Read (<ИмяПеременной>,<СсылкаНаVARIANT>)

Write (<ИмяПеременной>,<СсылкаНаVARIANT>)

SetEventBufferDepth (<ДлинаОчередиСобытий>)

GetEventBufferDepth (<СсылкаНаДлинуОчереди>)

ClearEventBuffer ()

ExternalEvent(<СтрокаИсточникСобытия>,<СтрокаНаименованиеСобытия>,<СтрокаПараметрыСобытия>)

AddError(<КодСообщения>,<СтрокаИсточникСообщения>,<СтрокаОписаниеСообщения>,<КодОшибки>)

SetStatusLine (<СтрокаСостояния>)

ResetStatusLine ()

Версия 2.0 и выше:

свойство AppDispatch

GetAppMainFrame (<Указатель на дескриптор окна>)

GetAppMDIFrame (<Указатель на дескриптор окна>)

CreateAddInWindow (<ProgID>, <Заголовок окна>, <Стили окна>, <Доп. стили окна>, <Координата верхнего левого угла окна по горизонтали>, <Координата верхнего левого угла окна по вертикали>, <Ширина окна>, <Высота окна>, <Доп. флаги (всегда 0)>, <Указатель на дескриптор окна>, <Указатель на интерфейс IDispatch)


1С-Предприятие. Документация | Технология создания внешних компонент. Часть 3 - Введение в OLE

Часть 3. Введение в OLE

  • Интерфейсы в OLE
  • Объекты OLE
  • OLE Automation
  • Active Documents
  • Литература

Эта часть описывает основы OLE и не является полным руководством по OLE (ActiveX) и OLE технологиям. Для более глубокого изучения OLE Вам следует обратиться к руководствам, приведенным в списке литературы.

Интерфейсы в OLE

Центральным понятием в OLE является понятие "интерфейс". Под интерфейсом понимается некоторое множество функций, организованное по определенному стандарту. Этот стандарт называется COM (Common Object Model) и вследствие этого OLE-объекты иногда называют COM-объектами. Стандарт COM определяет таблицу функций интерфейса, называемую vtable. Эта таблица имеет фиксированную структуру и включает в себя указатели на функции данного интерфейса, что позволяет вызывать функции интерфейса по ссылке на интерфейс.

В стандарте COM определен один интерфейс, называемый IUnknown, от которого наследуются все остальные OLE интерфейсы (т.е. все интерфейсы содержат функции IUnknown). В IUnknown входят три функции:

AddRef - увеличивает счетчик ссылок объекта на 1 (см.стр. * );

Release - уменьшает счетчик ссылок объекта на 1 (см.стр. * );

QueryInterface - запрашивает интерфейс у OLE объекта.

В OLE используется большое количество различных интерфейсов, построенных по единому стандарту COM, с различными наборами функций. Каждому интерфейсу присвоен уникальный номер: GUID.

GUID (Globally Unique Id entifier) - 16-байтное число, создаваемое по специальному алгоритму. Этот алгоритм гарантирует уникальность числа "в пространстве Вселенной за время ее существования". Обычно это число записывается в виде {89ABCDEF-1234- 5678-9ABC-DEF012345678}.

Уникальный номер интерфейса называют IID (Interface Id entifier) для отличения от других идентификаторов.

Объекты OLE

Каждый OLE-объект реализует один или несколько интерфейсов для выполнения различных задач и обязательный интерфейс IUnknown. Для создания объекта и получения указателя на один из интерфейсов используются функции Win32: CoCreateInstanceEx, CoCreateInstanceFromFile, CoGetClassObject и т.д.

Одним из параметров функций является CLSID (Class Id entifier) - это GUID, используемый при создании объекта. При создании объекта система использует информацию, хранящуюся в регистрационной базе данных системы (Registry).

Эта информация организована следующим образом:

  • под ключом HKEY_CLASSES_ROOT лежит ключ, описывающий ProgID (Programmatic Id entifier) объекта. ProgID - это текстовая строка, например: Excel.Application . Под ключом ProgID находится ключ CLSID, значением которого является GUID объекта. Таким образом, ProgID - это строка, представляющая удобную для восприятия ссылку на CLSID. Преобразование ProgID в CLSID выполняется Win32 функцией CLSIDFromProgID;
  • под ключом HKEY_CLASSES_ROOT\CLSID находится ключ с именем CLSID для объекта. Под этим ключом находятся ключи, описывающие создание объекта: InProcServer32 - объект создается из DLL, LocalServer32 - объект создается из приложения, ProgIDобратная ссылка на ProgID и т.д.

Другим параметром функций при создании объекта передается IID - идентификатор необходимого интерфейса. Функции, создающие объект, возвращают указатель на запрошенный интерфейс. Указатель на этот интерфейс может быть использован для получения другого интерфейса вызовом QueryInterface.

Каждый объект поддерживает счетчик ссылок других объектов на себя. Этот счетчик изменяется вызовами AddRef и Release интерфейсов объекта. Если после очередного вызова Release счетчик ссылок достигает нуля, это означает, что ссылки на данный объект отсутствуют и он уничтожается. QueryInterface увеличивает счетчик ссылок автоматически .

OLE Automation

Технология OLE Automation основывается на одном из наиболее известных и часто используемых в OLE интерфейсов - интерфейсе IDispatch . Этот интерфейс позволяет читать и писать свойства OLE Automation объекта и вызывать его функции с произвольным списком параметров. OLE Automation объектом называется любой OLE объект, реализующий IDispatch. Для вызова функции объекта необходимо определить ее номер, затем вызывать метод Invoke интерфейса IDispatch и ей в качестве параметров передать номер вызываемой функции и массив ее параметров. Следует отличать функции OLE

Automation объекта от функций интерфейсов (в частности, IDispatch) -интерфейс имеет жесткий неизменяемый список функций, а OLE Automation объект - произвольных список свойств и функций. Наиболее широко этот интерфейс используется в языке Visual Basic, где определен тип Object - в действительности это указатель на IDispatch.

В IDispatch входят следующие функции:

GetTypeInfo, GetTypeInfoCount - функции для работы с информацией о типах (за дополнительной информацией об этих функциях и работе с типами обращайтесь к рекомендованной литературе);

GetIDsOfNames - позволяет получить номер функции объекта по ее имени;

Invoke - вызов необходимой функции по номеру.

При передаче параметров функции используется структура VARIANT. Эта структура представляет собой объединение различных типов данных и может содержать практически любое значение, используемое на практике.

Active Documents

Этот стандарт позволяет разрабатывать приложения, предназначенные для работы с документами разных видов. Активные документы составляют с главным окном приложения общее меню и систему панелей инструментов, поэтому их можно интегрировать в общем окне. Примером приложения, использующего Активные документы, является Microsoft Binder из состава Microsoft Office. Для создания Активных документов в различных средах программирования чаще всего используются Мастера (Wizards), так как структура Активного документа достаточно сложна и его создание "с нуля" затруднительно.

Литература

  • Kraig Brockschmidt "Inside OLE" (2nd edition)
  • Дэвид Чеппел "Технологии ActiveX и OLE"
  • Дейл Роджерсон "Основы COM"
  • Лоуренс Харрис "Освой самостоятельно программирование OLE за 21 день"

Также можно рекомендовать различные книги по использованным в данной методике средствам программирования (например, серии "... для чайников" или Microsoft Press "Running ..."), так как в них часто приводится необходимая информация, сопровождаемая практическими примерами.


1С-Предприятие. Документация | Описание внешней компоненты V7Plus.dll. Введение. Свойства и методы объекта V7Mail

Введение.

Свойства и методы объекта V7Mail

Введение

Свойства и методы объекта V7Mail

  • Назначение и порядок использования
  • Настройка параметров объекта
  • Тип почты
    • MAPI
    • 1C:Электронная почта
  • Описание атрибутов и методов объекта V7Mail
    • Атрибуты
      • Заголовок
      • Текст
      • ДатаОтправки
    • Методы
      • Подключиться
      • Отключиться
      • НовоеСообщение
      • ДобавитьАдрес
      • ДобавитьФайл
      • Послать
      • ВыбратьСообщения
      • ПолучитьСообщение
      • ПрочитатьСообщение
      • АдресОтправителя
      • ПолучитьФайл
      • УдалитьСообщение
  • Примеры
  • Особенности работы с различными клиентами MAPI.
    • Outlook Express 5.0.
    • Outlook 97.
    • Outlook 2000.
    • Netscape Messenger.

Введение

Внешняя компонента V7Plus.dll (релиз 001-003) состоит из четырех объектов V7Mail, V7SysInfo, V7HttpReader и XMLParser. В релиз 004 компоненты добавлен объект для работы с текстовыми файлами - V7TextFile.

Инициализация внешней компоненты может осуществляется с помощью метода ЗагрузитьВнешнююКомпоненту(<ИмяФайлаКомпоненты>)" где

<ИмяФайлаКомпоненты> - имя файла внешней компоненты "V7Plus.dll".

Если не указан пусть поиска, файл компоненты ищется последовательно в каталоге пользователя, в каталоге информационной базы, и в каталоге c исполняемым файлом 1С:Предприятия.

Свойства и методы объекта V7Mail

Назначение и порядок использования

Объект компоненты предназначен для расширения функциональности 1С:Предприятия в части работы с электронной почтой. Он позволяет работать как с программой "1C:Электронная Почта", так и с любым почтовым клиентом, работающим через MAPI (например Outlook Express, Outlook ). С помощью объекта V7Mail можно создавать, посылать и принимать сообщения, причем сообщение может иметь несколько адресатов и присоединенных файлов.

Для осуществления доступа к методам и свойствам объекта V7Mail необходимо вызвать функциюСоздатьОбъект, передав ей строку "AddIn.V7Mail" в качестве параметра, и получить ссылку на объект, которая присваивается переменной, через которую и будет осуществляться доступ.

Например:

Почта = СоздатьОбъект("AddIn.V7Mail");

Работа с почтой начинается с установки соединения с помощью метода Подключиться, который инициализирует сеанс работы с почтой. Если параметры подключения не заданы, то они берутся со страницы свойств компоненты. Для организации сеанса с параметрами подключения, отличающимися от заданных на странице свойств компоненты, необходимо указать эти параметры в методе Подключиться. Если подключение прошло успешно, можно начать работу с сообщениями.

Для инициализации процесса создания нового сообщения используется метод НовоеСообщение. Далее, с помощью метода ДобавитьАдрес можно задать один или несколько адресов, по которым будет отправлено сообщение. Формат адреса зависит от почтового клиента, выбранного в параметрах подключения. При необходимости, можно присоединить к сообщению один или несколько файлов, воспользовавшись методом ДобавитьФайл. Заголовок и текст сообщения задаются в соответствующих атрибутах сообщения.

Отправка сообщения осуществляется с помощью метода Послать. Для успешной отправки сообщения необходимо, чтобы для него был задан хотя бы один адресат. Метод Послать предоставляет возможность просмотра и редактирования сообщения перед отправкой (только в случае работы с клиентом MAPI ). Для этого необходимо передать в качестве параметра <Просмотр> 1.

Процесс приема сообщений инициализируется методом ВыбратьСообщения. Если в полученной выборке присутствует хотя бы одно сообщение - он возвращает 1, в противном случае - 0. Если выбрано хотя бы одно сообщение, то можно организовать цикл их получения с помощью метода ПолучитьСообщение, который последовательно выбирает их из полученной выборки. Если возвращаемое значение равно 0, то сообщений больше нет. После получения сообщения доступны для чтения адрес отправителя и заголовок сообщения. Для получения доступа к тексту и присоединенным файлам сообщения, его необходимо прочитать с помощью метода ПрочитатьСообщение. Этот метод изменяет статус сообщения на прочитанное, и оно не попадает в последующие выборки.

Если необходимо, чтобы сообщение попадало в последующие выборки, можно не изменять статус сообщения, передав в качестве параметра 0. Текст сообщения хранится в атрибуте Текст, а полные пути к присоединенным файлам можно получить, организовав цикл с помощью метода ПолучитьФайл. Если присоединенных файлов больше нет, метод ПолучитьФайл возвращает 0. Файлы копируются во временный каталог и удаляются при переходе на следующее сообщение (ПолучитьСообщение).

Завершается работа с почтой с помощью метода Отключиться.

Настройка параметров объекта

Настройка параметров объекта V7Mail производится в диалоге системных настроек, который вызывается при выборе пункта "Параметры" раздела меню "Сервис".

На закладке "Электронная почта" вынесены следующие настройки:

Тип почты

"MAPI" или "1C:Электронная Почта" - позволяет установить тип электронной почты, с которой будет работать компонента. Если этот параметр не задан, при инициализации сеанса работы с почтой в методе Подключиться следует указать его значение (см. описание метода Подключиться).

В зависимости от выбранного типа электронной почты на странице свойств отображаются соответствующие данному типу параметры подключения.

MAPI

Для этого типа электронной почты необходимо указать следующие параметры:

Конфигурация подключения (строковое выражение) - конфигурация подключения (например - "Outlook").

Пароль (строковое выражение) - пароль абонента.

Указывать параметры не обязательно, т.к. если они не заданы или заданы неправильно, то при инициализации сеанса работы с почтой методом Подключиться без параметров выбирается конфигурация подключения, заданная по умолчанию почтовым клиентом "MAPI".

Если нужно организовать сеанс работы с почтой с параметрами подключения, отличными от заданных в конфигурации подключения клиента MAPI, то нужно задать эти параметры на странице свойств компоненты ("Сервис/Параметры/Электронная почта") или в методе Подключиться.

1C:Электронная почта

Для этого типа электронной почты необходимо указать следующие параметры:

Имя пользователя (строковое выражение) - почтовое имя абонента в системе "1С:Электронная Почта" (например - "ИМЯ.УЗЕЛ", где Имя - локальное имя пользователя, УЗЕЛ - наименование почтового узла).

Пароль (строковое выражение) - пароль абонента в системе "1С:Электронная Почта".

Каталог почтового узла (строковое выражение) - путь к сетевому почтовому узлу (диск должен быть обязательно подключен).

В случае использования программы "1С:Электронная Почта" параметры подключения должны быть обязательно определены либо на странице свойств компоненты, либо при инициализации сеанса работы с почтой с помощью метода Подключиться. Все параметры являются обязательными и не могут быть пропущены. При нажатии кнопки Применить компонента пытается установить соединение с почтовым узлом и, если соединение установлено, сохраняет параметры подключения.

В случае использования программы "1С:Электронная Почта" необходимо дополнительно использовать dll-файлы "1cml32.dll" и "unizip32.dll", которые следует поместить в каталог с файлом программы (наПример: "C:\Program Files\1cv77\BIN") или каталог базы данных.

Внимание!!! Если до использования метода Подключить уже запущена программа "1C:Электронная Почта", соединение с почтовым узлом не может быть установлено, а в табло сообщений об этом выводится соответствующее сообщение.

Описание атрибутов и методов объекта V7Mail

Атрибуты

Заголовок

Синтаксис:

Заголовок

Англоязычный синоним:

Subject

Описание:

Заголовок сообщения (строковое выражение).

Текст

Синтаксис:

Текст

Англоязычный синоним:

Text

Описание:

Текст сообщения (строковое выражение).

ДатаОтправки

Синтаксис:

ДатаОтправки

Англоязычный синоним:

DatеSend

Описание:

Дата отправки письма в формате "ГГГГ/ММ/ДД ЧЧ:ММ", где ГГГГ - год, ММ - месяц, ДД - день; ЧЧ - час, ММ - минута отправки письма.

Методы

Подключиться

Инициализация сеанса работы с почтой

Синтаксис:

Подключиться()

Подключиться("1C", <ИмяАбонента>, <Пароль>, <КаталогПочтовогоУзла>)

Подключиться("MAPI", <КонфигурацияПодключения>, <Пароль>)

Англоязычный синоним:

Logon

Параметры:

<ИмяАбонента> (строковое выражение) - почтовое имя абонента в системе "1С:Электронная Почта"

<Пароль> (строковое выражение) - пароль

<КаталогПочтовогоУзла> (строковое выражение) - каталог почтового узла (диск должен быть обязательно подключен)

<КонфигурацияПодключения> (строковое выражение) - название используемой конфигурации подключения

Возвращаемое значение:

Нет

Описание:

1.Метод Подключиться инициализирует сеанс работы с почтой в соответствии с выбранным на закладке свойств компоненты типом почты и параметрами подключения.

2.Метод Подключиться инициализирует сеанс работы с "1С:Электронная Почта" с выбранными параметрами подключения.

3.Метод Подключиться инициализирует сеанс работы с почтой MAPI с соответствующими параметрами подключения и паролем.

Отключиться

Завершить сеанса работы с почтой

Синтаксис:

Отключиться()

Англоязычный синоним:

Logoff

Параметры:

Нет

Возвращаемое значение:

Нет

Описание:

Метод Отключиться завершает сеанс работы с почтой инициализированный методом Подключиться.

НовоеСообщение

Создать новое сообщение

Синтаксис:

НовоеСообщение()

Англоязычный синоним:

NewMessage

Параметры:

Нет

Возвращаемое значение:

Нет

Описание:

Метод НовоеСообщение инициализирует создание нового сообщения. После инициализации происходит заполнение его реквизитов с последующим вызовом метода Послать.

ДобавитьАдрес

Добавляет адрес рассылки письма

Синтаксис:

ДобавитьАдрес(<Адрес>)

Англоязычный синоним:

AddAddress

Параметры:

<Адрес> (строковое выражение) - почтовый адрес

Возвращаемое значение:

Нет

Описание:

Метод ДобавитьАдрес добавляет адрес в список адресов получателей данного сообщения, созданного методом НовоеСообщение. Адрес формируется в соответствии с выбранным типом ЭП.

ДобавитьФайл

Добавляет файл к письму

Синтаксис:

ДобавитьФайл(<ИмяФайла>)

Англоязычный синоним:

AddFile

Параметры:

<ИмяФайла> (строковое выражение) - значение полного пути к добавляемому файлу

Возвращаемое значение:

Нет

Описание:

Метод ДобавитьФайл позволяет добавить имя нового файла в список присоединенных файлов сообщения, созданного методом НовоеСообщение. Файл должен существовать. В случае "1C:Электронная Почта" диск, на котором находится файл (диск должен быть обязательно подключен).

Послать

Послать сообщение

Синтаксис:

Послать(<Просмотр>)

Англоязычный синоним:

Send

Параметры:

<Просмотр> числовое значение

0 - не отображать окно редактирования сообщения перед отправкой (значение по умолчанию)

1 - отображает окно редактирования и позволяет просмотреть и отредактировать сообщение перед отправкой (только в случае работы с клиентом MAPI)

Возвращаемое значение:

Нет

Описание:

Метод Послать позволяет отправить сообщение, созданного методом НовоеСообщение. У посылаемого сообщения обязательно должен быть задан хотя бы один адресат.

ВыбратьСообщения

Инициализирует процесс получения сообщений

Синтаксис:

ВыбратьСообщения()

Англоязычный синоним:

SelectMеssages

Параметры:

Нет

Возвращаемое значение:

Числовое значение:

0 - сообщений нет;

1 - выбрано хотя бы одно сообщение.

Описание:

Метод ВыбратьСообщения инициализирует процесс получения сообщений с помощью метода ПолучитьСообщение.

ПолучитьСообщение

ПолучитьСообщение

Синтаксис:

ПолучитьСообщение()

Англоязычный синоним:

ReceiveMessage

Параметры:

Нет

Возвращаемое значение:

Числовое значение:

1 - сообщение получено успешно;

0 - сообщений больше нет.

Описание:

Метод ПолучитьСообщение выбирает следующее сообщение из выборки, открытой с помощью метода ВыбратьСообщения. Данный метод используется для организации цикла по сообщениям. После получения сообщения доступны для чтения адрес отправителя и заголовок сообщения. Содержимое сообщения (текст и присоединенные файлы) будет доступно после выполнения метода ПрочитатьСообщение.

ПрочитатьСообщение

Получить содержимое сообщения

Синтаксис:

ПрочитатьСообщение(<Флаг>)

Англоязычный синоним:

ReadMessage

Параметры:

<Флаг> Числовое значение

0 - не помечать как прочитанное

1 - помечать как прочитанное (значение по умолчанию)

Возвращаемое значение:

Нет

Описание:

Метод ПрочитатьСообщение позволяет получить содержимое сообщения (текст и присоединенные файлы), полученного с помощью метода ПолучитьСообщение. Текст сообщения хранится в атрибуте Текст, а полные пути к присоединенным файлам можно получить с помощью метода ПолучитьФайл. Файлы копируются во временную директорию и удаляются при переходе на следующее сообщение (метод ПолучитьСообщение)

Параметр <Флаг> определяет состояние сообщения после прочтения:

0 - сообщение не помечается как прочитанное и может быть повторно получено и прочитано;

1 - сообщение помечается как прочитанное и не попадает в последующие выборки.

АдресОтправителя

Получить адрес отправителя полученного сообщения

Синтаксис:

АдресОтправителя()

Англоязычный синоним:

SenderAddress

Параметры:

Нет

Возвращаемое значение:

<Адрес> (строковое выражение) - значение адреса отправителя сообщения

Описание:

Метод АдресОтправителя позволяет получить адрес, с которого было отправлено сообщение. Для того, чтобы получить адреса отправителя надо сначала получить сообщение с помощью метода ПолучитьСообщение.

ПолучитьФайл

Получить имя и полный путь к следующему присоединенному файлу полученного сообщения

Синтаксис:

ПолучитьФайл(<ИмяФайла>,<Каталог>)

Англоязычный синоним:

GetFile

Параметры (возвращаемые):

<ИмяФайла> (строковое выражение) - имя файла

<Каталог> (строковое выражение) - каталог (Disk:\Path\)

Возвращаемое значение:

Числовое значение:

1 - получено успешно;

0 - файлов больше нет

Описание:

Метод ПолучитьФайл получить имя и каталог следующего присоединенного файла сообщения, прочитанного с помощью метода ПрочитатьСообщение. Данный метод используется для организации цикла по присоединенным файлам сообщения. Если файл в дальнейшем планируется использовать, то его необходимо переименовать или скопировать в другое место. При получении следующего сообщения все присоединенные файлы данного сообщения будут удалены.

УдалитьСообщение

Удалить сообщение

Синтаксис:

УдалитьСообщение()

Англоязычный синоним:

DeleteMessage

Параметры:

Нет

Возвращаемое значение:

Нет

Описание:

Метод УдалитьСообщение удаляет текущее сообщение, полученное с помощью метода ПолучитьСообщение. (и, возможно, прочитанное с помощью метода ПрочитатьСообщение).

Примеры

Перем Почта Экспорт;

ЗагрузитьВнешнююКомпоненту("V7Plus.dll");

Почта = СоздатьОбъект("AddIn.V7Mail");

Процедура ПослатьСообщение()

Почта.Подключиться("MAPI","МояКонфигурацияПодключения, "");

Почта.НовоеСообщение();

Почта.ДобавитьАдрес("xxx@yyy.zzz");

Почта.ДобавитьФайл("invoice.txt");

Почта.Заголовок="Прайс-лист фирмы ТоргТехника";

Почта.Текст="В прилагаемом файле помещен прайс лист нашей

фирмы";

Почта.Послать();

Почта.Отключиться();

КонецПроцедуры

Процедура ПринятьСообщения()

Перем ПутьКФайлу, ИмяФайла;

ТекстДок=СоздатьОбъект("Текст");

Почта.Подключиться();

Почта.ВыбратьСообщения();

Пока Почта.ПолучитьСообщение() = 1 Цикл

АдресОтправителя=Почта.АдресОтправителя();

Заголовок=Почта.Заголовок;

Почта.ПрочитатьСообщение(0);

Текст=Почта.Текст;

Пока Почта.ПолучитьФайл(ПутьКФайлу, ИмяФайла) = 1 Цикл

ТекстДок.Открыть(ПутьКФайлу+ИмяФайла);

ТекстДок.ТолькоПросмотр(1);

ТекстДок.Показать(Заголовок);

КонецЦикла;

КонецЦикла;

Почта.Отключиться();

КонецПроцедуры

Особенности работы с различными клиентами MAPI.

Работа объекта V7Mail компоненты проверялась со следующими программами:

Outlook Express 5.0.

Не нужно задавать конфигурацию подключения - всегда выбирается конфигурация, заданная по умолчанию в Internet Accounts (меню Tools->Accounts, закладка Mail).

Outlook 97.

При отправке сообщения необходимо перед адресом добавлять "SMTP:" (например - SMTP:xxxxxx@ru);

Outlook 2000.

1. При отправке сообщения необходимо перед адресом добавлять "SMTP:" (например - SMTP:xxxxxx@ru);

2. Если E-Mail сервис сконфигурирован как "Internet Only", то прием и отправка сообщений происходит только при запущенном Outlook 2000. Рекомендуется использовать конфигурацию "Corporate or Workgroup", которая не требует для работы с сообщениями запущенного Outlook 2000.

Netscape Messenger.

При приеме с помощью объекта V7Mail сообщений, содержащих присоединенные файлы, эти файлы оказываются в составе текста сообщения. Отправка сообщений проходит нормально.


1С-Предприятие. Документация | Описание внешней компоненты V7Plus.dll. Свойства и методы объекта V7HttpReader. Атрибуты объекта V7SysInfo.

Свойства и методы объекта V7HttpReader.

Атрибуты объекта V7SysInfo.

Свойства и методы объекта V7HttpReader

  • Краткие сведения о протоколе HTTP
  • Назначение и порядок использования
  • Описание атрибутов и методов объекта V7HttpReader
    • Атрибуты
      • КоличествоПопытокАвторизации
      • СтрокаСостоянияОтвета
    • Методы
      • Пользователь
      • Получить
      • ПолучитьКакФайл
      • ПолучитьКакСтроку
      • ПолучитьКакОбъект
      • ОтправитьДляОбработки
      • УдалитьЗаголовкиЗапроса
      • УстановитьЗаголовокЗапроса
      • ПолучитьЗаголовокОтвета
      • ПолучитьСодержаниеЗаголовкаОтвета

Атрибуты объекта V7SysInfo.

  • Назначение объекта компоненты V7SysInfo.
  • Описание атрибутов объекта V7SysInfo
    • Атрибуты
      • ВерсияОС
      • Процессор
      • ОперативнаяПамять
      • РелизПрограммы
      • ИмяФайлаПрограммы
    • Методы
      • ПроверитьИмяФайла
      • СоздатьGUID

Свойства и методы объекта V7HttpReader

Краткие сведения о протоколе HTTP

World Wide Web (всемирная паутина, WWW, W3) состоит из Web-серверов и их клиентов. Каждый сервер несет ответственность за некую совокупность документов (ресурсов). Каждый ресурс во всемирной паутине имеет уникальный идентификатор ресурса (Uniform Resource Identifier, URI), однозначно адресующий указанный ресурс. Обмен информацией между клиентами и серверами происходит с помощью протокола HTTP (HyperText Transfer Protocol). Типичными примерами клиентов являются интернет-браузеры (Internet Explorer, Netscape Navigator). Рассматриваемая в этом разделе компонента также является клиентом, однако, в отличие от интернет-броузеров, не имеет средств отображения полученной от сервера информации.

Типичный цикл обмена между клиентом и сервером состоит из посылки клиентом запроса, обработки его сервером и получения клиентом ответа на запрос. Как запрос, так и ответ схожи по структуре и состоят из заголовков и содержательной части. Первый заголовок ответа, строго говоря, таковым не является, а представляет собой строку состояния ответа, т.е. результат обработки запроса в краткой форме - использованный протокол обмена, код результата, краткое вербальное описание результата. Содержательная часть содержит собственно данные обмена и используется ресурсом сервера или клиентом по собственному усмотрению, например, интернет-броузеры отображают именно содержательную часть ответа сервера.

В заключение данного раздела следует отметить, что данный документ не является учебным или справочным пособием по протоколу HTTP, он только знакомит пользователя с основными понятиями, с которыми придется столкнуться при изучении методов и свойств компоненты V7HTTPReader.

Назначение и порядок использования

Объект компоненты предназначен для расширения функциональности 1С:Предприятия в части работы с ресурсами серверов, поддерживающих обмен данными по протоколу HTTP. Объект компоненты позволяет определить параметры, которые будут использоваться для доступа к ресурсам, т.е. имя и пароль пользователя для доступа к ресурсам, требующим авторизации. При формировании запроса имеется возможность задать состав и содержание заголовков запроса. Передаваемый запрос может содержать присоединенные данные, извлекаемые при посылке запроса из файла, строки или объекта OLE-Automation, имплементирующего интерфейс IStream. После того, как получен ответ на запрос от сервера, объект компоненты позволяет разобрать заголовки ответа и сохраняет полученные данные в виде файла, переменной типа строка или объект OLE-Automation, имплементирующий интерфейс IStream.

Для работы компоненты необходимо, чтобы в системе была установлена динамически загружаемая библиотека доступа к Internet - WinInet.dll.

Для осуществления доступа методам и свойствам объекта V7HttpReader необходимо вызвать функцию СоздатьОбъект, передав ей строку "AddIn.V7HttpReader" в качестве параметра, и получить ссылку на объект, которая присваивается переменной, через которую и будет осуществляться доступ.

Например:

Соединение = СоздатьОбъект("AddIn.V7HttpReader");

Описание атрибутов и методов объекта V7HttpReader

Атрибуты

КоличествоПопытокАвторизации

Синтаксис:

КоличествоПопытокАвторизации

Англоязычный синоним:

AuthAttemptsNum

Описание:

При помощи атрибута можно задавать значение числа попыток авторизации. Если данный атрибут установлен в ноль, вывод диалога задания параметров соединения запрещен, т.е. все параметры соединения должны быть установлены методами Ошибка! Источник ссылки не найден. и Пользователь.

Пример:

Соединение.КоличествоПопытокАвторизации = 0;

СтрокаСостоянияОтвета

Синтаксис:

СтрокаСостоянияОтвета

Англоязычный синоним:

ResponseStatusLine

Описание:

По окончании обмена с сервером данное свойство содержит возвращенную сервером строку статуса, которая состоит их 3-х частей : использовавшийся при обмене протокол, код статуса, вербальное описание кода статуса.

Примеры строки состояния ответа:

HTTP/1.1 200 OK

HTTP/1.1 404 Object Not Found

Пример:

см. пример из описания метода Получить.

Методы

Пользователь

Устанавливает имя и пароль пользователя.

Синтаксис:

Пользователь(Имя,Пароль)

Англоязычный синоним:

User

Параметры:

Имя - Имя пользователя, которое будет использоваться для доступа к Web-серверу

Пароль - Пароль пользователя, который будет использоваться для доступа к Web-серверу

Возвращаемое значение:

Нет

Описание:

Применение этого метода позволяет подключаться к защищенным паролем Web-серверам автоматически, без ввода пароля вручную.

Пример:

// Установка пароля

Соединение.Пользователь("Guest", "Password");

Получить

Помещает содержимое указанного ресурса в файл или указанную переменную, в зависимости от указанного типа приемника.

Синтаксис:

Получить(URL, Приемник, ТипПриемника)

Англоязычный синоним:

Receive

Параметры:

URL Строковая переменная, Uniform Resource Locator, адрес ресурса в Internet

Приемник Переменная, в которую следует поместить содержимое Internet-ресурса ТипПриемника Числовое выражение, определяет способ сохранения содержимого Internet-ресурса. Допустимые значения приведены в таблице:

ТипПриемника | Способ сохранения
1 | Переменная Приемник должна иметь тип строки, ее содержимое интерпретируется как путь к файлу, в который следует записать содержимое ответа сервера
2 | Ответ сервера запоминается в переменной Приемник в виде строки
3 | Переменная Приемник должна иметь тип объекта OLE-Automation, имплементирующего интерфейс IStream. Cодержимое ответа будет передано этому интерфейсу, способ обработки этих данных будет зависеть от реализации OLE-объекта.

Возвращаемое значение:

Нет

Описание:

URL записывается в форме протокол://хост/путь. Протокол может быть не указан или указан, как http://. В обоих случаях будет использован протокол передачи гипертекста (HTTP). Хост определяет имя Web-сервера, на котором расположен требуемый ресурс, а путь указывает на расположение ресурса на сервере. Если в процессе обработки возникает ошибка, генерируется исключительная ситуация.

Пример:

//

Попытка

HTTPСоединение.Получить (

"http://www.ResourceServer.ru/res/price.xml",

"c:\dnld\price.xml", 1);

Исключение

Сообщить(HTTPСоединение.СтрокаСостоянияОтвета) ;

. . . . . .

КонецПопытки ;

ПолучитьКакФайл

Помещает содержимое указанного ресурса в файл.

Примечание. Данный метод является частным случаем метода Получить, если при его вызове 3-й параметр равен 1. В новых разработках рекомендуется применять метод Получить, данный метод сохранен для совместимости с конфигурациями и внешними отчетами, разработанными для более ранней версии компоненты.

Синтаксис:

ПолучитьКакФайл(URL, ИмяФайла)

Англоязычный синоним:

ReceiveAsFile

Параметры:

URL - Строковая переменная, Uniform Resource Locator, адрес ресурса в Internet

ИмяФайла Строковое выражение, имя файла, в который следует поместить содержимое

Internet-ресурса

Возвращаемое значение:

Нет

Описание:

URL записывается в форме протокол://хост/путь. Протокол может быть не указан или указан, как http://. В обоих случаях будет использован протокол передачи гипертекста (HTTP). Хост определяет имя Web-сервера, на котором расположен требуемый ресурс, а путь указывает на расположение ресурса на сервере. Если в процессе обработки возникает ошибка, генерируется исключительная ситуация.

Пример:

//

Попытка

HTTPСоединение.ПолучитьКакФайл(

"http://www.ResourceServer.ru/res/price.xml",

"c:\dnld\price.xml");

Исключение

Сообщить(HTTPСоединение.

СтрокаСостоянияОтвета) ;

. . . . . .

КонецПопытки ;

ПолучитьКакСтроку

Помещает содержимое указанного ресурса в строковую переменную.

Примечание. Данный метод является частным случаем метода Получить, если при его вызове 3-й параметр равен 2. В новых разработках рекомендуется применять метод Получить, данный метод сохранен для совместимости с конфигурациями и внешними отчетами, разработанными для более ранней версии компоненты.

Синтаксис:

ПолучитьКакСтроку(URL, СтрокаДляПриема)

Англоязычный синоним:

ReceiveAsString

Параметры:

URL - Строковая переменная, Uniform Resource Locator, адрес ресурса в Internet

СтрокаДляПриема Строковая переменная, в которую следует поместить содержимое Internet-ресурса

Возвращаемое значение:

Нет

Описание:

URL записывается в форме протокол://хост/путь. Протокол может быть не указан или указан, как http://. В обоих случаях будет использован протокол передачи гипертекста (HTTP). Хост определяет имя Web-сервера, на котором расположен требуемый ресурс, а путь указывает на расположение ресурса на сервере.

Если в процессе обработки возникает ошибка, генерируется исключительная ситуация.

Пример:

//

1С_ПрайсЛист = "";

Адрес = "http://www.ResourceServer.ru/resources/price.txt";

Соединение.ПолучитьКакСтроку(Адрес, ПрайсЛист);

ПолучитьКакОбъект

Помещает содержимое указанного ресурса в файл.

Примечание. Данный метод является частным случаем метода Получить, если при его вызове 3-й параметр равен 3. В новых разработках рекомендуется применять метод Получить, данный метод сохранен для совместимости с конфигурациями и внешними отчетами, разработанными для более ранней версии компоненты.

Синтаксис:

ПолучитьКакОбъект(URL, Объект)

Англоязычный синоним:

ReceiveAsObject

Параметры:

URL - Строковая переменная, Uniform Resource Locator, адрес ресурса в Internet

Объект Объект, который следует загрузить из содержимого Internet-ресурса

Возвращаемое значение:

Нет

Описание:

URL записывается в форме протокол://хост/путь. Протокол может быть не указан или указан, как http://. В обоих случаях будет использован протокол передачи гипертекста (HTTP). Хост определяет имя Web-сервера, на котором расположен требуемый ресурс, а путь указывает на расположение ресурса на сервере.

Объектом может быть любой OLE-объект, имплементирующий интерфейс IStream.

Если в процессе обработки возникает ошибка, генерируется исключительная ситуация.

Пример:

//

HTTPСоединение.ПолучитьКакОбъект("http://www.ResourceServer.ru/res/price.xml",XMLДокумент);

ОтправитьДляОбработки

Данный метод предназначен для организации двунаправленного обмена информацией с сервером. Его имеет смысл применять, когда адресуемый ресурс содержит код, способный обрабатывать переданные вместе с запросом данные и формировать данные, присоединяемые к ответу.

Синтаксис:

ОтправитьДляОбработки(URL, Источник, ТипИсточника [, Приемник, ТипПриемника])

Англоязычный синоним:

SendAndProcess

Параметры:

URL -Строковая переменная, Uniform Resource Locator, адрес ресурса в Internet

Источник Переменная, содержимое которой следует передать для обработки Internet-ресурсу

ТипИсточника Числовое выражение, определяет тип переменной Источник и, соответственно, способ передачи ее содержимого Internet-ресурсу.

Допустимые значения приведены в таблице:

ТипИсточника | Способ передачи
1 | Переменная Источник должна иметь тип строки, ее содержимое интерпретируется как путь к файлу, содержимое которого следует присоединить к запросу
2 | Переменная Источник должна иметь тип строки, к запросу будет присоединено ее содержимое
3 | Переменная Источник должна иметь тип объекта OLE-Automation, имплементирующего интерфейс IStream. К запросу будут присоединены данные, полученные через этот интерфейс.

Приемник Переменная, в которую следует поместить содержимое Internet-ресурса

ТипПриемника Числовое выражение, определяет способ сохранения содержимого Internet-ресурса. Допустимые значения приведены в таблице:

ТипПриемника | Способ сохранения
1 | Переменная Приемник должна иметь тип строки, ее содержимое интерпретируется как путь к файлу, в который следует записать содержимое ответа сервера
2 | Ответ сервера запоминается в переменной Приемник в виде строки
3 | Переменная Приемник должна иметь тип объекта OLE-Automation, имплементирующего интерфейс IStream. Cодержимое ответа будет передано этому интерфейсу, способ обработки этих данных будет зависеть от реализации OLE-объекта.

Возвращаемое значение:

Нет

Описание:

URL записывается в форме протокол://хост/путь. Протокол может быть не указан или указан, как http://. В обоих случаях будет использован протокол передачи гипертекста (HTTP). Хост определяет имя Web-сервера, на котором расположен требуемый ресурс, а путь указывает на расположение ресурса на сервере.

Если в процессе обработки возникает ошибка, генерируется исключительная ситуация.

Пример:

//

HTTPСоединение.ОтправитьДляОбработки(

"http://www.ResourceServer.ru/res/Active_page.asp",

XMLДокументОтпр, 3, XMLДокументПолуч, 3);

УдалитьЗаголовкиЗапроса

Метод удаляет из запроса все ранее определенные заголовки.

Синтаксис:

УдалитьЗаголовкиЗапроса()

Англоязычный синоним:

removeRequestHeaders

Параметры:

Нет

Возвращаемое значение:

Нет

Описание:

Объект компоненты сохраняет состав и содержимое заголовков запроса между обращениями к ресурсам, поэтому до начала формирования запроса, требующего иного состава или содержания заголовков, чем предыдущий, требуется вызвать данный метод.

Пример:

//

HTTPСоединение.УдалитьЗаголовкиЗапроса();

УстановитьЗаголовокЗапроса

Устанавливает значение заголовка запроса.

Синтаксис:

УстановитьЗаголовокЗапроса(ИмяЗаголовка, Содержимое)

Англоязычный синоним:

setRequestHeader

Параметры:

ИмяЗаголовка Строковое выражение, наименование устанавливаемого заголовка

Содержимое Строковое выражение, устанавливаемое значение заголовка

Возвращаемое значение:

Нет

Описание:

Если заголовок с таким именем уже существовал, изменяет его содержимое, если такого заголовка не было, новый заголовок

будет добавлен.

Пример:

//

HTTPСоединение.УстановитьЗаголовокЗапроса("MyAction","Upload");

ПолучитьЗаголовокОтвета

Возвращает наименование заголовка ответа по номеру.

Синтаксис:

ПолучитьЗаголовокОтвета(НомерЗаголовка)

Англоязычный синоним:

getResponseHeader

Параметры:

НомерЗаголовка Число, порядковый номер заголовка в ответе сервера. Нумерация начинается с 1.

Возвращаемое значение:

Строка, наименование заголовка ответа.

Пример:

//

Заголовок = HTTPСоединение.ПолучитьЗаголовокОтвета(1) ;

ПолучитьСодержаниеЗаголовкаОтвета

Возвращает содержание заголовка.

Синтаксис:

ПолучитьСодержаниеЗаголовкаОтвета(Заголовок)

Англоязычный синоним:

getResponseContents

Параметры:

//

Для Сч = 1 По HTTPСоединение.КоличествоЗаголовковОтвета() Цикл

Заголовок = HTTPСоединение.ПолучитьЗаголовокОтвета(Сч);

Содержимое = HTTPСоединение.ПолучитьСодержимоеЗаголовкаОтвета(Заголовок);

Сообщить(Заголовок + " = " + Содержимое;

КонецЦикла;

Атрибуты объекта V7SysInfo.

Назначение объекта компоненты V7SysInfo.

Объект компоненты V7SysInfo предназначена для получения информации о системе, на которой работает 1С:Предприятие. Объект позволяет определить версию операционной системы, тип процессора, объем оперативной памяти компьютера и номер релиза 1С:Предприятия. Для осуществления доступа к атрибутам объекта V7Mail необходимо вызвать функцию СоздатьОбъект, передав ей строку "AddIn.V7SysInfo" в качестве параметра, и получить ссылку на объект, которая присваивается переменной, через которую и будет осуществляться доступ к методам и свойствам полученного объекта.

Например:

Инфо = СоздатьОбъект("AddIn.V7SysInfo ");

Описание атрибутов объекта V7SysInfo

Атрибуты

ВерсияОС

Синтаксис:

ВерсияОС

Англоязычный синоним:

OSVersion

Описание:

Атрибут ВерсияОС содержит наименование версии операционной системы (строковое выражение).

Процессор

Синтаксис:

Процессор

Англоязычный синоним:

Processor

Описание:

Атрибут Процессор (строковое выражение) содержит наименование тип процессора, установленного на компьютере.

ОперативнаяПамять

Синтаксис:

ОперативнаяПамять

Англоязычный синоним:

Memory

Описание:

Атрибут ОперативнаяПамять (число) содержит информацию об объеме оперативной памяти, установленный на компьютере, в мегабайтах.

РелизПрограммы

Синтаксис:

РелизПрограммы

Англоязычный синоним:

ProgrammRelease

Описание:

Атрибут РелизПрограммы (строковое выражение) содержит информацию о номере релиза 1С:Предприятия.

ИмяФайлаПрограммы

Синтаксис:

ИмяФайлаПрограммы

Англоязычный синоним:

ProgrammFileName

Описание:

Атрибут ИмяФайлаПрограммы (строковое выражение) содержит информацию об имени файла программы (1С:Предприятия).

Методы

ПроверитьИмяФайла

Синтаксис:

ПроверитьИмяФайла(<Адрес>)

Англоязычный синоним:

CheckFileName

Параметры:

<Адрес> Строковое значение Адрес ключевого слова

Возвращаемое значение:

Строковое выражение - ключевое слово.

Описание:

Метод ПроверитьИмяФайла предназначен для получения ключевого слова по указанному адресу на диске ИТС.

Пример:

Инфо = СоздатьОбъект("AddIn.V7SysInfo");

ВерсияОперационнойСистемы = Инфо.ВерсияОС;

ТипПроцессора = Инфо.Процессор;

ОперативнаяПамятьКомпьютера = Инфо.ОперативнаяПамять;

НомерРелизаПрограммы = Инфо.РелизПрограммы;

НаименованиеФайлаПрограммы = Инфо.ИмяФайлаПрограммы;

СоздатьGUID

Синтаксис:

СоздатьGUID()

Англоязычный синоним:

CreateGUID

Параметры:

нет

Возвращаемое значение:

Строковое выражение - новый GUID.

Описание:

Метод СоздатьGUID генерирует новый GUID (Globally Unique Identifier).

Пример:

Инфо = СоздатьОбъект("AddIn.V7SysInfo");

ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID();


1С-Предприятие. Документация | Описание внешней компоненты V7Plus.dll. Анализатор XML-документов XMLParser

Анализатор XML-документов XMLParser

  • Основные понятия и термины
  • Объектная модель анализатора
  • Состав объектной модели
    • Анализатор
      • Методы
        • СоздатьДокумент
        • СоздатьКоллекциюСхем
      • Атрибуты
        • ВерсияАнализатора
        • ВерсияАнализатора
        • ВерсияБазовогоАнализатора
    • Базовый объект - узел
      • Методы
        • КоличествоПодчиненных
        • ПолучитьПодчиненныйПоНомеру
        • ДобавитьПодчиненный
        • УдалитьПодчиненный
        • ВыбратьУзлы
        • ВыбратьУзел
        • СоздатьПодчиненныйЭлемент
        • ПреобразоватьВ_ИД
      • Атрибуты
        • Тип
        • ТипСтрока
        • ПолноеНаименование
        • Наименование
        • Префикс
        • Родитель
        • ДокументВладелец
        • ТипДанных
        • Текст
        • Значение
        • ПредставлениеXML
    • Документ
      • Методы
        • Загрузить
        • Записать
        • ЗагрузитьИзСтроки
        • СоздатьУзел
        • НайтиПоИД
        • Проверить
      • Атрибуты
        • ЭлементДокумента
        • Кодировка
        • ПространстваИмен
        • Схемы
        • РазрешатьВнешниеСсылки
    • Элемент
      • Методы
        • УстановитьАтрибут
        • ПолучитьАтрибут
        • КоличествоАтрибутов
        • ПолучитьУзелАтрибута
        • УдалитьАтрибут
        • ДобавитьАтрибут
        • УстановитьПространствоИмен
      • Атрибуты
        • ИмяТега
    • Атрибут
    • КоллекцияСхем
      • Методы
        • ДобавитьСхему
        • ПолучитьСхему
        • УдалитьСхему
        • УникальныйИДРесурсаПространстваИмен
      • Атрибуты
        • КоличествоСхем
    • ВыборкаУзлов
      • Методы
        • ПолучитьУзел
      • Атрибуты
        • КоличествоУзлов

Основные понятия и термины

Язык расширяемой разметки XML (eXtensible Markup Language) был создан как средство представления произвольных структур данных. Не останавливаясь подробно на его семантике, заметим, что XML-документ может быть представлен в виде дерева узлов, каждый из которых имеет один узел-родитель. Единственным исключением является корневой узел, представляющий собой узел документа.

Узлы документа могут нести различную функциональную нагрузку, определяемую типом узла. Всю нагрузку по информационному наполнению документа несут узлы типа элемент и атрибут, в связи с чем именно узлы этих типов представляют наибольший интерес при разборе и обработке документа. Язык XML не ограничивает создателя документа в названиях элементов и атрибутов, позволяя давать им осмысленные названия. Это свойство является одной из ключевых особенностей языка. Возможность подчинять один элемент другому позволяет создавать составные структуры данных произвольной иерархической сложности.

Для работы с XML-документами применяется специальное программное обеспечение под общим собирательным названием XML-анализаторы (XML parsers). Это название не вполне точно отражает сущность этого вида ПО, оно появилось, когда анализаторы были способны лишь разобрать существующий документ. Современные анализаторы обладают более широкой функциональностью, например, с их помощью можно создавать новые документы, редактировать существующие и т.д.

Однако возможность давать элементам и атрибутам произвольные, осмысленные названия несет в себе определенную опасность. В самом

деле, предположим, что при описании некоторого товара используется элемент, называемый "Размер". Очевидно, что его содержимое

существенно различается для случаев, если описывается обувь или половая доска. XML позволяет избежать возникающих в данном случае

проблем с помощью применения пространств имен и связанных с ними префиксов. При объявлении элемента имеется возможность задать, с

каким пространством имен связан тот или иной префикс имени (или отсутствие префикса), причем эти определения будут действовать, как для данного элемента, так и для подчиненных ему, если в их объявлении не сделано соответствующего переопределения.

Одним из основных назначений XML является предоставление универсального формата обмена информацией между приложениями, работающими на разных платформах, с различными форматами данных. Для осуществления корректного обмена необходимо, чтобы приложение, осуществляющее выгрузку, создавало XML-документ, имеющий структуру, понятную приложению, осуществляющему разбор документа.

Чем же тогда отличается выгрузка информации в XML формате, а не в любом другом, например, текстовом? Принципиальная разница состоит в том, что для XML- документа имеется возможность задать правила, задающие возможный структурный состав документа и типы данных, которые должна содержать структурная единица документа, фактически создав, таким образом, новый язык на базе XML. Совокупность таких правил образует схему. Существует несколько языков, на которых можно описать такие правила. Самым перспективным на момент написания этого материала считается язык XML Schema, вытесняющий более традиционный DTD (Document Type Definition), возможности которого гораздо скромнее. Пожалуй, основным (хотя далеко не единственным) преимуществом XML Schema является то, что само описание схемы является XML-документом, написанным специальным образом, имеющим строго определенный набор элементов и атрибутов, т.е., в свою очередь, также соответствующий определенной схеме. Применение XML Schema позволяет работать и с самим документом и, при необходимости, с правилами, определяющими его содержание, с применением единого инструмента - анализатора, что предоставляет определенные удобства. Различные фрагменты документа могут соответствовать различным схемам, здесь снова на помощь приходят пространства имен. Каждому пространству имен в соответствие может быть поставлена определенная схема, в процессе разбора документа по префиксу (или его отсутствию) элемента или атрибута определяется контекст пространства имен, к которому он принадлежит. Если данному пространству имен поставлена в соответствие какая-либо схема, содержимое разбираемого элемента или атрибута проверяется с применением сформулированных в данной схеме правил. Совокупность пространств имен с указанием соответствующих им схем называется коллекцией схем.

Процесс проверки соответствия документа какой-либо схеме (схемам) называется валидацией или проверкой состоятельности. Анализаторы,

реализующие такую возможность, называются валидирующими или с проверкой состоятельности. Как правило, проверка состоятельности

осуществляется анализаторами в момент загрузки документа, однако некоторые анализаторы позволяют сделать это по запросу программы,

в произвольный момент времени. Это свойство анализатора можно использовать, например, при создании документа, чтобы проверить его состоятельность перед выгрузкой.

Объектная модель анализатора

Состав объектной модели

В состав модели входят объекты следующих типов:

Анализатор - базовый объект. Позволяет создать новые объекты типа Документ, КоллекцияСхем.

Документ \

Элемент |

Атрибут | реализуют узлы

ИнструкцияОбработки | соответствующих

Комментарий | типов

Текст |

СекцияДанных /

КоллекцияСхем - специальное средство, позволяющее при загрузке документа применить набор схем (пространств имен), или подменить определенный в документе набор.

ВыборкаУзлов - коллекция элементов и атрибутов, отобранных по совокупности признаков, заданных при создании.

"Прозрачность" объектов

Все входящие в модель объекты (кроме объекта Анализатор) расширяют или переопределяют состав свойств и методов объектов, входящих в состав DOM (Document Object Model) модели, реализованных в анализаторе XML-документов от фирмы Microsoft. Таким образом, если объект, входящий в рассматриваемую модель, не имеет свойства или метода, к которому происходит обращение в вызывающей программе, то объект переадресует вызов данного свойства или метода к объекту-родителю, входящему в состав DOM-модели. Примечание. Рекомендуется использовать свойства и методы объектов, описанные в данном документе, по возможности не прибегая к использованию свойства прозрачности объекта.

Базовый объект

Все объекты, кроме объектов Анализатор, КоллекцияСхем и ВыборкаУзлов, являются разновидностями абстрактного объекта - узел

дерева, в виде которого в объектной модели представляется весь документ. В соответствии с объектно-ориентированным подходом, все

эти объекты наследуют свойства и методы базового объекта. Поэтому, чтобы не описывать общие для всех типов узлов свойства и методы,

эти описания вынесены в отдельный раздел, где рассматриваются методы и свойства абстрактного узла, хотя объект такого типа получить невозможно, все объекты, кроме упомянутых выше, будут лишь его производными.

Примечание. При изучении свойств и методов конкретных объектов может создаться впечатление, что некоторые из них, имея другое наименование, перекрывают какие-то свойства или методы базового объекта, по сути лишь повторяя его действия. Как правило, это не так, и существуют нюансы исполнения, так как метод конкретного объекта специально создан для работы именно с этим типом объекта. В таких случаях рекомендуется использовать свойства и методы конкретного типа объекта.

Анализатор

Методы

СоздатьДокумент

Синтаксис:

СоздатьДокумент()

Англоязычный синоним:

CreateDocument

Параметры:

нет

Возвращаемое значение:

Узел документа

Описание:

Создает новый объект узла XML документа

Пример:

Документ = Анализатор.СоздатьДокумент() ;

СоздатьКоллекциюСхем

Синтаксис:

СоздатьКоллециюСхем()

Англоязычный синоним:

CreateSchemasCollection

Параметры:

нет

Возвращаемое значение:

Объект коллекции схем

Описание:

Создает новый объект коллекции схем

Пример:

КоллекцияСхемДляПроверки = Анализатор. СоздатьКоллециюСхем() ;

Атрибуты

ВерсияАнализатора

Синтаксис:

ВерсияАнализатора

Англоязычный синоним:

ParserVersion

Описание:

Возвращает версию компоненты в виде строки, только для чтения.

Пример:

Версия = Анализатор. ВерсияАнализатора ;

ВерсияБазовогоАнализатора

Синтаксис:

ВерсияБазовогоАнализатора

Англоязычный синоним:

BaseParserVersion

Описание:

Возвращает в виде строки версию базового анализатора - Microsoftв XML Parser.

Пример:

Версия = Анализатор. ВерсияБазовогоАнализатора;

Базовый объект - узел

Методы

КоличествоПодчиненных

Синтаксис:

КоличествоПодчиненных()

Англоязычный синоним:

NumberChilds

Параметры:

нет

Возвращаемое значение:

Число, количество узлов, подчиненных данному.

Описание:

Метод возвращает количество узлов, подчиненных данному. В это количество не включается количество узлов-атрибутов.

Пример:

см. пример для метода ПолучитьПодчиненныйПоНомеру.

ПолучитьПодчиненныйПоНомеру

Синтаксис:

ПолучитьПодчиненныйПоНомеру(НомерУзла )

Англоязычный синоним:

GetChildByNum

Параметры:

НомерУзла числовое выражение, содержащее номер требуемого узла. Нумерация узлов начинается с нуля.

Возвращаемое значение:

объект узла документа определенного типа

Описание:

В совокупности с КоличествоПодчиненных данный метод используется для обхода узлов, подчиненных данному узлу. Порядок обхода совпадает с расположением узлов в документе.

Пример:

Для Сч = 0 По Элемент.КоличествоПодчиненных()-1 Цикл

ПодчУзел = Элемент.ПолучитьПодчиненныйПоНомеру(Сч) ;

. . . . . . .

КонецЦикла ;

ДобавитьПодчиненный

Синтаксис:

ДобавитьПодчиненный(НовУзел[, ВставитьПеред])

Англоязычный синоним:

appendChild

Параметры:

НовУзел Объект нового узла

ВставитьПеред Необязательный параметр, тип - узел. Если параметр указан, новый узел будет вставлен перед ним, в противном случае новый узел будет вставлен последним.

Возвращаемое значение:

нет

Описание:

Метод используется для вставки нового узла, созданного с помощью соответствующих методов объекта документа, в список подчиненных данному узлу.

Пример:

ИнструкцияОбработки = Документ.СоздатьУзел(7, "xml") ;

ИнструкцияОбработки.Данные = "version='1.0'" ;

Документ.ДобавитьПодчиненный(ИнструкцияОбработки,

Документ.ЭлементДокумента) ;

УдалитьПодчиненный

Синтаксис:

УдалитьПодчиненный(УдаляемыйУзел)

Англоязычный синоним:

removeChild

Параметры:

УдаляемыйУзел Объект узла, удаляемого из списка подчиненных данному узлу

Возвращаемое значение:

нет

Описание:

Метод удаляет указанный узел из списка узлов, подчиненных данному.

Пример:

ПервыйПодчиненный = Документ.УзелДокумента.ПолучитьПоНомеру(0) ;

Документ.УзелДокумента.УдалитьПодчиненный(ПервыйПодчиненный) ;

ВыбратьУзлы

Синтаксис:

ВыбратьУзлы(КритерийОтбора)

Англоязычный синоним:

selectNodes

Параметры:

КритерийОтбора Строковое выражение, содержащее критерии отбора узлов в создаваемую коллекцию

Возвращаемое значение:

Объект коллекции узлов, содержащий узлы элементов или атрибутов, которые удовлетворяли критерию отбора, сформулированного в

параметре КритерийОтбора.

Описание:

Метод возвращает объект коллекции узлов, содержащий узлы элементов или атрибутов, которые удовлетворяли критерию отбора,

сформулированного в параметре КритерийОтбора. Запрос формулируется на языке запросов XSL (XSL Pattern Language).

Пример:

// отбираем все элементы Товар

Выборка = Документ.УзелДокумента.ВыбратьУзлы("Товар") ;

ВыбратьУзел

Синтаксис:

ВыбратьУзел(КритерийОтбора)

Англоязычный синоним:

selectSingleNode

Параметры:

КритерийОтбора Строковое выражение, содержащее критерии выбора узла

Возвращаемое значение:

Первый узлов, элемент или атрибут, который удовлетворяет критерию отбора, сформулированного в параметре КритерийОтбора.

Описание:

Метод возвращает первый узел, элемент или атрибут, который удовлетворял критерию отбора, сформулированного в параметре

КритерийОтбора. Запрос формулируется на языке запросов XSL (XSL Pattern Language).

Пример:

// находим информацию о товарах

Каталог = Документ.УзелДокумента.ВыбратьУзел("//ИнформацияОТоварах") ;

СоздатьПодчиненныйЭлемент

Синтаксис:

СоздатьПодчиненныйЭлемент(НаимЭлемента[, ВставитьПеред][, ПространствоИмен])

Англоязычный синоним:

createChildElement

Параметры:

НаимЭлемента Строковое выражение, содержащее наименование создаваемого элемента

ВставитьПеред Необязательный параметр. Узел, перед которым следует вставить создаваемый узел элемента.

ПространствоИмен Необязательный параметр, строковое выражение, указывающее пространство имен, в контексте которого создается новый

элемент. Если не указан, анализатор предпринимает попытку создать элемент в контексте пространства имен, определенного у стоящих выше по иерархии узлов документа с учетом префикса, указанного в параметре НаимЭлемента.

Возвращаемое значение:

Объект созданного элемента

Описание:

Предназначением метода является облегчение часто встречающейся операции - процесса создания подчиненного элемента. Если параметр ВставитьПеред не используется, элемент будет вставлен в конец списка.

Пример:

НовыйТовар = Документ.УзелДокумента.СоздатьПодчиненныйЭлемент("Товар") ;

ПреобразоватьВ_ИД

Синтаксис:

ПреобразоватьВ_ИД(СтрИД)

Англоязычный синоним:

ConvertToID

Параметры:

СтрИД Строковое выражение, преобразуемая строка

Возвращаемое значение:

Преобразованная строка, допустимая с точки зрения допустимых значений атрибута, имеющего тип id.

Описание:

Тип атрибута id накладывает определенные ограничения на возможные значения, которые могут быть присвоены этому атрибуту. Данный метод преобразует переданную строку к виду, который допустим для присвоения атрибуту данного типа.

Пример:

СтрИД = ЗначениеВСтрокуВнутр(СпрТовары) ;

ЭлТовар.УстановитьАтрибут("ИДТовара", ЭлТовар.

ПреобразоватьВ_ИД(СтрИД)) ;

Атрибуты

Тип

Синтаксис:

Тип

Англоязычный синоним:

nodeType

Описание:

Число, соответствующее типу узла в DOM (Document Object Model):

Тип узла Значение свойства

Элемент 1

Атрибут 2

Текст 3

Секция данных 4

Ссылка на компонент 5

Компонент 6

Инструкция обработки7

Комментарий 8

Документ 9

Определение типа 10

документа (DTD)

Фрагмент документа 11

Описание 12

Пример:

Если Узел.Тип = 1 Тогда

// Этот узел - элемент

. . . . . .

КонецЕсли ;

ТипСтрока

Синтаксис:

ТипСтрока

Англоязычный синоним:

nodeTypeString

Описание:

Строка, соответствующая типу узла в DOM (Document Object Model)

Тип узла Значение свойства

Атрибут attribute

Секция данных cdatasection

Комментарий comment

Документ document

Фрагмент documentfragment

документа

Определение documenttype

типа документа

(DTD)

Элемент element

Компонент entity

Ссылка на entityreference

компонент

Описание notation

Инструкция processinginstruction

обработки

Текст text

Пример:

Сообщить("Тип узла - " + Узел.ТипСтрока) ;

ПолноеНаименование

Синтаксис:

ПолноеНаименование

Англоязычный синоним:

nodeName

Описание:

Значение зависит от типа узла. Наибольший интерес представляет для элементов и атрибутов, для которых возвращает наименование полностью, т.е. префикс и наименование, разделенные двоеточием.

Пример:

Сообщить("Полное наименование узла - " + Узел.ПолноеНаименование) ;

Наименование

Синтаксис:

Наименование

Англоязычный синоним:

baseName

Описание:

Значение зависит от типа узла. Наибольший интерес представляет для элементов и атрибутов, для которых возвращает только наименование, без префикса.

Пример:

Сообщить("Наименование узла - " + Узел.Наименование) ;

Префикс

Синтаксис:

Префикс

Англоязычный синоним:

prefix

Описание:

Значение зависит от типа узла. Наибольший интерес представляет для элементов и атрибутов, для которых возвращает только префикс.

Пример:

Сообщить("Префикс узла - " + Узел.Префикс) ;

Родитель

Синтаксис:

Родитель

Англоязычный синоним:

parentNode

Описание:

Узел, которому принадлежит данный узел. Отметим, что узлы атрибутов родителя не имеют и данное свойство для них всегда является пустым значением.

Пример:

ЭлПодразделение = ЭлСотрудник.Родитель ;

ДокументВладелец

Синтаксис:

ДокументВладелец

Англоязычный синоним:

ownerDocument

Описание:

Узел документа, которому принадлежит данный узел.

Пример:

УзелДокумента = Узел.ДокументВладелец ;

ТипДанных

Синтаксис:

ТипДанных

Англоязычный синоним:

dataType

Описание:

Строка, соответствующая типу данных, которое имеет значение узла. Влияет на допустимые значения, которые могут быть

присвоены данному узлу, способ их хранения и, для атрибутов, тип возвращаемого значения при запросе свойства Значение.

Пример:

Если Атрибут.Наименование = "Дата" Тогда

Атрибут.ТипДанных = "date" ;

Атрибут.Значение = ТекущаяДата() ;

КонецЕсли ;

Текст

Синтаксис:

Текст

Англоязычный синоним:

text

Описание:

Строка соответствующая содержимому узла вместе со всеми принадлежащими ему подчиненными узлами. Заметим, что присвоение этого свойства полностью реорганизует всю структуру подчиненных узлов.

Пример:

Сообщить("Текст узла - " + Узел.Текст) ;

Значение

Синтаксис:

Значение

Англоязычный синоним:

nodeValue

Описание:

Строка, соответствующая содержимому узла.

Пример:

Сообщить("Значение узла - " + Узел.Значение) ;

ПредставлениеXML

Синтаксис:

ПредставлениеXML

Англоязычный синоним:

xml

Описание:

Строка, представление данного узла со всеми подчиненными узлами в формате XML документа.

Пример:

Сообщить("Представление узла - " + Узел.ПредставлениеXML) ;

Документ

Методы

Загрузить

Синтаксис:

Загрузить(Откуда)

Англоязычный синоним:

load

Параметры:

Откуда Может быть строкой или объектом OLE Automation, созданным системной функцией СоздатьОбъект и имплементирующим интерфейс IStream или IPersistStream

Возвращаемое значение:

нет

Описание:

В случае, если Откуда является строкой, ее содержимое интерпретируется, как путь к файлу, содержащему XML документ. В случае, если Откуда является объектом OLE Automation, документ загружается из потока, представленного интерфейсом IStream или IPersistStream.

При возникновении ошибочной ситуации во время загрузки или разбора источника генерируется ошибка исполнения.

Пример:

Документ.Загрузить("C:\XMLDocuments\SrcDocument.xml") :

Записать

Синтаксис:

Записать(Куда)

Англоязычный синоним:

save

Параметры:

Куда Может быть строкой или COM-объектом, имплементирующим интерфейс IStream или IPersistStream

Возвращаемое значение:

нет

Описание:

В случае, если Куда является строкой, ее содержимое интерпретируется, как путь к файлу, где следует сохранить XML документ.

В случае, если Куда является COM-объектом, документ выгружается в поток, представленный интерфейсом IStream или IPersistStream.

При возникновении ошибочной ситуации во время загрузки или разбора источника генерируется ошибка исполнения.

Пример:

Документ.Записать("C:\XMLDocuments\SrcDocument.xml") :

ЗагрузитьИзСтроки

Синтаксис:

ЗагрузитьИзСтроки(СтрокаИсточник)

Англоязычный синоним:

loadXML

Параметры:

СтрокаИсточник Строка, содержащая XML документ

Возвращаемое значение:

нет

Описание:

При возникновении ошибочной ситуации во время разбора строки генерируется ошибка исполнения.

Пример:

// создать копию документа

Документ2.ЗагрузитьИзСтроки(Документ1.ПредставлениеXML) ;

СоздатьУзел

Синтаксис:

СоздатьУзел(ТипУзла, Наименование, ПространствоИмен)

Англоязычный синоним:

createNode

Параметры:

ТипУзла Числовое или строковое выражение, определяющее тип создаваемого узла. Значение параметра должно быть равно одному из возможных значений свойств узла Тип или ТипСтрока (см. описания упомянутых свойств узла).

Наименование Строковое выражение, для элемента или атрибута - полное наименование, включающее префикс, для инструкции обработки - имя приложения. Для узлов, у которых наименование не имеет смысла, опускается или задается равным пустой строке.

ПространствоИмен Необязательный параметр, строковое выражение. Если этот параметр задан, узел создается в контексте указанного пространства имен с учетом префикса, указанного в наименовании. Если в наименовании префикс отсутствует, данное пространство имен интерпретируется как пространство имен по умолчанию.

Возвращаемое значение:

Созданный узел

Описание:

Данный метод позволяет создать новый узел указанного типа. Новый узел после создания еще не включен в документ, т.к. не имеет узла-родителя, т.е. не является частью иерархической структуры документа. Чтобы узел был включен в документ, нужно воспользоваться методом узла ДобавитьПодчиненный.

Пример:

см. пример из описания метода ДобавитьПодчиненный.

НайтиПоИД

Синтаксис:

НайтиПоИД(ИД)

Англоязычный синоним:

nodeFromID

Параметры:

ИД Строковое выражение, содержащее искомое поле идентификатора

Возвращаемое значение:

Узел элемента

Описание:

Метод позволяет получить элемент, атрибут с типом id которого имеет значение, совпадающее с заданным при вызове метода.

Пример:

ИскомыйЭлемент = Документ.НайтиПоИД("А0001") ;

Проверить

Синтаксис:

Проверить()

Англоязычный синоним:

validate()

Параметры:

нет

Возвращаемое значение:

нет

Описание:

Данный метод осуществляет проверку состоятельности документа. Если документ не состоятелен, генерируется ошибка исполнения.

Пример:

Документ. Схемы = СхемыДляПроверки ;

Документ.Проверить() ;

Атрибуты

ЭлементДокумента

Синтаксис:

ЭлементДокумента

Англоязычный синоним:

documentElement

Описание:

По стандарту XML документ может иметь ровно один элемент, принадлежащий непосредственно документу, все остальные элементы документа подчинены (возможно, по многоуровневой иерархии) ему. Этот элемент также называют корневым (root).

Пример:

Сообщить(Документ.ЭлементДокумента.Наименование) ;

Кодировка

Синтаксис:

Кодировка

Англоязычный синоним:

encode

Описание:

Позволяет установить/считать кодировку, в которой сохраняется документ. Задается строкой в соответствии стандартными наименованиями наборов символов для использования в Интерненте. По умолчанию установлена кодировка windows-1251. Со списком определенных наименований наборов символов можно ознакомиться по адресу http://www.isi.edu/in-notes/iana/assignments/character-sets.

Пример:

Документ.Кодировка = "UTF-16" ;

ПространстваИмен

Синтаксис:

ПространстваИмен

Англоязычный синоним:

namespaces

Описание:

Тип - коллекция схем. Предоставляет доступ к использованным в документе пространствам имен.

Пример:

Стр = "Количество использованных в документе пространств имен -";

Стр = Стр + Документ.ПространстваИмен.КоличествоСхем()) ;

Сообщить(Стр) ;

Схемы

Синтаксис:

Схемы

Англоязычный синоним:

schemas

Описание:

Тип - коллекция схем. Позволяет получить доступ к коллекции схем, установленных документу для проверки состоятельности во время загрузки или проверки состоятельности (см. метод Проверить).

Пример:

См. пример в описании метода Проверить.

РазрешатьВнешниеСсылки

Синтаксис:

РазрешатьВнешниеСсылки

Англоязычный синоним:

resolveExternals

Описание:

Возвращает/устанавливает режим разрешения внешних ссылок при загрузке или проверке состоятельности.

Пример:

См. пример в описании метода Проверить.

Элемент

Методы

УстановитьАтрибут

Синтаксис:

УстановитьАтрибут(НаименованиеАтрибута, Значение)

Англоязычный синоним:

setAttribute

Параметры:

НаименованиеАтрибута Строковое выражение, наименование атрибута, значение которого устанавливается Значение Значение, которое следует присвоить атрибуту. Если атрибуту присвоен определенный тип, выполняется попытка преобразования.

Возвращаемое значение:

нет

Описание:

Устанавливает значение для указанного атрибута. Если указанный атрибут отсутствует, добавляет его.

Пример:

ПолучитьАтрибут

Синтаксис:

ПолучитьАтрибут(НаименованиеАтрибута)

Англоязычный синоним:

getAttribute

Параметры:

НаименованиеАтрибута Строковое выражение, наименование атрибута, значение которого требуется получить

Возвращаемое значение:

Значение атрибута.

Описание:

Если атрибуту установлен тип данных, то возвращаемое значение приводится к соответствующему типу, в противном случае возвращается строка.

Пример:

ДатаПриемаНаРаботу = ЭлСотрудник.ПолучитьАтрибут("ДатаПриема");

КоличествоАтрибутов

Синтаксис:

КоличествоАтрибутов()

Англоязычный синоним:

AttributesNumber

Параметры:

Возвращаемое значение:

Число, количество атрибутов у данного элемента.

Описание:

Метод возвращает количество атрибутов у данного элемента.

Пример:

Для Сч = 0 по Элемент.КоличествоАтрибутов()-1 Цикл

УзелАтрибута = Элемент.ПолучитьУзелАтрибута(Сч) ;

. . . . . . .

КонецЦикла

ПолучитьУзелАтрибута

Синтаксис:

ПолучитьУзелАтрибута(НомерАтрибута)

или

ПолучитьУзелАтрибута(НаименованиеАтрибута)

Англоязычный синоним:

getAttributeNode

Параметры:

НомерАтрибута Числовое выражение, номер требуемого узла атрибута из списка принадлежащих элементу атрибутов

НаименованиеАтрибута Строковое выражение, наименование требуемого узла атрибута из списка принадлежащих элементу атрибутов

Возвращаемое значение:

Узел атрибута

Описание:

Метод позволяет получить объект узла атрибута по номеру или по наименованию.

Пример:

АтДатыПриема = ЭлСотрудник.ПолучитьУзелАтрибута("ДатаПриема") ;

см. также пример из описания метода КоличествоАтрибутов

УдалитьАтрибут

Синтаксис:

УдалитьАтрибут(УзелАтрибута)

Англоязычный синоним:

removeAttribute

Параметры:

УзелАтрибута Объект узла атрибута, который требуется удалить

Возвращаемое значение:

нет

Описание:

Метод удаляет указанный атрибут из списка принадлежащих данному элементу.

Пример:

ЭлСотрудник.УдалитьАтрибут(ЭлСотрудник.ПолучитьУзелАтрибута("Да;

ДобавитьАтрибут

Синтаксис:

ДобавитьАтрибут(НаименованиеАтрибута)

Англоязычный синоним:

addAttribute

Параметры:

НаименованиеАтрибута Строковое выражение, наименование добавляемого атрибута

Возвращаемое значение:

Узел атрибута

Описание:

Метод добавляет элементу новый атрибут.

Пример:

Атр = Документ.ЭлементДокумента.ДобавитьАтрибут("ДатаСоздания") ;

Атр.Значение = ТекущаяДата() ;

УстановитьПространствоИмен

Синтаксис:

УстановитьПространствоИмен (ПространствоИмен[, Префикс])

Англоязычный синоним:

setNamespace

Параметры:

ПространствоИмен Строковое выражение, наименование пространства имен

Префикс Необязательный параметр. Строковое выражение, префикс, ставящийся в соответствие пространству имен

Возвращаемое значение:

нет

Описание:

Метод устанавливает соответствие префикса в полных наименованиях элементов и атрибутов некоторому пространству имен для элементов, починенных данному. Если в вызове отсутствует параметр Префикс, то устанавливается пространство имен для элементов и атрибутов без префикса, т.е. пространство имен "по умолчанию".

Данный метод не может применяться для установки контекста пространства имен для данного элемента, т.е. префикс в имени данного элемента и параметр Префикс не должны совпадать или не должны быть оба пустыми. Контекст пространства имен может быть присвоен элементу только при его создании.

Пример:

Док.ЭлементДокумента.УстановитьПространствоИмен("urn:schemas-mi

Атрибуты

ИмяТега

Синтаксис:

ИмяТега

Англоязычный синоним:

tagName

Описание:

Строка - наименование тега элемента.

Пример:

Сообщить("Тег элемента - " + Элемент.ИмяТега) ;

Атрибут

Все методы и свойства наследуются от базового узла. Однако, имеется особенность - для узлов этого типа значение свойства Родитель всегда пустое.

КоллекцияСхем

Методы

ДобавитьСхему

Добавляет новую схему в коллекцию схем, связывая уникальный идентификатор ресурса пространства имен с указанной схемой.

Синтаксис:

ДобавитьСхему(УникальныйИДРесурсаПространстваИмен, СпецификаторСхемы)

Англоязычный синоним:

add

Параметры:

УникальныйИДРесурсаПространстваИмен Строковое выражение, пространство имен

СпецификаторСхемы Строковое выражение или объект документа с загруженной схемой (схема также является XML документом, отвечающим определенным требованиям). Если этот параметр является строкой, то она интерпретируется как путь к файлу, содержащему схему, и схема загружается из указанного файла.

Возвращаемое значение:

нет

Описание:

Данный метод добавляет новую схему в коллекцию схем, связывая уникальный идентификатор ресурса пространства имен с указанной схемой.

Пример:

КоллекцияСхем.ДобавитьСхему("http://server/schemas/Sc1.xml","C: ;

ПолучитьСхему

Синтаксис:

ПолучитьСхему(УникальныйИДРесурсаПространстваИмен)

или

ПолучитьСхему(НомерСхемы)

Англоязычный синоним:

get

Параметры:

УникальныйИДРесурсаПространстваИмен Строковое выражение, пространство имен

НомерСхемы Числовое выражение, номер схемы в коллекции. Нумерация схем в коллекции начинается с нуля.

Возвращаемое значение:

Узел элемента Schema из документа схемы, связанной с затребованным пространством имен или номером схемы в коллекции.

Описание:

В соответствии со стандартом документ схемы должен иметь элемент Schema в качестве элемента документа (корневого элемента). Таким образом, данный метод позволяет получить корневой элемент схемы, затребованной по номеру или пространству имен.

Пример:

ЭлСхемы = Документ.Схемы.ПолучитьСхему("http://server/schemas/Sc1.xml") ;

См. также пример из описания свойства КоличествоСхем.

УдалитьСхему

Синтаксис:

УдалитьСхему(УникальныйИДРесурсаПространстваИмен)

Англоязычный синоним:

remove

Параметры:

УникальныйИДРесурсаПространстваИмен Строковое выражение, пространство имен

Возвращаемое значение:

нет

Описание:

Метод удаляет из коллекции схему, связанную с указанным пространством имен.

Пример:

КоллекцияСхем.УдалитьСхему("http://server/schemas/Sc1.xml") ;

УникальныйИДРесурсаПространстваИмен

Синтаксис:

УникальныйИДРесурсаПространстваИмен(НомерВКоллекции)

Англоязычный синоним:

namespaceURI

Параметры:

НомерВКоллекции Числовое выражение, номер схемы в коллекции. Нумерация схем в коллекции начинается с нуля.

Возвращаемое значение:

Строка, содержащая уникальный идентификатор ресурса пространства имен.

Описание:

Метод используется для получения уникальных идентификаторов ресурсов пространств имен, входящих в коллекцию.

Пример:

Сообщить(Документ.ПространстваИмен.УникальныйИДРесурсаПространс

Атрибуты

КоличествоСхем

Синтаксис:

КоличествоСхем

Англоязычный синоним:

length

Описание:

Число, количество схем в коллекции.

Пример:

Для Сч = 0 По Документ.Схемы.КоличествоСхем-1 Цикл

ЭлСхемы = Документ.Схемы.ПолучитьСхему(Сч) ;

. . . . . . .

КонецЦикла ;

ВыборкаУзлов

Методы

ПолучитьУзел

Синтаксис:

ПолучитьУзел(Номер)

Англоязычный синоним:

item

Параметры:

Номер Числовое выражение, номер узла в выборке. Нумерация узлов в выборке начинается с нуля.

Возвращаемое значение:

Узел документа (элемент или атрибут).

Описание:

Метод используется для организации доступа к отдельным узлам документа, вошедшим в выборку.

Пример:

Выборка = Документ.ЭлементДокумента.ПолучитьВыборку("Товар") ;

Для Сч = 0 По Выборка.КоличествоУзлов-1 Цикл

ЭлТовар = Выборка.ПолучитьУзел(Сч) ;

. . . . . . .

КонецЦикла ;

Атрибуты

КоличествоУзлов

Синтаксис:

КоличествоУзлов

Англоязычный синоним:

length

Описание:

Число, количество узлов, содержащихся в выборке.

Пример:

См. пример из описания метода ПолучитьУзел.


1С-Предприятие. Документация | Web-расширение. Часть 1

Web-расширение. Часть 1.

Введение

  • Структура описания
Интернет-технологии
  • Общие понятия и термины
  • Web-серверы
  • Браузеры
  • Web-приложения
Web-приложения
  • Область использования Web-приложений
  • Архитектура Web-приложений
  • Cookies
  • Построение Web-приложения
Серверные технологии
  • Свойства браузеров
  • Интернет-магазины
Технология ASP
  • ASP-страницы
  • Приложение
  • Пользовательские сессии
  • Объекты
    • Request
    • Cookies
    • QueryString
    • ServerVariables
    • Response
    • Cookies
    • Buffer
    • Write
    • Clear
    • End
    • Flush
    • Redirect
    • Server
    • ScriptTimeout
    • CreateObject
    • URLEncode
    • MapPath
    • Session
    • SessionID
    • Timeout
    • Abandon
    • Value
    • Application
    • Lock
    • Unlock
    • Value

Введение

В настоящее время Интернет все шире используется в самых различных видах человеческой деятельности. Одними из его основных преимуществ являются скорость доставки информации, распространенность - для работы с Интернетом достаточно наличия простой телефонной линии, и независимость от используемой пользователем операционной системы, будь то Windows, Unix или MacOS. Такие качества Интернета позволяют использовать его для организации информационных и деловых процессов как внутри предприятий, так и в среде клиентов и деловых партнеров, при этом географическая удаленность между партнерами может не приниматься во внимание. На сегодня организация и поддержка в Интернете "фирменного" узла считаются практически обязательными для ведения успешного бизнеса или представления данных о некоммерческой организации.

Возможность переноса на базу Интернета деловых процессов привел к появлению абсолютно нового вида коммерции - так называемой электронной коммерции (e-commerce); ее ближайшим аналогом можно считать торговлю по каталогам. Основное проявление электронной коммерции - Интернет-магазины, где посетитель, не выходя из дому, может просмотреть список предлагаемых товаров и услуг, получить о них всю необходимую информацию (вплоть до внешнего вида товара), выбрать необходимое и оплатить заказ. Чаще всего заказанный товар доставляют покупателю непосредственно на дом. Этот способ торговли может использоваться как для общения с обычными покупателями, так и для внутрикорпоративного взаимодействия -например, при заказе дилером товара у дистрибьютора. Кроме удобств ведения такой торговли можно лишь упомянуть, что средства, проходящие через электронную торговлю, уже исчисляются миллиардами долларов.

Для интеграции 1C Предприятия 7.7 и различных Интернет-технологий (в первую очередь Web) создано Web-расширение 1 С Предприятия 7.7. При использовании Web-расширения взаимодействие с пользователями 1С:Предприятия можно организовать, совместив средства 1 (^Предприятия и стандартные возможности Web-интерфейса. Web-приложения на основе 1С:Предприятия могут как входить в структуру внутрикорпоративных процессов управления, так и представлять собой Интернет-магазины. При таком подходе получение всей необходимой информации и управление деятельностью предприятия можно осуществлять, используя штатные средства 1С:Предприятия 7.7. На витрину Интернет-магазина может быть вынесен каталог товаров с описаниям и внешним видом товара, заказанный товар может быть зарезервирован до оплаты или же покупатель может оплатить заказ карточкой, в базе может поддерживаться корзина покупателя, хранящая отложенные покупателем товары между посещениями магазина.

Структура описания

Первые три главы описания посвящены общим вопросам, связанным со стандартами Интернет. В них вводятся стандартные термины и понятия, разбирается построение Web-приложений и технология AS Р.

Глава 4 описывает процесс установки и запуска используемого программного обеспечения.

Такие вопросы интеграции технологии ASP и 1 (^Предприятия, как написание ASP-страниц, работа с пользовательскими сессиями и т.д., разбираются в главе 5.

В главе 6 рассматривается пример, входящий в поставку -«Портал реализатора». Дается детальное описание сайта портала и используемой конфигурации.

Интернет-технологии

Общие понятия и термины

Интернет построен по технологии «клиент-сервер», предполагающей использование двух основных приложений -приложения, работающего на компьютере клиента, и сервера, выполняющего клиентские запросы. В Интернете такими приложениями являются браузер (browser, обозреватель) со стороны клиента и Web-сервер (Интернет-сервер, WWW-server) в качестве сервера. Один сервер может поддерживать один или несколько сайтов - узлов Интернета, логически объединяющих информацию различного характера (например, сайт фирмы может представлять всю информацию о фирме, от местоположения до финансового состояния). Структура сайга представляет собой дерево каталогов, аналогичное файловой системе, все файлы на сервере лежат в каталогах этого дерева.

Для общения между клиентом и сервером используется протокол HTTP (Hypertext Transfer Protocol, протокол передачи гипертекста), который в свою очередь использует TCP/IP. Основной цикл протокола HTTP представляет собой пару «запрос файла клиентом - передача файла сервером», причем файл подразумевается произвольным. Для указания необходимого файла браузер передает серверу URL (Universal Resource Locator, универсальный указатель ресурсов), получаемый браузером результат обычно называют страницей. Чаще всего URL указывается пользователем только один раз - для попадания на необходимый сайт (например, www.lc.ru), далее новые страницы запрашиваются браузером при переходе по ссылкам.

В Интернете используются в основном файлы HTML (HyperText Markup Language, язык разметки гипертекста), содержащие как различно оформленный текст с графикой, так и ссылки на другие

страницы. Кроме этого, HTML-страницы могут содержать также программные вставки на так называемых скриптовых языках -самым распространенным из них является JavaScript (JSript, ECMAScript). Эти вставки могут выполняться браузером, что позволяет изменять содержимое страницы в браузере без обращения к серверу. Такие страницы содержат так называемый DHTML (Dynamic HTML, динамический HTML) - расширение HTML. Все HTML-файлы представляют собой обычные текстовые файлы, содержащие специального вида фрагменты - Tera(tags) HTML, описывающие все параметры отображения страницы - шрифт, размер, картинки, ссылки и пр. Благодаря такому формату HTML-файлы можно писать в обычном текстовом редакторе, однако чаще применяются специализированные WYSIWYG-ред акторы HTML, интегрированные с приложениями разработки сайтов.

Web-серверы

На сегодняшний день Web-серверы, кроме выполнения основной функции - возврата файла, запрошенного пользователем, позволяют расширять свою применимость, предоставляя для расширения функциональности различные интерфейсы. Одна из основных проблем, решаемых этими интерфейсами - создание возвращаемой пользователю страницы «на ходу», при этом в качестве исходного материала обычно используется адрес (URL), переданный пользователем, и файл, находящийся на сервере по этому адресу. Существует общий, стандартный для всех серверов интерфейс, называемый CGI (Common Gateway Interface, общий интерфейс узла), который позволяет создавать нужные страницы, просто выполняя указанные пользователем приложения на компьютере сервера. Этот способ требует довольно много серверных ресурсов, поэтому кроме CGI каждый сервер предоставляет дополнительные возможности расширения, варьирующиеся от сервера к серверу.

Все это позволяет создавать на базе серверов различные приложения, для которых основным пользовательским интерфейсом служит браузер.

Браузеры

Основными браузерами на сегодняшний день являются два браузера - Microsoft Internet Explorer и Netscape Navigator. Кроме просмотра HTML-страниц оба имеют развитые сервисные возможности. Оба браузера имеют реализации для Windows, MacOS и Unix. Эти браузеры имеют неодинаковые наборы расширений HTML и различаются по возможностям работы с DHTML, что приходится учитывать при подготовке страниц и разработке сайтов.

Из остальных браузеров стоит упомянуть Opera (www.opera.com) и Neoplanet (www.neoplanet.com).

Web-приложения

Web-приложения (web applications, часто их называют Интернет-приложениями, internet applications) представляют собой набор страниц, объединенных общей функциональностью. Все Web-приложения являются клиент-серверными, что, очевидно, определяется технологией построения Интернета. В приложениях обычно задействуются все вышеперечисленные технологии, от DHTML, исполняемом в клиентском браузере, до расширений Web-сервера. В настоящий момент Web-приложения используются как внутри предприятий в локальных сетях, так и в Интернете - это широко известные Интернет-магазины.

Web-приложения

Началом «взрывного» роста Интернета принято считать начало 90х годов. Именно в это время появились и были стандартизованы протокол HTTP и язык описания страниц HTML, предназначенные для World Wide Web. Изначально WWW предназначался для публикации различной информации текстового и графического характера, поэтому язык HTML имел очень много недостатков, в первую очередь - практически отсутствовали механизмы управления размещением содержания на HTML-странице и взаимодействия с пользователями. Однако по мере роста интереса к Интернету росли и требования пользователей к содержанию (иначе - к контенту, от англ. content), что касалось как оформления опубликованной информации, так интерактивности при взаимодействии пользователя с сайтами. На сегодняшний день существующие в Интернете средства, реализованные в Web-серверах, средствах разработки сайтов и браузерах, позволяют говорить о создании так называемых Web-приложений, или приложений, построенных на мехнизмах Интернета и позволяющих пользователям взаимодействовать с Web-серверами. Безусловно, Web-приложения имеют клиент-серверную архитектуру, что диктуется общим построением Интернета. Как и традиционные программные приложения, Web-приложения имеют несколько аспектов: архитектура, подходы к разработке, безопасность приложений, которые и рассматриваются в этой главе.

Область использования Web-приложений

Одной из важных характеристик Web-приложения является область использования приложения. По области использования Web-приложения делятся на intranet - внутрикорпоративные приложения, рассчитанные на использование во внутренней (локальной) сети, extranet - также внутрикорпоративные, но уже работающие во внешней среде (Интернете), и, наконец, internet-приложения, рассчитанные на общее использование (например, Интернет-магазины). Такое деление возникает из-за различности подходов к построению таких приложений. Самые жесткие требования на разработку накладывает internet-приложение - это использование произвольных браузеров и максимальная безопасность в работе. При разработке intranet- и extranet-приложений список используемого программного обеспечения можно ограничить, а для intranet-приложений еще и снизить требования к безопасности.

Архитектура Web-приложений

Все Web-приложения можно условно разбить на три составные части: серверная часть, клиентское приложение и интерфейс.

Серверную часть образует Web-сервер, возвращающий страницы приложения по запросам пользователя. Чаще всего эти страницы создаются динамически на основе информации, обрабатываемой приложением. Именно на создание страниц "на лету" направлены различные расширения Web-серверов, одно из которых - CGI - уже было ранее упомянуто.

Клиентское приложение (браузер) последовательно запрашивает страницы с сервера, используя Dynamic HTML для управления интерфейсом и частичной обработки информации на компьютере клиента.

Пользовательский интерфейс специально выделен отдельным пунктом, так как именно формированием клиентского интерфейса и работой с ним Web-приложения отличаются от привычных клиент-серверных приложений. В последнем случае клиентское приложение обменивается с сервером только данными, используя для формирования интерфейса ресурсы приложения. В Web-приложениях интерфейс практически полностью формируется на сервере, оставляя для исполнения клиентом только управление созданной страницей. Более того, существующие стандарты на браузеры накладывают дополнительную специфику на модель поведения приложения. В частности, два свойства, которые необходимо принимать во внимание при разработке приложения -наличие истории просмотра страниц и произвольный доступ к любой странице приложения по известному адресу. Последнее свойство обязательно должно учитываться в приложениях, использующих авторизацию пользователя.

Другая серьезная проблема в разработке Web-приложения -отслеживание сессии конкретного пользователя. Дело в том, что по определению HTTP-протокол не имеет понятия текущего состояния (stateless), т.е. очередной запрос страницы абсолютно не зависит от предыдущих запросов и потому не требует уникального идентификатора. Для отслеживания последовательных запросов и идентификации пользователя используются так называемые cookies.

Cookies

Cookies (русского термина не имеют, в единственном числе -cookie, точный перевод - «домашнее печенье») представляют собой небольшие файлы, содержащие произвольную текстовую информацию. Эти файлы формируются и передаются пользовательскому приложению Web-сервером и хранятся на компьютере пользователя. При очередных запросах страниц информация из этих файлов пересылается на сервер вместе с запросом, что позволяет отличать и отслеживать работу различных пользователей с Web-сервером. Каждый cookie имеет следующие свойства:

· наименование cookie;

· значение cookie, содержащее собственно информацию;

· домен. Указанный домен ограничивает область видимости cookie. По умолчанию домен устанавливается в домен текущей страницы (например, для www.lc.ni - домен Ic.ru);

· каталог. Указанный каталог ограничивает область видимости cookie внутри сервера. Каталог "/" используется для указания всех каталогов сервера. По умолчанию каталог устанавливается в каталог текущей страницы;

· срок действия. Срок ограничивает время действия cookie. По истечении указанного срока cookie удаляется с компьютера пользователя. По умолчанию срок действия не устанавливается, что означает удаление cookie при закрытии браузера (это эквивалентно установке срока действия в 0);

· секретность. Cookie с установленным свойством секретности могут посылаться на Web-сервер только по SSL-соединению. Это свойство используется редко. По умолчанию секретность не устанавливается.

Домен и каталог необходимы для ограничения области действия cookie - информация из cookie посылается вместе с запросом только в том случае, если домен и каталог cookie в точности совпадают с доменом и каталогом запрашиваемой страницы. Каждый cookie полностью характеризуется своим наименованием, доменом и путем.

Согласно стандарту браузер может как хранить и использовать cookies в своей работе, так и отключать их прием и сохранение в целях безопасности. Для этого в настройках браузеров обычно присутствует флажок, включающий и отключающий работу с cookie. По умолчанию работа с cookie включена, однако пользователь вправе отключить прием cookie. Для intranet- и extranet-приложений возможность отключения cookie можно игнорировать, просто введя некоторую дисциплину использования приложения. Для общих Web-приложений, опирающихся на использование cookies, такая возможность отключения представляет серьезную проблему, так как не существует точного способа определить, принимает ли браузер cookies.

С использованием cookies отслеживание действий пользователя упрощается - теперь сервер может сохранить в cookie некоторую внутреннюю информацию, и при последующих обращениях идентифицировать пользователя. Однако здесь следует учесть одну тонкость. Поскольку два запущенных экземпляра одного браузера используют единую базу cookies, то сервер не сможет отличить эти браузеры, даже если они будут находиться на разных страницах. Из вышесказанного вытекает, что реально идентифицируется не сам пользователь, а скорее его компьютер. - при запуске двух одинаковых браузеров Web-сервер будет воспринимать их как одну сессию. При запуске разных браузеров может возникнуть две сессии, если браузеры используют разные базы для хранения cookies.

Построение Web-приложения

Как и для обычных приложений, универсальной схемы построения Web-приложения не существует, поскольку различные приложения требуют различных подходов к обработке данных, построению пользовательского интерфейса и т.д.

Однако можно построить некоторую приблизительную схему приложения с авторизацией. Все приложение делится на три части -незащищенную, часть, обеспечивающую авторизацию пользователя, и защищенную. В незащищенной части пользователь может перемещаться произвольно, следуя ссылкам или по запомненным ранее закладкам. Переход в защищенную часть осуществляется только после авторизации пользователя, и все перемещения по защищенным страницам обязательно авторизуются. При первой верной авторизации вся необходимая информация записывается в cookie, и при последующих авторизациях информация берется в первую очередь из сохраненного cookie. При отсутствии cookie (удален или браузер не принимает cookie) пользователь снова проходит через интерактивную часть авторизации. Отсюда следует, что при невозможности принимать cookie пользователь будет вынужден заново вводить авторизующую информацию при каждом запросе страницы из защищенной части, а каждая защищенная страница должна переадресовывать пользователя в незащищенную часть или на авторизацию. Часть, отвечающая за авторизацию, может быть реализована как одной, так и несколькими страницами.

Серверные технологии

Серверные технологии, используемые в Web-приложениях, основываются на достаточно простом и очевидном принципе динамического создания страницы при запросе клиента вместо возврата готовой страницы. Такой подход позволяет создавать страницы "на лету", основываясь на различных данных (например, из баз данных или информации о браузере клиента), доступных с сервера. Наиболее «старая» и известная технология - CGI (Common Gateway Interface). Фактически CGI позволяет создавать страницы путем запуска на сервере указанной пользователем программы (естественно, список этих программ заранее задан администратором Web-сервера). По ходу работы программа последовательно создает HTML-код результирующей страницы, в зависимости от различных условий код может быть разным. Стандарт CGI определяет достаточно простой протокол взаимодействия запущенной программы и Web-сервера и поэтому реализован практически на всех существующих Web-серверах.

Web-сервер Internet Information Server дополнительно к CGI реализует еще две технологии - ISAPI (Internet Server Application Programming Interface) и ASP (Active Server Pages). Первая является некоторым аналогом CGI, но использует не отдельные программы, а DLL, что дает значительную экономию ресурсов сервера. Технология ASP основана на совместном использовании визуальной разработки страницы и фрагментов скриптов, изменяющих HTML-код страницы в зависимости от условий, в которых исполняется страница. Эта технология и используется для расширения возможностей 1С:Предприятия 7.7.

Свойства браузеров

На настоящий момент существуют серьезные функциональные различия между версиями браузеров Internet Explorer и Netscape Navigator - более того, различия имеют и реализации одного и того же браузера для разных платформ. Часто это служит причиной создания двух версий сайта, учитывающих особенности того или иного браузера. Однако есть общие технологии, поддерживаемые всеми браузерами независимо от модели и платформы. Две из этих технологий - это CSS (Cascading Style Sheets) и DHTML (Dynamic HTML). CSS предназначен в первую очередь для разделения содержания сайта и его оформления. С помощью CSS всем одинаковым элементам сайта (например, таблицам) можно задать единые правила оформления, причем эти правила будут написаны не на каждой странице, а в отдельном файле, что упрощает переоформление сайта. DHTML используется для динамического изменения страниц в браузере без обращений к Web-серверу. Собственно DHTML состоит из двух составляющих - DOM (Document Object Model, объектная модель документа) и JavaScript (иначе стандарт ECMAScript), использующий DOM. JavaScript -это стандартизованный объектно-ориентированный скриптовый язык общего назначения, однако его исходное предназначение -исполнение в среде браузера. В качестве контекста исполнения используются объекты, расположенные на странице - таблицы, ссылки, рисунки и т.д. Описание существующих объектов и методы работы с ними и образуют DOM - стандарт на программный доступ к содержанию HTML-страниц. Основные различия между браузерами кроются именно в реализации этого стандарта, что приводит к упрощению алгоритмов работы в клиентском браузере (для уменьшения влияния различий), или к созданию нескольких страниц для разных браузеров.

Интернет-магазины

В качестве примера наиболее известных применений Web-приложений можно привести электронную торговлю. Приложения, работющие в этой области, чаще всего являются электронными магазинами или Интернет-магазинами.

В число основных элементов Интернет-магазина входят витрина (каталог товаров), корзина покупателя и оплата заказанного товара.

Витрина практически всегда представляет собой структурированное по категориям дерево товаров с возможностью навигации по дереву и поиска нужного товара.

Корзина покупателя содержит все выбранные пользователем товары, при этом содержимое корзины может как сохраняться между различными посещениями магазина, так и действовать только при текущем посещении. Это зависит не только от магазина, но и от возможностей браузера пользователя, так как существует единственная возможность однозначно идентифицировать пользователя между сеансами - использовать cookie. При отправке запроса браузер передает все возможные для этого сайта и пути cookie серверу, который имеет возможность прочитать их содержимое и определить пользователя магазина. При отправке страницы сервер может передать cookie, которые браузер должен сохранить на компьютере пользователя. Если прием cookie в браузере отключен или просто невозможен, то различные входы одного покупателя в магазин идентифицировать нельзя, и, как следствие, корзина такого покупателя может храниться лишь до момента его выхода из магазина.

Оплата заказанного товара может выполняться различными способами - традиционными безналичным или наличным, или электронными со счета или по кредитной карте. Оплата традиционными способами лишь резервирует товар в магазине до подтверждения оплаты, оплата электронным методом может быть выполнена немедленно и в этом случае товар может быть незамедлительно отправлен к покупателю.

Ссылки на работающие Интернет-магазины можно найти на сайте фирмы Аркадия www.magazin.ru.

Технология ASP

Как и все остальные расширения функциональности Web-сервера технология ASP предназначена для динамического создания страницы при запросе клиента. Такой подход позволяет создавать страницы "на лету", основываясь на различных данных (например, из баз данных или информации о браузере клиента), доступных с сервера. Чаще всего динамические страницы можно условно разбить на две логические части - информационное наполнение страницы и ее визуальное представление (обычно определяемое общим стилем сайта), при этом в отличие от изменяемой информационной части оформление чаще всего статично. Для создания оформления страниц традиционно удобны различные WYSIWYG-редакторы страниц (например, Frontpage или Dreamweaver), однако существовавший изначально единственный способ динамической генерации страниц -CGI - для создания таких страниц не подходит, так как CGI-приложения создают весь HTML-текст страниц программным путем. Поэтому была предложена другая технология создания динамических страниц, названная ASP (Active Server Pages -Активные Серверные Страницы).

Основой этой технологии является использование HTML-страниц с внедренным в HTML-код программным кодом на некотором языке программирования, создающем часть результирующей страницы. Код обычно называют скриптом (script), а язык программирования - скриптовым. Такой подход позволяет визуально редактировать оформление страниц, используя для вывода информации скрипты на различных языках. Фактически ASP-страницы являются обычными HTML-страницами (с некоторыми синтаксическими отличиями), дополнительно обрабатываемые на сервере перед отправкой клиенту. Использование скриптов позволяет работать с OLE-объектами, что в совокупности с встроенными в скриптовые языки возможностями дает практически неограниченные возможности доступа и обработки различной информации. Технология ASP рассчитана на использование только с Web-сервером II S.

ASP-страницы

В программном коде страницы может быть использовано несколько скриптовых языков, при этом процедуры и функции, написанные на одном языке, могут быть вызваны из другого языка. В поставку IIS входят два скриптовых языка - JavaScript и VBScript, однако их число может быть расширено благодаря использованию открытой технологии Active Scripting.

Для внедрения скриптов в HTML-код страницы используется два различных варианта тегов: <%код скрипта%> и <script language="имя языка" гипа^"зегуег">код скрипта</8спр1>. Программный код между тегами <% и %> предполагается написанным на определенном для этой страницы первичном (primary, default) языке, во втором случае язык скрипта задается параметром тега language. Скриптов, использующих как первый, так и второй вариант написания, на странице может быть несколько. Порядок исполнения страницы Web-сервером довольно сложен: сначала исполняются все скрипты, заключенные в теги <script></script> и написанные не на первичном языке, причем порядок обработки таких скриптов (если их несколько) неопределен. Затем происходит последовательная обработка страницы - на этом этапе по мере обработки клиенту последовательно пересылается HTML-код страницы и исполняются скрипты, написанные в тегах <%%>. И наконец снова исполняются скрипты, заключенные между <script></script>, но уже использующие язык страницы по умолчанию, порядок обработки таких скриптов (если их несколько) также неопределен. В обоих случаях весь создаваемый скриптами HTML пересылается клиенту (или буферизуется на сервере для отложенной отправки - это зависит от установки Response.Buffer). Исходя из такого порядка обработки страницы рекомендуется в тегах <script></script> располагать только процедуры и функции (на любом языке) и вызывать их при исполнении скриптов в тегах <%%>. Только таким образом можно обеспечить однозначность последовательности исполнения скриптов.

Для управления различными параметрами страницы используются директивы (directives) ASP. Директивы пишутся в первой строке страницы в единственном теге <%@ директивы %> через пробел в виде пар «директива=значение». Ниже приведен список директив с кратким описанием:

LANGUAGE - устанавливает язык по умолчанию для страницы. Все скрипты, использующие теги <%%>, должны быть написаны именно на указанном языке. Возможные значения - наименования скриптовых языков (изначально возможны VBScript и JScript).

ENABLESESIONSTATE - включает или отключает использование этой страницей пользовательских сессий. Возможные значения - True или False.

CODEPAGE - устанавливает кодовую страницу, используемую в преобразовании текста при передаче текста из программного кода в Web-сервер. Этот параметр имеет аналог в языке (см. Session.CodePage).

LCID - .устанавливает идентификатор текущей региональной установки (local identifier), определяющей формат дат, символ валюты и т.д. Эта установка необходима для правильной работы встроенных функций скриптовых языков, использующих вышеуказанные данные. Этот параметр имеет аналог в языке (см. Session.LCID).

Каждая ASP-страница исполняется в некотором контексте. Этот контекст предоставляется странице сервером в виде набора объектов, позволяющих получать доступ к свойствам сервера и информации о клиенте, передавать готовый HTML клиентскому приложению и т.д. Код ASP-страницы создается только при запросе страницы и после завершения уничтожается, поэтому хранить в странице статические объекты невозможно.

Приложение

Несколько ASP-страниц можно объединить в приложение (application). Это объединение носит несколько механический характер - приложением называются все ASP-страницы, находящиеся в специально указанном каталоге (корневом каталоге приложения) или его подкаталогах.

В корневом каталоге приложения может находиться файл global.asa - специальный файл, содержащий предопределенные процедуры и объявления глобальных статических объектов.

В приложении существуют четыре предопределенные процедуры - Session_OnStart, Session_OnEnd, Application_OnStart, Application_OnEnd. Эти процедуры вызываются соответственно при начале и завершении отдельных пользовательских сессий и всего приложения в целом. Началом работы приложения является запрос пользователем произвольной страницы приложения, завершением -завершение последней сессии.

Для использования предопределенных процедур Application OnStart и Application OnEnd их необходимо реализовать на языке отличном от V7Script. Web-расширение не поддерживает исполнение этих процедур.

Пользовательские сессии

Для разделения работы различных пользователей с одним ASP-приложением используется понятие сессии (session). Фактически ASP-сессия - это некоторый контекст (значения переменных, объекты и т.д.) конкретного пользователя. Новая сессия запускается при выполнении одного из следующих условий:

· пользователь запросил страницу приложения, и global.asa содержит процедуру Session_OnStart;

· пользователь запросил страницу приложения, и global.asa содержит объект <object scope=session ...x/object> с областью видимости "сессия";

· пользователь сохранил некоторое значение в объекте Session:

· Session. Уа1ие("ИмяПеременной",Значение).

Для отслеживания сессии конкретного пользователя при последовательных запросах используются cookies (см. Cookies, стр. 17). При начале сессии на компьютер пользователя в cookie передается некоторый уникальный защищенный от воспроизведения идентификатор. При последующих запросах этот cookie передается наоборот от пользователя на Web-сервер, что позволяет однозначно идентифицировать пользователя и определить его сессию. Cookie с идентификатором сессии на компьютере пользователя уничтожается при закрытии браузера. База данных, хранящая соответствия между сессиями и идентификаторами в IIS создается заново при перезапуске сервера, поэтому полагаться на уникальность идентификатора сессии в течение длительного времени не следует. Весь механизм отслеживания сессии встроен в IIS и работает автоматически.

Объекты

В контексте ASP-страницы доступно пять основных объектов, предоставляемых IIS: Session, Application, Request, Response, Server. Их неполное описание приведено ниже.

Request

Этот объект представляет запрос пользователя на получение текущей страницы.

Cookies

Этот массив содержит все cookie, переданные пользователем на Web-сервер.

Синтаксис:

Request .Cookies [<Имя cookie>]

Параметры:

<Имя cookie> Строка, содержащая наименование cookie.

Описание:

Массив содержит все переданные при запросе cookies. Каждый cookie является объектом со своими свойствами, перечисленными ниже. Cookie в массиве доступны только для чтения.

Значения элементов cookie:

Item. Значение cookie, содержащее собственно информацию. Domain (домен). Ограничение области видимости для cookie указанным доменом. По умолчанию устанавливается в домен текущего документа.

Expires (срок действия). Ограничение времени действия cookie. По истечении указанного срока cookie удаляется с компьютера пользователя. По умолчанию устанавливается в 0, что эквивалентно удалению cookie при закрытии браузера.

Path (путь). Ограничение области видимости для cookie указанием каталога на сервере. Cookie виден только для файлов в указанном каталоге. Каталог "/" используется для указания всех каталогов сервера.

Пример:

Если (Request.Cookies("CookieName").Item = "NoPage") Тогда Страница = "Exit.asp" ;

КонецЕсли ;

QueryString

Возвращает значение переданного параметра по имени параметра.

Синтаксис:

Request. Query-String (<Имя параметра>} . Item

Параметры:

<Имя параметра> Строка, содержащая наименование параметра.

Описание:

Этот метод чаще всего используется при работе с формами, передающими значения элементов управления через URL в виде пар "Имя=3начение". В силу особенностей 1С:Предприятия при работе с OLE для получения значения параметра после вызова метода необходимо добавить .Item.

Пример:

ИмяПользователя = Request.QueryString("UserName1').Item

ServerVariables

Этот метод предоставляет различную информацию о сервере, пользователе, текущем запросе и т.д.

Синтаксис:

Request. ServerVariables (<Имя параметра >)

Параметры:

<Имя параметра> Строка, содержащая наименование параметра, для которого требуется возвратить информацию

Описание:

Этот метод позволяет получить полную информацию о среде исполнения ASP-страницы - имя страницы, адрес пользователя, запросившего страницу, имя сервера и т.д. Некоторые возможные значения параметра приведены ниже:

HTTP_USER_AGENT наименование браузера пользователя

PATH INFO информация о пути к текущей странице на сервере

PATH TRANSLATED информация о физическом пути текущей страницы на диске

REMOTE_HOST REMOTE USER адрес компьютера пользователя имя пользователя

Пример:

Сообщить(Request.ServerVariable("HTTP_USER_AGENT"))

Response

Этот объект представляет ответ Web-сервера на запрос пользователя.

Cookies

Этот массив содержит все cookie, передаваемые пользователю в ответе на запрос. По всем свойствам эквивалентен массиву Cookies объекта Request, за исключением того, что в Response.Cookies есть доступ как на чтение, так и на запись.

Buffer

Этот атрибут контролирует предварительную буферизацию при пересылке HTML пользователю.

Синтаксис:

Response.Buffer

Возможные значения:

True/False (I/O)

Описание:

Если переменная установлена в True, то весь пересылаемый клиенту HTML буферизуется на сервере и отправляется только при завершении формирования страницы. Обычно это свойство используется при направлении запроса пользователя на дргую страницу. Свойство доступно как на чтение, так и на запись. Начальная установка соответствует значению, установленному в ММС для приложения.

Пример:

Response. Buffer = 1;

Write

Передает фрагмент HTML в приложение пользователя.

Синтаксис:

Response .Write (<НТМL-строка>)

Параметры:

<НТМЬ-строка> Строка, содержащая фрагмент HTML-кода, передаваемый пользователю.

Описание:

Метод Write передает фрагмент HTML на компьютер пользователя. Переданный фрагмент может буферизоваться, если свойство Buffer установлено в 1.

Пример:

Response. У?г-[Ье(''<р>Параграф</р>") ;

Clear

Очищает буфер переданного клиенту HTML.

Синтаксис:

Response.Clear()

Параметры:

отсутствуют

Описание:

Метод Clear удаляет весь буферизованный HTML. Этот метод может использоваться при обработке ошибок, происшедших при исполнении скрипта, для создания другой страницы.

Пример:

Если (Ошибка = 1) Тогда Response.Clear() ;

КонецЕсли

End

Принудительно завершает обработку текущей страницы.

Синтаксис:

Response.End()

Параметры:

отсутствуют

Описание:

Метод End принудительно завершает обработку текущей страницы, прерывая исполняемый скрипт. Если Response. Buffer установлен в 1, то весь буферизованный HTML передается пользователю.

Пример:

Response.Clear() ;

Response.End() ;

Flush

Передает буферизованный HTML-код пользователю.

Синтаксис:

Response.Flush()

Параметры:

отсутствуют

Описание:

Если Response.Buffer равен 1, то весь буферизованный HTML передается пользователю. В противном случае возникает ошибка времени исполнения.

Пример:

Response.Buffer = 1;

Response.Write("<р>Параграф</р>");

Response.Flush();

Redirect

Перенаправляет запрос на указанную страницу.

Синтаксис:

Response. Redirect (<Страница>)

Параметры:

<Страница> Строка с наименованием страницы, на которую производится переадресация.

Описание:

Метод Redirect перенаправляет запрос пользователя на другую страницу, удаляя весь буферизованный к моменту вызова HTML. Для работы этого метода требуется установка Response.Buffer в 1.

Пример:

Response.Redirect("login.asp") ;

Server

Этот объект предоставляет доступ к методам и информации Web-сервера.

ScriptTimeout

Определяет время ожидания завершения скрипта в секундах.

Синтаксис:

Server.ScriptTimeout

Описание:

Атрибут ScriptTimeout управляет временем, отпущенным на исполнение скрипта. После окончания времени ожидания скрипт считает зависшим и принудительно прерывается. ScriptTimeout устанавливается по умолчанию в 90 секунд. В большее значение этот атрибут имеет смысл устанавливать при создании объемных страниц (например, отчетов). Атрибут доступен для чтения и записи.

Пример:

Server.ScriptTimeout = 360; // 6 минут

CreateObject

Создает OLE Automation объект.

Синтаксис:

Server. CreateObj ect (<ProgID>}

Параметры:

<ProgID> ProgID создаваемого объекта.

Описание:

Метод CreateObject создает объект OLE Automation no переданному ProgID. По умолчанию объект создается с областью видимости "страница" и автоматически уничтожается при завершении обработки страницы. Если объект необходимо сохранить для последующего использования, то можно воспользоваться объектами Session или Application.

Пример:

Session("MyObj") = Server.CreateObject("MyObjProgID");

URLEncode

Перекодирует строку текста с учетом ограничений в написании URL.

Синтаксис:

Server.URLEncode(<URL>)

Параметры:

<URL> Строка с URL.

Описание:

Метод URLEncode перекодирует переданную строку, учитывая ограничения стандарта на символы, входящие в url(b частности, символ пробела заменяется на %20) Этот метод обычно используется при построении URL программным путем.

Пример:

Response.Write(Server.URLEncode("http://www.lc.ru")) ;

MapPath

Конвертирует логический путь к странице на сервере физический путь на локальном диске.

Синтаксис:

Server. MapPath (<Путь на сервере>)

Параметры:

<Путь на сервере> Строка, содержащая логический путь от корневого каталога сервера или от текущего каталога.

Описание:

Метод MapPath конвертирует переданный логический путь на сервере в физический на локальном диске. Если логический путь начинается с символа «\» или «/», то метод возвращает полный физический путь, считая что логический путь указан начиная от корня сервера. В противном случае переданный логический путь считается указанным относительно текущего каталога. Для получения местонахождения корневого каталога Web-сервера на локальном диске следует передать в метод строку «/». Указанный путь не должен обязательно существовать.

Пример:

Server.MapPath("global.asa") ;

Session

SessionID

Содержит идентификатор текущей сессии.

Синтаксис:

Session.SessionID

Описание:

SessionID содержит идентификатор текущей сессии. Значения идентификатора лежат в пределах от 0 до 232-1. Атрибут доступен только для чтения.

Пример:

Response.Write(Session.SessionID) ;

Timeout

Максимальное время между последовательными запросами пользователя.

Синтаксис:

Session.Timeout

Описание:

Timeout содержит время ожидания между запросами пользователя в минутах. Если между последовательными запросами проходит больше указанного времени, то сессия считается завершенной. Начальная установка соответствует значению, установленному в ММ С для приложения. Атрибут доступен для чтения/записи.

Пример:

Session.Timeout = 5;

Abandon

Принудительно завершает текущую сессию.

Синтаксис:

Session.Abandon()

Параметры:

отсутствуют

Описание:

Метод Abandon завершает текущую сессию, однако обработка текущей страницы не прекращается. Сессия уничтожается только после завершения текущей страницы.

Пример:

Если (ИмяПользователя='Иванов") Тогда Session.Abandon();

КонецЕсли;

Value

Сохраняет значение переменной с областью видимости "сессия" на время существования сессии.

Синтаксис:

Value (<Имя переменной>,<Значение переменной>) Value{<Имя переменной>)

Параметры:

<Имя переменной> Строка, содержащая наименование сохраняемого значения.

<3начение переменной> Сохраняемое значение.

Описание:

Позволяет сохранять некоторое значение произвольного типа с областью видимости "сессия" на время существования сессии. Каждому значению присваивается уникальное имя для различения значений. Значение автоматически уничтожается при уничтожении сессии. Значения встроенных объектов таким образом сохранять нельзя, т.е. строка Session. Value("varl", Response) является ошибочной.

Пример:

Session.Value("ИмяПользователя","Иванов");

Response.Write(Session.Value('ИмяПользователя'));

Application

Lock

Обеспечивает монопольный доступ к значениям, сохраненным в объекте Application.

Синтаксис:

Application.Lock()

Параметры:

отсутствуют

Описание:

Позволяет монопольно изменять значения сохраненных в Application значений, закрывая доступ для остальных пользователей. Доступ автоматически восстановится при вызове метода Unlock, завершении обработки страницы или по истечении времени таймаута.

Пример:

Application.Lock() ;

Application.Value("тип","строка");

Application.Unlock() ;

Unlock

Восстанавливает общий доступ к значениям, сохраненным в объекте Application.

Синтаксис:

Application.Unlock()

Параметры:

отсутствуют

Описание:

Метод Unlock является противоположным по действию методу Lock, открывая доступ к значениям, сохраненным в Application, всем пользователям приложения.

Пример:

Application.Lock() ? Application.Value("тип","строка") ;

Application.Unlock() ;

Value

Сохраняет значение переменной с областью видимости "приложение" на время существования сессии.

Синтаксис:

Va lue (<Имя переменной>,<3начение переменной>} Va lue (<Имя переменной>)

Параметры:

<Имя переменной> Строка, содержащая наименование сохраняемого значения.

<3начение переменной>

Сохраняемое значение.

Описание:

Позволяет сохранять некоторое значение произвольного типа с областью видимости "приложение" на время существования приложения. Для обращения к значению каждому значению присваивается уникальное имя. Значение автоматически уничтожается при уничтожении сессии. Значения встроенных объектов таким образом сохранять нельзя, т.е. строка Application.Value("varl",Response) является ошибочной.

Пример:

Application.Value("ИмяПриложения","Торговый зал") ;

Response.Write(Session.Value("ИмяПриложения")) ;


1С-Предприятие. Документация | Web-расширение. Часть 2

Web-расширение. Часть 2.

Установка и запуск

  • Microsoft Internet Information Server
  • Установка IIS
    • Windows NT 4.0
    • Windows 2000
  • Web-приложения
    • Создание приложения
    • Остановка приложения
    • Пользовательский контекст
    • Остановка и перезапуск IIS
    • Управление "устареванием" страниц
    • Frontpage
        • Windows NT 4.0
        • Windows 2000
  • Web-расширение
    • 1С:Предприятие 7.7
    • Настройка DCOM
  • Соединение с 1C Предприятием
    • Настройка DCOM
    • Файл параметров
    • Файл соединения
    • Настройка DCOM
    • Интеграция ASP и 1C:Предприятия 7.
Возможности Web-расширения
    • Создание ASP-страниц
    • Сессия и модуль сессии
      • WebНачатьСессию
      • WebЗавершитьСессию
    • Использование табличных документов 1C:Предприятия 7.7

Установка и запуск

Эта глава посвящена установке и настройке используемых при работе с Web-расширением программных продуктов.

Microsoft Internet Information Server

Microsoft Internet Information Server (US) - Web-сервер, позволяющий как программно расширять возможности сервера CGI-и ISAPI-компонентами, так и использовать ASP-страницы, содержащие фрагменты кода на скриптовых языках и обрабатываемые сервером перед отправкой клиенту. Последняя технология и используется для интеграции IIS и 1С Предприятия 7.7.

Установка IIS

Порядок установки IIS на Windows NT 4.0 отличается от порядка установки на Windows 2000, поэтому они описаны раздельно.

Windows NT 4.0

IIS с поддержкой ASP не входит в поставку Windows NT 4.0, поэтому его необходимо устанавливать отдельно. В качестве источника рекомендуется использовать NT Option Pack 4.0, доступный для загрузки с сайта Microsoft по адресу http://www.microsoft.com/ntserver/nts/downloads/. В этот пакет входят несколько программных продуктов, образующих комплекс, необходимый для функционирования Web-сервера. Из списка компонент необходимо обязательно установить следующие компоненты:

· Microsoft Data Access Components 1.5

· Microsoft Management Console

· NT Option Pack Common Files

· Internet Information Server (Personal Web Server при установке на Windows NT Workstation)

· Internet Service Manager о World Wide Web Server

· Transaction Server

· Transaction Server Core Components

· Windows Scripting Host

Если подкомпоненты для какого-то из компонентов не указаны, то можно устанавливать компонент, не изменяя предложенного по умолчанию выбора. Основным инструментом для управления IIS служит Microsoft Management Console (далее ММС). ММС запускается из меню Start/Programs/Windows NT 4.0 Option Pack/Microsoft Internet Information Server/Internet Service Manager для Windows NT 4.0. Все используемые сервисы организованы в ММС в виде дерева каталогов с корнем Console Root. Управление Web-сервером находится в подкаталоге дерева с именем Internet Information Server/servername/Default Web Site.

Windows 2000

В поставку Windows 2000 уже включен IIS, поэтому для установки IIS достаточно выбрать соответстующий пункт в процессе установки операционной системы. Как и IIS, Microsoft Management Console (далее ММС) встроена в Windows 2000. Управление Web-сервером запускается по пункту меню Start/Programs/Administrative Tools/Internet Information Services.

Никаких специальных настроек после установки собственно IIS не требует, все необходимые модификации настроек приложений описаны в соответствующих разделах.

Web-приложения

Описание Web-приложения дано ранее в главе «Глава 3 Технология ASP» в пункте «Приложение» стр. 25, поэтому здесь рассматриваются только вопросы, связанные с исполнением Web-приложений на U.S.

Создание приложения

Для создания приложения выберите необходимый подкаталог и, нажав правую кнопку мыши, выберите пункт Properties. На закладке Directory найдите Application Settings и нажмите кнопку Create. Созданному приложению можно дать произвольное имя.

Существует два варианта (в Windows 2000 - три) запуска Web-приложения: в текущем процессе самого Web-сервера или в отдельном приложении. Далее эти варианты рассматриваются отдельно.

Запуск приложения в процессе Web-сервера повышает быстродействие Web-приложения, так как запросы на обработку страниц не передаются между процессами, однако уменьшает надежность системы, так как в случае возникновения ошибки в Web-приложении необходимо перезапустить и Web-сервер. Этот вариант запуска установливается при создании приложения по умолчанию.

Запуск приложения в отдельном процессе позволяет повысить устойчивость WWW-сервера к сбоям в приложении и дает возможность остановки приложения без остановки всего WWW-сервера, однако требует дополнительных ресурсов компьютера. Для запуска приложения в отдельном процессе выберите подкаталог приложения и, нажав правую кнопку мыши, выберите пункт Properties. На закладке Directory найдите Application Settings и включите флаг Run in separate memory space (isolated process) -приложение будет запускаться в отдельном процессе.

Третий вариант запуска (pooled) доступен только в Windows 2000. В этом варианте для всех Web-приложений создается отдельный от Web-сервера процесс, в котором и запускаются приложения. Таким образом, этот вариант является промежуточным по быстродействию, устойчивости и требовательности к ресурсам.

Остановка приложения

Для остановки приложения выберите подкаталог приложения и, нажав правую кнопку мыши, выберите пункт Properties. На закладке Directory найдите Application Settings и нажмите кнопку Unload -приложение будет выгружено. Такая возможность остановки существует только при запуске приложения в отдельном процессе -все Web-приложения, запущенные в процессе US, останавливаются только при остановке самого Web-сервера.

Пользовательский контекст

При работе Web-приложения все вызовы, связанные с объектами операционой системы, исполняются в некотором пользовательском контексте. Исходя из набора прав этого пользователя доступ к объектам системы может быть разрешен или запрещен. При установке IIS на компьютере создается два дополнительных пользователя, локальных для компьютера - IUSR_servername и IWAM_servername, обладающих очень ограниченным набором прав.

IUSR_servername по умолчанию используется для проверки прав доступа, которыми обладает IIS при выполнении пользовательских запросов, т.е. все пользовательские запросы выполняются как исходящие от этого пользователя. Установку этого контекста можно изменить - на закладке Directory Security свойств приложения нажмите кнопку Edit, затем нажмите Edit напротив Allow Anonymous Access и выберите нужного пользователя из списка.

Следует различать пользовательский контекст всего Web-приложения и контекст выполнения отдельных пользовательских запросов, поскольку различные системные вызовы (в частности, вызовы OLE) могут использовать не только контекст запроса (например, IUSR_servername), но и контекст приложения. Web-приложения, исполняющиеся в процессе IIS, используют контект SYSTEM - встроенный системный контекст, обладающий практически неограниченными правами на локальном компьютере, но не имеющий доступа к сетевым ресурсам. Web-приложения, запускающиеся в отдельном процессе, по умолчанию используют контект IWAM_servername.

Такое различение пользовательских контекстов необходимо по следующей причине: если 1С:Предприятие 7.7 и Web-приложение выполняются на разных компьютерах, то для корректного завершения сессии необходимо, чтобы пользователь, в контексте которого исполняется процесс, обладал правом Act as part of the operating system (Работа в режиме операционной системы). Пользователь SYSTEM имеет такое право, поэтому Web-приложения, исполняющиеся в процессе Web-сервера, не требуют дополнительной настройки. Пользователь IWAM_servername таким правом не обладает, поэтому следует либо дать это право IWAM_servername, либо изменить пользовательский контекст Web-приложения на контекст пользователя, обладающего таким правом. Для этого в Windows NT 4.0 нужно найти соответствующий пакет (package) в каталоге ММС Console Root/Microsoft Transaction Server/Packages Installed и на странице Identity свойств пакета выбрать необходимого пользователя. В Windows 2000 нужно запустить управление Component Services (пункт меню Start/Programs/Administrative Tools/Component Services) и аналогичным образом изменить пользователя для пакета IIS Out-Of-Process Pooled Applications.

Следует принимать во внимание, что указанное право представляет большие полномочия по выполнению системных вызовов (непосредственно после установки операционной системы право Act as part of the operating system предоставлено только пользователю SYSTEM), поэтому предоставление такого права пользователям понижает общий уровень безопасности Web-сервера. Исходя из этого рекомендуется использовать только Web-приложения, исполняющиеся в процессе IIS.

Если же Web-приложение исполняется на одном компьютере с 1 (^Предприятием, то вышеприведенные требования могут не выполняться.

Остановка и перезапуск IIS

Для этого можно использовать как ММС (Microsoft Managment Console), так и командную строку. В ММС нужно просто выбрать корень сайта (с наименованием по умолчанию Default Web Site) и нажать соответствующую кнопку на панели инструментов. Из командной строки это сделать несколько сложнее - нужно ввести следующие команды:

· для остановки net stop iisadmin /у

· для запуска net start w3svc

Управление "устареванием" страниц

Время "устаревания" (expiry time) страниц используется для определения временной границы, после которой браузер при запросе страницы должен заново получив требуемую страницу с WWW-сервера, возможно обновив сохраненный на компьютере пользователя образ страницы. Для установки времени "устаревания" выберите подкаталог приложения и, нажав правую кнопку мыши, выберите пункт Properties. На закладке HTTP Headers включите флаг Enable Content Expiration и выберите необходимое время "устаревания". Можно установить один из трех возможных вариантов:

· Expire immediately - страница не кэшируется в браузере

· Expire after - страница обновляется через некоторое время после загрузки

· Expire on - страница обновляется после наступления указанной даты.

Страницы, содержащие критичные для приложения и часто обновляемые данные, должны иметь признак Expire immediately -тогда страница будет обновляться при каждом запросе пользователя. Заметим, что существует также программный аналог данной установки, использованный в примере «Портал регистратора».

Frontpage

Microsoft Frontpage - один из популярных программных продуктов для создания Web-сайтов, обладающий широким набором функций. В состав Frontpage входят редактор Web-сайта, позволяющий строить структуру сайта, и WYSIWYG-редактор HTML-страниц сайта. Кроме функций редактирования Frontpage предоставляет сервисные функции проверки ссылок на сайте, информации о страницах сайта и др. Сам Frontpage поставляется как в виде отдельного продукта, так и в составе Microsoft Office. В версиях Frontpage 97 и 98 редакторы сайта и страниц представляют разные приложения, в Frontpage 2000 приложение одно. Далее все описания ориентируются на Frontpage 2000 из русскоязычного Microsoft Office, различные названия для других версий и языков могут отличаться от приведенных.

Установка Frontpage выполняется с CD-ROM из поставки Microsoft Office и не представляет сложностей. Однако кроме установки самой программы необходимо установить также так называемые серверные расширения (server extensions) – компоненты Web-сервера, необходимые для выполнения различных действий в Frontpage. Эти компоненты должны быть установлены на компьютер, на котором установлен Web-сервер. После установки компоненты необходимо сконфигурировать для работы с Web-сервером.

Windows NT 4.0

Для конфигурирования расширений запустите Microsoft Management Console (MMC) и из меню Console выберите Add/Remove Snap-In.... На закладке Extensions для snap-in Internet Information Server включите флаг «Серверные расширения Frontpage». Щелкните ОК и затем щелкните правой кнопкой мыши в название Web-сервера. Выберите Task->Conngure Extensions. Далее следуйте указаниям мастера конфигурирования. После завершения серверные расширения Frontpage будут установлены.

Windows 2000

Серверные расширения Frontpage входят в поставку Windows 2000, поэтому для их установки достаточно выбрать соответстующий пункт в процессе установки операционной системы.

Для работы с сайтом «Портал реализатора» необходимо проделать следующие действия. Запустите Frontpage и выберите пункт Open Web... из меню File. В диалоге выбора каталога найдите каталог, содержащий файлы сайта, и нажмите Open. На вопрос «Add Frontpage Information to the Folder» нажмите Yes. Frontpage сконвертирует указанный каталог в сайт, добавив специальную информацию (в том числе создав подкаталоги в указанном каталоге), и откроет сайт.

Для того чтобы содержание сайта было доступно с Web-сервера, сайт необходимо опубликовать (publish) на сервер. Для этого из меню File выберите пункт Publish Web... и в поле ввода наберите адрес, на который требуется опубликовать сайт. Имя Web-сервера обычно совпадает с именем компьютера, на котором сервер установлен. В качестве имени каталога рекомендуется выбрать Trade - далее описание использует именно это название каталога. Нажмите Publish - сайт будет опубликован на сервере. После публикации можно проверить правильность произведенных действий, набрав в браузере адрес http://servername/trade /help.htm - эта HTML-страница не требует обработки 1С:Предприятием.

После публикации в каталоге сайта необходимо создать приложение, используя MMC (см. выше). Создание приложения обязательно, так как в противном случае обработчики событий, находящиеся в файле global.asa, вызываться не будут.

Web-расширение

Web-расширение состоит из трех основных частей -Web-компоненты 1С:Предприятия, библиотеки V7 Scripting Engine и примера «Портал реализатора». Все три компоненты можно установить с CD-ROM, входящего в поставку. Web-расширение обязательно должно быть установлено в каталог с исполняемыми файлами 1 С: Предприятия 7.7 (например, C:\Program Files\lCv77). Библиотека V7 Scripting Engine может располагаться в произвольном каталоге на компьютере Web-сервера, однако не рекомендуется иметь более одной установленной библиотеки в связи с тем, что использоваться будет библиотека, зарегистрированная последней. Для файлов примера местонахождение произвольно.

Входящий в Web-расширение V7 Scripting Engine (V7Script.dll) использует СОМ (Component Object Model, ранее OLE) для связи с 1 С:Предприятием. Настройка этой связи довольно сложна (по крайней мере для неподготовленного пользователя), поэтому рекомендуется внимательно прочитать нижеприведенные описания, так как от этих настроек зависит работоспособность всего механизма в целом. V7 Scripting Engine в основном использует подсистему CUM, называемую DCOM (Distributed СОМ, распределенный СОМ). DCOM используется в тех случаях, когда вызовы СОМ нужно передавать между процессами (interprocess calls, across process boundaries). Это очень упрощенное описание предназначения DCOM, однако оно помогает понять суть дела. Очевидно, на вызовы между процессами накладываются ограничения, порождаемые системой безопасности, так как потенциально такие вызовы можно использовать для деструктивных действий (например, скопировав на сервер "нехорошую" программу, можно удаленно запустить ее, так DCOM не ограничивает область вызовов одним компьютером). В случае Web-приложения DCOM-вызовы возникают при обработке ASP-страницы в момент передачи текста скрипта из V7 Scripting Engine в lC-.Предприятие 7.7. Для того чтобы разрешить такие вызовы, необходимо специально настроить DCOM. Для настройки DCOM в состав операционной системы входит утилита настройки dcomcnfg-exe, запустить ее можно как из командной строки, так и из меню Start/Run.

1С:Предприятие 7.7

Использование Web-компоненты регулируется специальным правом «Использование Web-расширения». Это право появляется в наборе доступных прав при установленной Web-компоненте в

режиме конфигурирования.

Для запуска 1С:Предприятия 7.7 с использованием Web-расширения необходимо следующее:

· пользователю, использующему Web-расширение, дать право на использование Web-расширения;

· запустить ЮПредприятие с ключом /W или ^«имя файла». При использовании ключа /W V7 Scripting Engine соединяется с ЮПредприятием, не используя дополнительные файлы, поэтому 1С:Предприятие должно быть запущено на одном компьютере с Web-сервером. Если используется ключ с указанием файла, то 1С:Предприятие может быть запущено на любом компьютере, однако на имя файла накладываются следующие требования:

· путь к файлу может быть полным или частичным. В последнем случае путь считается от каталога, содержащего исполняемые файлы 1С:Предприятия;

· каталог должен существовать и быть доступен из 1С:Предприятия.

Если файл с указанным именем не существует, то он будет создан.

Настройка DCOM

Для запуска Web-компоненты эта настройка должна быть проведена обязательно.

На первой закладке окна dcomcnfg.exe представлен список всех OLE-серверов, зарегистрированных на компьютере, и среди них указан сервер V77.GeneralPropPage.

Для настройки дважды щелкните по нему мышкой и в появившемся диалоге выберите закладку Identity. Выберите вариант The interactive user (обычно вместо The launching user). Дважды нажмите OK для сохранения изменений и выхода из программы. Правильность совершенных действий можно проконтролировать по содержимому Registry, запустив утилиту regedit.exe. В Registry должны присутствовать следующие ключи:

· HKEY_CLASSES_ROOT\AppID\<GUID> о RunAs == "Interactive User"

· HKEY_CLASSES_ROOT\AppID\l Cv7(l,s).exe

· Appid = <GUID>

где вместо <GUID> присутствует реальный GUID (например, {OOOBDD71-D8CE-11DO-910A-004095E1DAEA}), во обоих случаях одинаковый. Эту проверку следует выполнять обязательно, если на компьютере запускаются несколько 1С:Предприятий с различными названиями ЕХЕ-файлов (например, lcv7.exe и lcv7s.exe).

После указанной настройки Web-расширение 1 С: Предприятия будет работать в контексте пользователя, указанного при входе в операционную систему. Для работы Web-расширения необходимо, что бы этот пользователь обладал правом Log on as a batch job. Для этого из меню Start/Programs/Adminstrative Tools (Common) запустите User Manager (User Manager for Domains на NT Server) и из меню Policies выберите пункт User Rights. Включите флаг Show advanced user rights и из выпадающего списка выберите пункт Log on as a batch job. Если нужного пользователя в списке Grant To нет, нажмите кнопку Add и выберите этого пользователя. Дважды нажмите О К для сохранения результатов выбора.

Если указание The interactive user по каким-то причинам нежелательно, то вышеприведенные действия можно проделать, указав в закладке Identity точное имя пользователя. Указанный пользователь также должен обладать правом Log on as a batch job.

Активацию Web-расширения можно проверить по содержанию диалога «О программе...». Если в этом диалоге присутствует строка "Web-расширение", то это означает, что модуль Web-расширения загружен (т.е. ключ к нему найден). Если появляется строка "Web-расширение (!)", то это означает, что модуль Web-расширения загружен и активен (т.е. ключ к нему найден, и все системные настройки выполнены правильно). Если же ни той, ни другой строки нет, то это означает, что Web-расширение не загружено по одной из следующих причин:

· релиз 1 С: Пред приятия ниже 7.70.011;

· v7web.dll отсутствует в каталоге с исполняемыми файлами 1 (^Предприятия;

· ключ для Web-расширения не найден.

Соединение с 1C Предприятием

Для установки соединения V7 Scripting Engine использует два метода: «прямой» метод и с использованием промежуточного файла. Прямой метод позволяет подключаться только к одному 1 С:Предприятию, запущенному на компьютере с Web-сервером, при этом файл параметров (см. далее) не используется. Метод, использующий промежуточные файлы, позволяет распределять нагрузку по нескольким 1С:Предприятиям, запущенным на компьютере с Web-сервером или на других компьютерах в локальной сети. Более того, используемые 1 (^Предприятия могут работать с различными информационными базами, что дает возможность на одном Web-сервере запускать несколько различных Web-приложений для выполнения различных задач.

Для работы V7 Scripting Engine необходимо, чтобы 1 (^Предприятие было запущено заранее. Если при запуске 1 (^Предприятия было указано соединение через файл, то указанный файл создается автоматически.

Настройка DCOM

Эта настройка должна быть проведена для установки соединения между библиотекой V7 Scripting Engine и 1 (^Предприятием.

Для настройки запустите dcomcnfg.exe и в списке OLE-серверов дважды щелкните по вышеупомянутому серверу V77.GeneralPropPage. В появившемся диалоге выберите закладку Security. Выберите переключатель Use custom access permissions и нажмите Edit. В списке пользователей, обладающих правом доступа, могут присутствовать следующие пользователи:

· IUSR_servername (или пользователь, в контексте которого IIS исполняет запросы). Этот пользователь должен присутствовать всегда. В случае, если различные Web-приложения используют разных пользователей, то все эти пользователи должны присутствовать в списке;

· IWAM_servername (или пользователь, в контексте которого IIS исполняет отдельное (isolated) Web-приложение). Этот пользователь должен присутствовать, если Web-приложение запускается как отдельный от сервера процесс;

· NETWORK. Этот пользователь должен присутствовать, если 1С:Предприятие и Web-сервер расположены на разных компьютерах, и доступ к 1 С: Предприятию идет по сети.

Если эти пользователи отсутствуют в списке, то необходимо добавить их, нажав кнопку Add...

Аналогичные действия нужно проделать, выбрав переключатель Use custom launch permission.

Права пользователей рекомендуется редактировать именно для конкретного сервера V77.GeneralPropPage, так эти действия влияют на общую безопасность системы.

Настройка соединения с использованием промежуточного файла существенно сложнее и использует специальный файл конфигурации.

Файл параметров

Для указания запущенных 1С:Предприятий, которые V7 Scripting Engine может использовать при передаче скрипта на выполнение, используется файл конфигурации V7Script.cfg. Этот файл имеет обычный текстовый формат INI файла со следующими секциями:

[Common]

Version" 1000

[ Connection 1]

Сотри1ег=<наименование компьютера>

ЕПе=<имя файла>

[Connection2]

[Application 1] Path=<nyTb к приложению на сервере>

0=<номер соединения по секции Connection> 1=<номер соединения по секции Connection>

[Application2]

В секции Common указывается единственный параметр Version, который для этой версии Web-расширения должен содержать 1000.

Секции Connection предназначены для определения 1 С:Предприятий, используемых V7 Scripting Engine. Секции Connection нумеруются по возрастанию, начиная с 1. Параметр Computer содержит наименование компьютера в сети, на котором запущено 1С:Предприятие. Если этот параметр в секции Connection отсутствует, то предполагается компьютер, на котором установлено V7 Scripting Engine. Параметр File содержит имя файла, который используется для установки соединения.

Секции Application предназначены для определения списка 1 С:Предприятий, используемых различными Web-приложениями. Секции Application нумеруются по возрастанию, начиная с 1. В параметре Path необходимо указать путь от корня Web-сервера к корневому виртуальному каталогу приложения, включая завершающий символ '/'. В качестве разделителя каталога также используется символ '/'. Параметры 0, 1 и т.д. используются для указания списка номеров соединений. Номера соединений соответствуют номерам, указанным в заголовках секций Connection.

V7 Scripting Engine использует следующий набор правил при соединении с 1С:Предприятием:

· Если секции Connection отсутствуют, то используется единственное прямое соединение;

· Если секции Connection присутствуют, то используются только указанные соединения с 1 С: Предприятием;

· Если секции Application отсутствуют, то предполагается, что все Web-приложения используют любое из указанных соединений (или единственное прямое соединение);

· Если секции Application присутствуют, то для обработки запросов в этих приложениях используются только перечисленные в них соединения. В этом случае все содинения необходимо указывать явно в секциях Connection;

· все остальные запросы ASP-файлов, использующих V7Script, не обрабатываются нигде.

Одно соединение может быть указано в нескольких приложениях, однако рекомендуется для различных Web-приложений задавать полностью различные либо полностью совпадающие списки соединений. Если один экземпляр 1 (^Предприятия используется несколькими Web-приложениями, то эти Web-приложения должны исполняться в процессе IIS.

Файл параметров должен иметь имя V7Script.cfg и находится в одном каталоге с файлом V7Script.dll.

Пример файла V7Script.cfg:

[Common]

Version=1000

[ Connection 1]

Compute r=comp

File=\\comp\connect\web 1 .pt

[Connection2]

File=cd:\connect\web2.pt

[Application!]

Path=webl/

0-1

[Application2]

Path=web2/

0-2

Согласно этому файлу Web-расширение будет передавать страницы из Web-приложения Webl в 1 С:Предприятие, запущенное с параметром /^<локальное имя файла> на компьютере СОМР1, и страницы из Web-приложения Web2 в 1 С:Предприятие, запущенное на том же компьютере, где установлен Web-сервер.

Файл соединения

Файл соединения используется только как «точка соединения» при работе Web-сервера и 1 С: Пред приятия на разных компьютерах, данные через этот файл не передаются. Файл автоматически создается 1 С: Предприятием при указании имени файла в командной строке, при этом имя файла произвольно. Для соединения через файл необходимо, чтобы этот файл:

· был доступен для пользователя IUSR_servername;

· располагался на том же компьютере, что и запущенное 1С:Предприятие.

Нужно учесть, что имя IUSR_servername является для Web-сервера локальным (напомним, что этот пользователь был создан при установке IIS), и недоступно с другого компьютера. Более того, пароль этого пользователя назначается при установке IIS и администратору сервера неизвестен. Для решения этой проблемы необходимо на сервере запустить административную утилиту из меню Start/Programs/Administrative Tools (Common)/User Manager for Domains (User Manager на Windows NT Workstation). В ней откройте свойства пользователя IUSR_servemame и введите новый пароль в строках Password и Confirm Password. Нажмите ОК. На компьютере, на котором запускается 1С:Предприятие, необходимо создать пользователя с такими же именем и паролем, и сделать каталог с файлом соединения доступным в локальной сети для этого пользователя.

Настройка DCOM

Далее требуется также настроить DCOM для файла соединения. Для этого запустите 1С:Предприятие с ключом /W'uwi файла соединения", и после этого запустите утилиту dcomcnfg. Утилита автоматически добавит необходимые данные в Registry, поэтому сразу после запуска dcomcnfg можно закрыть. Правильность совершенных действий можно проконтролировать по содержимому Registry, запустив утилиту regeditexe. В Registry должны присутствовать следующие ключи:

· HKEY_CLASSES_ROOT\AppID\<GUID> о RunAs = "Interactive User"

· HKEY_CLASSES_ROOT\CLSID\{23A5D4C1-D34E-11D3-8C7B-008048DA120F}

· Appid = <GUID>

где вместо <GUID> присутствует реальный GUID (например, {OOOBDD71-D8CE-11DO-910A-004095E1DAEA}), во обоих случаях одинаковый. Этот GUID должен совпадать с использованным при настройке запуска Web-компоненты 1 С: Предприятия.

И последнее - настройка Web-приложения. Для настройки Web-приложения запустите ММС, вызовите диалог свойств приложения и в закладке Directory Security нажмите кнопку Edit. Затем нажмите Edit напротив Allow Anonymous Access и отключите флаг Enable Automatic Password Synchronization. Наберите пароль для пользователя IUSR_servername, введенный ранее в утилите User Manager, и трижды нажмите кнопку ОК-

Интеграция ASP и 1C:Предприятия 7.7

ASP-технология «в чистом виде» не содержит никаких встроенных средств для выполнения скриптов, внедренных в ASP-страницы. Для этого в IIS используется технология Active Scripting, также разработанная Microsoft. Эта технология замечательна своей расширяемостью, т.ак как она основана на открытых интерфейсах, что позволяет разрабатывать для нее компоненты (так называемые script engines) для произвольных скриптовых языков. Кроме JavaScript и VB Script, разработанных и поставляемых Microsoft, сторонними фирмами разработаны компоненты для скриптовых языков Peri, Python и Haskell. Такое использование модульной технологии работы с скриптами фактически порождает независимость ASP-технологии от используемого скриптового языка. Этот факт и используется при создании ASP-приложений, использующих встроенный язык 1 С:Предприятия.

Возможности Web-расширения

Для интеграции 1 С: Пред приятия и ASP используется библиотека V7 Scripting Engine, построенная в соответствии со спецификацией Active Scripting. Следование спецификации позволяет ей встраиваться в различные системы, требующие обработки скриптов, и, в частности, в технологию ASP. Реально эта библиотека является лишь стыковкой между IIS и 1 (^Предприятием 7.7, передавая скрипты для исполнения в 1 С: Пред приятие и возвращая результат.

При этом ЮПредприятие 7.7 может быть физически запущено как на том же компьютере, что и Web-сервер, так и использовать другой компьютер. В последнем случае связь между компьютерами осуществляется по локальной сети. Следует принимать во внимание один очень важный аспект реализации, ограничивающий производительность Web-приложений: все запросы пользователей, даже приходящие на Web-сервер одновременно, 1С:Предприятие 7.7 обрабатывает последовательно. Для паралельного распределения нагрузки может использоваться несколько запущенных 1С:Предприятий, как на компьютере с Web-сервером, так и на других компьютерах.

Создание ASP-страниц

При обработке страницы IIS передает в V7 Scripting Engine уже сформированный скрипт, причем различные сегменты скрипта складываются в порядке появления их в странице. Такой сформированный скрипт должен представлять собой модуль для исполнения в 1С:Предприятии. Кроме текста скрипта IIS передает контекст страницы в виде набора доступных объектов, которые V7 Scripting Engine также передает в 1С:Предприятие. Эти объекты доступны в 1 С: Пред приятии через встроенный объект «ASP», кроме объектов Request, Response, Application, Session, Server - эти объекты доступны из скрипта напрямую. Через объект ASP можно также вызывать процедуры и функции, реализованные на других скриптовых языках. Следует учитывать, что каждое обращение через объекты ASP-страницы требует обмена данными с IIS, поэтому рекомендуется минимизировать количество таких вызовов и объем передаваемых через них данных.

Технология ASP не накладывает никаких дополнительных ограничений на использование конструкций и встроенных средств языка и работу с объектами 1С:Предприятия, однако, создавая ASP-страницы, необходимо следовать нескольким правилам, позволяющим сформировать модуль без ошибок в структуре.

Все локальные переменные необходимо объявлять в самом начале страницы до тега <html> (после директив, если они присутствуют на странице). Далее следует расположить функции и процедуры, и лишь затем - исполняемый код скрипта, возможно, среди HTML-текста страницы. Такое расположение позволит получить правильный с точки зрения структуры модуль.

В начале ASP-файла рекомендуется писать директиву ASP, определяющую встроенный язык <%@ Language=V7Script %> и непосредственно за этой директивой - скрипт, описывающий используемые на этой странице переменные <% Перем п1, п2; %>.

Контекст ASP-страницы доступен в модуле страницы через объект «ASP». Через его свойства и методы доступны, в частности, все глобальные объекты и функции, реализованные на других языках (например, JavaScript). Это не относится к встроенным объектам IIS (Response, Request и т.д.) - они доступны напрямую через указание имени объекта.

Передать фрагмент HTML при формировании страницы можно двумя способами: Response.Write(CmjK>oKa.HTMZ,) или <%= CmpoKaHTML%> (между символами % и = не должно быть пробелов). Оба способа эквивалентны, однако второй вариант обычно используется при динамической генерации HTML-строки в окружении статического HTML-кода:

<%= HTML строка%>

а первый - при генерации HTML в коде скрипта:

<%Если а=1 Тогда Response.Writef"HTML"); КонецЕсли;%>

Ниже приведен пример правильной ASP-страницы:

<%@ Language=V7Script%> <%

Перем стрСообщение;

Процедура ВывестиСообщение() Сообщить(стрСообщение) ;

КонецПроцедуры %>

<html> <head>

<title>TecTOBBR страница</ЫЫе> </head> <body> <%

стрСообщение = "Web-расширение"

Response.Write(CTpCoo6meHMe) ;

ВывестиСообщение();

%> </body>

Сессия и модуль сессии

Модуль сессии предназначен для сохранения контекста работы конкретного пользователя на время сессии и является для сессии в некоторой степени аналогом глобального модуля. Как и в глобальном модуле, в модуле сессии не доступен контекст исполняемого в данный момент модуля страницы. Для работы с объектами страницы следует передавать необходимые объекты через параметры вызываемой процедуры или функции. Текст модуля сессии берется из модуля обработки, указываемой в функции \УеЬНачатьСессию. Эта обработка создается и включается в конфигурацию на этапе конфигурирования 1С:Предприятия.

Для начала и завершения сессии используются встроенные процедуры 1 С:Предприятия WebНачатьСессию и WebЗавершитьСессию.

WebНачатьСессию

Начинает новую сессию в 1С:Предприятии.

Синтаксис:

WebНачатьСессию (<Идентификатор сессии> обработки>)

Англоязычный синоним:

StartWebSession

Параметры:

<Идентификатор <Наименование обработки> сессии>

Наименование обработки, модуль которой используется в качестве модуля сессии.

Описание:

Процедура WebНачатьСессию начинает новую пользовательскую сессию в 1С: Предприятии с идентификатором Session.SessionID и модулем сессии обработки с указанным наименованием. Эту процедуру следует вызывать при вызове предопределенной процедуры Session_OnStart.

Пример:

Процедура Session_OnStart()

WebНачатьСессию(Session.SessionID, «Сессия») ;

КонецПроцедуры

WebЗавершитьСессию

Завершает сессию в 1С:Предприятии.

Синтаксис:

WebЗавершитьСесию(Идентификатор сессии>)

Англоязычный синоним:

EndWebSession

Параметры:

Идентификатор Идентификатор сессии. Всегда передается Session.SessionID

Описание;

Процедура WebЗавершитьСессию завершает пользовательскую сессию в 1 (^Предприятии с идентификатором Session.SessionID. Эту процедуру следует вызывать при вызове предопределенной процедуры Session_OnEnd.

Пример:

Процедура Session_OnEnd()

WebЗавершитьСессию(Session.SessionID, «Сессия») ;

КонецПроцедуры

Использование табличных документов 1C:Предприятия 7.7

Для создания HTML-страниц удобно использовать сохранение в HTML-файл готовых таблиц. Для этого можно использовать таблицы, созданные в той же обработке, модуль которой используется как модуль сессии. Если же страница исполняется вне сессии, то необходимо использовать глобальные таблицы.


1С-Предприятие. Документация | Web-расширение. Часть 3

Web-расширение. Часть 3.

Пример Web-приложения «Портал реализатора»

  • Конфигурация
  • Контроль работы с порталом
  • Режимы работы портала
    • Информация
    • Список заказов
    • Данные о реализации
    • Список реализации
    • Инвентаризация
    • Список инвентаризаций
    • Отчет о расчетах по реализации
    • Отчеты о реализации
    • Прайс-лист
  • Страницы портала
    • Общие страницы
      • Common.css
      • Global.asa
      • Main.asp (frameset)
      • Menu.htm
      • Default.asp
      • Exit.asp
    • Информация
      • Info.asp
    • Заказ
      • Order.asp
      • Ord_Cat.asp
      • Ord_FG.asp
      • Ord_Item.asp
      • Ord_List.asp
    • Данные о реализации
      • Sale. asp
      • SalJList.asp
    • Инвентаризация
      • Inventor, asp
      • Inv_List.asp
    • Отчет о расчетах по реализации
      • CFA.asp
      • CFAJSet.asp
      • CFA_Data.asp
    • Отчет о реализации
      • Report.asp
      • Rep_Set.asp
      • RepJData.asp
      • Price.asp
  • Модуль сессии
  • Используемые приемы программирования
    • Фреймы
    • Вызовы функций с других страниц
    • Передача параметров между страницами
    • Навигация по справочнику
    • Выбор из справочника
    • Выбор из списка документов
    • Использование табличных документов для генерации HTML-страниц
    • Управление созданием таблицы
    • Приемы JavaScrip

Пример Web-приложения «Портал реализатора»

Портал реализатора является Web-приложением, обеспечивающим доступ через Web к общей торговой системе предприятия. Возможности доступа через портал ограничены функциями, необходимыми для реализаторов. Используя портал, реализаторы могут связываться с торговым предприятием без ограничений на место и время связи и работать с торговой системой, отчитываясь за проданные товары и заказывая новые. Конфигурация для портала основана на типовой конфигурации «Торговля+Склад» ред.8. Так как доступ реализаторов к 1С:Предприятию в ней изначально не предполагался, то конфигурация доработана для использования с порталом.

Все документы, создаваемый реализатором, записываются в торговую систему, но не проводятся - их проведением управляет администратор портала или менеджер. До проведения документы доступны для просмотра и модификации, после проведения - только для просмотра.

Пользователь может работать в портале в следующих режимах:

  • информация.
  • заказы.
  • список заказов.
  • данные о реализации.
  • список реализации
  • инвентаризация.
      • список инвентаризаций
  • отчет о расчетах по реализации.
  • отчет о реализации.
  • прайс-лист.

Для каждого режима в системе присутствует краткое описание назначения режима и возможные действия в этом режиме. Для вызова справки на каждой странице расположена ссылка «подробнее об этом режиме».

Завершение работы с порталом осуществляется выбором пункта меню «Завершение работы».

Конфигурация

В качестве конфигурации используется типовая конфигурация «Торговля+Склад» 7.70.808. В конфигурацию добавлена обработка Сессия, содержащая модуль сессии, и табличный документ Прайс, используемый при подготовке прайс-листа. Для работы с Web-сервером добавлены два пользователя WebSessionI и WebSession2 с правом на Web-расширение.

Для редактирования информации для реализаторов используется внешний отчет InfoSet.ert. Вся информация организована следующим образом:

· на верхнем уровне находятся категории сообщений. Названия категорий выводятся в заголовки «окон» сообщений на информационной странице;

· каждая категория содержит сообщения, выводимые в «окна» категорий.

· кажадя категория может быть специально помечена. В этом случае «окно» категории выводится в левом столбце информационной страницы. Непомеченные категории выводятся в правом столбце страницы. Категории, не содержащие сообщений, на информационную страницу не выводятся.

В остальном конфигурация оставлена неизменной.

Контроль работы с порталом

Для защиты от неавторизованного входа в систему в начале каждой страницы находится код:

Если ПроверкаРегистрации(Response) = 0 Тогда Перейти -Выход;

КонецЕсли ;

Response.CacheControl = "no-cache";

Response.AddHeader("Pragma", "no-cache") ;

Функция модуля сессии ПроверкаРегистрации проверяет авторизацию пользователя в портале. Если пользователь не прошел через процедуру регистрации в системе, функция перенаправляет запрос на вход портала Default.asp-После успешного входа в портал все последующие действия записываются в журнал регистрации с указанием имени пользователя, указанного при входе. Строки Response. CacheConrol и Response. AddHeader запрещают кэширование страницы на компьютере пользователя - это необходимо для правильной работы портала при перемещениях по кнопкам браузера Back и Next.

Режимы работы портала Информация

Страница с информацией появляется сразу после входа в систему и предназначена для получения общей информации, касающейся реализатора: долги, лучшие товары, рекомендации по ценам и рекламе и т.д. Вся информация, кроме данных по долгам, одинакова для всех реализаторов и редактируется внешним отчетом InfbSet.ert.

Товары могут быть как выбраны из каталога (для этого используется ссылка «Выбор товаров из каталога»), так и добавлены к заказу по заранее известному коду. По каталогу товаров можно передвигаться как произвольно - используя список групп, так и последовательно -по приведенным ссылкам на группы товаров. Количество заказанного товара можно изменять, при этом для автоматического изменения цены достаточно перейти в другое поле ввода или элемент управления.

Если нужно найти некоторые товары по подстроке из названия, то можно воспользоваться поиском «Поиск товаров по строке». Строка поиска может содержать пробелы для поиска товаров с наменованиями, содержащими в качестве подстрок все строки, разделенные пробелами- Общая сумма документа автоматически изменяется при изменении количества заказываемого товара. Щелкнув по ссылке «Заказанные товары», в любой момент можно просмотреть список товаров в текущем заказе. При необходимости можно начать подбор товаров заново, полностью очистив текущий заказ (для этого небходимо нажать кнопку «Очистить»). При входе на страницу параметры нового заказа заполняются автоматически, но при необходимости можно создать новый заказ, нажав кнопку «Новый». При нажатии кнопки «Записать» вся информация о текущем заказе будет записана в соответствующий документ торговой системы. Удаление текущего заказа выпоняется кнопкой "Удалить". Для просмотра предыдущих документов нужно ввести начало и конец нужного периода и щелкнуть по ссылке "Показать заказы за период".

Следует принимать во внимание, что вся информация о текущем заказе до нажатия кнопки «Записать» не занесена в информационную базу.

Список заказов

Эта страница используется для выбора нужного заказа из списка имеющихся документов. Заказы выводятся только за указанный период. Для выбора заказа щелкните по ссылке, соответствующей нужному документу. Если заказ еще не проведен, то его можно удалить, нажав кнопку «X».

Данные о реализации

Эта страница предназначена для ввода реализатором документов о реализации имеющегося у него товара и просмотра ранее введенных документов. В списке товаров выводятся только товары, реально имеющиеся у реализатора на момент реализации или соответствующие просматриваемому документу. Вы можете как ввести данные по новой реализации (нажав «Новый»), так и просмотреть и изменить документы о предыдущих реализациях. Для внесения данных о реализации введите дату реализации и количество реализованных товаров и нажмите кнопку «Записать». Для просмотра предыдущих документов нужно ввести начало и конец нужного периода и щелкнуть по ссылке «Показать список реализации за период». Для удаления документа о реализации нажмите кнопку «Удалить».

Следует принимать во внимание, что вся информация о текущем реализации до нажатия кнопки «Записать» не занесена в информационную базу.

Список реализации

Эта страница используется для выбора нужной реализации из списка имеющихся документов. Документы о реализации выводятся только за указанный период.

Инвентаризация

Эта страница предназначена для проведения реализатором инвентаризации имеющегося у него товара. В списке товаров выводятся только товары, реально имеющиеся у реализатора на момент инвентаризации. Вы можете как вести данные для новой инвентаризации, так и просмотреть и изменить предыдущие инвентаризации. Изменения в предыдущих инвентаризациях возможны только в случае, если соответствующие документы еще не проведены в торговой организации.

Для ввода инвентаризации введите дату инвентаризации и остатки по товарам и нажмите кнопку «Записать». Для просмотра предыдущих инвентаризаций введите начало и конец нужного периода и нажмите ссылку «Показать список инвентаризаций». Для изменения предыдущих инвентаризаций необходимо при просмотре списка инвентаризаций выбрать нужный документ, внести в него изменения и нажать «Записать». Для удаления документа об инвентаризации нажмите кнопку «Удалить».

Список инвентаризаций

Эта страница используется для выбора нужной инвентаризации из списка имеющихся документов. Документы об инвентаризации выводятся только за указанный период.

Для выбора инвентаризации введите начало и конец нужного периода и затем нажмите ссылку, соответствующую нужному документу.

Отчет о расчетах по реализации

Эта страница предназначена для получения информации о расчетах между реализатором и торговым предприятием. Для получения этой информации можно использовать три различных варианта отчета:

· краткий. Показывает изменение общей задолженности за указанный период.

· развернутый. Кроме изменения задолженности приводит список документов, образующих задолженность.

· подробный. В дополнение к развернутому отчету приводятся взаимопогашения документов.

Для получения отчета введите начало и конец нужного периода и нажмите кнопку, соответствующую выбранному типу отчета. Отчет можно вывести в отдельном окне браузера, установив флаг показа "Показать отчет в отдельном окне".

Отчеты о реализации

Эта страница предназначена для получения информации о реализации товаров, полученных реализатором от торгового предприятия. Для получения этой информации можно использовать три различных варианта отчета:

· краткий. Показывает изменение остатков товаров за указанный период.

· развернутый. Кроме изменения остатков выводит список документов, изменявших остатки товаров.

· подробный. В дополнение к развернутому отчету приводятся документы по изменениям остатков товаров в течение указанного периода.

Для получения отчета введите начало и конец нужного периода и нажмите кнопку, соответствующую выбранному типу отчета. Отчет можно вывести в отдельном окне браузера, установив флаг показа "Показать отчет в отдельном окне".

Прайс-лист

Эту страницу можно распечатать как готовый прайс-лист, так и использовать ее как предварительный шаблон для подготовки к печати прайс-листа конкретного реализатора. Для использования страницы как шаблона ее необходимо сохранить в файл и затем использовать полученный файл в программе подготовки прайс-листа (например, Microsoft Word или Excel).

Страницы портала

Далее перечислены страницы проекта, составляющие портал. Для передачи данных между браузером и Web-сервероми используется стандартный метод передачи параметров GET. Это позволяет обращаться к значениям параметров из языка, используя стандартную функцию Request.QueryString.

Общие страницы

Common.js Содержит функции на JavaScript, исполняемые клиентским приложением. Common.js содержит единственную функцию ShowHelp, используемую при показе контекстной справки по режиму.

Common.css

Содержит стили, определяющие общий дизайн приложения и используемые при визуализации отчетов.

Global.asa

Файл, содержащий реализацию предопределенных функций приложения Session_OnStart и Session_OnStop.

Main.asp (frameset)

Страница, формирующая общий вид приложения. В левой области располагается основное меню приложения, в правой -информация, соответствующая текущему режиму работы.

Menu.htm

Страница, содержащая основное меню приложения.

Default.asp

Начальная страница приложения. На этой странице расположена идентификация пользователя. На эту страницу переадресовываются все запросы клиентского приложения, если пользователь еще не авторизован в портале.

Exit.asp

Страница, завершающая сессию пользователя с порталом.

Информация

Info.asp

Информационная страница. Информация о задолженности реализатора формируется функцией Информация_Досье из модуля сессии. Остальной текст страницы одинаков для всех реализаторов и берется из файла Web_Info.val, формируемый внешним отчетом InfoSetert.

Заказ

Order.asp

Достаточно сложная страница, предназначенная для просмотра предыдущих товарных заказов и редактирования документов о заказах. Order.asp состоит из двух областей (frames), верхняя область предназначена для управления и всегда содержит страницу Ord_Head.asp, нижняя область при выполнении различных действий может содержать одну из страниц Ord_Cat.asp, Ord_FG.asp, Ord_Item.asp, Ord_List.asp.

Страница обрабатывает параметр Action со следующими значениями:

• New. Это значение эквивалентно отсутствию параметра Action. По этому значению создается новый документ

«Документ. Расход наяРеализатора» с атрибутами

Заказ.Клиент = Реализатор;

Заказ.Валюта = Реализатор.ВалютаВзаиморасчетов;

Заказ.ТипЦен = Перечисление. ТипыРасхЦен. Мелкооптовые ;

Заказ.ПризнакНакладной = Перечисление.ПризнРасхНакл.Продажа ;

Заказ.Дата_Курса = Заказ.ДатаДок;

Заказ.Курс = Заказ.Валюта.Курс.Получить(Заказ.Дата_Курса) ;

Заказ.Склад = Константа.ОсноанойСклад;

• Edit. Это значение предназначено для просмотра и редактирования уже существующего документа. Дополнительно к параметру Action в запрос включается параметр Order с значением, возвращенным функцией ЗначениеВСтрокуВнутр для нужного документа. В нижнюю область формы заказа выводится страница Ord_Item.asp.

• Delete. Это значение используется для удаления текущего заказа из системы. Удаление реализовано функцией модуля сессии УдалитьДокумент, в которую передается заказ, реализатор и переменная, в которую помещается сообщение об ошибке при удалении документа (если такая произошла).

Ord_Cat.asp

Страница для перехода по ветвям каталога товаров и выбора необходимого товара. Эта страница выводится по умолчанию в нижней части формы заказа при переходе в режим заказа. В дальнейшем она может быть вызвана по ссылке «Выбор товаров из каталога». Страница использует функцию Заказ_Изменения из модуля сессии.

Ord_FG.asp

Страница для вывода результатов поиска товаров. Эта страница обрабатывает параметр Action со следующими значениями:

• ClearOrder. Это значение удаляет все строки заказа. Страница использует функцию Заказ_Изменения из модуля

Ord_Item.asp

Страница для просмотра текущего заказа. Обрабатывает параметр Action со следующими значениями:

• Delline. Это значение удаляет строки с номером, указанным в параметре LineNumber;

• ClearOrder. Это значение удаляет всех строк заказа.

Страница использует функцию Заказ_ Изменения из модуля сессии.

Ord_List.asp

Страница для просмотра заказов за конкретный период. Обрабатывает параметр Action со следующими значениями:

• DelOrder. Это значение предназначено для удаления заказа с реквизитами, указанными в параметре Order.

Параметры BegDate и EndDate используются для указания соответственно начальной и конечной даты периода. Страница использует функцию УдалитьДокумент из модуля сессии.

Данные о реализации

Sale. asp

Страница, предназначенная для просмотра предыдущих реализации и редактирования документов о реализованных товарах.

Страница обрабатывает параметр Action со следующими значениями:

• Write. Это значение используется для записи заполненного документа о реализации. В параметре Date передается дата документа, в параметре Changes -изменения в документе по сравнению с предыдущей записью.

• Delete. Это значение используется для удаления документа о реализации.

• New. Это значение предназначено для создания нового документа о реализации.

• Edit. Это значение используется для отображения ранее записанного документа. Документ записывается в значение параметра Sale функцией ЗначениеВСтрокуВнутр.

В графах Товар и Количество выводится название реализуемого товара и оставшееся (по документам) количество, в колонке Продано можно ввести количество реализованного товара.

Страница использует функции ЗаписатьДокумент, УдалитьДокумент, ПолучитьПараметры_Номер и ЗапросТоварНаРеализации из модуля сессии.

SalJList.asp

Список предыдущих реализации за указанный период. Из списка можно выбрать и отредактировать каждую конкретную реализацию. Страница обрабатывает параметр Action со следующими значениями:

• DelSale. Это значение предназначено для удаления документа, записанного в параметр Sale функцией ЗначениеВСтрокуВнутр

Инвентаризация

Inventor, asp

Страница для инвентаризации реализуемых товаров.

Страница обрабатывает параметр Action со следующими значениями:

• Write. Это значение используется для записи заполненного документа о реализации. В параметре Date передается дата документа, в параметре Changes -изменения в документе по сравнению с предыдущей записью.

• Delete. Это значение используется для удаления документа о реализации.

• New. Это значение предназначено для создания нового документа о реализации.

• Edit. Это значение используется для отображения ранее записанного документа. Документ записывается в значение параметра Sale функцией ЗначениеВСтрокуВнутр.

В графах Товар и Количество выводится название реализуемого товара и оставшееся (по документам) количество, в колонке Осталось можно ввести точное количество товара.

Страница использует функции ЗаписатьДокумент, УдалитьДокумент, ПолучитьПараметры_Номер и ЗапросТоварНаРеализации из модуля сессии.

Inv_List.asp

Список предыдущих инвентаризаций за указанный период. Из списка можно выбрать и отредактировать каждую конкретную инвентаризацию.

Страница обрабатывает параметр Action со следующими значениями:

• Dellnventory. Это значение предназначено для удаления документа, записанного в параметр Inventory функцией ЗначениеВСтрокуВнутр.

Отчет о расчетах по реализации

CFA.asp

Страница для получения отчетов о расчетах по реализации. CFA.asp состоит из двух областей (frames). Верхняя область страницы содержит CFA_Set.asp, нижняя - CFA_Data.asp.

CFAJSet.asp

Страница для ввода параметров отчета. Для создания отчета используется функция MakeReport с параметром Mode - типом создаваемого отчета. Все параметры отчета передаются в страницу CFA_Data.asp.

CFA_Data.asp

Страница для отображения отчета о расчетах. Обрабатывает параметр Mode с значениями:

• 1. Краткий отчет.

• 2. Развернутый отчет.

• 3. Подробный отчет.

и параметры BegDate и EndDate - соответственно начальная и конечная даты отчета. Страница использует функции Взаиморасчеты_0тчет, Взаиморасчеты_Досье, Взаиморасчеты_ТовКредит и Взаиморасчеты_Документ из модуля сессии.

Отчет о реализации

Report.asp

Страница для формирования отчетов по реализациям. Report.asp состоит из двух областей (frames). Верхняя область страницы содержит Rep_Set.asp, нижняя - Rep_Data.asp.

Rep_Set.asp

Страница для ввода параметров отчета. Для создания отчета используется функция MakeReport с параметром Mode – типом создаваемого отчета. Все параметры отчета передаются в страницу Rep_Data.asp.

RepJData.asp

Страница для отображения отчета по реализациям. Обрабатывает параметр Mode с значениями:

• 1. Краткий отчет.

• 2. Развернутый отчет.

• 3. Подробный отчет.

и параметры BegDate и EndDate - соответственно начальная и конечная даты отчета.

Price.asp

Страница для вывода прайс-листа. Прайс-лист формируется в mxl-таблицу и сохраняется в отдельный файл, после чего страница просто переадресует клиентский запрос на этот файл.

Модуль сессии

В качестве модуля сессии используется модуль обработки Сессия. Ниже перечислены только процедуры и функции, требующие некоторого комментария.

Функция ПроверкаРегистрации

Параметры: Response

Используется для проверки регистрации пользователя в портале. Функцией используется тот факт, что переменная модуля сессии Реализатор после успешной идентификации содержит элемент справочника «Справочник-Контрагенты». В противном случае пользователь еще не прошел регистрацию, и функция перенаправляет запрос на страницу Default.asp и возвращает 0:

Если ПустоеЗначение(Реализатор) =,1 Тогда

Response.Redirect("Default.asp");

Возврат 0;

КонецЕсли ;

В случае успешного завершения ПроверкаРегистрации возвращает 1.

Процедура Заказ_Изменения

Параметры: Request

Используется для внесений изменений, сделанных пользователем, в торговую систему. В качестве параметра в процедуру передается стандартный объект Request, необходимый для получения параметров из переданного запроса. В запросе могут присутствовать три различных параметра:

• I_Changes. Содержит изменения в существующих строках документа. Изменения записаны в одну строку через разделитель «!» парами (номер строки, количество).

• G_ Changes. Содержит изменения в количестве заказываемых товаров, вне зависимости от наличия этих товаров в документе. Изменения записаны в одну строку через разделитель «!» парами (товар, количество). Товар в строке закодирован функцией ЗначениеВСтрокуВнутр.

• C_Changes. Содержит код товара, количество которого необходимо увеличить на 1.

Используемые приемы программирования Фреймы

Главное окно Портала реализатора представляет собой так называемый frameset или страницу, содержащую другие страницы (фреймы, frames). Фреймы являются независимыми страницами, и поэтому могут независимо меняться, но имеют общую «родительскую» страницу, к которой могут обращаться по ссылке window.parent. Главное окно реализовано в странице Main.asp.

Вызовы функций с других страниц

В JavaScript все объекты динамические, и новые свойства и методы добавляются к ним простым присваиванием значения свойству или ссылки на функцию методу. Этим можно (и нужно) пользоваться при обмене данными между различными страницами. Вызов функции, определенной в другом окне, можно видеть на странице Order.asp. Строки

document.ShowOrder = ShowOrder ;

document.ShowCatalog = ShowCatalog;

document.FindGoods = FindGoods;

определяют новые функции у объекта document, просто присваивая им адреса соответствующих функций (имена функций совпадают исключительно для удобства). Затем эти функции можно вызвать из любого окна, имеющего ссылку на Order.asp - например, Ord_Head.asp, который может обращаться к Order.asp, используя window.parent.

Передача параметров между страницами

Все параметры между страницами передаются методом GET, то есть параметры и значения конвертируются в строки, разделяются символом «=», полученные пары объединяются символом «&», и результирующая строка добавляется к адресу запрашиваемой страницы (URL) после символа «?». Например:

Rep_Data.asp?Mode==3&BegDate==01.10.QS&EndDate-^S. 10.98 Такой подход удобен тем, что нужный адрес можно собрать программным путем, а для получения значения параметра на сервере можно использовать стандартную функцию QueryString.

Навигация по справочнику

Навигация по справочнику реализована в странице Ord_Cat.asp. При переходе между группами справочника эта страница запрашивается снова, при этом в качестве параметра передается значение, возвращаемое ЗначениеВСтрокуВнутр для нужной группы.

Выбор из справочника

Выбор из справочника используется при подготовке заказа. Для занесения товара в список выбранных используется функция OnChangeAmount, сохраняющая все изменения в массивы на компьютере пользователя. При запросе новой страницы все изменения передаются на Web-сервер.

Выбор из списка документов

Выбор из списка документов реализован, например, на странице Inventor.asp. В отличие от выбора из справочника страница для выбора документа замещает предыдущую страницу, поэтому результат выбора передается между страницами (а не между фреймами). Как обычно, для этого используется добавление информации в адрес страницы.

Использование табличных документов для генерации HTML-страниц

Этот прием использован при создании прайс-листа. В качестве табличного документа взят документ «Прайс» обработки Сессия. После заполнения прайса данными табличный документ сохраняется в файл HTML, а в скрипте вызывается перенаправление запроса из страницы Price.asp на страницу Reports/Price.htm.

Управление созданием таблицы

Управление созданием таблицы используется на страницах, выводящих отчеты - например, CFA_Data.asp. Таблицу, содержащую все нужные типы строк, можно создать визуально, а затем в готовый HTML-код вписать фрагменты скрипта для заполнения строк данными и вывода их в результирующую страницу.

Приемы JavaScript

Загрузить страницу не в текущий фрейм (frame) можно кодом window.parent.<iramename>.location.href="page.htm"; Для отмены стандартной реакции браузера на событие нужно возвратить false из обработчика события, если используется Netscape Navigator, или установить event.returnValue = false, если используется Microsoft Explorer.

Изменить ссылку на ходу можно следующим приемом:

<а href="" onclick=="onClick(this)">Ccылкa</a> <script language^javascript^

function onClick(obj)

obj .href= "Необходимая страница";

При использовании скрипта в странице с тегом <FRAMESET> рекомендуется размещать скрипт между тегами <HEAD> и </HEAD>

Перейти к оглавлению:


1С-Предприятие. Документация | Описание типовой конфигурации "Зарплата и Кадры". Часть 1

Описание типовой конфигурации "Зарплата и Кадры". Часть 1.

Введение

Конфигурация «Зарплата + Кадры» системы программ 1С:Предприятие версии 7.7 предназначена для расчета заработной платы и ведения кадрового учета на предприятиях, в учреждениях и организациях любой формы собственности и типа финансирования. Конфигурация входит в состав нескольких продуктов системы 1С:Предприятие и может поставляться в двух вариантах- для Базовой версии программы 1С:Зарплата и Кадры версии 7.7 и для Профессиональной версии программы, включая сетевые версии и версию для SQL. Функциональность с точки зрения предметной области для обоих вариантов поставки одинакова. Оба варианта программы могут эксплуатироваться в различных регионах и для различных областей деятельности — для этого необходимо лишь произвести некоторую настройку параметров конфигурации при ее внедрении на конкретном предприятии.

Различие в реализации двух вариантов конфигурации заключается в том, что вариант, предназначенный для работы с Базовой версией программы, используется «как есть» и обновляется путем загрузки очередной типовой конфигурации фирмы «1С» (при работе программы в режиме запуска «Конфигуратор»).

Вариант поставки конфигурации для Профессиональной версии может подвергаться переработке. Режим запуска «Конфигуратор» системы 1С:Предприятие при этом дает возможность подготовленному пользователю изменять элементы конфигурации, вводить собственные расширения ее функциональности и, тем самым, решать самые разнообразные задачи по автоматизации финансово-экономической деятельности.

Таким образом, Базовая версия программы — это готовое решение задачи расчета зарплаты и ведения кадрового учета, предназначенное для конечного пользователя, которому достаточны возможности типовой конфигурации, в то время как профессиональная версия программы вместе с такой же типовой конфигурацией предлагает большие возможности разработки уникальных конфигураций и даже создания собственных конфигураций с нуля.

Предлагаемая конфигурация содержит необходимый набор справочников для ввода и хранения информации, набор документов, регистрирующих те или иные факты хозяйственной деятельности, алгоритмы проведения расчетов, набор отчетов и прочих вспомогательных средств управления данными для расчета заработной платы

В поставку входит несколько экземпляров типовой конфигурации программы Один из них — основной, с «пустой» информационной базой, т.е пустыми справочниками и пустыми журналами документов Остальные представляют собой демонстрационные примеры (с наполненной информационной базой), при помощи которых можно познакомиться с конфигурацией.

Основная конфигурация предназначена собственно для работы с системой на вашем предприятии и проведения реальных расчетов заработной платы.

Демонстрационные конфигурации предназначены для того, чтобы продемонстрировать практическую работу описываемой конфигурации в различных вариантах, и уже содержат целый набор документов и предысторию расчетов по нескольким сотрудникам абстрактных предприятий.

В данной документации описываются основные принципы и последовательность заполнения справочников, а также практическая работа с основным, не заполненным данными экземпляром конфигурации В случаях, когда необходимо привести пример заполнения данных, документация ссылается на демонстрационную конфигурацию.

При расчете заработной платы на любом предприятии расчетчику повседневно приходится сталкиваться с необходимостью изучения нормативных материалов Начисление заработной платы, премирование, различные выплаты и компенсации в соответствии с законодательством о труде, льготы и надбавки, оплата листков нетрудоспособности и выплата социальных пособий — вот неполный перечень вопросов, в которых бухгалтер должен хорошо разбираться, чтобы избегать ошибок, а следовательно, санкций трудовых инспекций и налоговых органов. Практически нет ни одного вида оплаты или вида удержаний, при определении суммы которых не приходилось бы использовать нормы трудового, гражданского и исполнительного права, изложенные в десятках различных источников.

В качестве дополнительной литературы рекомендуется «Настольная книга бухгалтера по учету и оплате труда» С А Харитонова, содержащая обширный справочный и методический материал Она будет полезна пользователям, использующим как Профессиональную версию, так и Базовую версию В ней описаны системы и формы оп

латы труда, изложен порядок оформления трудовых отношений с работником, описано документирование учета использования рабочего времени, рассмотрены методики расчетов по большинству встречающихся видов оплат и удержаний, изложен порядок расчета выплат социального характера и других выплат, не относящихся непосредственно к заработной плате, но примыкающих к ней, рассмотрен порядок начисления налогов и страховых взносов на фонд оплаты труда

В книге показаны возможности современной компьютерной обработки информации по учету и оплаты труда в соответствии с нормативными документами Описан порядок автоматизированного оформления и учета кадровых документов, заполнения табеля по формам, утвержденным Госкомстатом РФ, а также порядок ведения табеля с помощью конфигурации «Зарплата + Кадры»

В отдельных разделах книги рассматривается порядок начисления оплаты труда за отработанное и неотработанное время; единовременных поощрительных выплат, выплат на питание, жилье, топливо; выплат социального характера; прочих выплат и расходов. Особое внимание уделено порядку исчисления среднего заработка для оплаты труда, очередных и дополнительных отпусков, пособий по временной нетрудоспособности, возмещения вреда здоровью работника Подробно описана система социальных льгот из средств Фонда социального страхования Российской Федерации.

В контексте конкретных видов начислений приводятся как цифровые примеры, так и примеры расчета этих начислений в конфигурации «Зарплата + Кадры».

При работе с конфигурацией у пользователя могут возникать вопросы, связанные с нормативными документами, на основании которых реализованы многие расчеты, формирование отчетности, ввод первичных документов и т.д. Для этого как в Профессиональной, так и Базовой версии конфигурации имеется возможность вызова правовой системы «1С.Гарант. Правовая поддержка» Если эта система установлена на рабочем компьютере, то во многих документах, справочниках и отчетах появляется специальная кнопка вызова, при нажатии на которую вызывается текст нормативных документов, относящихся к конкретному действию.

Соглашения. В данном описании названия конкретных объектов системы, таких как документы, справочники или виды расчетов, пишутся в кавычках («Больничный лист», «Оплата по окладу»)

Если в тексте упоминаются названия кнопок или наименования закладок тех или иных диалогов (например, формы документа или

отчета), они также пишутся в кавычках — «Рассчитать», «Провести», закладка «Общие».

Названия клавиш выделены особым образом — «F5», «Ctrl»+«F4» и т.д.

Кроме того, условимся называть сменяющие друг друга окна Помощников страницами.

Данная документация позволяет научить бухгалтера-расчетчика работать с программой от момента внедрения до расчета зарплаты и получения отчетности.

Пользователи, их права и интерфейсы

Первоначально демонстрационная конфигурация программы предполагает четыре типа пользователей, имеющих следующие условные названия- администратор, главный бухгалтер, расчетчик и кадровик Тип пользователя определяет интерфейс работы с информационной базой- полный интерфейс для администратора, а так же интерфейсы главного бухгалтера, расчетчика и кадровика.

Ниже приведены и описаны основные права пользователей разных типов для того, чтобы вы не удивлялись, например, тому, что, войдя в программу как расчетчик, вы не сможете непосредственно редактировать штатное расписание предприятия.

Под интерфейсом здесь понимается состав главного меню программы и набор панелей инструментов, первоначально предлагаемый программой пользователю.

Администратор

Администратор программы имеет полные права на просмотр и редактирование данных, ему предназначен так называемый «Полный интерфейс» Интерфейс администратора содержит максимально возможный набор пунктов меню. В демонстрационной конфигурации имеется пользователь Рубин типа «администратор»

Для того чтобы при использовании демонстрационной конфигурации наверняка войти в систему с полными правами, используйте имя пользователя-администратора (конечно, если вам известен его пароль).

Главный бухгалтер

Главный бухгалтер также имеет полные права на просмотр и редактирование данных — ему доступно редактирование любых данных информационной базы, но имеет другой интерфейс. Интерфейс главного бухгалтера проще интерфейса администратора, в нем отсутствуют некоторые пункты меню, предназначенные только для настройки программы В демонстрационной конфигурации имеется пользователь Гусев, типа «главный бухгалтер» с интерфейсом «Главный бухгалтер» и полными правами.

Расчетчик

V

Расчетчик имеет право на использование документов типа больничных листов и других отклонений от нормального режима работы, доступ к редактированию журнала расчетов, может проводить расчеты и получать некоторые отчеты (перечисленные в пункте «Отчеты» главного меню). Расчетчику недоступно непосредственное редактирование справочника сотрудников, подразделений, штатного расписания и пр. Это, фактически, означает, что для первоначального ввода информации в справочники системы (в частности, в справочник «Сотрудники») необходимо войти в программу как главный бухгалтер или администратор.

Важно! Если на предприятии работает несколько расчетчиков, и очень важно, чтобы расчетчик имел доступ к данным только «своих» сотрудников, тогда имя пользователя-расчетчика, заданное в конфигураторе, должно совпадать с наименованием одной из групп элементов справочника «Сотрудники». Это приведет к тому, что система распознает такого пользователя как расчетчика заработной платы и позволит ему проводить большинство операций только с «его» сотрудниками (т.е. находящимися в одноименной группе справочника сотрудников).

В демонстрационной конфигурации введено два пользователя типа «расчетчик» — Красина и Славина.

Кадровик

Кадровик имеет право на использование таких документов, как приказы о приеме на работу, увольнении и кадровом перемещении Эти документы используются уже при эксплуатации внедренной кон-

фигурации, для первоначального ввода данных рекомендуем использовать Помощника приема на работу. В демонстрационной конфигурации присутствует пользователь Малинина типа «кадровик» с интерфейсом «Кадровик».

Внимание! Настоящая документация при ссылке на конкретные пункты меню предполагает, что пользователь вошел в программу как «главный бухгалтер», т.е. он использует интерфейс главного бухгалтера и имеет полные права на редактирование любых элементов информационной базы. В случае использования в предлагаемой конфигурации интерфейса расчетчика и кадровика, система значительно ограничивает возможности и права пользователя.

Перед началом работы

Для организации нормальной работы расчетчиков и главного бухгалтера, администратор программы должен провести следующие минимальные действия: используя режим запуска Конфигуратор, необходимо ввести в систему одного или нескольких пользователей, назначить им права и выбрать интерфейсы.

Концепция программы

Раздел содержит краткое описание принципов работы и особенностей предлагаемой конфигурации.

Системы и формы оплаты труда

В данной конфигурации начисление заработной платы может производиться по различным системам (в том числе на комиссионной основе) и формам оплаты труда.

Ниже перечислены предусмотренные в типовой конфигурации системы и формы оплаты труда и соответствующие им правила исчисления заработка сотрудника.

Системы и формы оплаты труда | Правила исчисления заработка Сотрудника
Простая повременная по окладу (по дням) | Начисляется оплата по окладу. Оплата по окладу исчисляется по отработанным дням.
Простая повременная по окладу (по часам) | Начисляется оплата по окладу. Оплата по окладу исчисляется по отработанным часам.
Простая повременная по часовому тарифу | Начисляется оплата по почасовому тарифу.
Повременно-премиальная по окладу (по дням) | Начисляется оплата по окладу и ежемесячная премия. Оплата по окладу исчисляется по отработанным дням.
Повременно-премиальная по окладу (по часам) | Начисляется оплата по окладу и ежемесячная премия. Оплата по окладу исчисляется по отработанным часам.
Повременно-премиальная по часовому тарифу | Начисляется оплата по почасовому тарифу и ежемесячная премия.
Прямая сдельная | Начисляется оплата по сдельным нарядам.
Сдельно-премиальная | Начисляется оплата по сдельным нарядам и ежемесячная премия.
Сдельно-прогрессивная | Начисляется оплата по сдельным нарядам с учетом прогрессивного коэффициента за перевыполнение норм.
Косвенно-сдельная | Начисляется фиксированный процент (т.н. «Коэффициент оплаты») от фактического размера заработка обслуживаемой бригады Фактический размер заработка вводится документом «Начисления и удержания».
Аккордная | Начисляется оплата по бригадным на- Рядам
На комиссионной основе (оклад + % выручки) | Начисляется оплата по окладу и сумма, исчисляемая как фиксированный процент (т н «Коэффициент оплаты») от фактической выручки или оборота. Фактическая выручка вводится документом «Начисления и удержания».
На комиссионной основе (% выручки) | Начисляется сумма, исчисляемая как фиксированный процент (т.н. «Коэффициент оплаты») от фактической выручки или оборота. Фактическая выручка вводится документом «Начисления и удержания».
На комиссионной основе (% выручки, не менее оклада) | Начисляется сумма, исчисляемая как фиксированный процент (т.н. «Коэффициент оплаты») от фактической выручки или оборота, но не менее установленного оклада. Фактическая выручка вводится документом «Начисления и удержания».

Отработанное время

Отработанное время у работников с повременной оплатой труда определяется как разность между нормой рабочего времени (в соответствии с табель-календарями работников) и отклонениями от обычного графика работы (т.е. отпусками, болезнями, прогулами и т.п.), пришедшимися на текущий расчетный период.

При этом предусмотрена возможность скорректировать автоматически рассчитанное отработанное время вводом табелей отработанного времени по форме Т-13.

Работающим по сдельной форме оплаты труда или оплачиваемым на комиссионной основе работникам отработанное время рассчитывается аналогично «повременщикам», но используется только при расчете отпусков и больничных листов, собственно же зарплата таких работников рассчитывается по введенным на них документах о выработке (сдельным и бригадным нарядам и т.п.).

Если на предприятии применяется суммированный учет рабочего времени для отдельных категорий работников, для автоматического учета отработанного времени таких работников можно использовать описываемые пользователем многосменные графики работы.

Штатное расписание

Конфигурация позволяет вести штатное расписание предприятия, включая список подразделений и должностной состав каждого подразделения

В то же время существует возможность отказаться от ведения штатного расписания, если с системой работают только расчетчики заработной платы.

Кадровый учет

Конфигурация позволяет регистрировать прием, увольнение и перемещения сотрудников, автоматически создавать стандартные формы кадровых приказов и получать отчеты по кадровым данным сотрудников

Исходные данные для проведения расчетов

В рамках описываемой конфигурации все события, так или иначе влияющие на расчет заработной платы, например, прием или увольнение сотрудника, уход в отпуск, предъявление к оплате больничного листка, назначение доплат и надбавок и т.д., оформляются при помощи соответствующих документов (например, уход в отпуск оформляется документом «Отпуск»).

В то же время существует возможность непосредственного изменения данных, хранящихся в справочниках, например, можно исправить оклад какого-либо сотрудника Но, редактируя данные непосредственно в справочниках, необходимо учитывать следующее многие основные параметры, используемые в алгоритмах расчетов, (например, тот же оклад сотрудника), являются периодическими, т е. система хранит всю «историю» изменений этих параметров и вводит новые значения таких параметров, привязывая их к дате изменения Алгоритмы расчетов используют «периодичность» параметров Так например, алгоритм, рассчитывающий оплату по окладу за некоторый период, в качестве оклада выбирает значение, действующее на дату окончания этого периода Поэтому, если отредактировать «вручную» оклад сотрудника где-нибудь посередине расчетного периода и рассчитать оплату по окладу за этот расчетный период, то в результате весь расчетный период будет оплачен по новому окладу. Чтобы избежать подобных ситуаций, пользуйтесь включенными в конфигурацию документами.

Важно! Типовая конфигурация программы активно использует периодические, т.е. «запоминающие» историю своих изменений, значения. Во избежание ошибок, которые могут возникнуть при использовании таких значений, используйте для их редактирования соответствующие документы.

Помощники

В конфигурацию включено несколько Помощников, которые облегчат первоначальный ввод данных, прием на работу, редактирование штатного расписания, процесс проведения расчетов, ввод новых видов начислений и удержаний и т.д.

Кроме того, каждый пользователь, работающий с программой, может указать, будет ли он пользоваться при вводе таких документов, как больничный лист или приказ о приеме на работу услугами соответствующих Помощников

План счетов и экспорт проводок в бухгалтерские программы

В конфигурации учтены особенности предприятий, использующих как бюджетный план счетов, так и план счетов хозрасчетных предприятий

Для предприятий, использующих хозрасчетный план счетов, существует возможность формирования различных резервов, например, резерва отпусков

По результатам проведенных расчетов помимо различных отчетов можно получить список бухгалтерских проводок, соответствующих выбранному плану счетов, за исключением проводок, касающихся выплаты зарплаты через кассу или перечисления зарплаты в банки Проводки выгружаются в формате, предназначенном для импорта в типовые конфигурации системы программ 1С Предприятие, или в формате файлов импорта программы lC-Бухгалтерия 60.

Северные и районные особенности

В конфигурации учитываются особенности начисления заработной платы и исчисления налогов, связанные с расположением предприятий в районах Крайнего Севера, приравненных к ним районах, или в других особых местностях.

Военнослужащие

В конфигурации имеется возможность рассчитывать заработную плату военнослужащих и приравненных к ним по налогообложению доходов категорий граждан Если сотрудник является военнослужащим, то налог на доходы физических лиц с его доходов, как правило, не взимается При этом все начисления таких сотрудников подразделяются на относящиеся к денежному содержанию (не облагаются налогом) и прочие, облагаемые налогом в обычном порядке

Использование классификаторов

В конфигурации используются различные классификаторы- кадровые, адресные и классификаторы для подготовки и формирования отчетности по налогу на доходы физических лиц

Классификаторы профессий, специальностей по образованию, воинских званий и языков общения относятся к кадровым классификаторам.

К адресным относятся следующие классификаторы' стран, регионов РФ, городов, районов, населенных пунктов и улиц Классификаторы типов доходов, вычетов и скидок, типов документов используются при формировании отчетности по налогу на доходы физических лиц.

Непосредственное изменение информации в адресных и связанных с налогом на доходы физических лиц классификаторах запрещено Для обновления адресных классификаторов предусмотрена регламентная процедура «Импорт классификаторов». Обновление классификаторов, связанных с налогом на доходы физических лиц, производится автоматически при обновлении типовой конфигурации

Использование расширенных возможностей расчета заработной платы и кадрового учета

В типовой конфигурации предусмотрена возможность поэтапного использования всех включенных в конфигурацию функциональных возможностей. Например, можно начать работу с программой, не используя всех возможностей конфигурации, а в дальнейшем перейти к использованию всей полноты возможностей

В частности, если не использовать расширенные возможности расчета заработной платы, при начислении зарплаты доступны только простейшие формы оплаты труда — простая повременная по окладу и часовому тарифу, а также повременно-премиальная по окладу и часовому тарифу

При использовании расширенных возможностей типовой конфигурации по расчету заработной платы список систем и форм оплаты труда пополняется нижеследующими:

• Прямая сдельная;

• Сдельно-премиальная;

• Сдельно-прогрессивная;

• Косвенно-сдельная;

• Аккордная;

• На комиссионной основе (оклад + % выручки);

• На комиссионной основе (% выручки);

• На комиссионной основе (% выручки, не менее оклада).

Дополнительно, при использовании расширенных возможностей типовой конфигурации по расчету заработной платы можно автоматически учитывать отработанное время работников при применении на предприятии так называемого суммированного учета рабочего времени с многосменными графиками работы.

Кроме того, только при использовании расширенных возможностей типовой конфигурации по расчету заработной платы можно рассчитывать зарплату военнослужащих и приравненных к ним по налогообложению работников, автоматически рассчитать доплату за выслугу лет или за тяжелые условия труда, начислить дивиденды по акциям предприятия

При использовании расширенных возможностей по кадровому учету доступно штатное расписание и возможность ведения электронного фотоархива сотрудников.

Тем пользователям, которые пока не используют расширенных функциональных возможностей конфигурации, предназначены специальные «упрощенные» интерфейсы.

Настройка на конкретное предприятие

Прежде, чем приступать к расчету заработной платы с помощью описываемой конфигурации, необходимо ее настроить на особенности ведения учета конкретного предприятия

Настройка конфигурации — это ввод данных о предприятии, на котором эксплуатируется программа, ввод параметров расчета, реглан монтируемых законодательством, и заполнение справочников, которые используются в дальнейшем при работе программы Некоторая часть данных вводится в Стартовом помощнике, например, название предприятия, определяется полнота использования функциональных возможностей конфигурации и т п. Остальные данные вводятся perламентной процедурой «Настройки » (см одноименный пункт меню «Сервис»)

Стартовый помощник

Стартовый Помощник автоматически вызывается при первом запуске конфигурации «Зарплата + Кадры» Кроме того, его можно вызвать из меню «Справочники», пункт «Стартовый Помощник», или нажав кнопку IP на панели инструментов Если вы не хотите, чтобы Стартовый Помощник автоматически вызывался при каждом запуске системы, сбросьте флажок «Показывать при запуске системы» на заставке Помощника

Чтобы перемещаться по страницам Помощника, следует пользоваться кнопками «Далее» и «Назад» На последней странице кнопка «Готово» станет доступной, и, нажав на нее, вы внесете подготовленные изменения в информационную базу При работе с Помощником до того, как вы нажмете кнопку «Готово», можно отменить изменение информационной базы, для этого следует нажать кнопку «Отмена»

На первых страницах Стартового Помощника можно ввести наименование предприятия, указать, в какую бухгалтерскую программу будут передаваться проводки по результатам расчета зарплаты

На последующих двух страницах Помощник предлагает выбрать, какими функциональными возможностями описываемой конфигурации вы собираетесь пользоваться при дальнейшей работе с системой

На начальном этапе работы с программой (этапе обучения) можно не использовать некоторых функциональных возможностей, в дальнейшем можно расширить используемые возможности конфигурации, например, подключить использование расширенных возможностей кадрового учета, а затем и электронный фотоархив сотрудников

На странице «Районный коэффициент и северные надбавки» Помощник предложит ввести данные, характеризующие местность, где расположено предприятие, с точки зрения выплаты районных и северных надбавок

На странице «Группы сотрудников» Помощник предложит поработать над списком групп в справочнике «Сотрудники» Если в справочнике «Сотрудники» уже зарегистрированы группы сотрудников, они будут занесены в список при запуске Помощника

Совет. Если в рамках предлагаемой конфигурации предполагается вести учет доходов физических лиц, не являющихся работниками предприятия, например, акционеров или предпринимателей, у которых производятся закупки товаров, для этих физических лиц можно в справочнике «Сотрудники» создать отдельные папки

И, наконец, на последней странице Помощник предлагает продолжить настройку программы в форме «Настроек»

В любой момент вы можете прервать работу Помощника, нажав на кнопку «Отмена», при этом введенные в Помощнике изменения будут отменены

Путеводитель

Путеводитель предназначен для самостоятельного изучения типовой конфигурации «Зарплата+Кадры» начинающими пользователями Путеводитель запускается автоматически при первом запуске программы

Если вы не хотите, чтобы Путеводитель автоматически вызывался при каждом запуске системы, сбросьте флажок «Показывать при запуске системы» в первой строке окна Путеводителя.

Страницы Путеводителя содержат описание объектов типовой конфигурации с точки зрения их использования для расчета заработной платы сотрудникам в программе «1С: Зарплата+Кадры 7.7»

При первом запуске рекомендуется ознакомиться с разделом «Как пользоваться Путеводителем^»

Информация в Путеводителе структурирована по разделам учета, таким как прием и увольнение работников, расчет и выплата зарплаты и т д С помощью Путеводителя пользователь не только ознакомится с основными элементами типовой конфигурации по конкретным разделам учета (справочниками, документами, журналами, отчетами) но и может тут же щелчком мыши перейти в нужный режим

Запустить Путеводителя можно из одноименного пункта меню «Помощь» или нажав кнопку панели инструментов

После запуска программы

Настоящая конфигурация проводит проверку корректности данных и, при необходимости, выдает соответствующие сообщения Если при запуске программы возникло сообщение

то это значит, что при последнем сеансе работы была удалена или переименована группа «Уволенные» справочника «Сотрудники»

Настоящая конфигурация предполагает наличие в справочнике сотрудников предопределенной группы с любым кодом и наименованием

«Уволенные» Эта группа используется для перемещения в нее уволенных сотрудников, и ее отсутствие приведет к некорректной работе приказа об увольнении и некоторых других элементов конфигурации Для продолжения работы необходимо восстановить эту группу в справочнике, создав новую группу или восстановив ее наименование

Настройки

Дальнейшую настройку на конкретное предприятие можно продолжить, воспользовавшись регламентной процедурой «Настройки» (см меню «Сервис»). ,

Общие настройки

В форме «Настройки» (вызывается из одноименного пункта меню «Сервис») вводятся различные сведения, характеризующие предприятие в целом, ставки налогов и размеры пособий, используемые при расчете заработной платы, выбираются установки, настраивающие расчет зарплаты под особенности конкретного предприятия и пр.

На закладке «Предприятие» вводятся данные о предприятии — его наименование, адрес, логотип и т п.

Кроме того, на этой же закладке вводятся сведения об ответственных лицах, в том числе о тех, чьи подписи будут стоять на различных документах — фамилии руководителя предприятия, главного бухгалтера, начальника отдела кадров, кассира и др. Эти значения выбираются из справочника сотрудников, который может быть еще не заполнен Поэтому к заполнению этой страницы можно вернуться после того, как будет сформирован список сотрудников

На закладке «Бухгалтерия» можно выбрать бухгалтерскую программу, в которую будут выгружаться проводки, сформированные по результатам расчетов заработной платы

Если проводки выгружаются не в одну из типовых конфигурации системы программ 1С Предприятие 7 7, а в другую программу, тогда необходимо выбрать бухгалтерские счета, используемые при формировании проводок или в печатных формах.

На закладке «Зарплата» выбираются различные установки, позволяющие настроить расчет заработной платы.

В группе реквизитов «Порядок выплаты зарплаты» указывается срок выплаты зарплаты — число, не позже которого по коллективному договору должна быть выплачена заработная плата за истекший месяц

Если предприятие расположено в районе Крайнего Севера или приравненного к нему, то необходимо отредактировать группу реквизитов «Районные и северные особенности» Для начисления северных надбавок необходимо отметить флажок «Северные надбавки», а для расчета районной надбавки сотрудникам укажите размер районного коэффициента

Если при расчете среднего заработка суммы районных и северных надбавок не выделяются из основного заработка, то уберите отметку с флажка «Выделять р.н. и с.н. из среднего заработка»

На закладке «Ставки» вводятся различные ставки, используемые при расчете заработной платы

Здесь вводятся ставки налога на доходы физических лиц (кнопка «Налог на доходы физ лиц»), проценты взносов в Пенсионный фонд РФ и профсоюз, размер минимальной месячной оплаты труда, оклад первого разряда Единой тарифной сетки и т.п.

Здесь же следует определить порядок расчета налога на доходы физических лиц — по фактически полученным или начисленным доходам (кнопка «Налог на доходы физ. лиц») Рекомендации по выбору порядка расчета налога на доходы физических лиц приведены в раз-

деле «Расчет налога на доходы физических лиц по фактически полученным доходам».

Важно! Ставки налогов и взносов, а также размеры пособий являются изменяющимися с течением времени значениями, в тер минах типовой конфигурации — периодическими величинами При работе с такими величинами очень важно следить за датой, с которой вступает в силу новое значение величины. В форме «Настройки» эта дата указывается в реквизите «Установки на дату».

Помимо изменяющихся со временем значений различных ставок достаточно большое количество реквизитов основных справочников конфигурации также меняют свои значения с течением времени. При этом для проведения расчетов очень важно знать, какие значения принимал тот или иной реквизит в тот или иной момент времени. В таких периодических реквизитах хранятся, например, оклад и тариф сотрудника.

При вводе значений периодических величин следует помнить о том, что вводимые значения прописываются на текущую рабочую дату. Это приводит, например, к тому, что записываемые в справочник сотрудников оклады, должности, места работы и пр. про писываются на текущую рабочую дату и действуют не в течение всего текущего месяца, как ожидает пользователь, а с определенной даты.

Поэтому рекомендуется перед началом ввода данных (перед открытием соответствующего справочника) установить желаемую рабочую дату (например, 1 января текущего года), используя пункт «Параметры» меню «Сервис» и выбрав закладку «Общие».

На закладке «Дополнительно» выбираются различные установки, описывающие полноту использования функциональных возможностей программы. Это такие установки, как использовать расширенные возможности расчета заработной платы и кадрового учета, использовать ли штатное расписание, проводить ли расчет северных надбавок и т.п.

Кроме того, на этой же закладке можно отредактировать вспомогательные справочники, которые используются различными алгоритмами расчетов

Большая часть значений, редактируемых в форме «Настройки», хранятся в так называемых константах конфигурации Полный список констант конфигурации приведен в Приложении

Важно! Если значения периодических реквизитов, проставленные при первоначальном вводе, записаны на более позднюю дату, чем текущий расчетный период журнала расчетов «Зарплата», при выполнении расчета большинство видов расчета будут давать нулевой результат или выводить сообщения о недостаточности и некорректности данных

Настройки пользователей

Форма настроек пользователей вызывается из меню «Сервис» В этой форме каждый пользователь, работающий с программой, может указать, будет ли он пользоваться при вводе новых документов услугами соответствующих Помощников (закладка «Помощники»), а также нужно ли программе автоматически сохранять все формируемые отчеты в каталоге пользователя или предоставить пользователю возможность работы с фотоархивом (закладка «Прочие»)

Кроме того, если на предприятии работает несколько кассиров, каждый пользователь может указать того кассира, с которым он взаимодействует при выплате зарплаты, а также ответственного за ведение налоговых карточек сотрудников — закладка «Персоналии»

Настройка параметров отчетов

Форма настройки параметров отчетов предназначена для редактирования параметров многостраничных отчетов, а также для ввода данных, используемых только при печати платежных поручений и отчетности о доходах сотрудников для налоговых органов Вызывается форма из пункта «Параметры отчетов» меню «Сервис»

На закладке «Платежное поручение» указываются реквизиты расчетных счетов предприятия, а также формат даты платежного поручения

На закладке «Для ГНИ» собраны данные, используемые для получения отчетов о доходах в налоговые органы Это сведения о налоговой инспекции, в которой зарегистрировано предприятие, номер инспекции, телефон инспектора и адрес инспекции

На закладке «Многостраничные» собраны данные, используемые для разбиения таких многостраничных отчетов, как расчетные листки или расчетные ведомости, на отдельные страницы.

В реквизите «Название отчета» следует выбрать нужный отчет, а затем отредактировать параметры разбиения этого отчета на страницы

Формирование структуры предприятия

Структура предприятия описывается в справочнике «Подразделения», для редактирования которого используется пункт «Подразделения» меню «Справочники» или кнопка й1 на панели инструментов.

Справочник «Подразделения» может представлять собой иерархический список подразделений предприятия, т е. отражать подчиненность подразделений нижнего звена подразделениям более высокого уровня Для ввода в справочник подразделения верхнего уровня (т.е. подразделения, имеющего административно подчиненные ему подразделения), необходимо при работе в справочнике выбрать пункт «Новая группа» меню «Действия» или нажать «Ctrl»+«F9», а для ввода нового подразделения нижнего уровня — просто ввести новый элемент справочника (клавиша «Ins»)

При первоначальном вводе данных достаточно указать только наименования подразделений Впоследствии можно, установив режим редактирования справочника в диалоге (меню «Действия»), выбрать из списка сотрудников начальника подразделения и указать хозяйственную операцию, по которой будут списываться затраты на оплату труда работников подразделения. Более подробно правила формирования проводок и заполнение всех данных, которые с этим связаны, описаны ниже.

Замечание. Если вы не собираетесь вести в рамках описываемой конфигурации штатное расписание, то заполнение справочников «Подразделения» и «Должности» можно опустить или выполнить после ввода данных о сотрудниках.

Категории

Справочник «Категории» доступен только при использовании расширенных возможностей расчета заработной платы и включает в себя список категорий, принятых на предприятии.

Каждой категории работников ставится в соответствие календарь, содержащий график работы, а также, если нужно, хозяйственная операция, по которой списываются начисленные сотрудникам суммы.

Эти реквизиты можно заполнить после того, как будет заполнен справочник «Сотрудники» перед проведением первых расчетов в форме элемента справочника, установив режим редактирования справочника в диалоге (меню «Действия»).

Отметим также, что заполнение реквизита «Хозяйственная операция» справочника «Категории» позволяет регулировать формирование бухгалтерских проводок по результатам расчетов. Более подробно правила формирования проводок и заполнение всех данных, которые с этим связаны, описаны ниже.

Важно! На основе календаря, указанного для категории сотрудника, считается количество отработанных дней или часов для каждого сотрудника. Если на предприятии не предусмотрено разделение работников по категориям, вы можете не заполнять справочник «Категории», тогда обязательно следует указать какой-либо календарь по умолчанию на закладке «Зарплата» формы «Настройки» (меню «Сервис»).

Должности

В справочнике «Должности» (меню «Справочники») хранится спи» сок должностей сотрудников предприятия.

При использовании расширенных возможностей расчета заработной платы в справочнике «Должности» кроме наименования должности желательно указать планируемый разброс окладов — наименьший и наибольший возможные оклады для данной должности (т.н. «вилка» окладов). Это облегчит в дальнейшем формирование штатного расписания, если оно используется на предприятии. Кроме того, можно указать категорию для данной должности, что облегчит заполнение списка сотрудников, — при вводе приказа о приеме на работу по умолчанию будет проставляться та категория, которая указана для назначенной сотруднику должности. Таким образом, предпочтительно сначала заполнить справочник категорий, а уже затем — должностей.

Дополнительно в справочнике «Должности» можно указать условия труда, соответствующие каждой должности. В зависимости от условий труда, указанных для должности будет автоматически рассчитываться доплата за вредность. По умолчанию принимается, что условия труда нормальные. Если же на вашем предприятии существует должность с различными условиями труда (например, слесари в цеху работают в разных условиях — один в нормальных условиях, а другой имеет дело с бензином), тогда в терминах справочника «Должности» — это разные должности (в нашем примере слесарь с нормальными условиями труда и слесарь с особо вредными условиями труда)

Формирование штатного расписания

Ведение штатного расписания доступно только при использовании расширенных возможностей расчета зарплаты и кадрового учета Однако, если вы не собираетесь отслеживать количество занятых и вакантных ставок на предприятии, и на вашем предприятии не используется понятие «вилки» окладов, тогда можно отказаться от ведения штатного расписания предприятия, сняв соответствующий флажок в Стартовом Помощнике или в форме «Настройки»

Если же вы предполагаете использовать штатное расписание, то после формирования структуры предприятия (т е. заполнения справочника «Подразделения») необходимо заполнить справочники «Должности» и «Категории», а затем воспользоваться Помощником заполнения штатного расписания или заполнить непосредственно справочник «Штатное расписание»

Помощник заполнения штатного расписания

В предлагаемую конфигурацию для облегчения процесса заполнения штатного расписания включен специальный Помощник Вызвать

его можно из пункта «Штатное расписание» меню «Справочники», или нажав кнопку на панели инструментов

На первой странице Помощник предлагает ввести дату, на которую будут занесены периодические реквизиты справочника «Штатное расписание» — общее количество ставок по выбранной должности в выбранном подразделении и «вилка» окладов

На последующих страницах выбираются подразделение, в которое предполагается ввести новую штатную единицу, условия труда и соответствующая им должность

Если нужная должность отсутствует в справочнике, вы можете здесь же создать ее, при этом Помощник предложит заполнить реквизиты должности

Далее Помощник предложит ввести «вилку» окладов и общее количество ставок по новой штатной единице

Если выбранная вами должность уже присутствует в подразделении, тогда Помощник обновит количество ставок и «вилку» окладов в соответствующей строке штатного расписания

И, наконец, на последней странице Помощник покажет, какую штатную единицу вы ввели, и предложит продолжить работу по вводу штатного расписания

Штатное расписание

В справочнике «Штатное расписание» содержится информация о структуре штатного расписания предприятия Для каждой должности в подразделении указывается количество ставок, максимальный и минимальный оклады

Перед тем как выбрать для просмотра справочник «Штатное расписание» (меню «Справочники», пункт «Штатное расписание», подпункт «Просмотр»), следует открыть справочник «Подразделения» (пункт «Подразделения» меню «Справочники»), выбрать определенное подразделение, а затем открыть данный справочник

Это связано с тем, что справочник «Штатное расписание» является «подчиненным» справочнику «Подразделения», т.е. каждая единица штатного расписания относится к тому или иному подразделению

Важно! У подчиненного справочника каждый элемент связан с конкретным элементом справочника-владельца При работе в окне подчиненного справочника набор просматриваемых элементов определяется текущим элементом справочника-владельца Например, если в окне справочника подразделений курсор установлен на конкретном элементе справочника (конкретном подразделении), то в подчиненном ему справочнике штатного расписания будут выведены должности только для текущего подразделения Если подчиненные справочники открываются самостоятельно, то принцип в данном случае один прежде чем открыть подчиненный справочник, надо открыть справочник-владелец, например, «Подразделения», установить курсор на требуемом сотруднике, а затем открыть справочник ему подчиненный, например, «Штатное расписание» Если при этом в меню «Действия» будет выбран пункт «Иерархический список», то в подчиненном справочнике будут отражены только сведения, относящиеся к выбранному подразделению

При просмотре, для выбранного подразделения в справочнике «Штатное расписание» показывается список штатных единиц, имеющих следующие реквизиты

• Наименование — наименование штатной единицы, включающее в себя название должности и подразделения, т.е это должность в определенном подразделении,

• Всего — количество ставок всего для данной должности,

• Занято — количество занятых ставок,

• Вакантно — количество вакантных ставок

Позиционирование другой строки в справочнике «Подразделения» приводит к автоматическому отображению соответствующих штатных единиц в справочнике «Штатное расписание»

В верхней части списка расположены кнопки «Обновить», «Структура», «Вакансии» и «Пересчет»

Кнопка «Обновить» приводит в соответствие название штатной ставки, включающей в себя название подразделения, с названием самого подразделения Это нужно в том случае, если после заполнения штатного расписания менялись названия подразделений в справочнике «Подразделения»

Кнопка «Структура» позволяет вывести в печатном виде все штатное расписание с разбивкой по подразделениям

Кнопка «Вакансии» позволяет вывести в печатном виде все вакансии, имеющиеся в штатном расписании

Кнопка «Пересчет» приводит к пересчету вакантных и занятых должностей в штатном расписании

При приеме на работу нового сотрудника, при переводе его на новую должность, а также при увольнении в штатное расписание заносится информация о количестве вакантных и занятых ставок Новые штатные единицы предложит ввести специальный Помощник (пункт

«Штатное расписание» меню «Справочники» или кнопка Я на панели инструментов)

Формировать строки штатного расписания можно и непосредственно в справочнике «Штатное Расписание»

При этом следует помнить, что справочник «Штатное Расписание» подчинен справочнику «Подразделения» Это значит, что каждая строка штатного расписания «принадлежит» конкретному элементу справочника «Подразделения», т.е. запись о том, что по определенной должности выделено определенное количество ставок относится к конкретному подразделению. Таким образом, для работы со справочником штатного расписания, также как и при работе с другими подчиненными справочниками необходимо сначала открыть справочник владелец — в данном случае справочник «Подразделения» — и выбрать в нем конкретный элемент.

При вводе новой должности в штатное расписание указывается количество ставок, максимальный и минимальный оклады.

Важно! Описываемая конфигурация содержит возможность управлять использованием штатного расписания. Если при внедрении системы вы ввели штатное расписание, и при последующей эксплуатации системы выяснилось, что необходимость поддерживать штатное расписание отпала, вы можете в любой момент отказаться от использования штатного расписания при помощи Стартового Помощника или на закладке «Дополнительно» формы «Настройки» (меню «Сервис»).

Права Формирование штатного расписания доступно главному бухгалтеру, кадровику и администратору программы.

Изменение штатного расписания

Для редактирования штатного расписания можно воспользоваться документом «Изменения в штатном расписании». Для ввода данного документа выберите в меню «Справочники» пункт «Штатное расписание», а затем «Приказ об изменении».

Если редактируется уже имеющаяся в штатном расписании штатная единица, то можно сначала выбрать подразделение в реквизите «Подразделение», а затем перейти в многострочную часть документа и выбрать в колонке «Строка шт. расп.» штатную единицу из данного подразделения. Далее следует заполнить все реквизиты многострочной части, кроме реквизитов «Должность» и «Подразделение».

Если вводится новая штатная единица, то реквизит «Подразделение» выбирать не надо. В многострочной части следует заполнить все колонки, кроме колонки «Строка шт. расп.».

В любом случае — при редактировании или при вводе новой штатной единицы — остальные реквизиты многострочной части заполняются следующим образом:

• В реквизит «Ставок» записывается новое количество ставок для новой или редактируемой штатной единицы.

• В реквизиты «Мин. Оклад» и «Макс. Оклад» записываются соответственно новые значения максимального и минимального окладов для данной ставки.

Виды расчетов

Для получения результата расчета зарплаты используются различные начисления или удержания, которые в данной программе называются видами расчетов. К начислениям относятся основные виды расчетов (оплата по окладу, тарифу); различные доплаты (за совмещение, замещение, совместительство и т.д.); виды расчетов по среднему заработку (больничные, отпуска); различные виды премий; начисления, назначенные суммой (материальная помощь, проездные) и т.п. В отчетных документах по результатам расчета зарплаты (расчетные листки, ведомости и своды) такие виды расчета отражаются в разделе «Начисления».

Такие виды расчетов, как налог на доходы физлиц, взносы в пенсионный фонд, выплата алиментов, погашение ссуды, относятся к удержаниям. В отчетных документах по результатам расчета зарплаты такие виды расчета отражаются в разделе «Удержания».

Некоторые виды расчета, не относящиеся ни к начислениям, ни к удержаниям, но влияющие на расчет налога на доходы физлиц, как например, материальная выгода по вкладам или по заемным средствам, в отчетных документах по результатам расчета зарплаты отражаются в разделе «Прочие доходы».

Справочник «Виды расчетов» (вызывается в одноименном пункте меню «Справочники») предназначен для определения дополнительных свойств таких предопределенных видов расчетов, как налог на доходы физлиц, оплата больничного листа и т.п., а именно назначения виду расчета хозяйственной операции, типа дохода или расчетной базы. Кроме того, в этом же справочнике описываются новые начисления или удержания (кнопка «Помощник ввода нового»).

Важно! При заполнении справочника «Виды расчетов» следует ввести хозяйственные операции для всех удержаний из заработной платы сотрудника, а также для начислений, имеющих отношение к конкретному счету (например, для больничного листа — хозяйственная операция «За счет соцстраха» с проводками Дт 69-1 Кт 70 для хозрасчетного и Дт 193 Кт 180 для бюджетного плана счетов).

Часть результатов видов расчета, являющихся вспомогательными при других расчетах, например расчет материальной выгоды по заемным средствам при расчете налога на доходы физлиц, не следует вообще относить на какой-либо бухгалтерский счет. Таким видам расчета следует ввести хозяйственную операцию с наименованием «Не распределять» (этой хозяйственной операции не сопоставлено ни одной проводки).

Важно! Элементы справочника «Виды расчетов», описывающие виды расчетов, влияющие на расчет налога на доходы физлиц (например, материальная выгода или различные виды налога на доходы физлиц), автоматически контролируются программой. Проверяется наличие этих элементов в справочнике и «значения необходимых реквизитов, поэтому, если какой-либо элемент, соответствующий виду расчета из этой необходимой группы, был удален, программа автоматически восстановит его в списке.

Назначение хозяйственной операции

В справочник «Виды расчетов» обязательно заносятся виды расчетов, связанные с определенной хозяйственной операцией, отличной от хозяйственной операции, выбираемой по умолчанию.

Например, оплата больничного производится за счет средств соцстраха, поэтому виду расчета «Оплата больничного» будет соответствовать хозяйственная операция «За счет соцстраха» (хозяйственные операции выбираются из справочника «Хозяйственные операции»).

Сведения о хозяйственных операциях используются при экспорте проводок в бухгалтерские программы (в том числе в типовые конфигурации системы программ «1С:Предприятие»).

Назначение типа дохода

В справочник «Виды расчетов» следует также вводить виды расчетов в том случае, если они не относятся непосредственно к заработной плате и при этом имеют какие-либо особенности при налогообложении доходов физлиц. Это такие виды расчетов, как подарки, призы, материальная помощь, договора гражданско-правового характера, дивиденды и пр. При этом виду расчета следует сопоставить тип дохода из списка, соответствующего классификатору «Виды доходов», утвержденному МНС РФ.

В дальнейшем выбранные типы доходов используются исчислении подоходного налога, а также при получении отчетов о доходах в налоговые органы: налоговая карточка, справка о доходах, — для разбиения всех полученных сотрудником доходов по их типам.

Такие виды расчета, как премия, доплаты, надбавки и пр. относятся к заработной плате, и поэтому их не следует сопоставлять с каким-либо определенным типом дохода. Суммам заработной платы, премий и т.п. автоматически сопоставляются тип дохода с кодами 0200 или 0300 в зависимости от того, является ли предприятие для этого сотрудника основным местом работы или нет.

Назначение базы начислений

Для вида расчета можно дополнительно определить базу начисления (удержания). База начисления (удержания) — это та расчетная база, которая используется при исчислении суммы по виду расчета.

Для просмотра базы начисления (удержания) в справочнике «Виды расчетов» предусмотрена кнопка «База».

При нажатии на эту кнопку на экране появляется окно, в левой части которого имеется список видов расчета, доступных для включения в расчетную базу, а в правой части — отображается состав расчетной базы.

Кнопками «<», ««», «>», «»» виды расчета переносятся из правой части окна в левую и наоборот. При этом кнопки ««» и »»» предназначены для переноса сразу всего списка видов расчетов из одного окна в другое.

Для основных видов расчета, таких как оплата больничных, отпусков и т.п. в типовую конфигурацию уже встроена расчетная база, соответствующая требованиям законодательства. Кнопка «Заполнить» (или «Заполнить как») позволяет привести текущее состояние расчетной базы начисления (удержания) к состоянию, встроенному в типовую конфигурацию, т.е. состоянию «по умолчанию».

Базу начислений можно задать для любого вида расчета, но, как правило, это имеет смысл для тех видов расчета, которые были введены как дополнительные произвольные начисления или произвольные удержания, т.е. это те виды расчета, которые были добавлены в справочник пользователем в процессе работы. Если при этом для этих видов расчета был определен способ расчета «процентом от базы начислений», то для таких видов расчетов расчетная база должна быть определяется обязательно.

Замечание. Базу начислений можно определить и для видов расчета, для которых в типовой конфигурации база была определена изначально. В этом случае, можно говорить о том, что расчетная база переопределяется, заменяется на новую. При этом при исчислении суммы по таким видам расчета программа будет основываться на списке тех видов расчета, которые были определены в качестве расчетной базы; первоначальный состав расчетной базы учитываться не будет.

Редактирование свойств вида расчетов

При редактировании свойств вида расчета на экране появляется окно диалога, форма которого зависит от того, является ли данный вид расчета начислением или удержанием.

При редактировании свойств начисления, которое было введено как дополнительное произвольное, выводится форма с тремя закладками, а для предопределенного начисления — форма с двумя закладками: «Основные» и «Налог на доходы физлиц».

На закладке «Основные» можно ввести наименование вида расчета; причем для предопределенных видов расчета введенное здесь наименование заменит во всех отчетах имевшееся первоначально в типовой конфигурации название вида расчета.

При необходимости выбранному виду расчета ставится в соответствие хозяйственная операция — реквизит «Хоз операция», а также назначается расчетная база — кнопка «База»

При использовании расширенных возможностей расчета зарплаты в форме появляется флажок «Распределять пропорционально расчетной базе», который влияет на распределение суммы по виду расчета по бухгалтерским счетам при формировании проводок в бухгалтерские программы Если флажок установлен, то результат расчета будет пропорционально разнесен по тем же счетам затрат, на которые были разнесены результаты базовых видов расчета

Например, предположим, что вид расчета «Оплата отпуска» был записан в справочник «Виды расчетов» и установлен флажок «Распределять пропорционально расчетной базе» При расчете среднего заработка с целью исчисления отпускных были учтены следующие суммы

• «Оплата по наряду» — 1000 рублей, учитывается по хозяйственной операции «Основное производство» на 20 б/сч,

• «Месячная премия» — 500 рублей, учитывается по хозяйственной операции «Премирование рабочих» на 25 б/сч,

При этом сама сумма отпускных равна 900 рублей Тогда сумма отпускных будет распределена по двум хозяйственным операциям пропорционально вкладу каждого начисления в средний заработок — 600 и 300 рублей Каждая из полученных сумм записывается при генерации проводок по тем же хозяйственным операциям, что и базовые виды расчетов

Флажок «Не входит в состав довольствия военнослужащих» отображается, если в организации работают военнослужащие (установлен соответствующий флажок на закладке «Дополнительно» формы «Настройки») Если флажок «Не входит в состав довольствия военнослужащих» установлен, то сумма данного начисления облагается налогом на доходы физлиц и в том случае, если она выплачивается сотруднику-военнослужащему

На закладке «Порядок расчета» содержится информация о типе расчета и форме выплаты, которая вводится только через Помощник описания начислений и удержании и здесь не редактируется Эта закладка относится только к дополнительным произвольным начислениям и удержаниям

На закладке «Налог на доходы физлиц» определяются те параметры, которые могут быть только у начислений или прочих доходов

Это .— необходимость обложения налогом на доходы физлиц, выбор типа дохода для отражения сумм начислений в отчетах для налоговых органов (см описание отчета «О доходах сотрудника»), а также определение скидки к доходу (для доходов с кодом 3799)

Тип дохода назначается только в том случае, если вид расчета не является заработной платой и должен быть выделен в отчетах о доходах в отдельную позицию

Группа реквизитов «Описание скидки к доходу с кодом 3799» заполняется, если для вида расчета назначен тип дохода с кодом 3799 - «Доходы, частично не включаемые в совокупный доход в соответствии с законами субъектов РФ»

Редактирование свойств удержаний. Если редактируются свойства вида расчета, являющегося предопределенным удержанием, то в форме остается одна закладка «Основные»

Форма редактирования свойства дополнительного удержания содержит две закладки — «Основные» и «Порядок расчета» Закладка «Основные» содержит те же реквизиты, что и форма редактирования свойств предопределенного удержания, а на закладке «Порядок расчета» отображается определенный пользователем порядок расчета удержания

Ввод и описание дополнительных начислений и Удержаний

Зачастую на практике возникает необходимость ввести в програму возможность расчета еще одного начисления или удержания

Это бывает, во-первых, в том случае, если программа эксплуатируется на предприятии, применяющем в своей практике учета и оплаты труда редко используемые доплаты, и, во-вторых, если программа эксплуатируется в регионах, где местными органами власти введены какие-либо доплаты или компенсационные выплаты. Такие случаи требуют дополнительной настройки программы, которая может производиться пользователем. Особенно важно бывает правильно настроить систему расчета заработной платы в том случае, если такие доплаты имеют особенности в налогообложении: не облагаются налогом или облагаются частично.

Мы рассмотрим возможности конфигурации «Зарплата + Кадры» по описанию дополнительных начислений и удержаний на примере компенсации работникам за использование ими личных легковых автомобилей для служебных поездок и возмещения работнику стоимости содержания ребенка в детском саду. Первый из этих случаев — ввод доплаты, имеющей скидку при налогообложении, а второй — ввод простой доплаты, выраженной в твердой сумме.

Описание начислений производится с использованием «Помощника описания начислений и удержаний», который в удобной форме, последовательно задавая вопросы пользователю, позволит расширить возможности программы и вызывается кнопкой «Помощник ввода нового» в справочнике «Виды расчетов».

Рассмотрим сначала процесс описания компенсации за использование автомобиля ВАЗ 21093. Прежде всего, следует указать, что именно мы собираемся описывать, — начисление или удержание. В нашем случае нужно выбрать вариант «Ввести новое начисление».

Затем нужно записать название начисления и выбрать способ рас чета выплачиваемой суммы. Предположим, что размер нашей компенсации исчисляется исходя из некоторой суммы в зависимости от количества отработанных дней. Такому правилу исчисления компенсации соответствует тип расчета «Суммой, пропорционально отработанному времени».

На очередной странице Помощника нужно указать, выдается ли начисление сотруднику на руки в денежной форме и предусмотрены ли для него какие-либо скидки при исчислении налога на доходы физлиц.

В нашем случае следует установить флажки «Предоставляется в денежной форме» и «Скидки по налогу на доходы физлиц», поскольку сумма компенсации за использование личных легковых автомобилей не включается в совокупный доход сотрудника только в пределах установленных норм. При этом в отчетности по налогу на доходы с физических лиц (налоговой карточке и справке о доходах) суммы компенсации будут выведены с кодом дохода «3799».

Далее Помощник предложит описать порядок исчисления скидки, которая будет автоматически предоставлена при исчислении налога на доходы с физических лиц В нашем случае, скидка установлена в твердой сумме за месяц Размер скидки зависит от марки автомобиля и для автомобилей ВАЗ составляет, например, 148 руб

Для исчисления суммы компенсации пропорционально отработан ному времени необходимо заполнить расчетную базу теми видами расчета, по которым можно определить отработанное время — оплатой по окладу и по тарифу

Далее нужно описать, как будут распределяться суммы компенсации по счетам затрат, в нашем примере — это затраты на содержание АУП, опишем хозяйственную операцию «Зарплата АУП» с проводкой Дт 26 Кт 70

На этом описание компенсации за использование автомобиля завершено, нажимаем кнопку «Далее», а затем «Готово» После нажатия на кнопку «Готово» новая доплата или удержание записывается в систему

После выполнения вышеописанных действий вы сможете использовать только что введенный вид расчета при вводе документов «Начисления и удержания сотрудника» или «Начисления и удержания списком». После проведения расчетов с использованием «нового» вида расчетов в расчетном листке сотрудника в разделе «Начислено» появится очередная строка, соответствующая этому виду расчета, а в расчетных ведомостях появится очередная колонка.

Поскольку описанное нами начисление имеет льготное обложение налогом на доходы с физических лиц, в разделе 4 налоговой карточки сотрудника, получающего компенсацию за автомобиль, появится строка с кодом «3799»

Процесс описания возмещения работнику стоимости содержания ребенка в детском саду значительно короче В этом случае требуется указать только, что это начисление, ввести его наименование, выбрать тип расчета — «Фиксированной суммой», указать, что выплачиваться оно будет в денежной форме и определить хозяйственную операцию, по которой будут списываться эти затраты (если эта хозяйственная операция одинакова для всех работников) Остальные страницы Помощника можно пропустить

Районные коэффициенты и северные надбавки

Раздел содержит описание особенностей начисления заработной платы и исчисления налогов, связанных с расположением предприятий в районах Крайнего Севера, приравненных к ним районах, или в других особых местностях

Настройка параметров расчета северных надбавок и районных коэффициентов производится на закладке «Зарплата» формы «Настройки» (меню «Сервис»)

Районные коэффициенты

Районный коэффициент местности, где работает сотрудник, по умолчанию совпадает с коэффициентом, утвержденным местными властями для местонахождения предприятия Районные коэффициенты для местонахождения предприятия, утвержденные Правительством РФ и местными властями, вводятся в форме «Настройки» (меню «Сервис»)

В то же время, если сотрудник работает в местностях с различными районными коэффициентами (например, был откомандирован в местность с другим районным коэффициентом), такие изменения следует отражать с обязательной привязкой к дате изменения коэффициента Для регистрации изменения районного коэффициента сотрудника рекомендуется использовать документ «Кадровое перемещение»

Северные надбавки

Для того чтобы, сотрудникам предприятия автоматически рассчитывались северные надбавки на закладке «Зарплата» формы «Настройки» (меню «Сервис») следует установить флажок «Северные надбавки»

С размерами северных надбавок немного сложнее Эта доплата является индивидуальной и зависит от места рождения («местный» «приезжий»), от стажа работы на севере, от возраста сотрудника и т.д Для учета этих особенностей расчета северных доплат в предлагаемой конфигурации имеются следующие средства справочник «Северные надбавки», реквизиты «Процент надбавки за работу на севере» и «Северный стаж на дату приема» справочника «Сотрудники»

Реквизит справочника, который содержит процент доплаты за работу на севере, редактируется при вводе приказа о приеме на работу (группа реквизитов «Северные», реквизит «Процент») или при редактировании данных сотрудников в диалоге (реквизит «Сев надбавка»)

Справочник «Северные надбавки» используется для автоматического расчета северных надбавок сотрудникам предприятия, которым проставлен северный стаж на дату приема, а также дата рождения и дата приема Этот справочник «Северные надбавки не является часто редактируемым и может быть вызван на закладке «Дополнительно» формы «Настройки»

Справочник содержит реквизиты «Месяц», «% до 30 лет» и «% после 30 лет» Первый из них содержит стаж работы на севере (в месяцах), остальные — процент северной доплаты для сотрудников в возрасте до 30-ти лет и после 30-ти лет

• Реквизит «Месяц» содержит стаж работы на севере в месяцах.

• Реквизит «% до 30 лет» представляет собой процент северной доплаты для сотрудников в возрасте до 30-ти лет

• Реквизит «% после 30 лет» представляет собой процент северной доплаты для сотрудников в возрасте после 30-ти лет

• Реквизит «Примечание» содержит любой комментарий

Настоящая конфигурация при расчете процента северной доплаты в первую очередь использует значение реквизита справочника «Сотрудники», и, если он равен нулю, — рассчитывает значение процента исходя из даты рождения, даты приема, северного стажа на дату приема и данных справочника «Северные надбавки» Таким образом, если для какого-то конкретного сотрудника, автоматический расчет процента доплаты не устраивает, — проставьте конкретное значение процента доплаты в справочник сотрудников. Если же сотруднику проставлен процент северной надбавки (см. форму редактирования справочника «Сотрудники», закладку «Для севера»), то в этом случае предполагается, что автоматического расчета северной надбавки не требуется.

Важно! Отметим, что ввод процента доплаты в справочник «Сотрудники» приведет к тому, что не будет происходить автоматическое увеличение процента доплаты с ростом стажа работника. Расчетчику придется самостоятельно следить за правильностью установленного значения.

Реквизит «Северная надбавка» справочника «Сотрудники» является периодическим реквизитом, поэтому важно проводить его редактирование с привязкой к дате — каждое новое значение проставляется на конкретную дату.

Замечание. Так как анализ даты рождения, северного стажа и просмотр справочника северных надбавок (т.е. автоматический расчет процента северной доплаты) требует некоторого времени, можно проставить значение процента доплаты в справочник «Сотрудники» для тех сотрудников, которые рассчитываются по максимальному проценту и для которых, следовательно, нет необходимости в его ежемесячном расчете. Это приведет к некоторому ускорению расчета северных надбавок.

Средний заработок

Если налог на доходы с сумм районных коэффициентов и надбавок за стаж работы в местностях с особыми условиями исчисляется отдельно от налога с основного дохода (такие правила действуют по доходам 2000 года), то все выплаты по среднему заработку (отпуск, пособие по временной нетрудоспособности, оплата по среднему заработку, компенсация за отпуск и др.) разбиваются на три группы (основной заработок, районный и северный заработки), налогообложение которых ведется раздельно.

В связи с этим, в таблички для ввода данных для расчета среднего заработка (на закладках «Средний заработок» документов «Больничный лист», «Приказ об увольнении», «Приказ по отпуску», «Оплата по среднему заработку») введены отдельные реквизиты для ввода сумм районных коэффициентов и надбавок за стаж работы на севере.

Вспомогательные справочники для расчета зарплаты

В этом разделе описаны справочники, в которых хранится дополнительная информация для работы различных алгоритмов начислений, доступных только при использовании расширенных возможностей расчета заработной платы.

Разряды рабочих

В конфигурацию включен справочник «Разряды рабочих», в котором содержатся тарифы рабочих в зависимости от разряда. Вызывается справочник на закладке «Дополнительно» формы «Настройки» (меню «Сервис»).

Чтобы использовать тарифы из этого справочника, при приеме сотрудника на работу следует выбрать какое-либо значение реквизита «Разряд рабочих». В этом случае вид расчета «По тарифу» и некоторые другие виды расчетов будут использовать тариф, соответствующий выбранному разряду.

Так же тарифы из этого справочника используются при редактировании справочника «Сотрудники», на закладке «Для расчетов», при выборе значения в реквизите «Разряд рабочего».

Реквизит «Тариф» этого справочника является периодическим, поэтому если с течением времени тариф какого-либо разряда изменился, достаточно ввести новый тариф на требуемую дату, нажав кнопку «История».

Если же при работе с типовой конфигурацией установлена рабочая дата, равная требуемой (см. пункт «Параметры» меню «Сервис»), то новое значение можно ввести непосредственно в справочник.

Использование этого справочника может облегчить изменение тарифа всем работникам с почасовой тарифной ставкой — достаточно только ввести новые тарифы в справочник.

Справочник «Разряды рабочих» не является часто редактируемыми и может быть вызван для просмотра и редактирования в интерфейсе «Настройка» или через системное меню «Операции» (пункт «Справочники...»).

Права Редактирование справочника доступно только пользователям с правами «главного бухгалтера».

Прогрессивный коэффициент

Справочник содержит прогрессивный коэффициент увеличения сдельных расценок при сдельно-прогрессивной оплате труда в зависимости от процента перевыполнения норм. Вызывается справочник на закладке «Дополнительно» формы «Настройки» (меню «Сервис»).

Например, положением об оплате труда на предприятии установлено, что на выработку сверх нормы сдельные расценки увеличиваются:

• при выработке от 101 до 110% нормы - на 10%,

• при выработке от 111% до 120% - на 25%,

• при выработке сверх 121% - на 50%.

Тогда справочник следует заполнить следующим образом:

10 1,1

20 1,25

9999 1,5

Справочник работ (технологических операций) и сдельных расценок

Справочник «Расценки» содержит расценки на выполнение отдельных работ или операций при сдельной и сдельно-прогрессивной форме оплаты труда. Вызывается справочник на закладке «Дополнительно» формы «Настройки» (меню «Сервис»).

В справочник вводится код и наименование работы, расценка за ее выполнение и норма времени в минутах, а также хозяйственная операция, на которую будет отнесена сумма, начисленная за выполнение данной работы (реквизит «Заказ»).

При вводе расценки программа сохраняет историю ее изменения, поэтому если с течением времени расценка за какую-либо работу изменилась, достаточно ввести новую расценку на требуемую дату, нажав кнопку «История».

Если же при работе с типовой конфигурацией установлена рабочая дата, равная требуемой (см. пункт «Параметры» меню «Сервис»), то новое значение можно ввести непосредственно в справочник.

Если требуется изменить сдельные расценки сразу во всем справочнике на один и тот же коэффициент, то для этого предназначена регламентная процедура «Пересчет окладов/тарифов» в меню «Регламенты».

Проценты выслуги

Справочник «Проценты выслуги» содержит проценты надбавки за выслугу лет в зависимости от выслуженного стажа. Вызывается справочник на закладке «Дополнительно» формы «Настройки» (меню «Сервис»).

В колонке «Стаж» указывается предельная величина стажа в годах, за который полагается процент выслуги, записываемый в колонку «Процент»

Справочник «Проценты выслуги» используется для автоматического расчета надбавок за выслугу лет сотрудникам предприятия, которым проставлен стаж за выслугу лет на дату приема (см форму редактирования справочника «Сотрудники», закладку «Дополнительные»).

Особенности бюджетных организаций

Для использования настоящей конфигурации в бюджетных организациях перед началом работы с программой следует уже при работе со Стартовым Помощником установить бюджетный план счетов, проверить и, возможно, откорректировать Единую тарифную сетку, а также справочник налогов и отчислений с фонда оплаты труда (см ниже)

Единая тарифная сетка

В целях стимулирования роли заработной платы и дифференциации в уровнях оплаты труда работников образования, здравоохранения, культуры, социальной защиты и других бюджетных учреждений, Правительство РФ приняло Постановление «О дифференциации в уровнях оплаты труда работников бюджетной сферы на основе Единой тарифной сетки» от 14 октября 1992г №785, которое введено в действие с 1 декабря 1992г

Постановлением предусмотрено, что применение ETC является обязательным для всех учреждений, организаций и предприятий бюджетной сферы, находящихся на бюджетном финансировании, которым в то же время предоставлено право самостоятельно определять виды и размеры надбавок, других выплат стимулирующего характера в пределах выделенных бюджетных ассигнований, имея в виду, что квалификация работников и сложность выполняемых ими работ учтены в размерах ставок и окладов, определяемых на основе ETC

Единая тарифная сетка в конфигурации организована в справочнике «Тарифная сетка» Справочник «Тарифная сетка» вызывается на закладке «Дополнительно» формы «Настройки» (меню «Сервис»)»

В колонке «Разряд» справочника проставляется разряд, а в колонке «Коэффициент» — переводной коэффициент данного разряда по отношению к величине оклада первого разряда, которая редактируется на закладке «Ставки» формы «Настройки» (меню «Сервис») Доплата к разряду записывается в колонке «Доплата»

При редактировании справочника следует помнить, что его реквизиты «Коэффициент» и «Доплата» являются периодическим, т.е хранят предысторию своих значений Это значит, что необходимо устанавливать значение реквизита не «просто так», а на определенную дату Для этого можно использовать кнопку «История»

Если же при работе с типовой конфигурацией установлена рабочая дата, равная требуемой (см пункт «Параметры» меню «Сервис»), то новое значение можно ввести непосредственно в справочник

Справочник «Тарифная сетка» используется как значение реквизита «Разряд по ETC» на закладке «Для расчетов» в форме редактирования справочника «Сотрудники»

Налоги и отчисления с фонда оплаты труда

Важно! Обязательно проверьте соответствие бухгалтерских счетов, занесенных в реквизиты «Дебетуемый счет» и «Кредитуемый счет» справочника «Налоги и перечисления», бюджетному плащ счетов и, если нужно, отредактируйте эти реквизиты

Если ваша организация не платит некоторые налоги, перечисленные в справочнике «Налоги и перечисления», то «лишние» строки, соответствующие этим налогам, можно удалить В этом случае при формировании проводок, а также в отчете «Налоговая ведомость» эти налоги рассчитываться и отражаться не будут

Особенности настройки расчета оплаты труда военнослужащих

В предлагаемой типовой конфигурации при использовании расширенных возможностей расчета зарплаты можно рассчитывать зарплату военнослужащим Для этого следует установить флажок «Военнослужащие» в Стартовом Помощнике или на закладке «Дополнительно» формы «Настройки» (меню «Сервис») В этом случае программа будет «знать», что среди сотрудников предприятия могут работать военнослужащие

В справочнике «Сотрудники» надо отметить всех сотрудников военнослужащих, установив флажок «Военнослужащий» на закладке «Дополнительные» в форме редактирования

Особенностью расчета заработной платы военнослужащих является освобождение от уплаты налога на доходы физических лиц части получаемого ими дохода, а именно сумм денежного довольствия и других сумм (назовем эти суммы денежным содержанием), получаемых по месту службы

Все виды доходов, имеющихся в типовой конфигурации, считаются по умолчанию входящими в состав денежного содержания военнослужащего Если какие-либо доходы, выплачиваемые военнослужащему, облагаются налогом на доходы физических лиц, то соответствующие виды расчетов следует отметить, как «не входящие в состав денежного довольствия» Для этого надо ввести такие виды оплаты в справочник «Виды расчета» и установить флажок «Не входит в состав содержания военнослужащих» в форме редактирования данного вида оплаты

После вышеперечисленных действий можно считать, что настройка конфигурации на особенности расчета зарплаты для военнослужащих завершена

Сведения о банках

Справочник «Банки» содержит список банков, в которые перечисляются либо алименты, либо зарплата сотрудников, либо налоги и отчисления во внебюджетные фонды, и информацию о них Редактирование реквизитов банка осуществляется в следующей форме

Помимо собственно банковских реквизитов (БИК и Кор.счет) в справочник включен реквизит «%», представляющий собой процент, взимаемый банком за безналичное перечисление средств Следует заметить, что наименование банка должно включать в себя город, в котором находится банк


1С-Предприятие. Документация | Описание типовой конфигурации "Зарплата и Кадры". Часть 2

Описание типовой конфигурации "Зарплата и Кадры". Часть 2.

Формирование списка сотрудников

После формирования структуры предприятия и заполнения справочника должностей можно приступать к формированию списка сотрудников в соответствующем справочнике Для вывода списка сотрудников на экран выберите пункт «Сотрудники» меню «Справочники» или нажмите кнопку на панели инструментов

В предлагаемой конфигурации это иерархический список В справочнике обязательно присутствует группа «Уволенные», куда помещаются сотрудники предприятия в результате увольнения, т е прохождения документа «Приказ об увольнении» Такая организация списка сотрудников позволяет разграничить списки сотрудников по произвольным признакам, либо оставить одноуровневый, «линейный» список

Важно! Настоящая конфигурация требует присутствия в списке сотрудников группы «Уволенные»

Помощник приема на работу

Для упрощения всей процедуры приема на работу вплоть до Для упрощения всей процедуры приема на работу вплоть до оформления пропуска вы можете воспользоваться Помощником приема на работу Помощник приема на работу можно вызвать в интерфейсе главного бухгалтера или кадровика из формы списка сотрудников, кнопка «Новый сотрудник», из пункта «Помощник приема на работу» меню «Документы» или кнопкой на панели инструментов.

Помощник позволяет принять на работу как штатного сотрудника, так и внешнего или внутреннего совместителя, а также оформить договор подряда.

Помощник предлагает ввести всю информацию, необходимую при приеме на работу нового сотрудника, начиная от его фамилии, имени, отчества и подразделения, в котором сотрудник будет работать, до подробных сведений о вычетах, на которые имеет право сотрудник согласно законодательству РФ. Кроме того, Помощник предлагает ввести кадровые данные сотрудника и распечатать приказы о приеме, в том числе по форме Т-1.

На последней странице Помощник покажет список введенных приказов и договоров и предложит продолжить работу по вводу новых сотрудников.

Прием на работу

Документ «Приказ о приеме на работу» предназначен для регистрации факта приема сотрудника на работу по трудовому договору (контракту) согласно Кодексу Законов о труде (КЗОТ). Выберите «Приказ о приеме на работу» в пункте «Кадровые приказы» меню «Документы» или нажмите кнопку на панели инструментов.

Информация о сотруднике, как правило, содержит в себе сведения о занимаемой должности и принадлежности работника к какому-либо подразделению и, возможно, категории. Поэтому первоначально, перед вводом данных о сотрудниках, рекомендуется заполнить справочники «Подразделения» и «Должности» и, если используются, «Категории» и «Штатное расписание».

Если при работе с системой не используются расширенные возможности расчета заработной платы, тогда «Приказ о приеме на работу» имеет следующий вид:

Для корректного приема на работу необходимо заполнить, как минимум, следующие реквизиты: имя сотрудника, табельный номер, систему оплаты труда и оклад (либо тариф).

Для предприятий, выплачивающих «северные» надбавки, также необходимо ввести либо процент выплачиваемой надбавки, либо «северный» стаж (подробнее о данных, необходимых для автоматического расчета «северных» надбавок см. выше раздел «Районные коэффициенты и северные надбавки»).

Ниже приводится расшифровка назначения реквизитов:

· Имя — вводится для вновь принятого сотрудника, заполняется автоматически для внутреннего совместителя, или принимаемого повторно совместителя;

· Принять повторно — флажок установив который, можно принять уволенного сотрудника на работу по не основному месту работы Табельный № — вводится для вновь принятого сотрудника при этом можно задать следующий свободный номер, если нажать кнопку «Назначить»,

· Дата приема — дата приема на работу, которая по умолчанию устанавливается равной рабочей дате (см в меню «Сервис > пункт «Параметры», закладку «Общие»),

· Дата окончания работы — заполняется, если сотрудник принимается на временную или сезонную работу Типовая конфигурация автоматически отслеживает срок окончания работы временных работников и в месяц окончания работ предлагает провести увольнение таких сотрудников

· Характер работы — постоянная временная и т д

· Сброшенный флажок «Основное место работы» означает что сотрудник принимается на работу по внешнему совместительству т е имеет другое основное место работы

· Должность — выбирается требуемая должность из справочника «Должности»

· Подразделение — выбирается подразделение, в котором будет работать сотрудник,

· Система оплаты — система и форма оплаты труда В зависимости от выбранной формы оплаты труда в форме отражаются реквизиты собственно «отвечающие» за размеры заработной платы,

· Оклад — размер оклада

· Тариф — размер почасового тарифа

· Ежемесячная премия — процент расчета ежемесячной премии, которая считается по прошлому или текущему месяцу в зависимости от выбранной установки на закладке «Зарплата» формы «Настройки» (меню < Сервис >),

· Тип нал вычета — основной стандартный вычет по налогу на доходы физлиц выбирается из предлагаемого списка и соответствует подпунктам 1 - 3 пункта 1 статьи 218 Налогового Кодекса (далее НК) или пунктам 2, 3 4 и подпункту «е> пункта 6 статьи 3 Закона о подоходном налоге (по умолчанию предлагается вычет под названием «Прочие сотрудники», соответствующий подпункту 3 статьи 218 НК),

· Если в месяце приема на работу на данное предприятие работник не работал на другом предприятии, то он имеет право на вычеты из совокупного дохода за этот месяц по месту новой работы В этом случае необходимо установить флажок «Давать вычеты в месяце приема на работу», тогда при исчислении налога на доходы сотруднику будут предоставляться стандартные вычеты за первый месяц работы,

· • Кнопка «Справка о доходах» позволяет ввести данные о заработке сотрудника на прежнем месте работы в соответствии с правилами заполнения «Справки о доходах физического лица>, утвержденными МНС РФ

На закладке «Комментарий» можно ввести произвольный комментарии к вводимому документу

После ввода всех необходимых данных о сотруднике можно распечатать приказ по предприятию (кнопка «Приказ»), приемную записку по форме Т 1 (кнопка «Форма Т 1>) и пропуск (кнопка <Пропуск>)

При использовании расширенных возможностей расчета заработной платы количество информации, которую можно указать при приеме на работу несколько увеличивается можно указать группу сотрудников, в которую будет помещен принимаемый работник категорию работника и график работы, если на предприятии используются многосменные графики Значительно расширяется спектр доступных систем и форм оплаты труда в связи с чем «расчетные» данные сотрудника вынесены на отдельную закладку При выборе для нового работника косвенно сдельной или комиссионной форм оплаты труда помимо оклада (тарифа) требуется дополнительно указывать т н коэффициент оплаты

Важно! Следует заметить, что если для сотрудника выбран раз ряд согласно ETC, то начисление сумм по виду расчета «По Окладу» производится от оклада, соответствующего разряду ETC, т е введенное для этого же сотрудника значение реквизита «Оклад» будет проигнорировано Аналогично, если для сотрудника выбран «Разряд рабочего», начисление сумм по виду расчета «По Тарифу» будет использовать тариф, соответствующий разряду рабочего, а значение реквизита «Тариф» будет проигнорировано

Если при эксплуатации системы используется штатное расписание, тогда во всех вариантах приема на работу сотрудник принимается на одну из свободных должностей, имеющихся в штатном расписании предприятия. При этом должность выбирается уже из штатного расписания, и требуется указать количество занимаемых работником ставок, кроме того, при проведении документа контролируется соответствие указанного оклада вилке окладов из штатного расписания.

Если вы ведете фотоархив сотрудников, на закладке «Фото» можно выбрать фотографию нового сотрудника.

Совместительство. Документ «Приказ о зачислении на работу» применяется как при приеме нового сотрудника на работу или для назначения уже работающему сотруднику внутреннего совместительства, так и при повторном приеме на работу по внешнему совместительству.

В случае с внутренним совместительством перед заполнением реквизитов следует установить флажок «Внутренний совместитель». Для приема внешнего совместителя необходимо снять признак «Основное место работы».

Иногда случается, что в течение календарного года одного и того же сотрудника, работающего по внешнему совместительству приходится принимать на работу несколько раз, при этом рассчитывать налог на доходы физлиц, а также формировать отчеты по этим расчетам следует нарастающим итогом с начала года. Чтобы повторно принять на работу уволенного ранее сотрудника установите флажок «Принять повторно внешнего совместителя» на закладке «Общие» и выберите из папки «Уволенные» нужного сотрудника.

Важно! Повторно можно принять на работу только по внешнему совместительству. Если уволенного ранее сотрудника требуется принять снова на основное место работы (т.е. в штат предприятия), то на него следует оформить «Приказ о приеме» с присвоением нового табельного номера, как будто бы этот сотрудник принимается на работу впервые. При этом обязательно следует ввести данные о доходах сотрудника с начала года в справку с предыдущего места работы, хотя бы эта справка и была ранее выдана вами же по результатам проведенных ранее расчетов.

В результате проведения этого документа, в справочнике сотрудников в соответствующей группе, если она была указана, появится новая строка.

Внимание! Состав реквизитов и закладок формы «Приказа о приеме на работу» может меняться в зависимости от того, используются ли все возможности описываемой конфигурации или нет. Так например, если вы отказались от ведения фотоархива, в Стартовом Помощнике, то в форме «Приказа» будет отсутствовать закладка «Фото». Если предприятие находится не на севере, то в форме «Приказа» будут отсутствовать реквизиты для расчета «северных» надбавок.

Сведения о сотрудниках

Сведения о сотрудниках содержатся в справочнике «Сотрудники» и подчиненных ему справочниках, таких как, например, «Кадровые данные» или «Налоговые вычеты». Типовая конфигурация построена таким образом, что все сведения о сотруднике можно просмотреть в форме редактирования сотрудника, — даже те, которые находятся в подчиненных справочниках. Для этого предназначены специальные кнопки на закладках формы редактирования.

Редактирование общих данных

Для удобства данные о сотрудниках можно просматривать не все сразу, а по частям, в зависимости от того, что нужно пользователю в данный момент времени. При этом можно обратиться к списку данных о сотрудниках, просмотреть или ввести дополнительные налоговые вычеты какому-либо сотруднику или получить список не выданных депонентов.

Можно сказать, что сведения о сотрудниках имеют несколько визуальных представлений, что позволяет просматривать данные о сотрудниках в нужных разрезах. Для выбора одного из способов просмотра данных о сотрудниках выберите пункт «Справочники» из главного меню программы, в появившемся меню — пункт «Сотрудники», или нажмите кнопку на панели инструментов. При этом вам будет предложен список сотрудников.

Данная форма представления справочника «Сотрудники» позволяет переводить сотрудника от одной группы списка сотрудников в другую или в группу уволенных сотрудников Для этого выберите в правой части таблицы сотрудника, а в левой части выберите нужную группу Затем в меню «Действия» выберите пункт «Перенести в другую группу»

Важно! Надо отметить, что перевод сотрудника в группу «Уволенные» рекомендуется оформлять документом «Приказ об увольнении» В случае, если вы перенесете сотрудника в группу уволенных сотрудников вручную, система при проведении расчетов будет проверять наличие у сотрудника «Приказа об увольнении» и, не найдя этот приказ, будет рассматривать сотрудника как уволенного без даты увольнения (т е очень давно)

Форма содержит кнопку ввода нового сотрудника, вызывающую Помощника приема на работу, и кнопку вывода сокращенного списка сотрудников («Печать»)

В справочнике «Сотрудники» можно работать не только со списком сотрудников, но и с одним конкретным сотрудником в диалоге Для этого дважды щелкните мышью на выбранном сотруднике

Необходимо заметить, что внешний вид формы диалога зависит от того, принят сотрудник на работу по договорам гражданско-правового характера или зарегистрирован договором купли-продажи или же это «обычный» работник Рассмотрим сначала назначение реквизитов диалога формы «обычного» сотрудника

Форма диалога «обычного» сотрудника в простейшем случае (без использования расширенных возможностей расчета заработной платы и кадрового учета) содержит три закладки На закладке «Общие» отражаются данные о том, в каком подразделении и на какой должности работает сотрудник, в также основные данные, используемые при расчете оплаты труда

· имя — фамилия, имя, отчество, которые также вводятся при приеме на работу,

· Табельный номер — табельный номер сотрудника, вводится при приеме на работу,

· Дата приема — содержит дату приема, указанную в «Приказе о приеме»,

· Реквизиты «Подразделение» и «Должность» рекомендуется редактировать при помощи документов «Кадровое перемещение»,

· Система оплаты — система и форма оплаты труда В зависимости от выбранной формы оплаты труда в форме отражаются реквизиты, собственно «отвечающие» за размеры заработной платы,

· Оклад (тариф) используется при исчислении основного заработка работника, этот реквизит также рекомендуется редактировать при помощи документов «Кадровое перемещение»,

· Аванс — сумма, выплачивая работнику в аванс,

· Премия — процент ежемесячной премии, автоматически начисляемой работнику при премиальной форме оплаты труда

Для предприятий, выплачивающих «северные» надбавки, на этой же закладке дополнительно отражаются районный коэффициент сотрудника, процент выплачиваемой надбавки и «северный» стаж

Кнопка «Кадровые приказы» предлагает открыть «Приказ о приеме» и «Приказ об увольнении», если они у сотрудника присутствуют Если одного из приказов нет, тогда кнопка принимает название имеющегося приказа.

Кнопка «Данные расчета» открывает журнал со строками расчетов по сотруднику.

Кнопка «Отчетность» позволяет получить разнообразные отчеты, связанные с текущим состоянием расчетов по сотруднику и прочих его данных.

• Лицевой счет по форме Т-54а, в котором выводится итоговая информация из журнала расчетов «Зарплата» в виде сумм «начислено», «прочие доходы» и «удержано». Документ можно сформировать по текущему кварталу, текущему году, прошлому году и всем данным журнала расчетов.

• Расчетный листок сотрудника за текущий расчетный период. « Отчеты «Справка о доходах» и «Налоговая карточка», представляющие собой утвержденную МНС РФ отчетность о доходах физических лиц

• Отчет «Депонент» — список не выданных депонентов данного сотрудника

• Личную карточку — отчет по кадровому учету, форма Т-2, утвержденная Госкомстатом РФ

Кнопка «Налог на доходы» позволяет отредактировать данные, необходимые для расчета налога на доходы физических лиц

• Список вычетов, положенных сотруднику по законодательству Подробное описание см ниже в разделе «Вычеты по налогу на доходы физических лиц»

• Данные с предыдущего места работы (для исчисления налога в 2000 году) Подробное описание порядка ввода данных с предыдущего места работы см в разделе «Ввод справки о доходах на предыдущем месте работы»

• Данные с начала года за «пропущенные» месяцы при внедрении программы не с января месяца текущего отчетного года Подробное описание см в разделе «Ввод данных с начала года до начала расчетов в налоговую карточку» Кроме того, здесь же, в форме налоговой карточки можно ввести данные документах, подтверждающих право сотрудника на вычеты по налогу на доходы.

Кнопка «Сведения для ПФР» предназначена для просмотра и редактирования данных, необходимых для передачи сведений по программе персонифицированного учета Пенсионного фонда РФ В частности здесь можно ввести подробные сведения о стаже сотрудника, если автоматически формируемых программой сведений недостаточно Подробное описание см. в разделе «Отчеты для Пенсионного фонда»

Кнопка «История» вызывает список истории изменения периодических реквизитов сотрудника.

Закладка «Дополнительные» содержит следующие данные о сотруднике

· Флажок «Взносы в профсоюз» указывает необходимость взимания профвзносов.

· Флажок «Взносы в ПФР с сотрудника» указывает необходимость взимания с сотрудника взносов в ПФР. В частности для сотрудников-инвалидов, получающих пенсию по инвалидности этот флажок следует снять.

· Флажок «Взносы в фонды с работодателя» указывает необходимость уплаты работодателем взносов во внебюджетные фонды с зарплаты сотрудника.

· Флажок «Дотация на питание» указывает необходимость учета дотации на питание.

· Флажок «Дотация на проезд» указывает необходимость учета дотации на проезд.

Важно! Признаки, которыми управляют перечисленные выше флажки являются периодическими реквизитами сотрудника, поэтому перед изменением состояния флажков убедитесь, что форма сотрудника открыта на нужную дату (отражается в заголовке окна формы). Чтобы открыть форму на нужную дату закройте ее (если форма была открыта), смените рабочую дату (в форме редактирования параметров программы — пункт «Параметры» меню «Сервис») и повторно откройте форму редактирования данных сотрудника.

• № счета — номер счета в банке при перечислении зарплаты сотрудников на кредитные карточки.

• Хозяйственная операция — используется при распределении начисленной сотруднику зарплаты по счетам затрат.

• Данные о непрерывном стаже используются при расчете процента оплаты по больничному листу в документе «Больничный лист».

Закладка «Кадровые данные» содержит минимально необходимую кадровую информацию о сотруднике.

Здесь вводятся данные, которые требуются для заполнения отчетов для налоговых органов и Пенсионного фонда РФ: адреса места рождения, места жительства и по регистрации; данные об удостоверении личности работника; идентификационный номер налогоплательщика (ИНН) и т.д.

Если сотрудник не является налоговым резидентом РФ, тогда для построения отчетности по налогу на доходы физлиц необходимо указать страну его постоянного места жительства (ПМЖ).

Внимание! При использовании расширенных возможностей расчета заработной платы так же, как и в «Приказе о приеме» основные расчетные данные выносятся на закладку «Для расчетов», общее количество реквизитов на закладках меняется по мере использования тех или иных функциональных возможностей конфигурации — см. форму «Настройки» (меню «Сервис»).

При использовании расширенных возможностей кадрового учета все кадровые данные сотрудника выносятся в отдельную форму — см. ниже раздел «Кадровые данные».

Форма диалога для договорников состоит из двух закладок «Основные» и «Кадровые данные».

На закладке «Основные» помимо реквизитов, аналогичных реквизитам обычных сотрудников, присутствует также дата рождения.

Кнопка «Договор» открывает «Договор подряда» на данного сотрудника. Остальные кнопки выполняют те же функции, что и в форме «обычного» сотрудника.

Если используются расширенные возможности конфигурации по кадровому учету, то кадровые данные выносятся в отдельную форму.

Совместительство

При использовании расширенных возможностей расчета заработной платы в конфигурации можно вести как внешних, так и внутренних совместителей, причем прием на работу по совместительству осуществляется так же через приказ «Прием на работу», при этом используются флажки «Внутренний совместитель», «Принять повторно внешних совместителей» и «Основное место работы» на закладке «Общие» этого приказа.

Прием на работу внешнего совместителя уже обсуждался ранее, здесь мы рассмотрим, как принять уже работающего сотрудника по совместительству, например, в другое подразделение.

Если установить флажок «Внутренний совместитель», то сразу предоставляется список сотрудников предприятия, из которого необходимо выбрать того сотрудника, кому назначается должность по совместительству. После проведения приказа на внутреннее совместительство в справочник «Внутренние совместители», подчиненный справочнику «Сотрудники» добавляется новая строка. В справочнике «Внутренние совместители» содержится список рабочих мест, занятых сотрудником по внутреннему совместительству.

При увольнении сотрудника с работы по совместительству (как в случае внутреннего, так и в случае внешнего совместительства) следует воспользоваться документом «Приказ об увольнении» (см. пункт «Увольнение» в разделе «Документы»).

В форме редактирования данных сотрудника список должностей, занимаемых сотрудником по внутреннему совместительству, вызывается кнопкой «Совместительство» на закладке «Общие».

При этом сведения о должностях, занимаемых по совместительству, просматриваются и редактируются в диалоге:

Реквизиты этого диалога аналогичны соответствующим реквизитам закладок «Общие», «Для расчета» и «Дополнительные» формы данных сотрудника, только относятся к должности, занимаемой по совместительству.

Ниже перечислены реквизиты справочника в форме его редактирования.

• Место работы (или подразделение и должность), категория и ставка вводятся и редактируются только через документ «Приказ о приеме на работу».

• График — график работы сотрудника при многосменной работе.

• Переключатель «Форма труда» отражает форму оплаты труда, что важно для рабочих, которые могут иметь как повременную, так и сдельную форму оплаты труда.

• «Категория» — категория работника из справочника «Категории»

• «Оклад», «Тариф», «Разряд», «Разряд рабочих» — вводятся и редактируются через документ «Приказ о приеме на работу»

• «Процент ежемесячной премии» — процент премии, выплачиваемый ежемесячно за работу по совместительству

• В группе «Приказы», нажав кнопку «О приеме», можно просмотреть документ «Приказ о приеме на работу» и если необходимо, отредактировать его Здесь же можно открыть документ «Приказ об увольнении», если такой имеется, нажав на кнопку «Об увольнении»

Вычеты по налогу на доходы физических лиц

Вычеты по налогу на доходы физических лиц, предоставляемые сотрудникам предприятия, указываются в справочнике «Налоговые вычеты сотрудников» Список вычетов конкретного сотрудника можно открыть непосредственно в форме диалога справочника «Сотрудники», на закладке «Основные», нажав кнопку «Налог на доходы» и выбрав из выпадающего меню пункт «Вычеты по налогу на доходы»

Список вычетов всех сотрудников предприятия можно открыть из списка сотрудников, нажав кнопку в панели инструментов и выбрав этот справочник из предложенного списка подчиненных справочников Затем, перемещаясь по списку сотрудников, можно просмотреть список вычетов каждого из них

В справочнике отражаются все вычеты, на которые имеет право сотрудник согласно законодательству, в том числе стандартные вычеты (на самого сотрудника, пункты 1-3 ст 218 НК, на детей сотрудника п 4 ст 218, пункты 2, 3, 4 и подпункты «а», «б» и «е» пункта 6 статьи 3 Закона о подоходном налоге), а в 2000 году — также в сумме расходов на благотворительность, строительство жилья и т.д.

При вводе и редактировании вычетов сотрудника возможные их варианты выбираются из списка, составленного в соответствии с законодательством. Экранная форма описания вычета видоизменяется в зависимости от того, какой тип вычета выбирается

Стандартные вычеты, предоставляемые сотруднику, имеют определенную протяженность во времени, поэтому при вводе таких вычетов следует указывать период действия — реквизиты «С», «По» Если не указана дата начала действия вычета, то предполагается, что вычет действует в расчетном периоде и в периодах более ранних Если не указана дата окончания, то считается, что срок действия вычета не ограничен, и вычет учитывается во всех рассчитываемых периодах, начиная с даты начала Если не указана ни дата начала, ни дата окончания, то вычет считается бессрочным и учитывается во всех расчетных периодах.

Форма редактирования вычета может содержать следующие реквизиты

• «Тип вычета» — выбирается из списка, составленного в соответствии с законодательством, присутствует в форме всегда;

• «С» и «По» — даты начала и окончания действия вычета, присутствуют всегда,

• «Сумма» — величина вычета, появляется в форме при описании такого вычета, как расходы на приобретение жилья или на благотворительность и пр.,

• «Количество» — количество детей (иждивенцев), расходы на содержания которых учитываются при исчислении налога на доходы,

• «Дата приобретения жилья», «Наименование объекта строительства», «Адрес объекта строительства» — появляются при описании вычета по приобретению (строительству) жилья

Дотации на питание и проезд

В настоящую конфигурацию включена возможность учета при исчислении налога на доходы физлиц и отчислений во внебюджетные фонды дотаций на питание и проезд Предполагается, что дотации могут выдаваться «натурой», т е сотрудники бесплатно питаются на работе и/или получают проездные билеты, или в денежной форме

Суммы дотаций (на питание — стоимость питания в день, на проезд — стоимость проезда за месяц) вводятся на закладке «Ставки» формы «Настройки» (меню «Сервис») Там же указывается, в какой форме предоставляются дотации — в денежной или в натуральной Необходимость учета дотаций на питание и проезд конкретному сотруднику указывается в форме редактирования данных сотрудника — на закладке «Дополнительно» следует установить флажки «Дотация на питание» и «Дотация на проезд»

При формировании проводок по суммам дотации в натуральной форме проводки не создаются, т к считается, что эти затраты уже были учтены на других счетах, например, при приобретении продуктов питания или проездных билетов Однако в справочнике «Виды расчетов» видам расчетов «Оплата питания (натурой)» и «Оплата проезда (натурой)» должна быть сопоставлена какая-либо хозяйственная операция (например, «Дотации») В этой хозяйственной операции счет кредита следует оставить невыбранным, а в качестве счета дебета следует проставить тот счет, на который будут списываться отчисления во внебюджетные фонды с сумм дотации в натуральной форме

Важно! Сотрудникам, которым бесплатные питание и/или проезд предоставляются по закону, соответствующие дотации учитывать не нужно

Кадровые данные

При заполнении реквизитов приказа о приеме на работу, вводятся только некоторые, в основном расчетные, данные по сотруднику Кадровые данные можно ввести после приема сотрудника на работу

Для ввода дополнительной кадровой информации предназначена закладка «Кадровые данные» или при использовании расширенных возможностей кадрового учета специальная форма, вызываемая кнопкой «Кадровые данные» из формы редактирования данных сотрудника

На закладках формы «Кадровые данные» размещена информация, которая используется как для заполнения всех разделов личной карточки по форме «Т-2» (закладки «Основные», «Дополнительные», «Документы», «Адреса»), так и информация, используемая при формировании отчетов в налоговые органы и Пенсионный фонд РФ (закладка «ПФ и ГНС»)

Закладка «Основные» содержит данные, используемые в личной карточке

Нажав кнопку «Карточка работника», можно получить «Личную карточку» сотрудника по форме Т-2 Нажав кнопку «Пропуск», можно получить пропуск на сотрудника Форма Т-2 и пропуск выводятся с фотографией сотрудника или без нее, если фотография по каким-либо причинам отсутствует

Закладка «Дополнительные» также содержит, в основном, ин формацию для личной карточки сотрудника

Кнопки, расположенные на данной закладке, вызывают вспомогательные справочники с дополнительной информацией, содержащейся в них об образовании, составе семьи, трудовой деятельности и т п

При вводе состава семьи данные о детях сотрудников используются при начислении детских пособий из фонда заработной платы и фонда социального страхования

Закладка «Документы» содержит данные об удостоверении личности, дипломе об образовании и сведения о воинском учете, используемые в личной карточке и в справке о доходах для ГНИ

Закладка «Адреса» содержит данные об адресах места рождения сотрудника места жительства, места регистрации и пр.

Нажав на кнопку - можно ввести соответствующий адрес с использованием адресных классификаторов

Закладка «ПФ и ГНС» содержит данные, необходимые для пере дачи сведений в Пенсионный Фонд РФ и ГНИ

В группе реквизитов «Пенсионный фонд» вводится следующая ин формация

· «Страховой номер» — индивидуальный номер застрахованного лица в Пенсионном фонде,

· «Категория» — категория плательщика страховых взносов в Пенсионный фонд

Замечание. Согласно разъяснениям, полученным в Пенсионном фонде РФ, работникам, являющимся инвалидами и получающим пенсии по инвалидности, с заработка которых работодатель взносов не уплачивает, следует выбирать категорию «Особые выплаты»

Кнопка «История» выводит список значений периодического рек визита «Категория»

В группе реквизитов «Для справки о доходах в ГНИ» вводится следующая информация

• ИНН — идентификационный номер налогоплательщика для сотрудника, зарегистрированного в налоговых органах,

• Код ГНИ — код ГНИ по месту жительства сотрудника зарегистрированного в налоговых органах,

• Страна ПМЖ — страна постоянного места жительства заполняется только для нерезидентов

Закладка «Фото» Если вы ведете фотоархив сотрудников, в форме Кадровых данных будет присутствовать закладка «Фото» с фотографией сотрудника

Нажав на кнопку «Сменить фото», можно обновить фотографию сотрудника

Ввод адресов сотрудников и адресные классификаторы

Ввод адреса предприятия и адресов сотрудников в соответствии с требованиями Министерства РФ по налогам и сборам к форматам представления данных на магнитных носителях осуществляется с использованием специальных адресных классификаторов, которые можно получить в электронном виде в местной налоговой инспекции.

Загрузка адресных классификаторов в информационную базу осуществляется или из пункта «Импорт» меню «Файл», или из формы ввода адреса

Перед загрузкой классификаторов необходимо определить состав регионов для чего, нажав соответствующую кнопку, отметить конкретные регионы из списка

В форме импорта в поле «Откуда» надо выбрать дисковод, в котором находится дискетка с обновленными классификаторами, либо выбрать каталог, в котором находится файл из ГНИ

Кроме того, необходимо указать вид классификатора, который предполагается обновить Для этого следует щелкнуть мышью в окошке рядом с названием классификатора

При загрузке в классификатор, используемый в программе, добавляются новые значения из файлов, содержащих новый классификатор. Если установить флажок «Полностью очищать классификаторы перед загрузкой», тогда перед началом собственно загрузки уже имеющиеся элементы адресных классификаторов будут удалены (процесс удаления при этом может потребовать значительных затрат времени) Если же установить флажок «Заменять старые наименования существующих объектов», то в этом случае при загрузке программа будет заменять старые наименования городов, населенных пунктов и т д , если они отличаются от новых Это может быть необходимо, если поменялись названия районов или городов

В формах редактирования для ввода различных адресов предназначены кнопки При нажатии на такую кнопку вызывается окно ввода адреса, в котором можно вводить и редактировать собственно элементы адреса

В окне ввода адреса поля «Регион», «Район», «Город», «Населенный пункт», «Улица» рекомендуется заполнять путем выбора нужных значений из адресных классификаторов (кнопка в поле ввода)

В то же время адресное поле можно заполнить вручную или отредактировать после ввода из классификатора Если вы вводите значение адресного поля вручную, тогда вам необходимо указать только наименование региона, города и т д , тип адресного поля выбирается из справочника, автоматически вызываемого при нажатии клавиши «Enter» или переходе к другому полю Например, в поле «Город» вводим наименование «Махачкала», нажимаем клавишу «Enter», и из автоматически вызванного справочника выбираем тип «г » (город).

Поле «Дом» заполняется числовым значением, либо в нем указываются два числа, разделенных знаком «/» (для угловых домов). Буквенные модификации дома также вводятся в поле «Дом» Примеры заполнения поля- 37, 12/4, 48а.

Поля «Корпус» и «Квартира» заполняются в соответствии с написанием адреса без каких-либо особенностей

Поле «Индекс» заполняется автоматически значением почтового индекса из справочников. При необходимости его можно отредактировать.

Ввод информации об удостоверении личности и прочих документах сотрудников

Данные из удостоверения личности и других документов (например, документа об образовании) вводятся в специальной форме, которая вызывается кнопкой справа от текста, характеризующего документ:

Состав и наименования реквизитов формы соответствуют документу, данные которого вводятся в систему.

Состав семьи

Сведения о семье сотрудника хранятся в справочнике «Состав семьи», который подчинен справочнику «Сотрудники». На закладке «Дополнительные» в кадровых данных при нажатии на кнопку «Состав семьи» вызывается соответствующий справочник.

В табличной форме справочника указывается имя, отчество и фамилия члена семьи или иждивенца, его родство с сотрудником, а также год его рождения.

Данные о составе семьи используются в дальнейшем в личной карточке работника (см. форму редактирования «Кадровых данных» кнопка «Карточка работника»).

Данные о детях, введенные в данный справочник, используются для расчета частично оплачиваемых отпусков по уходу за ребенком из средств Фонда социального страхования или из фонда заработной платы.

Трудовая деятельность

Сведения о трудовой деятельности сотрудника, включая все виды учебы и военную службу, хранятся в справочнике «Трудовая деятельность», который подчинен справочнику «Сотрудники» и доступен только при использовании расширенных возможностей кадрового учета.

На закладке «Дополнительные» в кадровых данных при нажатии на кнопку «Трудовая деятельность» вызывается соответствующий справочник.

Для каждого места работы, учебы или прохождения воинской службы в справочник вводятся: дата поступления на работу или в учебное заведение и дата ухода, наименование организации или образовательного учреждения, где проходила учеба и трудовая деятельность, место его нахождения, занимаемая должность или профессия (для рабочих)

Данные о трудовой деятельности используются в дальнейшем в личной карточке работника (см форму редактирования «Кадровых данных» кнопка «Карточка работника»)

Образование

Сведения об образовании сотрудника хранятся в справочнике «Образование», который подчинен справочнику «Сотрудники», доступен только при использовании расширенных возможностей кадрового учета и вызывается при нажатии на кнопку «Образование» на закладке «Дополнительные» в форме кадровых данных

Сведения об образовании вводятся и редактируются в форме диалога Прежде всего, следует выбрать из списка вид образования начальное профессиональное, среднее профессиональное и т п, затем можно указать форму обучения

Вид учебного заведения выбирается из списка, введенного ранее в справочник «ВУЗы», далее вводится дата окончания учебного заведения и факультет, который заканчивал сотрудник

Если сотрудник проходил послевузовское профессиональное обучение, и в результате этого ему была присвоена ученая степень, то ее также следует указать, выбрав из справочника «Ученые степени»

Данные об образовании используются в дальнейшем в личной кар точке работника (см форму редактирования «Кадровых данных» кнопка «Карточка работника»)

Аттестация

Данные об аттестации сотрудника записываются в справочник «Аттестация», который подчинен справочнику «Сотрудники», доступен только при использовании расширенных возможностей кадрового учета и вызывается при нажатии на кнопку «Аттестация» на закладке «Дополнительные» в форме кадровых данных сотрудника

В графе «Результат» отражается результат проведенной аттестации, дата проведения — в графе «Дата», а в графе «№ документа» —номер документа, фиксирующий результаты аттестационной комиссии.

При вводе и редактировании справочника на экран выводится форма диалога, в которой, кроме вышеперечисленных сведений, можно записать дополнительные сведения о результатах проведения аттестации, например, «представлен к повышению» и т п

Данные об аттестациях используются в дальнейшем в личной карточке работника (см форму редактирования «Кадровых данных» кнопка «Карточка работника»)

Квалификация

Сведения о повышении сотрудником своей квалификации записываются в справочник «Квалификация», который подчинен справочнику «Сотрудники», доступен только при использовании расширенных возможностей кадрового учета и вызывается при нажатии на кнопку «Квалификация» на закладке «Дополнительные» в форме кадровых данных.

«Вид» — вид повышения квалификации с отрывом или без отрыва от производства;

«Начало», «Окончание» — сроки повышения квалификации,

«Обр учреждение» — наименование образовательного учреждения, выбирается из справочника «ВУЗы»,

«№ документа», «Дата документа» — номер и дата документа об окончании курсов квалификации.

При вводе и редактировании справочника на экран выводится форма диалога, в которой, кроме вышеперечисленных сведений, следует выбрать из списка вид документа (свидетельство, удостоверение и т.п )

Данные о повышении квалификации используются в дальнейшем в личной карточке работника (см. форму редактирования «Кадровых данных» кнопка «Карточка работника»).

Переподготовка

Сведения о профессиональной переподготовке сотрудника хранятся в справочнике «Переподготовка», который подчинен справочнику «Сотрудники», доступен только при использовании расширенных возможностей кадрового учета и вызывается при нажатии на кнопку «Переподготовка» на закладке «Дополнительные» в форме кадровых данных

В справочник вводятся сведения о специальности, которой обучался сотрудник, сроках обучения, а также указываются данные о документе, удостоверяющие прохождение переподготовки (номер и дата выдачи)

Данные о профессиональной переподготовке используются в дальнейшем в личной карточке работника (см форму редактирования «Кадровых данных» кнопка «Карточка работника»)

Кадровые классификаторы

При использовании расширенных возможностей кадрового учета в конфигурации используются кадровые классификаторы, которые поставляются с заполненной стандартной информацией Данные классификаторов используются при заполнении соответствующих реквизитов кадровых данных сотрудника.

Классификатор профессий содержит информацию о коде, наименовании и выпуске единого тарифно-квалификационного справочника (ЕТКС), в котором опубликовано описание профессии

Классификатор специальностей содержит информацию о коде \ наименовании

Классификатор языков общения содержит информацию о коде и наименовании.

Классификатор воинских званий содержит информацию о коде и наименовании

Классификаторы высших учебных заведений, ученых степеней нужно заполнять в процессе работы необходимой для вашего предприятия информацией.

Учебные заведения

Для ведения списка высших и средних специальных учебных заведений, которые оканчивали сотрудники, работающие на предприятии, предназначен справочник «ВУЗы», который доступен только при использовании расширенных возможностей кадрового учета

В справочник вводится наименование учебного заведения и его местонахождение Сведения из справочника «ВУЗы» в дальнейшем используются при выборе образовательного учреждения в справочнике «Квалификации» и «Образование»

Ввод начальных данных для расчетов

Перед тем, как начинать расчет заработной платы, следует ввести сальдо по сотрудникам на начало первого расчетного периода при помощи документа «Ввод начального сальдо» (см пункт «Первоначальный ввод» меню «Регламенты»)

В документе вводятся сотрудники списком и в колонке «Сумма» проставляется сальдо по заработной плате на начало текущего расчетного периода (положительная сумма для кредитового сальдо и отрицательная — для дебетового), а в колонке «Сальдо по налогу» проставляется сальдо по налогу на доходы физлиц (положительная сумма сальдо по налогу означает переплату сотрудником налога по состоянию на 1 января текущего года) Просмотреть и отредактировать размер сальдо по налогу на доходы можно также в итоговом разделе раздела 5 налоговой карточки, вызываемой из формы редактирования данных сотрудника.

В предлагаемой конфигурации можно вести Книгу депонентов, т.е учитывать приход невыданных сумм и их выплату Чтобы обеспечить актуальность Книги депонентов при дальнейшей работе с программой, также необходимо ввести ее состояние на начало первого расчетного периода Для этого предназначен документ «Ввод Книги депонентов» (см пункт «Первоначальный ввод» меню «Регламенты»)

Важно! Помимо начальных данных для расчетов (начального сальдо и Книги депонентов) перед проведением первых расчетов необходимо ввести начальные данные для расчета налога на доходы физлиц см. раздел «Налог на доход физических лиц».

Ввод данных с начала года до начала расчетов в налоговую карточку

В этом разделе описан порядок ввода данных в форму налоговой карточки 2000 года.

Данные, относящиеся к предприятию или к сотруднику в 1-ом и во 2-ом разделах, заполняются автоматически, так как эта информация уже была введена при занесении сведений о предприятии и о сотруднике.

В пункте «2.10. Реквизиты документа, подтверждающего основание для неудержания налога» записываются данные о документе, подтверждающем основание для неудержания налога.

По строке «Налогооблагаемый период» отмечаются месяцы отчетного календарного года, за которые введены вычеты, доход или материальная выгода в налоговую карточку (двойным щелчком мыши в клетках нужных месяцев).

Ввод вычетов. Раздел 3.1. налоговой карточки заполняется автоматически при нажатии на кнопку «Пересчитать» по введенным в последующие разделы налоговой карточки данным о доходах, отмеченным месяцам в разделе «Налогооблагаемый период» и данным о положенных сотруднику налоговых льготах, которые вводятся в форме редактирования данных сотрудника (закладка «Основные», кнопка «Налог на доходы»).

В подпункте «3.2.1 Право на вычеты» вводятся основания для предоставления вычетов, предусмотренных законом на самого работника.

В подпункте 3.2.2 указывается количество детей и иждивенцев, а также основание на вычеты на детей и иждивенцев и, если нужно, указывается документы, подтверждающие статус вдовы (вдовца), одинокого родителя, опекуна или попечителя, разведенного супруга, не получающего алименты.

В подпункте 3.2.3 указывается документы, подтверждающие право на льготу по новому строительству или приобретению жилого дома, или квартиры, или садового домика.

В подпункте 3.2.4 записываются основания для предоставления прочих вычетов.

Ввод доходов Раздел 4 представляет собой таблицу, в которой по вертикали располагаются месяцы, за которые получен доход, а по горизонтали — виды доходов и скидок. Итоговые строки рассчитываются автоматически при вводе сумм доходов по месяцам.

Первый столбец заполняется видами доходов, которые выбираются из списка, соответствующего утвержденному МНС РФ классификатору доходов. Дальше вводятся суммы дохода по месяцам (кроме северных начислений и материальной выгоды по доходам от банковских вкладов и договорам страхования).

В пункте 4 1 вводятся доходы полностью включаемые в совокупныи годовой доход

В пункте 4 2 вводятся доходы по которым установлены скидки (расходы) В строках 8 9 10 11 12 вводится вся сумма дохода без исключения скидок и расходов а в строках 81 91 101 111 121 вводится сумма скидки (расхода) на которую следует уменьшить сумму дохода для целей налогообложения

Для тех видов доходов по которым установлены скидки следует указать тип скидки и ее сумму При этом если для данного вида до хода величина скидки имеет однозначную зависимость от размера ММОТ (с 1 июля 2000 года — базовой суммы) то программа сама введет тип скидки и ее размер При автоматическом расчете скидки будут учтены суммы по данному виду дохода введенные за прошлые месяцы

Так например если ММОТ была установлена в январе в размере 83 49 а для материальной помощи законом установлена скидка в размере 12 ММОТ при этом в апреле была введена сумма материальной помощи 500 рублей в мае — 800 то программа посчитает сумму скидки в апреле — 500 а в мае — 501 88 рублей

Если тип выбранной скидки не подходит для данного дохода то программа не позволяет ввести его и сама вводит один из типов скидки, соответствующий данному доходу Сумму скидки если она не зависит от размера ММОТ следует ввести вручную

Автоматический расчет скидки не исключает ввода ее величины вручную

В пункте 4 3 вводятся иные доходы, например доходы от предпринимательской и иной деятельности, налогообложение которых осуществляется налоговыми органами

В пункте 4 4 автоматически отображается общая сумма совокупного годового дохода с учетом общей суммы доходов, по которым установлены скидки (расходы)

В пункте 4 5 автоматически отображается общая сумма скидок (расходов), подлежащая исключению из совокупного годового дохода

В пункте 4 6 вводятся суммы коэффициентов и надбавок за стаж работы выплачиваемых в соответствии с законодательством Российской Федерации за работу в районах Крайнего Севера и приравненных к ним местностях, в высокогорных, пустынных и безводных районах и других местностях с тяжелыми климатическими условиями

В пункте 4 7 автоматически отображается сумма материальной выгоды по вкладам, введенным в 6 разделе

В пункте 4 8 автоматически отображается сумма материальной выгоды по страховым выплатам, введенным в 6 разделе

В пункте 4 9 автоматически отображается совокупный доход по месяцам, который рассчитывается следующим образом п 4 9 = п 4 4 п 4 5+п 4 6+п 4 7+п 4 8

Примечание. Согласно инструкции №35 ГНС коды доходов 6001 («Суммы коэффициентов и надбавок ») и 6002 («Материальная выгода по вкладам и страховым выплатам») не включаются в список доходов

Расчет облагаемого дохода и суммы подоходного налога Раздел 5 налоговой карточки включает в себя две таблицы, которые помесячно заполняются суммами, исчисляемыми нарастающим итогом с начала года Автоматически рассчитываются по данным, введенным в раздел 4 и Приложение А, суммы совокупного годового дохода, суммы скидок, общие суммы коэффициентов и надбавок и матвыгоды по вкладам и договорам страхования При нажатии на кнопку «Пересчитать» также автоматически рассчитываются общие суммы вычетов суммы облагаемых доходов и исчисленные суммы налогов Вводятся вручную лишь суммы взносов в ПФР и удержанные суммы налогов

В первой таблице вводятся нарастающим итогом суммы взносов в ПФР с основного дохода и с районных коэффициентов и северных надбавок (вычеты с кодами 10 и 11) и суммы удержанного налога с основного дохода и с районных коэффициентов и северных надбавок Во второй таблице вводятся нарастающим итогом суммы удержанного налога и с матвыгоды по вкладам и договорам страхования

Важно! Все данные в разделе 5 вводятся и отражаются нарастающим итогом с начала года

Виды материальной выгоды согласно законодательству о налоге на доходы. В составе совокупного дохода сотрудников учитываются два типа материальной выгоды при приобретении на предприятии товаров по ценам ниже рыночных и экономии на процентах при получении ссуд под проценты ниже 2/3 ставки рефинансирования ЦБ РФ Эти суммы облагаются налогом также как и заработная плата сотрудников По этой причине суммы таких доходов отражаются в п 4 1 раздела 4 налоговой карточки с кодами 0410 — суммы выгоды при приобретении товаров по ценам ниже рыночных и 0420 — суммы экономии на процентах при получении ссуд

Материальная выгода при получении процентов по вкладам в банках и по страховым выплатам облагаются налогом на доходы физлиц отдельно от прочих доходов по другой ставке (15% в 2000году и 35% в 2001 году) и рассчитываются особым образом, поэтому для этих типов материальной выгоды предусмотрен специальный раздел налоговой карточки Соответствующие этим видам материальной выгоды коды доходов 6002, 6003 при заполнении налоговой карточки (пп.4.1— 4 3) не используются, а в пункты 4 7 и 4 8 раздела 4 помесячно переносятся общие суммы материальной выгоды по всем вкладам и договорам страхования

Ввод материальной выгоды Приложение А налоговой карточки позволяет ввести суммы материальной выгоды при получении процентов по вкладам в банках, открытым в рублях под проценты свыше ставки рефинансирования Банка России и страховых выплат

Приложение А представляет собой таблицу, в которой по горизонтали располагаются строки с месяцами, а по вертикали — колонки, содержащие необходимую информацию для отражения матвыгоды по вкладам

Прежде всего, нужно ввести номер лицевого счета, открытого по вкладу (договору страхования) — именно по этому номеру в программе хранятся все данные, необходимые для расчета материальной выгоды Номер счета вводится в поле желтого цвета рядом с названием раздела (дважды нажать клавишу Enter, стоя на этом поле) В появившемся окне следует выбрать тип матвыгоды — по вкладам или по договору страхования и ввести номер счета

В колонках Приложения А вводится следующая информация

• «Сумма вклада или страхового взноса» — остаток по вкладу на начало месяца,

• «Процент по банковскому вкладу или по договору добровольного страхования %» — годовой процент установленный по вкладу или по договору добровольного страхования

• «Процентный доход начисленный банком или страховщиком» — сумма процентов по вкладу, начисленных в этом месяце,

• < Ставка рефинансирования ЦБ РФ %» — вводится по состоянию на первое число расчетного периода при начислении процентов по вкладу (в процентах)

• < Процентный доход по ставке рефинансирования» — размер процентов, начисленных по ставке рефинансирования ЦБ РФ в данном месяце

• < Сумма материальной выгоды за месяц» — материальная выгода по вкладу за текущий месяц рассчитывается автоматически как разница между доходом, начисленным по вкладу, и доходом рассчитанным по ставке рефинансирования

• «Сумма материальной выгоды с начала года» — материальная выгода с начала года нарастающим итогом, рассчитывается автоматически

Для ввода данных о материальной выгоде по нескольким вкладам необходимо заполнять Приложение А налоговой карточки для каждого вклада (договора страхования) отдельно

После заполнения Приложения А данными, относящимися к первому вкладу (договору страхования), нужно подготовить раздел к вводу данных по другому вкладу (договору страхования), т е ввести очередной номер лицевого счета

После двойного нажатия клавишу «Enter» на желтом поле номера счета в окне с уже введенными к тому времени счетами можно ввести новый лицевой счет (по вкладу или договору страхования) или же выбрать один из уже введенных счетов В первом случае Приложение А будет полностью очищено, а введенные данные по предыдущему вкладу будут внесены в информационную базу, во втором случае Приложение А будет заполнено данными относящимися к вы бранному счету

Важно! Номера лицевых счетов у конкретного сотрудника не должны повторяться

Приложение Б доступно для заполнения только в том случае, когда в списке вычетов сотрудника указан вычет на жилье

Пункт 1 Приложения Б заполняется автоматически на основании данных об адресе и наименовании объекта жилья, которые заполняется при вводе вычета по жилью в справочнике < Налоговые льготы»

В пункте 2 вводится дата приобретения или начала строительства объекта — именно с этого календарного года согласно п 14в Инструкции ГНС №35 (в редакции Изменении и дополнении №9) начнется расчет размера вычета в таблице пункта 3

В таблице пункта 3 производится расчет суммы вычета на жилье на которую имеет право уменьшить облагаемый доход физическое лицо Согласно новой редакции п 14в Инструкции ГНС №35 сотрудник может подать заявление в 2000 году о предоставлении вычета по расходам на жилье произведенным в прошлые годы если ранее он таким вычетом не пользовался

Сумма вычета на жилье (включая расходы на погашение кредитов и процентов по ним) не может превышать совокупного дохода сотрудника за три года начиная с года начала строительства или при обретения жилья Если этот сотрудник в эти три года работал на другом месте работы или помимо нашего предприятия имел дополни тельные доходы то он обязан подтвердить свои доходы за эти три года Данные о подтвержденном совокупном доходе сотрудника за три года, начиная с года начала строительства или приобретения жилья, вводятся в колонку «Совокупный доход» таблицы пункта 3

Колонка «Величина 5000-кратного ММОТ» заполняется автоматически исходя из даты приобретения (начала строительства) жилья — см пункт 2

В колонки «Сумма расходов » и «Сумма по погашению кредитов » заносятся суммы за соответствующие годы из представленных сотрудником подтверждающих расходы документов

При расчете показателей строки «Итого» следует иметь в виду, что сумма расходов на приобретение (строительство) жилья не может превышать усредненный за три года 5000-кратный размер ММОТ, а общая сумма расходов на приобретение (строительство) и сумм по погашению кредитов не может превышать совокупного дохода сотрудника за три года, начиная с года начала строительства или приобретения жилья

Важно! Суммы из строки «Итого» должны совпадать с суммами, введенными в список вычетов сотрудника

Поскольку данные, необходимые для расчета сумм вычета на жилье, могут отсутствовать в программе, таблица этого пункта всегда заполняется вручную

Важно! Дата, которая указывается в списке вычетов сотрудника, должна совпадать с датой подачи заявления о предоставлении вычета на жилье Если сотрудник является застройщиком и регулярно представляет в бухгалтерию предприятия подтверждающие документы, то в списке вычетов сотрудника такие расходы можно регистрировать одной строкой за каждый календарный месяц с указанием общей суммы подтвержденных расходов этого месяца

В таблице пункта 4 отражается, как используются рассчитанные в пункте 3 суммы вычета при налогообложении доходов сотрудника, начиная с года подачи заявления о предоставлении вычета

Важно! Для корректного расчета налога на доходы физлиц необходимо выполнить следующие действия

• Убедиться в корректности заполнения пределов и ставок налога, а также прочих классификаторов,

• Внести информацию по предоставляемым сотрудникам вычетам в справочник «Налоговые вычеты» (кнопка «Налог на доходы» формы редактирования данных сотрудника, пункт меню «Вычеты по налогу на доходы»),

• Ввести данные о доходах сотрудников с начала года до начала расчетов в налоговые карточки (кнопка «Налог на доходы» формы редактирования данных сотрудника, пункт меню «Налоговая карточка»),

• Для расчета в 2000 году ввести данные о доходах на предыдущем месте работы для принятых в текущем году сотрудников (кнопка «Налог на доходы» формы редактирования данных сотрудника, либо кнопка «Ввести» приказа о приеме)

Особенности ввода данных с начала года при расчете налога на доходы физических лиц по фактически полученным доходам

Если на предприятии допущена задолженность по зарплате, то в первый месяц расчета эту задолженность обязательно нужно ввести документом «Начальное сальдо»

В налоговую карточку следует ввести данные как по начисленным доходам, так и по полученным, переключая соответствующим образом флажок «По начисленным доходам» После выплаты в дальнейшем задолженности по зарплате за месяцы, по которым нет записей в журнале расчетов, при расчете налога на доходы физических лиц и при построении налоговой отчетности будут использоваться введенные в налоговую карточку начисленные доходы за эти месяцы

Пример. Расчеты в программе начались с июля 1999 года Работнику, оформленному в штат с января по июне было начислено по 2000 руб Выплаты заработной платы в I квартале производились регулярно месяц в месяц Затем в связи с недостатком денежных средств выплат до июля не производилось Кроме того, в мае работнику вручен подарок стоимостью 800 руб , а в июне выплачена материальная помощь в сумме 2000 руб У работника на иждивении находятся двое детей 9 и 12 лет Удержанные с работника суммы налога и взносов в Пенсионный фонд РФ перечислены в бюджет и ПФР полностью

Этому работнику в налоговую карточку начисленные доходы следует ввести следующим образом (флажок «По начисленным доходам > Должен быть установлен)

Полученные доходы за I квартал совпадают с начисленными В апреле доходом работника будет только сумма удержанных и перечне ленных взносов в ПФР В мае помимо суммы удержанных и перечне ленных взносов в ПФР в совокупный доход следует включить стоимость подарка В июне помимо суммы удержанных и перечисленных взносов в ПФР в совокупный доход следует включить материальную помощь Налоговая карточка по полученным доходам (флажок «По начисленным доходам» должен быть сброшен) будет выглядеть так

Невыплаченные за апрель июнь 5912 рублей следует ввести документом «Начальное сальдо»

Если начисленных доходов в налоговой карточке не окажется, то все выплаченные суммы за эти месяцы будут считаться основной зарплатой - код дохода 0200 (или 0300) и будут подлежать налогообложению в полном объеме

Отметим, что для военнослужащих и приравненных к ним лиц та кие выплаченные суммы, превышающие начисленный доход, считаются денежным содержанием и, таким образом, не будут облагаться налогом на доходы физических лиц

Данные по полученным доходам (вводимые в налоговую карточку) за месяц, предшествующий месяцу начала расчетов, должны включать суммы, выплаченные в срок выплаты зарплаты в месяце начала расчетов (даже если эти суммы уже зарегистрированы в журнале расчетов они включаться в полученные доходы предыдущего месяца не будут)

Пример. Расчеты в программе начинаются с апреля 2000 года, начальное сальдо по расчетам с сотрудниками введено по состоянию на 1 апреля, в начале апреля проводится документ по выплате зарплаты за март и оплачивается в срок выплаты зарплаты за март (например, 5 апреля) При заполнении налоговых карточек сотрудников эта выплата должна быть отражена в марте, т е введена вручную

Для регистрации выплаты задолженности за тот период, когда расчеты в программе еще не велись (см предыдущий пример), в документе «Платежная ведомость» предусмотрены выплаты конкретного начисления или просто зарплаты за прошлые периоды с возможностью ввода выплачиваемых сумм непосредственно в документ (в таблицу на закладке «По сотрудникам»)

Важно! Если на предприятии допущена задолженность по зарплате, то в налоговую карточку следует ввести два набора данных о доходах сотрудника как по начисленным доходам, так и по полученным, переключая соответствующим образом флажок «По начисленным доходам» в форме налоговой карточки

Ввод справки о доходах на предыдущем месте работы

Данные в справку о доходах требуется вводить в случае, если сотрудник принят на работу в текущем календарном году и представил в бухгалтерию предприятия справку о доходах на предыдущем месте работы.

Форму справки о доходах можно вызвать, заполняя «Приказ о приеме», или после проведения приказа о приеме непосредственно из формы редактирования данных сотрудника, форма справки отображается с заполненным 2-м разделом, реквизиты разделов с 3-го по 6 ой доступны для редактирования.

Второй раздел справки о доходах автоматически заполняется внесенными к тому времени данными о сотруднике, фамилии, имени, отчестве, сведениями об удостоверяющих налогоплательщика документах.

Значение реквизитов пункта 2 10 «Налогооблагаемый период» отмечается щелчком мыши в окошках, соответствующих номерам месяцев, в течение которых сотрудник получал доход Второй щелчок мыши снимает отметку

Все данные в справку вносятся в строгом соответствии с «бумажным» оригиналом, даже если в нем встречаются неточности или ошибки. При очередном расчете налога на доходы физлиц введенные в справку с предыдущего места работы данные будут учтены, а имевшиеся неточности скорректированы

Сведения о видах доходов. В 3 разделе вводятся суммы доходов, полученные сотрудником в налогооблагаемом периоде, по каждому виду дохода, например, заработная плата, материальная помощь, доходы от продажи имущества и т д В этом разделе вводятся все суммы доходов как в денежной, так и в натуральной форме, а также размеры произведенных из полученного дохода скидок (расходов) Код дохода и код скидки выбирается из списков, соответствующих классификаторам, утвержденным МНС РФ.

В этом разделе указываются все виды доходов за исключением коэффициентов и надбавок за стаж работы, выплачиваемых в соответствии с законодательством РФ за работу в районах Крайнего Севера и приравненных к ним местностям, в высокогорных, пустынных и безводных районах и других местностях с тяжелыми климатическими условиями, а также за исключением сумм материальной выгоды по вкладам и страховым выплатам

Сведения о совокупном доходе по месяцам. В 4 разделе вводятся суммы совокупного дохода по месяцам Совокупный доход определяется с учетом коэффициентов и надбавок за стаж работы, выплачиваемых в соответствии с законодательством РФ за работу в районах Крайнего Севера и приравненных к ним местностям, в высокогорных, пустынных и безводных районах и других местностях с тяжелыми климатическими условиями, суммы материальной выгоды по вкладам и страховым выплатам

При расчете совокупного дохода по месяцам не учитываются доходы, которые в целях налогообложения не включаются в совокупный доход.

Важно! Заработная плата, начисленная за конкретный месяц, вводится в поле того месяца, за который выплачивается.

Сведения о произведенных вычетах. В 5 разделе вводятся сведения о произведенных вычетах, которые установлены законодательством о налоге на доходы физических лиц для отдельных категорий физических лиц. Для каждого вида вычета вводится код, который выбирается из списка, соответствующего классификатору вычетов, утвержденному МНС РФ, и сумма вычета, на которую для целей налогообложения следует уменьшить общую сумму дохода после исключения из него суммы скидок и расходов

Исполнение налоговых обязательств. В 6 разделе вводятся сведения о суммах дохода и налога В пункте 6 1 отображается автоматически рассчитываемая сумма общего совокупного годового дохода и вводятся суммы удержанных налогов в федеральный и местный бюджеты, в пункте 6 2 вводится общая сумма коэффициентов и надбавок и суммы удержанных налогов, а в пункте 6 3 вводятся общая сумма материальной выгоды по вкладам в банках и страховым выплатам и суммы удержанных налогов.

Скидки учащимся. Для принимаемых на работу в 2000 году учащихся дневных учебных заведений, аспирантов и ординаторов, представивших справки о каникулах и до приема на работу пользовавшихся скидкой согласно п 8р Инструкции ГНС №35 следует ввести количество месяцев, в течение которых они уже пользовались этой скидкой в текущем году. Кроме этого, для них следует ввести данные о сроках каникул в документе «Справка о каникулах» (меню «Документы», пункт «Налог на доходы физлиц»)

Примечание. В 2001 году налог на доходы физических лиц рассчитывается без учета доходов, полученных сотрудником от других источников дохода, поэтому за 2001 год справки о доходах с предыдущего места работы вводить не нужно

Ввод данных о прочих физических лицах

В справочнике «Сотрудники» помимо работников предприятия (работающих как по трудовым договорам, так и по договорам гражданско-правового характера) также хранятся данные других физических лиц, для которых также как и для сотрудников предприятия необходимо рассчитывать налог на доходы физических лиц и передавать сведения об их доходах в налоговые органы Это могут быть как владельцы акций предприятия (если им выплачиваются дивиденды), так и предприниматели (без образования юридического лица), у которых предприятие приобретает товары и услуги (в 2001 году по указанным доходам предпринимателей сведения в налоговые органы не подаются — см ст 230 Налогового Кодекса).

Такие «сторонние» физические лица могут быть занесены в справочник «Сотрудники» при помощи документа «Договор купли-продажи»

Договор купли-продажи

Договор купли-продажи может быть оформлен как со сторонними физическими лицами, так и с работниками предприятия Договор можно вызвать, выбрав пункт «Договор купли-продажи» меню «Документы»

При заключении договора с физическим лицом, информация о котором в программе уже имеется (у предпринимателя ранее уже что-либо приобреталось или договор заключается с работником предприятия) следует установить флажок «с известным физлицом» и выбрать кого-либо из справочника «Сотрудники»

Если же договор с некоторым физическим лицом заключается впервые, тогда в реквизит «Имя» следует ввести его фамилию, имя и отчество и на закладке «Дополнительно» ввести имеющиеся паспортные данные

Договор купли-продажи может быть четырех типов

· При проведении договора по купле-продаже акций предприятия меняется количество акций предприятия, принадлежащих упомянутому в договоре лицу Кнопка «Договор» позволяет распечатать типовую форму договора купли-продажи акций предприятия Такой вид договора доступен при использовании расширенных возможностей расчета зарплаты и включенной возможности расчета дивидендов по акциям предприятия (см закладку «Дополнительно» формы «Настройки», меню «Сервис»)

· Договор продажи физическим лицом товаров (кроме недвижимости) означает, что упомянутое в договоре лицо получает доход с кодом 3500 по классификатору доходов из Приложения №9 к Инструкции ГНС №35.

· Договор продажи физическим лицом недвижимости означает, что упомянутое в договоре лицо получает доход с кодом 3400 по классификатору доходов из Приложения №9 к Инструкции ГНС №35

· Договор продажи предпринимателем товаров и услуг означает, что упомянутый в договоре предприниматель получает доход с кодом 4000 по классификатору доходов из Приложения №9 к Инструкции ГНС №35

Форма редактирования данных этих физических лиц имеет две закладки и выглядит следующим образом

Назначение реквизитов и кнопок этой формы аналогично соответствующим реквизитам формы редактирования данных работников предприятия

От начала месяца до выплаты зарплаты

Настоящая конфигурация предполагает следующую общую последовательность действии бухгалтера расчетчика и/или кадровика от начала расчетного периода до закрытия месяца

• Смена расчетного периода журнала «Зарплата»,

• Ввод одного или нескольких регламентных документов < Начало месяца»,

• Прием на работу новых сотрудников и увольнение

• Кадровые перемещения сотрудников,

• Ввод различных документов по начислениям наряды, договора подряда и пр

• Ввод и расчет документов типа больничных приказов на отпуск, приказов на оплату по среднему заработку (т е отклонений от нормального режима работы)

• Ввод документов типа «Платежная ведомость» для осуществления межрасчетных выплат и аванса,

• Расчет заработной платы

• Ввод «платежных ведомостей» для полной или частичной выплаты зарплаты и пособий текущего или прошлых периодов,

• Депонирование не выданных сумм по платежным ведомостям,

• Закрытие (т е оплата, частичное депонирование или перечисление зарплаты в банк) документов «Платежная ведомость», полученных в расчетном периоде,

• Получение отчетов и формирование бухгалтерских проводок по результатам расчета

Эта последовательность, разумеется, может изменяться в зависимости от обстоятельств, но в целом расчетный период проистекает от смены расчетного периода и документа «Начало месяца» до документа «Платежная ведомость» Ниже более подробно описаны все основные действия бухгалтера-расчетчика и их последовательность

Помощник расчетов

Для облегчения описанной выше процедуры проведения расчетов заработной платы в описываемую конфигурацию включен Помощник расчетов

Помощник расчетов вызывается в меню «Регламенты», пункт «Помощник расчетов», или кнопкой на панели инструментов

Помощник облегчает проведение расчетов заработной платы или оформление аванса или межрасчетной выплаты

На первом этапе Помощник предлагает поработать над кадровыми документами, оставшимися не введенными к началу расчетов Затем предлагается выбрать период, в котором будут проведены расчеты При этом, если выбран следующий расчетный период, Помощник проведет все необходимые операции по закрытию текущего расчетного периода и переведет журнал расчетов в следующий расчетный период

По ходу работы Помощник предложит определить группу сотрудников, по которой будут проведены расчеты, ввести документы-отклонения (больничный лист, отпуск, оплата по среднему заработку, невыходы) и приказы по начислениям (наряды, премии и доплаты), при выплате аванса предложит ввести размер аванса Затем Помощник предложит ввести платежные ведомости

На завершающем этапе работы Помощник проводит полный расчет по выбранной ранее группе сотрудников и формирует отмеченные флажками отчеты

Начало расчетного периода

Начало каждого расчета зарплаты начинается с установки нового расчетного периода и первоначального заполнения данных в журнале «Зарплата» Представленная конфигурация настроена на месячный интервал периода расчета Период расчета начинается с первого числа месяца и заканчивается последним числом этого же месяца в

Смена периода расчета

Смена периода расчета производится в момент внедрения программы, когда выбирается произвольный период расчета Так же выполняется при завершении расчета зарплаты, когда получены все выходные документы и выплачены деньги через кассу В этом случае происходит переход на следующий период расчета

Для того, чтобы установить текущий период расчета необходимо выбрать пункт «Установить период» из меню «Регламенты» или нажать кнопку на панели инструментов окна журнала расчетов

Сменить расчетный период могут только пользователи с правами расчетчика, администратора или главного бухгалтера

Замечание. Перед сменой расчетного периода все платежные ведомости, выписанные в расчетном периоде, должны быть оплачены

После перехода на новый расчетный месяц следует проверить правильность исходных данных, общих для всего предприятия, а именно минимальный размер оплаты труда, проценты отчислений в Пенсионный фонд, ставки налога на доходы физических лиц и т п (см закладку «Ставки» формы «Настройки»)

При внедрении программы необходимо установить месяц, с которого начинается расчет зарплаты Для этого нужно нажать кнопку «Дополн »», чтобы появился реквизит «Установить произвольно», и выбрать нужный месяц из списка, например, «Октябрь 2000»

Начало расчетного месяца

Процедура инициализации или первоначального заполнения данных очередного расчетного периода выполняется из пункта «Начало расчетного месяца» меню «Регламенты»

Эта процедура вводит такие основные начисления как оплата по окладу, оплата по тарифу и, если нужно, ежемесячная премия, начисления по дополнительным местам работы («внутреннее совместительство»), проводит подсчет сальдо по взаиморасчетам сотрудника и предприятия (долг за предприятием по выплате заработной платы или долг за работником, т е начальное сальдо) на начало расчетного периода, обрабатывает документы длительного действия

Эту процедуру можно выполнить для всех сотрудников предприятия, одного расчетчика, одного подразделения или даже одного сотрудника Если ни один из реквизитов формы этой процедуры не заполнен, — действия проводятся для всех сотрудников предприятия

Замечание. При работе в сети нескольких пользователей одновременно, если возникают сложности в совместной работе из-за ожидания освобождения таблиц информационной базы, желательно ограничить количество одновременно обрабатываемых сотрудников при выполнении процедуры «Начало месяца» Как правило, подобная ситуация возникает на предприятии с большим количеством сотрудников Вы можете ограничить количество одновременно обрабатываемых сотрудников, установив в константе «Размер группы» небольшое значение, например, 50

Работа с кадровыми приказами

Основные кадровые приказы отражаются в конфигурации с помощью таких документов, как «Приказ о приеме на работу», «Кадровое перемещение» и «Увольнение», которые вызываются из пункта «Кадровые приказы» меню «Документы» Любое кадровое изменение (назначение на новую должность, изменение оклада и т п ) также проводится через документы Кадровые документы хранятся в журнале кадровых приказов, который также вызывается из пункта «Кадровые приказы» меню «Документы»

Помощник приема на работу

В конфигурацию включен специальный Помощник приема на работу, который облегчит прием сотрудников как по трудовым договорам, так и по договорам подряда гражданско-правового характера

Вызывается Помощник кнопкой панели инструментов Подробнее Помощник приема на работу описан в подразделе «Помощник приема на работу» раздела «Формирование списка сотрудников»

Зачисление на работу

Документ «Приказ о зачислении на работу» применяется при приеме нового сотрудника по основному месту работы, для назначения уже работающему сотруднику внутреннего совместительства, при приеме нового сотрудника или при повторном приеме на работу после увольнения по внешнему совместительству Вызывается из пункта «Кадровые приказы» меню «Документы» или нажатием кнопки т на панели инструментов

Документ «Приказ о зачислении на работу» описан подробно в подразделе «Прием на работу» раздела «Формирование списка сотрудников»

Кадровые перемещения

Все кадровые перемещения сотрудников перевод на новую должность, смена оклада или разряда, передача другому расчетчику, обмен графиками — производятся через документ «Кадровые перемещения» (пункт «Кадровое перемещение» меню «Документы» или кнопка на панели инструментов)

Документ построен следующим образом в левой его части содержится информация о сотруднике на момент кадрового перемещения, в правой же его части задаются новые данные согласно изданному приказу На момент приказа известны место работы сотрудника, его категория, ставка, расчетчик, разряд или оклад, если есть — тариф

В правой части документа, относящейся к кадровому перемещению, на закладке «Общие» можно выбрать новую должность, подразделение, категорию, а также нового расчетчика На закладке «Для расчетов» можно назначить новый разряд, оклад или тариф, если нужно, изменить форму оплаты труда работника

После ввода новых данных по сотруднику вы можете распечатать приказ по предприятию либо распоряжение о перемещении по форме Т-5 Флажок «Отражать в форме Т-2» позволяет отражать данные о перемещении сотрудника в его личной карточке

Другой функциональной возможностью документа «Кадровое перемещение», доступной только при использовании расширенных возможностей расчета зарплаты, является обмен графиками, т е смена ми, между двумя сотрудниками, работающими по сменным графикам

Чтобы осуществить обмен графиками необходимо установить флажок «Обмен графиками»

Здесь следует выбрать второго сотрудника из пары обменивающихся сменами сотрудников и указать время действия обмена Если дата «по» не указана, считается, что обмен происходит безвозвратно

Внимание! Обратите внимание на то, что даже только при смене оклада или тарифа, без фактического перемещения сотрудника в другое подразделение или смены должности, следует использовать приказ о кадровом перемещении Это гарантирует вам автоматический перерасчет начислений по окладу или тарифу, а также документально зафиксирует все внесенные в систему изменения таких важных реквизитов, как оклад или тариф сотрудника.

Права. В описываемой конфигурации предполагается, что все кадровые перемещения проводятся пользователем «Кадровик», т.е. для зачисления на работу, увольнения и продвижения по службе или кадрового перемещения следует войти в программу как «Кадровик» (а также главный бухгалтер или администратор, которые имеют полные права на использование приказов, справочников и пр. данных)

Увольнение

Через документ «Приказ об увольнении» (пункт «Увольнение» меню «Документы» или кнопка на панели инструментов) производится увольнение сотрудника с работы или освобождение сотрудника от работы по внутреннему совместительству.

Если же сотруднику положено выплатить компенсацию за неиспользованный отпуск и/или выходное пособие, следует заполнить соответствующие реквизиты.

При этом в случае ведения штатного расписания освобождается занимаемая ранее ставка, т е в справочнике «Штатное расписание» она переходит в группу вакантных.

Если сотрудник освобождается от должности по совместительству, то следует заполнить реквизит «Место работы».

При расчете суммы к выдаче по ведомостям на выплату зарплаты (просто и «с погашением всех долгов») у уволенного работника с установленным в приказе об увольнении флажком «Выплачивать деньги «под расчет» будет выплачена вся имеющаяся у предприятия задолженность перед увольняющимся работником без округления. При этом при расчете налога на доходы физических лиц по фактически полученным доходам, он будет удержан со всех ранее не выплаченных сумм

Закладка «Средний заработок» заполняется автоматически при проведении документа данными для расчета среднего заработка, если в информационной базе для этого достаточно исходных данных. Если же данные за какие либо месяцы отсутствуют их необходимо ввести вручную

В колонку «Зарплата» заносится основной заработок в колонки «Р к « и «Сев надб» заносится оплата по районным коэффициентам и северные надбавки если они выделяются из среднего заработка на вашем предприятии (что определяется флажком < Выделять РК и СН> устанавливаемом в Стартовом Помощнике) В группу реквизитов < Премии > можно ввести суммы квартальной (одна треть этой суммы будет прибавлена к среднему заработку) и годовой (одна двенадцатая часть этой суммы будет прибавлена к среднему заработку) премии

В колонку <Дни рабочие> заносится количество отработанных дней по основному табель календарю В колонку <Дни отпуска > заносится количество рабочих дней по календарю шестидневной рабочей недели приходящихся на отработанное время при предоставлении отпуска в рабочих днях или количество календарных дней приходящихся на отработанное время при предоставлении отпуска в календарных днях

При проведении этого документа в случае увольнения сотрудника в справочнике «Сотрудники» производится автоматическое перемещение соответствующего элемента справочника в группу < Уволенные» а в случае увольнения с работы по совместительству — просто заполняется реквизит «Приказ об увольнении» справочника «Внутренние совместители»

После заполнения реквизитов приказа можно распечатать приказ по предприятию (кнопка «Приказ») или распоряжение об увольнении по стандартной форме (кнопка «Форма Т 8»)

Если сотруднику после увольнения по сокращению штатов или при ликвидации предприятия сохраняется средняя зарплата на период трудоустройства в течении какого то времени то необходимо вое пользоваться документом «Сохраняемый средний заработок» Для этого нужно

• в журнале кадровых приказов («Документы» —> «Кадровые приказы > -> «Журнал кадровых приказов») найти строку с приказом увольнения сотрудника

• ввести период за который нужно выплачивать среднюю зарплату (<Действия» —> <Ввод на основании>)

Договора гражданско-правового характера

В предлагаемую конфигурацию включена возможность регистрации договоров подряда предметом которых является выполнение работ либо оказание услуг Для этого предназначен документ «Договор подряда) вызываемый из меню < Документы»

Договор подряда можно оформить как на уже работающего сотрудника для чего следует установить флажок <сотрудник предприятия> и выбрать из предложенного списка нужного сотрудника так и на человека «со стороны» Для человека «со стороны» следует ввести фамилию, имя, отчество, назначить табельный номер (кнопка «Назначить») Далее, нужно ввести срок действия договора (реквизиты «С» и «По»), а также порядок оплаты договора

Кроме того, если договор подряда оформляется на одного и того человека «со стороны» повторно в течение одного календарного года, то с целью корректного исчисления налога на доходы физических лиц на такого сотрудника при оформлении очередного договора следует установить флажок «повторно»

Если договор заключается с предпринимателем, который сам уплачивает за себя налог на доходы физических лиц, тогда следует установить флажок «Наличие у предпринимателя основания »

Если установлен флажок «Уплачивать взносы на страхование от несчастных случаев », то при исчислении суммы взносов с работодателя в ФСС на страхование от несчастных случаев и профзаболеваний в облагаемую базу будет включена сумма, начисленная по этому договору подряда

На закладке «Общие» располагаются следующие реквизиты и флажки'

• «Имя» — вводится для вновь оформляемого сотрудника, заполняется автоматически для уже работающего сотрудника предприятия или принимаемого повторно договорника

• «сотрудник предприятия» — флажок, установив который, можно оформить договор с уже работающим сотрудником

• «повторно» — флажок, установив который, можно принять договорника повторно

• «Табельный №» — вводится для вновь принятого сотрудника, при этом можно задать следующий свободный номер, если нажать кнопку «Назначить»

• Реквизиты «С» и «По» определяют срок действия договора

• «Группа сотрудников» — в эту группу списка сотрудников будет помещен вновь принятый договорник

• Реквизиты «Должность» и «Подразделение» заполняются по необходимости

• Флажок «Наличие у предпринимателя основания » следует установить для предпринимателя, который сам уплачивает за себя налог на доходы физических лиц, и предъявившего свидетельство о регистрации в налоговых органах как предпринимателя без образования юридического лица

• Если установлен флажок «Уплачивать взносы на страхование от несчастных случаев », то при исчислении суммы взносов с работодателя в ФСС на страхование от несчастных случаев и профзаболеваний в облагаемую базу будет включена сумма, начисленная по этому договору подряда

• Реквизиты группы «Расчетные» определяют порядок оплаты по договору

• Хоз операция — распределение суммы договора по конкретно выбранной хозяйственной операции

Если установлен переключатель «Разовая оплата», то договор будет оплачен единовременно по окончании срока работ в размере, указанном в реквизите «Сумма по договору»

Если установлен переключатель «Помесячная оплата», договор будет оплачиваться ежемесячно В этом случае, если введена «Сумма по договору» и сумма аванса в реквизите «Аванс», ежемесячно выплачиваются авансы с выплатой остатка суммы по договору по окончании срока работ Если аванс не введен, тогда сумма по договору будет выплачиваться равномерно в течение всего срока договора Если же не введена и сумма по договору, то договор будет оплачиваться по отработанному сотрудником времени согласно данным, введенным на закладке «Дополнительно»

Если установлен флажок «Расчет от обратного», то расчет начисляемой по договору суммы будет производится таким образом, чтобы сумма причитающаяся к выплате разово или ежемесячно, равнялась сумме договора При этом, разумеется возможны несущественные отклонения в начислениях, связанные с ошибками округления при исчислении

На закладке «Дополнительно» указываются исходные данные для повременной помесячной оплаты (оклад или тариф) и содержание работы

Если договор с сотрудником «со стороны» оформляется впервые, тогда на закладке «Адрес» следует ввести адрес и паспортные данные принимаемого договорника

При использовании расширенных возможностей расчета зарплаты на закладке «Распределение» можно ввести дополнительные данные, если необходимо учесть заработную плату сотрудника по договору подряда не по одному определенному счету и объекту аналитики, а по нескольким

По окончании ввода данных можно сформировать и распечатать Договор, нажав на кнопку «Договор»

Приказ по предприятию

Для объединения нескольких кадровых приказов в один приказ по предприятию можно воспользоваться документом «Приказ по предприятию» Для ввода данного документа выберите в меню «Документы» пункт «Кадровые приказы», а затем «Приказ по предприятию»

Приказы по предприятию можно формировать из списка либо кадровых документов, либо документов о работе в праздничные дни Для этого необходимо установить один из признаков «Кадровый» или «О работе в праздники», чтобы в списке документов для отбора, открывающемся при нажатии на кнопку «Добавить», присутствовали необходимые документы Для удаления ошибочно введенного документа можно воспользоваться кнопкой «Удалить» Кнопка «Открыть» позволяет открыть выбранный приказ, при необходимости можно внести в него изменения

Когда список необходимых документов сформирован, то можно распечатать приказ по предприятию, нажав на кнопку «Печать» При чем после стандартной шапки печатается произвольный текст, который введен в поле «Преамбула», а дальше текст по каждому приказу из списка

Учет отработанного времени

Учет отработанного времени ведется с использованием системы календарей программы 1С Предприятие

Если при эксплуатации конфигурации не используются расширенные возможности расчета зарплаты, тогда все сотрудники считаются работающими по обычной «пятидневке» Пятидневная 40-часовая рабочая неделя описана в календаре «Служащие» Помимо основного рабочего графика для исчисления оплаты по отпускам используются также календари «Отпуска» (для оплаты отпусков в рабочих днях) и «Кроме Праздников» (для оплаты отпусков в календарных днях)

При использовании расширенных возможностей расчета зарплаты каждому сотруднику ставится в соответствие его рабочий табель-календарь по следующему правилу если сотрудник работает по одному из графиков многосменной работы (см выше), т е у него заполнен реквизит «График работы» (реквизит «График» на закладке «Общие» в форме редактирования данных сотрудника), тогда его календарем считается календарь основных часов работы по многосменному графику Если сотрудник работает в одну смену, его календарем считается календарь, соответствующий выбранной для сотрудника категории Если же категория сотрудника не указана, тогда сотруднику сопоставляется календарь, выбранный в константе «Календарь по умолчанию»

В данной типовой конфигурации помимо уже упомянутых календарей имеется дополнительный календарь «Рабочие», а также календари, позволяющие описать многосменные графики работы

Календарь «Отпуска» служит для подсчета дней отпуска по шестидневной рабочей неделе и, наконец, календарь «Кроме Праздников» используется при расчете отпуска не по шестидневке, а по календарным дням Каждой календарной дате календарей «Отпуска» и «Кроме Праздников» соответствует не количество рабочих часов, а 1 или О Для шестидневки нули проставляются по воскресным и праздничным дням, для календаря «Кроме Праздников» — только по общегосударственным праздничным дням

Перед началом эксплуатации программы следует подготовить календари к работе

Предварительно рекомендуется заготовить список дней отдыха и укороченных дней, приходящихся на понедельник-пятницу по утвержденному на очередной рабочий год производственному календарю (в пункте «Календари» меню «Справочники»)

Затем откройте календарь — войдите в меню «Справочники», затем «Календари» и выберите один из календарей. Нажмите кнопку «Автозаполнение» в окне просмотра календаря или выберите пункт «Автозаполнение» меню «Действия» В появившемся окне «Автозаполнение календаря» укажите период, для которого заполняется календарь, и нажмите кнопку «ОК»

После проведенных действий календарь уже готов к работе В правой панели окна можно просмотреть количество рабочих дней и часов А, выбрав какой-либо день месяца, можно увидеть его продолжительность и, если требуется, изменить ее

Графики сменной работы

При использовании расширенных возможностей расчета зарплаты в предлагаемой типовой конфигурации имеется возможность организовать учет рабочего времени при многосменной работе Для этого предназначен справочник «Графики сменной работы», в котором можно формировать список календарей, описывающих многосменную работу

В качестве примера предлагаются календари для четырехсменной работы по формуле, сутки работаем, трое суток отдыхаем. Для первых двух из четырех смен введено по три календаря (в названиях этих календарей присутствует указание на сменность)

Каждая строка справочника представляет собой описание одной смены, в реквизитах справочника записывается следующая информация

• № — номер смены по порядку,

• Наименование — наименование смены,

• Отработанные часы — указывается общее количество

отработанных часов, для первой смены календарь называется «Календ 1-ой см (основной)»,

• Вечерние часы — указывается количество отработанных часов, приходящихся на вечернее время, для первой смены календарь называется «Календ 1-ой см (вечерний)»,

• Ночные часы — указывается количество отработанных часов, приходящихся на ночное время, для первой смены календарь называется «Календ, 1-ой см (ночной)»,

• Установленный флажок «График с суммированным учетом отраб времени» означает, что расчет среднего заработка сотрудника, которому назначен такой график, будет вестись по правилам суммированного учета отработанного времени (т е исходя из среднечасового заработка) В этом случае также нужно указать продолжительность рабочей недели, которой соответствует описываемый график Если флажок сброшен, то график при расчетах будет считаться пятидневным

• Переключатель продолжительности рабочей недели позволяет дополнительно описать график с суммированным учетом рабочего времени

Если кто-либо из сотрудников работает посменно, то введенные таким образом графики многосменной работы выбираются в форме редактирования справочника «Сотрудники», на закладке «Общие» в реквизите «График»

Порядок редактирования календарей описан в «Приложении» пункт «Календари для многосменной работы.


1С-Предприятие. Документация | Описание типовой конфигурации "Зарплата и Кадры". Часть 3

Описание типовой конфигурации "Зарплата и Кадры". Часть 3.

Журнал расчетов «Зарплата»

Ввод большинства документов приводит к появлению записей в журнале расчетов «Зарплата», которые являются видами расчетов. Для просмотра журнала расчетов «Зарплата» используйте пункт

«Журнал Зарплата» меню «Справочники» или кнопку на панели инструментов

В журнале расчетов может отображаться информация как текущего расчетного периода, так и данные предыдущих периодов расчета (пункт «Задать глубину просмотра архива» меню «Действия»)

Единственный способ ввода данных в журнал расчетов — ввод новых документов Программа не допускает существования в журнале расчетов «безосновательных» записей, т е записей, которые не были бы введены тем или иным документом, а появились в нем иным способом Из журнала расчетов можно ввести любой документ, для этого нужно нажать кнопку. При этом в вызванном документе будут заполнены все необходимые данные на текущего сотрудника

Единственное, что допустимо в журнале расчетов — редактирование его дополнительных реквизитов, таких как «Дни» и «Часы» журнала «Зарплата», и редактирование результата расчета Результат расчета, исправленный «вручную», впоследствии не пересчитывается, — таким образом, пользователь сам берет ответственность на себя за корректность внесенных изменений Тем не менее, можно отменить ручное редактирование результата (пункт «Отменить ручное редактирование» меню «Действия»), что приведет к его изменению при очередном расчете соответствующей записи журнала расчетов

Кнопки в верхнем левом углу формы журнала расчетов позволяют получить расчетный листок на текущего сотрудника за текущий период расчета, вызвать форму сотрудника для редактирования его данных и получить подробные комментарии хода расчета текущей записи журнала

Ввод начислений и удержаний

Для ввода произвольных начислений и удержаний предназначены два документа «Начисления и удержания на одного сотрудника» и «Начисление и удержание списком» Этими документами можно ввести такие доплаты, как за интенсивность, за расширение зоны, за сложность, за участок, процентом, суммой, различные премии, надбавки за выслугу лет, за секретность, персональную надбавку, оплаты за совмещение и замещение, другие прочие доплаты и удержания

Эти документы хранятся в журнале, который вызывается из пункта «Начисления и удержания» меню «Документы»

Помощник ввода начислений и удержаний

Для облегчения процесса ввода начислений и удержаний одному или нескольким сотрудникам в конфигурацию включен Помощник, который, подробно объясняя, где и что нужно ввести, заполнит за вас нужный документ Вызвать Помощника можно из пункта «Начисления и удержания» меню «Документы», или непосредственно при вводе нового документа, если пользователь указал, что новые документы будут вводиться через Помощников (см настройки пользователя)

Начисления и удержания на одного сотрудника

Данный документ предназначен ввода доплат или удержаний, которые начисляются или удерживаются у сотрудника в течение дли тельного времени

На закладке «Основные» выбирается из списка вид начисления или удержания Для некоторых начислении можно выбрать тип рас чета в реквизите «Тип расчета», тип расчета других определен в кон фигурации В реквизит «Величина» проставляется либо процент, либо сумма

Для начислений, исчисляемых в зависимости от разряда ETC вместо реквизита «Величина» появляется реквизит «Разряд», значение которого выбирается из справочника «Тарифная сетка»

Период действия начисления (удержания) определяется датами «С» и «По» Дату окончания периода можно не проставлять, если срок пока не определен

Этим же документом оформляется временное замещение одним сотрудником другого с выплатой либо разницы в окладах, либо части оклада замещаемого сотрудника В качестве вида начисления следует выбрать «Оплату за замещение», при этом форма документа примет следующий вид

В группе «Оплата за замещение» следует выбрать желаемый способ оплаты, а также указать выплачиваемый процент оклада при оплате процентом от оклада (тарифа).

В реквизит «Хозяйственная операция» заносится хозяйственная операция, если сумма начисления или удержания относится на бухгалтерские счета по конкретной хозяйственной операции.

Закладка «Распределение» появляется в форме документа при использовании расширенных возможностей расчета зарплаты в том случае, если выбранный вид оплаты вводится готовой суммой. На данной закладке вводятся хозяйственные операции, по которым будет распределяться сумма по выбранному виду расчета для выбранного сотрудника.

Примечание. При использовании расширенных возможностей расчета зарплаты для распределения результатов доплат, расчет которых зависит от группы начислений, можно использовать флажок «Распределять пропорционально расчетной базе» в справочнике «Виды расчета».

Начисления и удержания списком

Данный документ позволяет вводить в текущий расчетный месяц те же начисления и удержания, что и документ «Начисления и удержания на одного сотрудника», кроме доплаты «Оплата за замещение».

На закладке «Общие» необходимо выбрать вид начисления (удержания) и указать тип расчета начисления, если выбранное начисление может рассчитываться несколькими способами.

В реквизит «Хозяйственная операция» заносится хозяйственная операция, если сумма начисления или удержания относится на бухгалтерские счета по конкретной хозяйственной операции.

Начисление или удержание можно ввести различному списку сотрудников в зависимости от значений реквизитов «Группа сотрудников» и «Подразделение» закладки «По сотрудникам».

Теперь можно автоматически заполнить табличную часть документа данными о сотрудниках, нажав кнопку «Заполнить», или же при необходимости ввести список вручную. При автоматическом заполнении список сотрудников формируется на основе выбранной ранее группы сотрудников. Реквизиты таблицы «Сумма» или «Разряд» заполняются на основе введенной ранее величине общей для всей группы сотрудников, а реквизиты «С» и «По» заполняются из общего реквизита диалога «На период с».

Табличную часть документа можно редактировать, дополнять новыми сотрудниками, исправлять суммы начисления или удержания и т.п.

При необходимости можно очистить список сотрудников, нажав на кнопку «Очистить», и повторить ввод документа сначала.

Ввод отклонений

К отклонениям можно отнести больничные листы, уход сотрудника в отпуск, невыходы, к которым относятся и прогулы, а также оплата по среднему заработку. Поэтому следующий этап действия расчетчика — ввод таких документов, как больничный лист, приказ на отпуск, приказ на оплату некоторого интервала времени по среднему заработку. Такие документы в рамках данной конфигурации называются «отклонениями» от нормального режима работы (нормально — это когда сотрудник работает).

На основании графиков рабочего времени и введенных документов-отклонений рассчитываются отработанные дни и часы по основным видам расчета — окладу или тарифу. При этом исключаются промежутки времени, перекрытые такими видами расчета, как больничные листы, отпуска, невыходы

Документы отклонения хранятся в журнале отклонений, который вызывается из пункта «Отклонения» меню «Документы»

Помощник ввода документов-отклонений

Для облегчения процесса ввода больничных и отпусков в конфигурацию включен Помощник, который, подробно объясняя, где и что нужно ввести, заполнит за вас нужный документ Вызвать Помощника ввода отклонений можно из пункта «Отклонения» меню «Документы», или непосредственно при вводе нового документа, если пользователь указал, что новые документы будут вводиться через Помощников (см настройки пользователя)

Ввод больничных листов

Больничный лист вводится на каждого сотрудника в отдельности тогда, когда сотрудник предъявляет к оплате листок нетрудоспособности, вызывается из пункта «Отклонения» меню «Документы», затем «Больничный лист» или кнопкой на панели инструментов

На закладке «Общие» нужно выбрать сотрудника из списка, указать дату выдачи, серию и номер листка нетрудоспособности, даты начала и окончания

Переключатель «Тип больничного» позволяет выбрать характер больничного (первичный или продолжение) в случае больничного-продолжения Для больничного-продолжения требуется выбрать из предлагаемого списка первичный больничный лист

Переключатель «Рассчитывать» позволяет указать, что больничный лист следует рассчитывать, исходя из заработка за два предыдущих месяца, либо при помесячной оплате труда — «по текущему месяцу» (см Положение о порядке обеспечения пособиями по государственному социальному страхованию, утвержденное Постановлением Президиума ВЦСПС от 12 ноября 1984 г за №13-6, с изменениями и дополнениями)

Процент оплаты больничного рассчитывается исходя из непрерывного стажа, если соответствующие данные были введены после приема сотрудника на работу (см пункт «Сведения о сотрудниках») Если же данные отсутствуют, процент принимается равным нулю В любом случае процент оплаты больничного можно отредактировать

Установив флажок «Ограничивать размер пособия», можно ограничить размер пособия (до 18 марта 2000 года — двумя окладами, после — 85 размерами ММОТ с учетом районного коэффициента, утвержденного Правительством РФ)

На закладке «Дополнительные» нужно выбрать характер болезни из списка, предлагаемого в реквизите «Причина нетрудоспособности»

Также можно установить флажок «Доплачивать из прибыли до 100%», если процент оплаты больничного меньше 100. В этом случае в журнал расчетов будет введен дополнительный вид расчета «Доплата по б/л до 100% ср. зар.», результат которого рассчитывается как разность между суммой, исчисленной исходя из полного среднего заработка, и начисленным пособием по больничному.

Для корректного расчета больничного «по уходу» требуется выбрать значение реквизита «Семейное положение» из предлагаемого списка, если соответствующие данные не были введены после приема сотрудника на работу (см. пункт «Кадровые данные»).

На закладке «Средний заработок» можно ввести данные о заработке, если в программе нет данных за месяцы расчетного периода, оплачиваемых исходя из среднего заработка. Эта возможность важна в начале эксплуатации программы, когда еще нет данных расчета прошлых периодов.

Если за предыдущие месяцы расчетные данные в программе имеются, то сведения о заработке по месяцам заполняются автоматически при проведении документа.

В колонку таблицы «Зарплата» заносится основной заработок за месяц, указанный в колонке «Месяц».

В колонки «Р.к.» и «Сев. надб.» заносятся суммы районных коэффициентов и северных надбавок, если они выделяются из среднего заработка на вашем предприятии (что определяется флажком «Выделять РК и СН», устанавливаемом в Стартовом Помощнике).

В колонку «Хозоперация» заносится хозяйственная операция, если пособие по больничному листу при формировании проводок распределяется по счетам пропорционально расчетной базе, эта возможность доступна только при использовании расширенных возможностей расчета зарплаты и описывается в справочнике «Виды расчетов».

На этой же закладке также можно ввести суммы квартальной (одна треть этой суммы будет прибавлена к среднему заработку) и годовой (одна двенадцатая часть этой суммы будет прибавлена к среднему заработку) премии, а также среднемесячную сумму разовых премий (эта сумма будет прибавлена к среднему заработку полностью).

Для больничных листов, рассчитываемых «по текущему месяцу» на этой закладке выводится тот месячный заработок, из которого и будет производиться расчет пособия по нетрудоспособности.

После заполнения всех данных о больничном и проведения документа (кнопка «Провести») можно сразу получить отчет о нем. Для этого требуется сначала рассчитать сумму, выплачиваемую по больничному листу, нажав кнопку «Рассчитать». Затем получить отчет о больничном листе (кнопка «Печать»).

Ввод отпуска

Ввод отпусков через документ «Приказ по отпуску» аналогичен вводу больничного листа, вызывается из пункта «Отклонения» меню «Документы», затем «Приказ по отпуску» или кнопкой на панели инструментов.

На закладке «Общие» следует выбрать сотрудника, указать период отпуска или дату ухода в отпуск и количество дней отпуска

Кроме того, следует выбрать из предлагаемого списка тип отпуска, который может быть очередным, за свой счет или же по уходу за ребенком Для очередного отпуска следует также выбрать из предлагаемого списка тип расчета отпуска (может быть по шестидневной неделе или же по календарным дням без учета праздничных дней)

Если очередной отпуск работника складывается из основного отпуска и дополнительного, тогда в реквизите «из них доп отпуска» указывается количество дней дополнительного отпуска, а в реквизите «Тип расчета доп отпуска» указывается, в каких днях (рабочих или календарных) предоставляется дополнительный отпуск

Заполнение группы реквизитов «За период» позволяет в личной карточке сотрудника отслеживать оформление очередного отпуска

Если для расчета отпуска в системе нет данных, их можно ввести за каждый месяц отдельно на закладке «Средний заработок» В табличной части на закладке отражаются данные прошлых месяцев, используемых при расчете среднего заработка Количество месяцев определяется в группе переключателей «Расчетный период»

Сведения о заработке по месяцам заполняются автоматически при проведении документа, если имеются расчетные данные за предыдущие месяца

В колонку таблицы «Зарплата» заносится основной заработок за месяц, указанный в графе «Месяц» (с или без районных коэффициентов и северных надбавок) согласно Порядку исчисления среднего заработка, утверждаемому Министерством Труда РФ

В колонки «Р к » и «Сев надб » заносятся суммы районных коэффициентов и северных надбавок, если они выделяются из среднего заработка на вашем предприятии (что определяется флажком «Выделять РК и СН», устанавливаемом в Стартовом Помощнике)

В колонку «Дни раб » заносится количество отработанных дней по основному табель-календарю сотрудника В колонку «Дн осн » заносится количество рабочих дней по календарю шестидневной рабочей недели, приходящихся на отработанное время при предоставлении отпуска в рабочих днях или количество календарных дней, приходящихся на отработанное время при предоставлении отпуска в календарных днях

Если дополнительный отпуск предоставляется по календарю, отличному от календаря основного отпуска (например, основной отпуск предоставляется по шестидневной неделе, а дополнительный — в календарных днях), то потребуется ввести также количество отработанных дней по календарю дополнительного отпуска в колонку «Дни доп >

В колонку «Хозоперация» заносится хозяйственная операция, если исчисление среднего заработка для оплаты отпускных производится пропорционально расчетной базе, эта возможность доступна только при использовании расширенных возможностей расчета зарплаты и описывается в справочнике «Виды расчетов» При этом в колонке «Вид» следует указывается одно из значений средний заработок, квартальная или годовая премия

В группу реквизитов «Премии» можно ввести суммы квартальной (одна треть этой суммы будет прибавлена к среднему заработку) и годовой (одна двенадцатая часть этой суммы будет прибавлена к среднему заработку) премии.

Так же, как и в документе «Больничный лист», после проведения документа можно рассчитать отпускные, а затем посмотреть, что получилось, нажав последовательно кнопки «Рассчитать» и «Расчет отпуска» на закладке «Общие». Кроме того, есть возможность распечатать отпускную записку по форме Т-6 (кнопка «Отпускная записка» на закладке «Общие»).

Ввод оплаты по среднему заработку

Документ «Оплата по среднему заработку» используется в тех случаях, когда работнику требуется произвести начисление за некоторый интервал времени, основываясь на его заработке за прошлые месяцы. Это исполнение государственных обязанностей, командировки и т.п.

На закладке «Общие» достаточно выбрать сотрудника, задать период времени, который требуется оплатить по среднему заработку, и указать причину оплаты: командировка или гособязанности.

Если не хватает данных для расчета среднего заработка, на закладке «Средний заработок» можно ввести суммы заработка и отработанные дни за прошлые месяцы.

Ввод и заполнение данных по среднему заработку аналогично заполнению этих данных в документах «Ввод отпусков» и «Ввод больничных», описанных выше.

Невыходы на работу

Важным документом, отражающим отклонение от нормального режима работы, является документ «Невыходы» (пункт «Невыходы» меню «Документы»).

Бывают случаи, когда человек не вышел на работу по каким-либо причинам, например, заболевание, по которому еще не представили больничный лист. При этом дни невыходов не оплачиваются, но информация о том, сколько дней человек отсутствовал на работе, необходима для расчета отработанных дней.

Для ввода дней невыходов следует выбрать сотрудника, указать период, когда человек отсутствовал на работе, а также указать причину невыхода. Причина невыходов может быть важна при удержании алиментов, если таковые выплачиваются сотрудником.

Приказ о работе в праздники

Если сотрудник работал в общегосударственные праздничные дни или в свои выходные, оформляется «Приказ о работе в праздники».

Для ввода праздничных дней следует выбрать сотрудника и указать отработанные дни. При этом следует помнить, что введенные этим приказом начисления нельзя «отменить» такими документами как «Больничный лист» и пр. Эти записи можно только вычеркнуть из журнала расчетов, удалив породивший их документ.

Оплата сверхурочных часов

Документом «Сверхурочные» оформляется оплата часов, отработанных сверх положенного рабочего времени.

В колонке «Сотрудник» табличной части документа следует выбрать сотрудника, в колонку «в 1,5-ом размере» - количество часов, оплачиваемых в полуторном размере, а в колонку «в 2-ом размере» количество часов, оплачиваемых в двойном размере.

Также как и в случае оплаты праздничных дней, введенные этим приказом начисления нельзя «отменить» такими документами как «Больничный лист» и пр. Эти записи можно только вычеркнуть из журнала расчетов, удалив породивший их документ.

Удержания длительного действия

Следующую группу документов можно отнести к удержаниям длительного действия. Такие документы, один раз введенные, приведут к многократному вводу в журнал расчетов какого-либо вида удержания, до тех пор, пока не кончится срок действия документа. Так, например, если требуется рассчитывать алименты в течение необходимого периода, то достаточно один раз ввести документ «Исполнительный лист», указав срок действия «С» и «По». Тогда в течение всего указанного периода ежемесячно алименты будут рассчитываться и удерживаться из зарплаты сотрудника.

Неотъемлемыми составляющими документов длительного действия являются реквизиты периода или даты начала и даты окончания действия документа. Документы, позволяющие вводить удержания длительного действия, хранятся в журнале документов, который вызывается из пункта «Удержания» меню «Документы».

Исполнительные листы

Документ предназначен для ввода данных об исполнительных листах. Удержанная сумма может перечисляться на счет получателя, отправляться почтовым переводом или же выдаваться через кассу (реквизит «Способ передачи получателю»). В зависимости от этого заполняются реквизиты документа. Если, например, сумма по исполнительному листу выдается через кассу, то реквизиты «Адрес», «Банк» и «Счет» заполнять не надо.

На закладке «Расчет» вводятся следующие сведения.

Дата, с которой начинается выплата по исполнительному листу, первоначально принимается равной началу расчетного периода. Дату окончания периода можно не проставлять, если срок пока не определен.

Прежде всего, следует выбрать способ передачи выплаты по исполнительному листу: через кассу, по почте или перечислением на счет в банке.

В реквизите «Способ» указывается способ исчисления алиментов:

процентом или суммой. В поле «Процент (Сумма)» вводится процент удержания по исполнительному листу или сумма, в зависимости от того, какой способ исчисления выбран

Если в реквизите «до выплаты» указана какая-либо сумма, то удержание будет производиться то тех пор, пока эта сумма не будет полностью удержана

При расчете исполнительного листа процентом от группы начислений возможно включение в эту группу оплаты по больничному листу Для этого достаточно установить флажок «Удерживать с б/л»

На закладке «Дополнительные» вводятся сведения о документе, на основании которого производится удержание, и о получателе алиментов, а также о расчетном счете и банке, куда эти деньги перечисляются Как уже говорилось выше, сведения, содержащиеся на данной закладке, заполняются в зависимости от того, какой способ передачи алиментов был выбран ранее

Реквизит «Адрес» заполняется на основе адресных классификаторов, аналогично адресам в форме кадровых данных сотрудника, при нажатии на кнопку

Реквизит «Районный коэффициент» по умолчанию равен единице Если же получатель проживает в районах Крайнего Севера или приравненных к ним, то надо указать соответствующий коэффициент

Кнопка «Карточка учета» позволяет распечатать учетную карточку на введенный исполнительный документ

Ссуда предприятия

Если сотрудник предприятия получил ссуду на определенный срок, это оформляется документом «Ссуда предприятия» При этом вводится размер ссуды, срок погашения и процент

• Реквизиты группы «Порядок погашения ссуды» определяют порядок расчета суммы, удерживаемой в счет погашения ссуды из заработной платы (ежемесячно с определенной даты или единовременно в конце срока)

Флажок «Исчислять материальную выгоду» определяет, будут или нет исчисляться суммы материальной выгоды в виде экономии на процентах по заемным средствам согласно законодательству о налоге на доходы физлиц

В том случае, если сумма погашаемой ссуды будет превышать сумму остатка заработной платы, которая может быть выплачена работнику после всех удержаний с более высоким приоритетом (взносы в Пенсионный фонд России, налог на доходы физических лиц, по исполнительным листам), за работником образуется долг, который может быть погашен внесением наличных непосредственно в кассу предприятия

Факт уплаты долга через кассу отражается следующими действиями

• в журнале приказов по удержаниям («Документы» —> «Удержания» -> «Журнал приказов») найти строку с документом, которым оформлена выдача данной ссуды,

• ввести сведения о погашении через кассу («Действия» —> «Ввод на основании»)

Перечисление зарплаты в банк

Данный документ используется, если необходимо перечислять всю или часть зарплаты в банк

Документ вводится для каждого сотрудника, в нем указывается, прежде всего, получатель денег, затем банк, в который будет перечисляться зарплата, расчетный счет получателя в этом банке, а также перечисляемая сумма или процент от зарплаты. Так же, как и в документе «Исполнительные листы», в данном документе присутствуют реквизиты даты начала и окончания его действия

Кроме того, можно выбрать цель перечисления из предлагаемого списка Если деньги перечисляются на благотворительность, в счет погашения кредита на приобретение либо строительство жилья или в фонд избирательных компаний, тогда при расчете соответствующей этому документу строки журнала расчетов в справочник налоговых вычетов будет автоматически введена новая строка с соответствующей суммой."

Ввод нарядов

При использовании расширенных возможностей расчета зарплаты в конфигурации часть работников предприятия могут оплачиваться по сдельной либо сдельно-премиальной формам оплаты труда Расчет заработка в этом случае осуществляется по документам о выработке В настоящую конфигурацию включены два типа нарядов сдельный и бригадный

Бригадные наряды

Документ «Бригадный наряд» позволяет реализовать различные варианты бригадных нарядов (пункт «Бригадный наряд» в меню «Оплата за отработанное время» главного меню «Документы») Известно, что исходными данными для расчета любого наряда в общем случае являются сумма фонда заработной платы, выданной на наряд, отработанные каждым членом бригады часы, размер почасового тарифа и коэффициент трудового участия каждого работника

Флажки документа, объединенные в группу «Тип расчета», позволяют влиять на способ распределения суммы наряда При распределении данной суммы между членами бригады обычно учитывается тариф работника, его КТУ, а также отработанные часы Каждый из этих влияющих факторов можно отключить По умолчанию все флажки установлены

Установленный флажок «Распределять только приработок» приведет к расчету наряда по привычной схеме, т е когда на бригаду распределяется только часть суммы наряда, оставшаяся после вычета заработка по тарифу всех работающих в бригаде Однако, можно пойти и по другому пути, посчитав всю сумму наряда приработком, сбросив этот флажок

В реквизите «По хозоперации» можно указать хозяйственную операцию, по которой будет списана выплаченная по наряду сумма

В многострочной части документа вводятся участники бригадного наряда из справочника «Сотрудники», проставляется им КТУ и, если нужно, часы работы Если список работников велик, то можно ввести только часть его, а затем записать, чтоб можно было вернуться к нему в дальнейшем Для этого предназначена кнопка «Записать»

Если при заполнении многострочной части документа выбран сотрудник, получающий оклад, тогда исключается возможность распределения закрытой по наряду суммы в зависимости от отработанного времени и тарифа и соответствующие флажки отключаются автоматически

Тут же в документе можно рассчитать суммы, причитающиеся каждому работнику (кнопка «Рассчитать») При этом заполнится реквизит «Результат» А затем можно вывести полученный наряд на экран, нажав кнопку «Печать»

Сдельные наряды

В предлагаемую конфигурацию включен наряд, предназначенный для оплаты труда рабочих по сдельным расценкам (пункт «Сдельные наряды» в меню «Оплата за отработанное время» главного меню «Документы») Наряд вводится на одного рабочего и представляет собой список работ, выбираемых из справочника «Нормы», в колонке «Принято» проставляется количество принятых работ

В результате проведения документа в журнал расчетов запишется вид расчета «Наряд по нормам»

Использование справочника сдельных расценок

При начислении оплаты по сдельным нарядам используются сдельные расценки и нормы времени из справочника «Расценки» При этом порядок использования расценок зависит от формы оплаты тру да работника

При сдельно-прогрессивной форме оплаты труда по всем введенным за месяц сдельным нарядам подсчитывается процент выполнения нормы отношение времени, положенного на выполнение всех указанных в нарядах работ по нормам времени, к фактически отработанному за месяц времени (с учетом всех отклонений и, возможно, табеля отработанного времени), выраженное в процентах Если норма перевыполнена, то по справочнику «Прогрессивный коэффициент» определяется коэффициент увеличения расценок, и при начислении суммы оплаты по нарядам расценки на все работы увеличиваются на этот прогрессивный коэффициент

Если сдельный наряд оформляется на работника с любой другой формой оплаты труда (сдельно-премиальной, повременной и т п ) тогда сумма, начисленная по наряду, рассчитывается суммированием расценки за работу, умноженной на количество выполненных работ

Важно! Значения расценок и норм времени из справочника «Расценки» выбираются на дату сдельного наряда, поэтому будьте особенно внимательны при редактировании этих периодических реквизитов «задним» числом

Ввод табеля отработанного времени

Помимо автоматического расчета отработанного времени по табель-календарям при использовании расширенных возможностей расчета зарплаты имеется возможность ввода фактически отработанного времени, которое будет использоваться в различных расчетах вместо рассчитанного автоматически.

Для этого предназначен документ «Отработанное время», вызываемый из пункта «Оплата за отработанное время» меню «Регламенты»:

В документе нужно за каждый календарный день ввести количество отработанных часов, причем вечерние и ночные часы вводятся в отдельных строках документа. Для включения введенных данных в расчет документ нужно провести (нажав одноименную кнопку).

Важно! Во избежание разночтений при расчетах, данные об отработанном времени на каждого сотрудника за какой-либо месяц можно ввести только в одном документе. При проведении документа будет выдано предупреждение о дублировании данных, и документ не будет проведен (т.е. данные, включенные в документ, не будут учитываться при расчетах).

Кроме того, можно отдельно ввести время, отработанное сотрудником по внутреннему совместительству — для этого нужно установить флажок «Отработанное время по внутреннему совместительству вводить отдельно».

Кнопка «Заполнить» заполняет документ значениями из табель календарей сотрудников с учетом введенных отклонений от обычного графика работы (больничных, отпусков и т.п.) для сотрудников, определяемых значениями реквизитов «Группа сотрудников» и «Подразделение». Кнопка «Форма Т-13» распечатывает введенные в документ данные в форме стандартного «Табеля учета использования рабочего времени».

Важно! Если в документе об отработанном времени введены подробные данные за каждый день месяца, то в дальнейшем при автоматическом расчете среднего заработка могут встретиться проблемы с расчетом отпуска, установленного в календарных , днях. Данных для остальных вариантов расчета среднего заработка вполне достаточно, поэтому эти расчеты будут проводиться так же, как и в случае автоматического расчета отработанного времени. Если программа не сможет определить количество отработанных календарных дней, об этом будет выдано предупреждение и эти сведения нужно будет ввести вручную.

Если же бухгалтер-расчетчик не располагает подробными данными за каждый календарный день, можно воспользоваться сокращенной формой ввода данных, для чего в группе «Полнота ввода данных» следует выбрать значение переключателя «За месяц в целом». Тогда в форме документа останется только 4 колонки.

Здесь следует вводить количество отработанных дней и часов за месяц в целом. Также как и при вводе подробных данных вечерние и ночные часы следует вводить в отдельных строках документа.

Однако при вводе данных в целом за месяц теряется подробная информация о том, сколько сотрудник отработал в конкретный день месяца, в связи с чем в дальнейших расчетах, возможно, придется столкнуться со следующими неприятными «побочными» эффектами.

Если сотрудник отработал месяц не полностью, т.е. болел или был в отпуске и т.п., то виды расчета, в которых производится расчет отработанного времени (оплата по окладу, по тарифу и пр.), в принципе не могут определить, сколько отработано времени за часть месяца, поэтому они будут выдавать соответствующее предупреждение и нулевой результат.

При расчете отпуска, установленного в календарных днях, система в принципе не сможет определить количество календарных дней, приходящихся на отработанное время, поэтому в таблице данных для расчета среднего заработка в документе «Приказ по отпуску» придется вручную вводить количество календарных дней

Очень важно! Сотрудникам, отработавшим неполный месяц, во избежание необходимости рассчитывать повременную оплату вручную следует вводить данные о фактически отработанном времени подробно, за каждый календарный день месяца

Выполнение расчетов

После ввода всех необходимых документов можно приступить к выполнению расчетов Расчет можно выполнять в пакетном режиме или работая непосредственно в журнале расчетов При работе непосредственно в журнале можно провести расчет одной записи, всех записей по одному сотруднику, или всех записей, введенных одним документом.

В том случае, если необходимо произвести групповой расчет записей в журнале расчетов, можно воспользоваться регламентной процедурой «Расчет зарплаты» (пункт «Расчет зарплаты» меню «Регламенты» или кнопка на панели инструментов)

Для того, чтобы посчитать только часть зарплаты, предназначена группа реквизитов «Рассчитывать» Устанавливая соответствующие флажки, можно рассчитать только начисления, только удержания, прочие виды расчетов или любую комбинацию из этих трех вариантов

Можно при расчете зарплаты пропустить часть, возможно уже рассчитанных ранее видов оплат, таких как «Больничный лист», «Отпуск очередной», «Оплата по среднему» или наряды Для этого в группе реквизитов «Не рассчитывать» надо установить соответствующие флажки

Если при выполнении расчетов произойдет какой-либо сбой, нажав на кнопку «Повторить», можно продолжить расчеты с первого «не посчитавшегося» сотрудника

Установив флажок «Рассчитывать только непосчитанные ранее записи» можно значительно ускорить процесс расчетов, поскольку записи уже имеющие рассчитанный результат будут пропущены

При исчислении налога на доходы по фактически полученным доходам установленный флажок «Начисленная зарплата текущего месяца будет выплачена» означает, что будут учтены все выплаченные суммы за прошлые месяцы и все начисленные в текущем месяце

На закладке «Печать» можно указать, какие отчеты должны быть сформированы по окончании расчетов

Если во время расчетов встретятся какие-либо проблемы, по окончании расчетов в форме появится закладка «Сообщения» со списком сообщений об ошибках.

Выплата денег через кассу (перечисление на счет в банке)

Для выплаты денег через кассу или оформления перечисления на счета в банке (например, по «зарплатной карточной» схеме) используется документ «Платежная ведомость», который отражает факт выплаты тех или иных сумм сотрудникам предприятия. Это могут быть: выплата зарплаты с погашением долгов, полная или частичная выплата зарплаты за определенный расчетный период, выплата аванса, выплата пособий на детей, выплата дивидендов и межрасчетная выплата. Все эти разнообразные выплаты оформляются одним документом.

Помощник выплаты зарплаты

Поскольку различных вариантов выплаты денег сотрудникам достаточно много, в конфигурацию включен специальный помощник, который облегчит заполнение документа Платежная ведомость, а также получение собственно платежных документов (в бумажном виде):

Платежная ведомость

Документ «Платежная ведомость» — это документ, посредством которого возможно получение различных платежных ведомостей, от выплаты аванса до выплаты зарплаты с погашением всех задолженностей. В данном документе учтена особенность многих предприятий, которые задерживают выплату заработной платы или не выплачивают ее вовсе в течение нескольких месяцев.

В случае нехватки денег на предприятии возможно получение платежной ведомости не со всей причитающейся работникам зарплатой, а только с ее частью.

Если руководство предприятия наконец решило выплатить все задолженности по зарплате за месяцы, когда зарплата не выдавалась, то в данном документе предусмотрен и такой вариант.

В документе предусмотрены следующие способы выплаты денег:

• выплата аванса;

• межрасчетная выплата любого начисления;

• выплата зарплаты за расчетный период:

• выплата детских компенсаций;

• получение части зарплаты;

• выплата зарплаты с погашением всех задолженностей за прошлые периоды.

Прежде всего, на закладке «Общие» следует выбрать способ вы платы зарплаты, описанный выше Если это межрасчетная выплата, то затем в перечислении «Вид межрасчетной выплаты» надо выбрать начисление, которое должно выплачиваться по данному документу

Выплата денег возможна как всем, так и части сотрудников или же только одному сотруднику Можно выбрать одно из подразделений для выдачи зарплаты, аванса или другой выплаты Или же можно вы дать деньги только сотрудникам, которых рассчитывает определенный расчетчик, выбрав из списка в реквизите «Расчетчик»

Группа реквизитов «Выдать через кассу банк» позволяет определить, как будет выдаваться зарплата — через кассу по платежной ведомости или же будет перечислена в банк.

При выборе выплаты аванса появляется закладка «По сотрудникам», в табличной части которой можно ввести сотрудников, которым надо выплатить аванс

При нажатии на кнопку «Заполнить» заполняется сотрудниками по установленному отбору на закладке «Общие», значение аванса выбирается из реквизита «Аванс» справочника «Сотрудники» Список можно редактировать, используя для этого соответствующие кнопки для удаления и вставки на панели инструментов этого документа Так же можно редактировать сумму аванса непосредственно в этом документе.

Если для выплаты аванса в последующие месяцы не требуется редактировать список сотрудников и сумму аванса, то удобней скопировать документ «Платежная ведомость» предыдущей выплаты в журнале кассовых документов и отредактировать только реквизиты документа

Если зарплата выплачивается не полностью, то на закладке «Дополнительно» надо указать процент от причитающейся работникам зарплаты

Теперь можно провести документ, а затем рассчитать суммы к вы даче, нажав последовательно кнопки «Провести» и «Рассчитать»

Затем при помощи кнопок закладки «Печать» можно распечатать платежную ведомость в виде одной из двух стандартных форм (кнопки «Форма № 389» и «Форма №Т-53») или расчетно-платежную ведомость (кнопки «Ведомость» и «Форма №Т49») или расходные кассовые ордера (кнопка «РКО») Если требуется упорядочить список сотрудников в платежных ведомостях по алфавиту, то предварительно надо включить опцию «Упорядочить по фамилии»

Если платежная ведомость оформляется как «выплата зарплаты с погашением долгов» на определенный период, это приведет к тому, что будут выплачены не только суммы заданного периода, но и возможные долги предприятия по выплате заработной платы за предшествующие месяцы Такой тип платежной ведомости важен для предприятий, иногда или регулярно задерживающих заработную плату

Если платежная ведомость оформлена как «выплата зарплаты» за определенный расчетный период, это значит, что будет выплачена заработная плата только указанного месяца, причем, возможно, не полностью — если в закладке «Дополнительно» задан процент выплаты зарплаты, отличный от 100

Замечание. Как в случае с выплатой зарплаты с погашением долгов, так и в случае частичной или полной выплаты зарплаты определенного периода, возможен ввод платежной ведомости прошлого периода Например, в мае можно выплатить четверть мартовской зарплаты, если она не была выплачена вовремя, за тем, в июне выплатить оставшуюся мартовскую зарплату и поло вину апрельской и т д

Для оформления промежуточных выплат в межрасчетный период оформляется платежная ведомость на межрасчетную выплату При этом в качестве значения реквизита «Вид межрасчетной выплаты > следует выбрать конкретный вид расчета, выплачиваемый по этой ведомости Это могут быть

• премии,

• оплата больничных листов,

• оплата отпуска

• материальная помощь и пр

При выводе на печать (закладка «Печать») платежную ведомость можно получить в двух вариантах — в виде формы №389 (для количества сотрудников, не превышающего 50 человек) или виде формы №Т 53 (для произвольного количества сотрудников)

При выплате зарплаты с погашением долгов, полной или частичной выплате зарплаты за определенный расчетный период можно по лучить два вида расчетно-платежных ведомостей, в том числе и по форме №Т-49 (для количества сотрудников, не превышающего 50 человек) Сотрудников в ведомостях можно упорядочить по фамилиям или по табельным номерам

Кроме того можно получить не только платежные или расчетно-платежные ведомости списком, но и расходные кассовые ордера на каждого сотрудника (кнопка «РКО»)

Процедура оплаты платежной ведомости

По завершении очередного расчетного периода для всех платежных ведомостей необходимо указать дату оплаты «бумажного» вари анта документа Чтобы провести процедуру оплаты конкретного документа «Платежная ведомость», следует нажать на кнопку «Оплатить> при этом откроется окно запроса следующего вида

Здесь следует ввести дату оплаты ведомости и указать, нужно ли проводить депонирование по этой ведомости Если вы укажете, что нужно провести депонирование по оплачиваемой ведомости после нажатия кнопки «OK» вам будет предложен для дальнейшей работы автоматически создаваемый документ «Депонирование неполученных сумм»

Внимание! Дата оплаты ведомости используется только для исчисления налога на доходы физических лиц по фактически по лученным суммам и не влияет на формирование бухгалтерских проводок по кассе

Возврат денег в кассу

Для возврата денег в кассу используется документ «Возврат денег в кассу» Этим документом можно погасить долг за сотрудником, который может возникнуть после увольнения или при любых других обстоятельствах

Этот документ используется крайне редко, поэтому в меню не предусмотрен отдельный пункт Его можно вызвать из журнала документов «Журнал кассовых документов» главного меню «Документы»

Рекомендации по частой выплате зарплаты

На многих предприятиях требуется ежедневная или еженедельная выплата зарплаты Для этого в предлагаемой конфигурации можно такие выплаты организовать для сдельщиков и для договорников с помощью документов о фактической выработке например, соответственно вводить документы «Сдельный наряд» или «Договор подряда», а потом производить необходимые выплаты с помощью документа «Платежная ведомость» Перед тем, как выплачивать очередную зарплату, надо после введения документов обязательно рассчитать зарплату на сотрудников и только тогда вводить документ «Платежная ведомость» для выплаты зарплаты

Ведение депонентов

Как правило, после очередной выплаты заработной платы необходимо провести депонирование сумм, не полученных сотрудниками предприятия по выписанным платежным ведомостям

Депонирование

Документ, приводящий к депонированию неполученных сумм, можно вызвать только при оплате соответствующей платежной ведомости

Документ создается автоматически в процессе «закрытия» платежной ведомости Если при закрытии платежной ведомости (кнопка «Оплатить» формы документа «Платежная ведомость») в возникающем запросе установить флажок «Задепонировать неполученные суммы», на экран выводится форма этого документа

В документе можно просмотреть список сотрудников, вошедших в депонируемую ведомость, и отметить (двойным щелчком мыши или нажатием Enter) тех сотрудников, кто не получил деньги по платежной ведомости Если на предприятии принято не учитывать неполученные суммы как депонированную зарплату, а считать ее долгом за предприятием, то укажите это, установив флажок «Учесть как долг». Это приведет к тому, что неполученные деньги автоматически будут учтены в следующем периоде при исчислении суммы, причитающейся к выплате.

Нажав на кнопку «Карточки» можно распечатать карточки депонента (типовая форма №382).

При проведении документа «Депонирование неполученных сумм» все неполученные суммы заносятся в справочник «Депонент», который подчинен справочнику «Сотрудники».

Справочник депонентов

Для просмотра списка депонентов конкретного сотрудника надо сначала выбрать сотрудника в общем списке, а затем открыть справочник «Депонент» (пункт «Касса» меню «Документы», затем «Список карточек депонента»). На экране появится окно, в котором будут отражены депонированные суммы выбранного сотрудника.

В колонке «Сумма» отражается не выданная сумма, дата ее фиксации на депоненте показана в колонке «Приход», а в колонке «Статус» отражается состояние депонента (например, «не выдан»). В колонке «Комментарий» записывается строчка со ссылкой на ту платежную ведомость, по которой сумма была положена на депонент.

Для вывода всех сведений о депонированных суммах для всех сотрудников предназначена кнопка «Состояние депонента», расположенной в верхней части формы справочника «Депонент».

Для просмотра невыданных депонированных сумм у конкретного сотрудника выберите данного сотрудника в списке, откройте форму его редактирования, нажмите кнопку «Отчетность» и выберите из меню пункт «Депонент».

Выплата с депонента

Выплата депонированных сумм оформляется документом «Выплата депонентов» (пункт «Выплата с депонента» меню «Документы»):

В колонке «Депонент» следует выбрать сначала сотрудника, а потом не выданный депонент этого сотрудника, остальные колонки будут заполнены автоматически. Нажав на кнопку «РКО», можно распечатать расходный кассовый ордер на все выплаченные депоненты.

Ввод книги депонентов

Данный документ предназначен для ввода состояния книги депонентов на начало первого расчетного периода (см пункт «Первоначальныи ввод» меню «Регламенты») В данный документ вводятся сотрудники, зарплата которых была положена на депонент и не была выдана с него на момент первого расчета заработной платы в конфигурации «Зарплата + Кадры»

В колонку «Сумма» записываются депонированная суммы, в колонку «Дата» — дата прихода денег на депонент

Сведения о не выданных суммах в дальнейшем хранятся в справочнике «Депонент» и могут быть сняты с депонента при вводе документа «Выплата с депонента»

Прочие документы

В этом разделе описывается ввод документов, регистрирующих различные разовые начисления единовременные пособия за счет ФСС, дивиденды и пр

Единовременные пособия

Документ «Единовременные пособия» служит для ввода пособии выплачиваемых единовременно за счет ФСС при рождении ребенка или на проведение похорон, а также беременным Для ввода данного документа выберите в меню «Документы» соответствующий пункт

В реквизите «Сотрудник» выберите сотрудника из списка, а затем укажите тип выплаты в реквизите «Пособие»

Выплату пособия можно оформить при помощи платежной ведомости или расходным кассовым ордером (кнопка «РКО»)

Внимание! В качестве даты документа следует проставлять дату события, в связи с которым назначено пособие Следует помнить, что пособие назначается в течение 6 месяцев с даты события

Ввод прочих начислений

Документ «Ввод прочих начислении» предназначен для ввода начислений, суммы которых, как правило, не требуют расчета, и вводятся вручную, уже готовыми для выплаты Это такие начисления, как материальная помощь, подарки, призы и т п Для ввода данного документа выберите в меню «Документы» пункт «Ввод вспомогательных начислений»

Выберите в реквизите «Сотрудник» сотрудника из списка, а затем вид начисления в реквизите «Расчет> Затем введите начисленную сумму Если она выплачивается не за весь расчетный месяц, то ука жите интервал за который данная сумма будет выплачиваться

Если выбранное начисление было выдано натурой, например, призы то отметьте флажок «выдано натурой»

Если выбранное начисление относится к авторским вознаграждениям, то укажите сумму расходов и вид скидки расходов в группе реквизитов «Расходы по авторским и приобретениям» Данная сумма расходов будет учитываться при исчислении налога на доходы физических лиц

Выплата дивидендов по акциям

Для всех сотрудников имеющих какое либо ненулевое количество акций на предприятии можно производить расчет суммы дивидендов Для этого предназначен документ «Выплата дивидендов по акциям > Для ввода данного документа выберите в меню < Регламенты) пункт «Выплата дивидендов» Документ доступен только при использовании расширенных возможностей расчета зарплаты

Перед вводом документа необходимо убедиться в том что правильно проставлены значения реквизита «Акций предприятия» справочника «Сотрудники» (форма редактирования данных сотрудника, закладка «Дополнительные»)

В данном документе величина дивидендов приходящихся на одну акцию, может рассчитываться двумя способами — в зависимости от того, какой из признаков флажков отмечен в документе «Общая сумма» или «На одну акцию»

Отмеченный переключатель «Общая сумма > — признак расчета стоимости одной акции как частного от деления общей суммы — реквизит «Величина дивидендов» — на общее количество всех акции, взятых на дату документа

Отмеченный переключатель «На одну акцию > — признак расчета дивидендов при котором стоимость одной акции равна сумме, указанной в реквизите «Величина дивидендов»

После того, как вся необходимая информация для расчета дивидендов введена проведите документ, нажав на кнопку «Провести > После проведения документа в журнал расчетов «Зарплата» вводится расчет «Выплаченные дивиденды»

Для расчета сумм дивидендов нажмите на кнопку «Рассчитать» После этого можно получить отчет о начисленных дивидендах, нажав на кнопку < Печать> Выплата дивидендов оформляется документом < Платежная ведомость >

Материальная выгода по вкладам (договорам страхования)

Документ «Ввод материальной выгоды по вкладам> используется, если на вашем предприятии ведется учет материальной выгоды от банковских вкладов или по договорам страхования Данный документ вводится для сотрудников, получающих процент по вкладам в банках, открытым в рублях под проценты свыше ставки рефинансирования Банка России

Для ввода данного документа выберите в меню «Документы» пункт «Налог на доходы физлиц» а затем «Материальная выгода по вкладам»

В данном документе можно ввести сведения о материальной выгоде списку сотрудников В многострочной части документа выберите сотрудника в графе «Сотрудник> и введите номер счета по вклада (договору страхования)

В реквизитах «С», «По» указывается срок начисления процентов по вкладу (договору страхования)

В реквизите «Остаток» введите остаток суммы банковского вклада (сумма договора страхования), а в реквизите «% годовых» — процент по банковскому вкладу (договору страхования)

После проведения документа (кнопка «Провести») можно получить отчет о расчете материальной выгоды Для этого предназначена кнопка «Печать»

Приказ о лишении премии

Документ «Приказ о лишении премии» используется, если кому либо из сотрудников была уменьшена сумма ежемесячной премии, при этом был выпущен приказ о лишении премии на определенный процент Для ввода данного документа выберите в меню «Документы» пункт «Удержании», а затем «Лишение премии»

В реквизит «Процент лишения» вводится процент, на который должна быть уменьшена сумма ежемесячной премии Данный документ можно ввести только за текущий период и только один раз для одного и того же сотрудника

Расчет оплаты труда на комиссионной основе

В последнее время получила широкое распространение оплата труда на комиссионной основе, например, оплата труда продавца не посредственным образом зависит от объема продаж отдела, в котором он работает Такая форма оплаты доступна только при использовании расширенных возможностей расчета заработной платы

Как назначить сотруднику оплату труда на комиссионной основе

Система оплаты труда назначается работнику по общему правилу при приеме на работу в приказе о приеме (закладка «Расчет»)

В поле «Система оплаты» выбирается один из вариантов оплаты на комиссионной основе. В поле «Коэф-т оплаты» вводится выплачиваемый процент выручки

Возможные варианты расчета оплаты труда на комиссионной основе

В типовой конфигурации Зарплата+Кадры предусмотрено три варианта расчета оплаты труда на комиссионной основе:

• процентом от выручки;

• по окладу плюс процент от выручки;

• процентом от выручки, не менее оклада.

Общей для всех вариантов оплаты труда на комиссионной основе является необходимость ежемесячно вводить суммы фактической выручки Особенности этих вариантов расчета обсуждаются ниже.

Оплата «процентом от выручки»

Вариант оплаты «процентом от выручки» предусматривает начисление работнику вознаграждения в размере установленного процента от некоторого объема фактической выработки (или выручки).

Например, оплата труда страхового агента может составлять 1% собранной им за месяц суммы страховых взносов

Начисляемый процент от выручки указывается при приеме на работу и может быть в дальнейшем отредактирован непосредственно в форме редактирования расчетных данных работника.

Суммы фактической выработки (выручки) вводятся ежемесячно для каждого работника с оплатой труда на комиссионной основе документами «Ввод начислений и удержаний»

Важно! Поскольку для начисления оплаты труда таким работникам используется только процент оплаты от выручки, суммы окладов для них при приеме на работу указывать необязательно Однако это скажется на расчете оплаты по больничным листкам с ограничением двумя окладами — будет использован нулевой оклад Поэтому, если такому сотруднику необходимо рассчитать больничный листок с ограничением двумя окладами, нужно указать типичный оклад по занимаемой сотрудником должности

Ввод сумм фактической выработки (выручки)

Суммы фактической выработки для расчета оплаты труда на комиссионной основе можно ввести в документах «Ввод начислений и удержаний» как на одного сотрудника, так и в документе «Начисления и удержания списком» (пункт «Начисления и удержания» меню «Документы»).

В документе «Ввод начислений и удержаний» нужно выбрать сотрудника с комиссионной системой оплаты труда, затем в. поле «Начисление (удержание)» следует выбрать начисление «Комиссионная оплата» и указать сумму выручки-

После проведения документа сотруднику будет начислена комиссионная оплата исходя из фактической выработки в сумме 52000 руб.

В документе «Начисления и удержания списком» сначала следует выбрать начисление «Комиссионная оплата», а затем заполнить список сотрудников, которым нужно ввести фактическую выработку (кнопка «Заполнить» позволит автоматически подобрать «подходящих» сотрудников)

Оплата по окладу плюс процент от выручки

Вариант оплаты «по окладу плюс процент от выручки» предусматривает начисление работнику назначенного при приеме на -работу оклада, а также вознаграждения в размере установленного процента от некоторого объема фактической выработки (или выручки).

Например, продавец в салоне модной одежды имеет установленный оклад и дополнительно получает некоторый процент от объема продаж определенного ассортимента товаров.

Таким образом, при приеме на работу такого сотрудника нужно указать и оклад, и процент оплаты от фактической выработки.

Фактическую выработку ежемесячно следует вводить дополнительными документами.

Оплата «процентом от выручки, не менее оклада»

Вариант оплаты «процентом от выручки, не менее оклада» предусматривает начисление работнику вознаграждения в размере установленного процента от некоторого объема фактической выработки (или выручки), но не менее заранее оговоренной ставки (оклада).

Например, продавец уличного овощного лотка получает некоторый процент от объема продаж, но не менее 1000 рублей в месяц.

Фактическую выработку (выручку) также следует ежемесячно вводить дополнительными документами.

Если установленный работнику процент выручки превысит сумму оклада, то в его расчетном листке окажется только одна строка начисления — комиссионная оплата. Если же процент выручки окажется меньше оговоренного оклада работника, тогда в расчетном листке появится начисление «по окладу», а общая сумма комиссионной оплаты и по окладу будет равна оговоренной сумме оклада (с учетом отработанного сотрудником времени).

Пример. Продавец уличного овощного лотка получает 1 % от объема продаж, но не менее 1000 рублей в месяц.

В феврале 2000 года из положенных по графику 15 рабочих дней продавец отработал 10 дней, выручка за эти дни составила 50000 руб.

За февраль продавцу начислено 500 руб. по виду расчета «Комиссионная оплата» и 166 руб. 67 коп. по виду расчета «По окладу», т.к. за отработанные продавцом 10 дней ему полагалось не менее 666 руб. 67 коп.

В марте продавец отработал все рабочие дни по своему графику, выручка за март составила 130000 руб.

За март продавцу начислено 1300 руб. по виду расчета «Комиссионная оплата».

Отчеты

После проведения расчета можно получить все необходимые документы. Для этого служит меню «Отчеты». В нем есть возможность получить следующие отчеты:

• Табель отработанного времени по форме Т-13;

• Расчетные листки;

• Налоговая карточка (Приложение №7 к Инструкции ГНС №35);

• Справка о доходах (Приложение №3 к Инструкции ГНС №35);

• Отчет об итоговых суммах начисленных доходов (Приложение №8 к Инструкции ГНС №35);

• Отчеты для Пенсионный фонда (анкета и индивидуальные сведения о застрахованном лице);

• Расчетная ведомость;

• Свод начислений и удержаний;

• Налоговая ведомость;

• Отчеты по больничным листкам (опись б/л, ведомость начисленных пособий по временной нетрудоспособности и протокол комиссии по соцстраху).

• Свод по перечислению заработной платы в банки;

• Свод по алиментам,

• Списки сотрудников в произвольной форме,

• Вывод результатов расчета в произвольной форме,

• Среднесписочная численность;

• Кадровые отчеты

Большинство отчетов можно получить по выбранному подразделению, расчетчику или отдельному сотруднику. Такие отчеты, как «Налоговая карточка», «Справка о доходах», «Об итоговых суммах начисленных доходов», «Анкета для Пенсионного фонда» и «Индивидуальные сведения о застрахованном лице», «Расчетная ведомость», «Табель» имеют стандартную печатную форму Платежные поручения, формируемые документами «Налоговая ведомость» и «Перечисления в банки», расходные кассовые ордера, формируемые документами «Платежная ведомость» и «Выплата с депонента» также являются документами стандартной формы Остальные документы имеют произвольный характер

Табель

Для формирования табеля учета отработанного времени по форме Т-13 предназначен отчет «Табель учета рабочего времени»

Табели формируется или по организации в целом, или по ее структурным подразделениям

В данном отчете для отметок видов затрат рабочего времени используются условные обозначения, представленные в таблице

Буквен | Что означает
ный код |
Я | Часы работы
Н | Ночные часы работы
вч | Вечерние часы работы
с | Сверхурочные часы работы
к | Служебные командировки
от | Ежегодные основные отпуска
од | Ежегодный дополнительный отпуск, предусмотренный
 | законодательством, коллективным договором
У | Отпуска в связи с обучением с полным сохранением за
 | работной платы, повышения квалификации с отрывом от
 | производства и др.
УЧ | Отпуска в связи с обучением с частичным сохранением
 | заработной платы
УД | Дополнительный учебный отпуск без сохранения заработ
 | ной платы
р | Отпуска по беременности и родам
04 | Частично оплачиваемый отпуск, предоставляемый по ухо
 | ду за ребенком до достижения им возраста трех лет
ож | Дополнительный отпуск без сохранения заработной пла
 | ты, предоставляемый женщинам по уходу за ребенком
до | Дополнительные отпуска (дни), предоставленные по ре
 | шению администрации
ОА | Отпуска (оплачиваемые полностью или частично) по ини
 | циативе администрации в связи с простоем в организации
он | Отпуска (неоплачиваемые) по инициативе администрации
 | в связи с простоем в организации
Б | Временная нетрудоспособность (кроме случаев, преду
 | смотренных кодом «т») и отпуска по уходу за больными и
 | по карантину, оформленные листками нетрудоспособности
Буквен | Что означает
ный код |
Т | Неоплачиваемая нетрудоспособность в случаях, преду
 | смотренных законодательством (в связи с бытовой трав
 | мой и т д )
лч | Часы сокращения работы рабочим и служащим моложе
 | 18 лет против установленной продолжительности рабоче
 | го дня
вп | Целосменные и внутрисменные простои не по вине рабо
 | чего или служащего
г | Целодневные невыходы с полным сохранением заработка
 | в случаях, предусмотренных законодательством (выпол
 | нение государственных и общественных обязанностей,
 | устранение последствий стихийных бедствий)
НБ | Целодневные невыходы без сохранения заработной платы
 | (рабочим и служащим, работающим в районах Крайнего
 | Севере и в местностях, приравненных к ним, для проезда
 | к месту использования отпуска и обратно, по уходу за
 | больными и по карантину, оформленные справками ле
 | чебных учреждений, отпуска сроком до 2-х месяцев, пре
 | доставляемые пенсионерам по возрасту, работникам
 | инвалидам I и II группы, дополнительный отпуск сроком
 | до 2-х недель, предоставляемый работникам — участни
 | кам Великой Отечественной войны и женщинам, имею
 | щим 2-х и более детей в возрасте до 12 лет, невыходы
 | работников, находящихся под следствием до решения су
 | да, краткосрочный отпуск, предоставляемый администра
 | цией)
ПР | Прогулы (неявки на работу без уважительной причины в
 | течение всего рабочего дня или отсутствие без уважи
 | тельной причины более 3-х часов (непрерывно или сум
 | марно) в течение всего рабочего дня, административный
 | арест за административные нарушения, пребывание в ме
 | дицинском вытрезвителе, забастовки, неразрешенные за
 | коном, и другие неявки по неуважительным причинам
Буквен | Что означает
ный код |
НС | Неотработанные часы в связи с работой организации в
 | режиме неполного рабочего дня по причине сокращения
 | объемов производства
Е | Выходные дни (для еженедельного отдыха) и праздничные
 | ДНИ
ЗБ | Массовые неявки — забастовки (разрешенные законом)

Для отражения использования рабочего времени за каждый день в табеле отведено две строки - одна строка для отметок условных обозначений видов затрат рабочего времени, а другая строка - для записи количества часов по ним Количество дней и часов указывается с одним десятичным знаком

При использовании расширенных возможностей расчета зарплаты флажок «Данные по внутреннему совместительству выводить отдельно» позволяет получить сведения об отработанном времени внутренних совместителей

Расчетные листки

В данном отчете формируются расчетные листки на каждого сотрудника При этом можно получить листки по всему предприятию в целом, по одному подразделению, для одного расчетчика или же только для одного сотрудника за любой расчетный период Расчетные листки можно выводить или в алфавитном порядке (установив флажок «Упорядочить по фамилиям»), или по табельным номерам

Для вывода расчетных листков сразу по всему предприятию не надо заполнять реквизиты диалога. Если нужны расчетные листки для некоторой группы сотрудников или же одного сотрудника, то заполните соответствующие реквизиты формы.

Расчетные ведомости

В этой группе отчетов представлена полная информация о результатах расчетов за любой расчетный период.

Расчетные ведомости и свод можно получить как для всех сотрудников предприятия, так и для некоторых сотрудников, согласно значениям реквизитов из группы реквизитов «Вывести».

Список сотрудников в расчетных ведомостях можно получить, упорядоченный по алфавиту (установлен флажок «Упорядочить по фамилиям») или же по табельным номерам (флажок сброшен).

При выводе расчетных ведомостей для крупного подразделения или в целом по предприятию для каждого подразделения можно получить свою расчетную ведомость (установлен флажок «Упорядочить по подразделениям»), при этом нумерацию в каждой ведомости можно начать с единицы (установлен флажок «Нумеровать подразделения раздельно»).

Расчетная ведомость (кнопка «Расчетная ведомость») представляет собой список сотрудников с начисленными и удержанными суммами по всем видам расчета отдельно для каждого сотрудника. Отчет формируется в произвольной форме.

Расчетная ведомость по форме Т-51 (кнопка «Форма Т-51») представляет собой список сотрудников с начисленными и удержанными суммами для каждого сотрудника по форме Т-51, утвержденной Госкомстатом РФ.

Свод начислений и удержаний (кнопка «Свод»). Данный отчет позволяет получить сводные данные по начислениям и удержаниям за любой расчетный период.

Мемориальный ордер 5 (кнопка «Мемориальный ордер 5») предназначен для предприятий, использующих бюджетный план счетов. Ордер также можно получить по всему предприятию, по отдельному подразделению или для одного расчетчика.

Алименты

В отчете «Алименты» можно получить три отчетные формы:

• Алименты, перечисляемые почтой — кнопка «Почтой», при этом, установив флажок «Печатать платежное поручение», можно получить соответствующую платежку;

• Алименты, выдаваемые в кассе предприятия, оформляются либо в виде ведомости (кнопка «Ведомость» группы «Через кассу»), либо расходными кассовыми ордерами (кнопка «РКО» группы «Через кассу»);

• Свод удержанных алиментов — кнопка «Общий свод».

Алименты, перечисляемые в банки формируются вместе с остальными перечисляемыми суммами в отчете < Перечисления в банки»

Все три формы отчета об алиментах можно получить за любой расчетный период, по всему предприятию или же отдельно по одному подразделению или одной из групп сотрудников

Группа «Реквизиты почтамта» позволяет ввести или отредактировать банковские реквизиты почтамта Установленный флажок <Использовать реквизиты по умолчанию» позволяет запомнить занесенные в группу «Реквизиты почтамта» значения для последующего использования

Перечисления в банки

Данный отчет формирует сведения о сотрудниках, перечисляющих деньги в банки Отчет можно сформировать или в виде платежных поручений, или как список плательщиков

Отчет можно сформировать как для конкретного банка, указанного в качестве значения реквизита «Банк», так и по всем банкам, если реквизит «Банк» оставить незаполненным Для платежных поручений требуется заполнить дополнительные реквизиты «Дата» «Вид платежа» и «Очередность платежа» В реквизит «Номер» следует занести номер первого платежного поручения

Ведомости по больничным листам

Данная группа отчетов собирает данные об оплаченных листках нетрудоспособности

Список сотрудников можно получить, упорядоченный по алфавиту, если установить флажок «фамилиям», или же по подразделениям, если установить флажок «подразделениям» из группы «Упорядочить по»

При нажатии на кнопку «Ведомость» формируется итоговая опись листков нетрудоспособности, оплаченных за выбранный расчетный период

Кнопка «Протокол комиссии соцстраха > формирует соответствующий протокол

Чтобы избежать необходимости заполнять вручную результатами расчетов оборотную сторону больничного листка, можно воспользоваться отчетом, формируемым кнопкой «Расчет б/л»

Состояние флажок «Рассчитывать стаж» определяет, будет или нет выводиться раздел оборотной стороны больничного листка «Заполняется отделом кадров»

Результаты расчетов в произвольной форме

Для вывода на печать в произвольной форме информации из журнала расчетов «Зарплата» предназначен Помощник вывода результатов расчета Помощник позволяет

• выводить результаты расчетов за определенный период журнала расчетов,

• выводить сведения о расчетах по всему предприятию в целом или выборочно по группе сотрудников,

• выводить сведения о выборочных видах расчетов,

• выводить сведения о расчетах в табличной форме, в графах которой располагаются в произвольном порядке реквизиты журнала расчетов,

• упорядочивать сведения по определенным признакам,

• выводить промежуточные итоги и итоги по отчету в целом

Используя Помощника вывода результатов расчета, можно создавать различные формы отчетов о результатах расчетов заработной платы Каждому новому отчету пользователь вводит новое имя, которое хранится в дальнейшем в системе При очередном выводе списка сотрудников можно выбрать уже созданную ранее форму отчета из списка и сформировать ее

На первой странице Помощник предлагает записать название новой формы отчета или выбрать уже созданную ранее из списка

В первом случае надо установить флажок «Создать новый формат отчета» и вписать новое имя отчета Во втором случае отмечается флажок «Использовать формат отчета», а затем можно выбрать из списка нужный отчет

Кнопка предназначена для удаления формы отчета из списка, если она уже оказалась не нужна или была создана ошибочно

Далее Помощник предлагает выбрать период журнала расчетов, за который будут выводиться сведения о расчетах

На странице «Формирование граф отчета» в окне «Доступные графы» Помощник выводит список реквизитов журнала расчетов «Зарплата» Перенесите в окно «Вывести графы» те реквизиты, которые вы хотите видеть в отчете, и в той последовательности, которая должна быть соблюдена в отчете

На следующей странице определите полноту вывода результатов расчета Можно вывести данные только по одному подразделению, или одной категории, или по одной группе сотрудников Если выбор не сделан, то выводятся сведения по всему предприятию

Можно также вывести только штатных сотрудников или только совместителей, или только договорников, отметив соответствующие флажки Если все флажки отмечены, то будут выведены и штатные сотрудники, и совместители, и договорники

Далее нужно определить, какие виды расчетов будут" отражены в отчете И на последней странице Помощник предлагает выбрать способ упорядочивания строк отчета и вывод итогов отчета

Настройка отчета на этом завершена, можно вывести его на печать, нажав на кнопку «Готово»

Налоговая ведомость

В данном отчете формируются суммы, отчисляемые в различные внебюджетные фонды с фонда заработной платы предприятия При этом можно получить отчет в виде налоговой ведомости, нажав кнопку «Ведомость», или сформировать платежные поручения, нажав кнопку «Платежки»

Для получения платежных поручений следует уточнить дату платежного поручения, номер первого из них, вид платежа и очередность платежа в соответствующих реквизитах диалога

О доходах сотрудника

Отчет о доходах сотрудника предоставляет возможность получить два стандартных отчета о доходах и исчисленном и удержанном налоге на доходы физлиц, а также файл для передачи этих данных в налоговый орган.

Отчеты можно получить за любой расчетный год на любую выбранную группу сотрудников. Для получения отчета для сотрудников какого-либо подразделения, нужно выбрать соответствующее значение реквизита «Подразделение», на определенную группу сотрудников необходимо сделать подбор из списка сотрудников, нажав кнопку «Подбор». Если оставить не заполненными реквизиты «Подразделение» и «Сотрудники», то отчет сформируется для всех сотрудников предприятия.

Если в конфигурации налог на доходы физлиц исчисляется по фактически полученным доходам (определяется в форме, вызываемой кнопкой «Налог на доходы физлиц» на закладке «Ставки» формы «Настройки», меню «Сервис»), тогда отчеты могут быть сформированы по начисленным или по полученным доходам в зависимости от состояния флажка «По начисленным доходам».

Налоговая карточка представляет собой отчет на каждого сотрудника по форме Приложения №7 к Инструкции ГНС №35 (кнопка «Налоговая карточка»). Справка о доходах (кнопка «Справка в ГНИ») — это отчет о доходах сотрудника за год по форме Приложения №3 к Инструкции ГНС №35. Оба отчета выдаются за 1999 год - в форме, утвержденной на 1999 год, а за 2000 год - в форме, утвержденной на 2000 год.

Установленный флажок «Только совместители и договорники» позволяет вывести данные только на тех сотрудников, что не имеют на предприятии основного места работы.

При формировании файла с данными для ГНИ этот файл можно поместить сразу на дискетку (на закладке «Дополнительные» установите флажок «На дискету» и выберите нужный дисковод) либо оставить на жестком диске компьютера (установите флажок «В каталог» и выберите каталог, куда будет записан файл). Сформированный файл сопровождается «реестром сведений о доходах физических лиц» по форме Приложения №10 к Инструкции ГНС №35.

В соответствии с рекомендациями МНС РФ файл с данными следует передавать в архивированном виде. По умолчанию в качестве архиватора используется программа ARJ. Чтобы программа 1С:Зарплата и Кадры смогла найти архиватор ARJ, эта программа должна находиться в пути доступа операционной системы, т.е. путь к ней должен быть указан в операторе PATH в системном файле AUTOEXEC.BAT.

Внимание! Архиватор ARJ является самостоятельной программой и в комплект поставки программы 1С:Зарплата и Кадры 7.7 не входит.

Если же вы предполагаете использовать другой архиватор (не ARJ), тогда в константе «Архиватор» следует установить значение «Нет» и в константе «Команда запуска» записать начало командной строки вызова архиватора, состоящее из пути к программе, имени программы-архиватора и параметров командной строки, приводящих к архивированию файлов Например, для архиватора PKZIP, находящегося в каталоге С \TOOLS, следует записать следующую строку «С \TOOLS\PKZIP -a»

По умолчанию флажок «Архивировать выходные данные» установлен Выдавать данные в не архивированном виде допускается, если у вас архиватора нет совсем, либо данные, обработанные вашим архиватором, не принимаются ГНИ, тогда флажок «Архивировать выходные данные» следует сбросить

Чтобы начать процесс вывода, нажмите кнопку «Сформировать»

Замечание. При формировании данных с использованием архиваторов может случиться так, что после вызова программы-архиватора и завершения ее работы DOS-окно осталось открытым, т е окно осталось на экране, и в заголовке окна появилась надпись «Сеанс завершен» (Finished) Чтобы впоследствии DOS-окно закрывалось по окончании работы архиватора, следует проделать следующее

• щелкнуть мышью в левый верхний угол DOS-окна,

• в появившемся меню выбрать строку «Свойства» (Properties);

• в окне «Свойства» на закладке «Программа» (Program) установить флажок «Закрывать окно по завершении сеанса работы» (Close on exit),

• нажать кнопку «OK» в окне «Свойства» и закрыть DOS-окно

Об итоговых суммах доходов

Отчет «Об итоговых суммах» — это свод по всему предприятию за определенный период по форме Приложения №8 к Инструкции ГНС №35, предназначенный для налоговой инспекции

Для получения отчета следует выбрать период 1 квартал, 1 полугодие, 9 месяцев или год Затем следует установить год, за который необходимо получить отчет

Если в конфигурации налог на доходы физлиц исчисляется по фактически полученным доходам (определяется в форме, вызываемой кнопкой «Налог на доходы физлиц» на закладке «Ставки» формы «Настройки», меню «Сервис»), тогда отчет может быть сформирован по начисленным или по полученным доходам в зависимости от состояния флажка «По начисленным доходам»

Отчеты для Пенсионного фонда РФ

Отчет формирует файл с анкетными данными на незастрахованных работников либо со сведениями о стаже и заработке для застрахованных работников в формате версий 2 22, 2 40 или 2 50, утвержденыx Главным управлением информационных технологий Исполнительной дирекции Пенсионного фонда РФ в 1998-2000 годах

Текстовый файл сопровождается «бумажными» вариантами передаваемых документов

Информация о застрахованных лицах группируется в пачки по 200 анкет Каждая пачка имеет свой номер и предназначена для записи в файл Файлы с данными могут быть переписаны сразу на дискетку или же сохранены на жестком диске в зависимости от состояния флажков «На дискету»/«В каталог» Имя файла формируется из регистрационного номера предприятия в ПФР и номера пачки поэтому важно установить номер первой пачки

Тип передаваемой в Пенсионный фонд информации определяется в реквизите < Документ) и имеет два значения < Сведения о стаже и заработке» и «Анкета застрахованного лица>

Отчет позволяет сформировать сведения или анкеты сразу на всех сотрудников предприятия или на ту группу которую можно сформировать в окне < Сотрудники», выбирая их из списка сотрудников при нажатии на кнопку < Подбор»

Если в справочниках «Сотрудники» и <Кадровые данные > нет не обходимых данных для формирования сведении или анкет то при формировании отчетов в окне сообщении будут выведены соответствующие сообщения

Для индивидуальных сведений о заработке сотрудников отчетным периодом может быть полугодие (первое или второе) или весь год

При внедрении программы не с начала года т е когда первые рас четы проводятся не с января отчетного года информация о заработке и стаже за «пропущенные > месяцы вводится в специальную форму ввода внешне приближенную к форме сдаваемого в ПФР документа Форма ввода вызывается из формы редактирования данных сотрудника нажатием кнопки «Сведения для ПФР> на закладке < Основные»

В раздел < Сведения о заработке > вводятся данные за месяцы расчеты по которым в программе не велись (окрашены в желтый цвет) При этом суммы начисленных страховых взносов рассчитываются автоматически

По правилам Пенсионного фонда по подготовке данных сведения представляются отдельно на зарплату работников (без оплаты договоров подряда) и на каждый договор подряда оформленный на работника Выбрать нужный набор данных (если их несколько) можно в списке «Отображаемые данные», куда автоматически заносятся все договора подряда сотрудника

Эта же форма используется и в последующие годы эксплуатации программы для просмотра данных о заработке и просмотра и редактирования данных о стаже работников Данные о заработке заполняются автоматически по имеющимся результатам расчетов в журнале расчетов «Зарплата» и не доступны для редактирования

Ввод данных о стаже Запись о стаже работы автоматически формируется только в самом общем виде — с учетом дат приема на работу и увольнения и сроков начала и окончания отчетного периода Для тех сотрудников, которые имеют основания для льготной пенсии, пенсии за выслугу лет и т п , необходимо вводить подробные сведения о стаже в соответствующий раздел формы ввода

В реквизитах «Начало» и «Окончание» указывается дата начала и окончания записи о стаже

В реквизите «Особые условия» выбирается код особых условий труда согласно классификатору ПФР Не заполняется, если особые условия труда отсутствуют

В реквизите «Исчисляемый трудовой стаж» в графе «Основание» выбирается код основания исчисляемого трудового стажа согласно классификатору Заполняется для отдельных категорий работников В графе < Дополнительные сведения» записываются дополнительные сведения о стаже — количество месяцев, отработанных в особых условиях труда или часы пребывания водолаза под водой либо значение из классификатора

В реквизите «Выслуга лет» графа «Основание» заполняется также значениями из классификатора оснований для пенсии за выслугу лет Заполняется для отдельных категории работников В графе «Дополнительные сведения» записывается налет часов для летного состава гражданской авиации.

В реквизит «Код профессии» вводится код позиции Списка, если работник имеет право на льготное пенсионное обеспечение в соответствии со Списками № 1 и 2 производств, работ, должностей и показателей, дающих право на льготное пенсионное обеспечение, утвержденными Постановлением Кабинета Министров СССР от 26 января 1991 года № 10

Среднесписочная численность

Данный отчет формируется для всего предприятия в целом с разбивкой по месяцам Отчет можно получить за любой период времени в пределах одного года Для этого в диалоге следует выбрать начало и окончание периода

Кадровые отчеты

Выбрав определенное значение переключателя «Тип отчета», на

закладке «На дату» можно получить следующие отчеты- .

Отчет по образованию. В данном отчете формируется полный список сотрудников предприятия с упорядочиванием по ступеням образования и с выведением общего количества по каждому виду

образования

Список военнообязанных. В данном отчете формируется полный список военнообязанных сотрудников предприятия на определенную дату и с выведением общего количества военнообязанных

Отчет по возрасту. В данном отчете формируется таблица на определенную дату, в которую сведены количественные данные по возрасту и полу Подсчитываются работающие мужчины и женщины в интервалах возраста и общий итог по полу до 18 лет, от 18 до 25 лет, от 25 до 30 лет, от 30 до 40 лет, от 40 до 50 лет, от 50 до 60 лет, свыше 60 лет

Сведения о детях В данном отчете формируется список сотрудников предприятия, имеющих детей указанного возраста на определенную дату По умолчанию возраст детей равен от 1 года до 18 лет По каждому сотруднику выводятся данные табельный номер, подразделение, а по каждому ребенку выводится его имя и дата рождения

Юбиляры года В данном отчете формируется список сотрудников предприятия на определенную дату, имеющих юбилей в текущем году По умолчанию дата актуальности равна текущей дате По каждому сотруднику выводятся данные табельный номер, подразделение, количество лет возраста и дата рождения

Представляемые на пенсию В данном отчете формируется спи сок сотрудников предприятия на определенную дату, представляемые на пенсию в текущем году По умолчанию дата актуальности равна текущей дате По каждому сотруднику выводятся данные табельный номер, подразделение, количество лет возраста и дата рождения

Стаж на предприятии В данном отчете формируется список сотрудников предприятия на определенную дату По умолчанию дата актуальности равна текущей дате По каждому сотруднику выводятся данные табельный номер, подразделение, количество лет стажа на данном предприятии и дата приема на работу

По семейному положению. В данном отчете подсчитывается количество сотрудников по каждому из возможных вариантов семейно то положения (замужем, холост и т п )

Закладка «За период». Здесь можно получить списки сотрудников предприятия, принятых за введенный период (в реквизите «Тип отчета» выбран отчет «Принятые на работу») или уволенных за введенный период (в реквизите «Тип отчета» выбран отчет «Уволенные с работы»)

По умолчанию период равен полному текущему году На каждого сотрудника выводятся данные табельный номер, должность, подразделение, дата приема на работу

Список сотрудников в произвольной форме

Для получения списка сотрудников в произвольной форме в конфигурацию включен Помощник вывода списка сотрудников Помощник позволяет

• выводить сведения о сотрудниках по всему предприятию и выборочно по группе сотрудников,

• выводить сведения о сотрудниках в графы и располагать из в произвольном порядке,

• упорядочивать сведения по определенным признакам,

• выводить промежуточные итоги и итоги по отчету в целом

Используя Помощника вывода списка сотрудников, можно создавать различные формы отчетов с данными о сотрудниках Каждому новому отчету пользователь вводит новое имя, которое хранится в дальнейшем в системе При очередном выводе списка сотрудников можно выбрать уже созданную ранее форму отчета из списка и сформировать ее

На первой странице Помощник предлагает записать название новой формы отчета или выбрать уже созданную ранее из списка

В первом случае надо установить флажок «Создать новый формат отчета» и вписать новое имя отчета Во втором случае отмечается флажок «Использовать формат отчета», а затем можно выбрать из списка нужный отчет

Кнопка предназначена для удаления формы отчета из списка, если она уже оказалась не нужна или была создана ошибочно

На второй странице помощника вводится дата актуальности вывода данных в отчет.

На странице «Формирование граф отчета» в окне «Доступные графы» Помощник выводит список имеющихся реквизитов справочника «Сотрудники» и подчиненных ему справочников («Кадровые данные», «»0бразование» и т.п.). Перенесите в окно «Вывести графы» те реквизиты, которые вы хотите видеть в отчете, и в той последовательности, которая должна быть соблюдена в отчете.

На следующей странице определите полноту вывода списка сотрудников. Можно вывести сотрудников только по одному подразделению, или одной категории, или принадлежащих одному расчетчику Если выбор не сделан, то выводятся сотрудники всего предприятия.

Можно также вывести только штатных сотрудников или только совместителей, отметив соответствующие флажки. Если оба флажка отмечены, то будут выведены и штатные сотрудники, и совместители.

На основе данных, имеющихся в системе, Помощник позволяет выводить список сотрудников с упорядочиванием по подразделениям, категориям (если они используются), табельным номерам или фамилиям сотрудников. На последней странице Помощник предлагает выбрать способ упорядочивания списка сотрудников и вывод итогов отчета.

Настройка отчета на этом завершена, можно вывести его на экран, нажав на кнопку «Готово».

Экспорт бухгалтерских проводок

Настоящая конфигурация содержит механизм формирования бухгалтерских проводок в формате программы 1С:Бухгалтерия 6.0 или в формате файлов импорта типовых конфигураций системы программ 1С.Предприятие Для формирования файла «переноса операций» служит пункт «Обмен данными» меню «Сервис».

Выбрать бухгалтерскую программу, в которую будут выгружаться проводки, можно на закладке «Бухгалтерия» формы «Настройки» (меню «Сервис»)

Если вы собираетесь выгружать данные о проводках в одну из типовых конфигураций системы программ 1С Предприятие, то перед настройкой параметров хозяйственных операций (см раздел «Распределение зарплаты по счетам затрат и формирование проводок») необходимо провести импорт данных об используемой в бухгалтерской конфигурации аналитике (пункт «Обмен данными» меню «Сервис», а затем «Загрузить данные»).

Помимо собственно проводок можно перенести информацию из справочника «Сотрудники» (как элементы субконто), если вы выгружаете проводки в типовую бухгалтерскую конфигурацию 1С Предприятия, то и других справочников, элементы которых могут эффективно использоваться бухгалтерской конфигурацией

Реквизит «Имя файла» должен содержать полное имя файла, в который будет помещена информация о проводках Последние 10 имен файлов сохраняются для последующего использования с реквизите «Список файлов»

В реквизите «Номер журнала операций» задается название журнала в 1С Бухгалтерии, в который переносятся проводки.

Флажок «Выгружать проводки» определяет, будет ли выгружаться в файл информация о проводках Проводки по счетам расчетов с сотрудниками (70 или 180) могут быть выгружены или сводными, или с разбивками по сотрудникам

Флажки группы реквизитов «Экспорт справочников» определяют, элементы каких справочников будут выгружаться в файл

При нажатии на кнопку «Показать сводные проводки» формируется сводный отчет с проводками по начислениям и удержаниям, а также по отчислениям во внебюджетные фонды за выбранный период

Принципы формирования проводок. Формирование проводок при нажатии кнопки «Сформировать» выполняется в два этапа

На первом этапе программа сопоставляет всем записям журнала расчетов некоторую хозяйственную операцию по правилам, описанным ниже в разделе «Порядок распределения по счетам»

На втором этапе программа сначала «собирает» суммы начисленной заработной платы (проводки с кредита 70 (180) счета) и различные удержанные с работников суммы (проводки в дебет 70 (180) счета) и формирует соответствующие проводки. Затем на базе проводок с кредита 70 (180) счета формируются проводки по налогам и отчислениям во внебюджетные фонды.

Например, если в результате распределения начисленной заработной платы по счетам получились проводки

Дт 20 Кт 70 на сумму 1500000,

Дт 25 Кт 70 на сумму 1000000,

Дт 26 Кт 70 на сумму 1000000,

то проводки, описывающие отчисления в ПФ (в предположении, что вышеперечисленные суммы полностью включаются в облагаемую взносами базу, сумма отчислений составит 980000), будут иметь еле дующий вид

Дт 20 Кт 69-22 на сумму 420000,

Дт 25 Кт 69-22 на сумму 280000,

Дт 26 Кт 69-22 на сумму 280000.

При использовании плана счетов хозрасчетных предприятий начисленные суммы будущих периодов, т.е. суммы отпускных, относятся при начислении в дебет «Счета расходов будущих периодов», а при наступлении этого будущего периода списываются с кредита этого счета в дебет счета, определяемого хозяйственной операцией, соответствующей начисленной сумме

После формирования бухгалтерских проводок, необходимо выполнить т.н «перенос операций» в программе 1С Бухгалтерия, использовав полученный файл 1SBTRANS ТХТ Более подробно о переносе операций см документацию на программу 1С Бухгалтерия

Редактирование данных прошлых периодов

Для исправления результатов расчетов прошлых периодов в программе есть возможность перепроводить документы прошлого расчетного периода с внесенными изменениями в исходные данные Это корректный способ исправления ошибок

Иногда возникает необходимость исправления архивных данных для того, чтобы подогнать эти данные под отчеты Для этого нужно воспользоваться режимом «Исправление» из меню «Регламенты» Все документы «Исправления» хранятся в журнале исправлений, который вызывается также из меню «Регламенты»

Выбирается сотрудник, которому нужно внести исправления, и конкретный архивный период При выборе периода в окне отображаются все данные из журнала расчетов за этот выбранный период В графе «Исправления» дублируются данные результатов, дней, часов, которые можно изменять

Внимание! Устанавливать флажок «Выполнить перерасчет до текущего периода» надо очень осмотрительно. Это влечет за собой перерасчет результатов расчетов всех периодов до текущего и соответственно изменение налоговой отчетности.

Помощник корректировок

Для облегчения процесса проведения различных корректировок данных расчетов в типовую конфигурацию включен «Помощник корректировок» Вызывается Помощник корректировок из меню «Регламенты»

На первой странице Помощник предлагает выбрать вариант действии

• Выполнить корректировку — означает ввести очередной документ, корректирующий один из прошлых периодов или провести исправление результата расчета одного из прошлых периодов

• Отменить корректировку — означает отменить действие одного из ранее введенных корректирующих документов или отменить исправление результатов расчета При выборе этого варианта Помощник предлагает выбрать период расчета, корректируемого сотрудника и выбрать один из введенных ранее корректирующих документов, после чего отменяет его действие

Рассмотрим подробнее первый вариант работы Помощника — выполнение корректировки На второй странице Помощник предлагает выбрать тип корректировки

• Исправление результатов — это непосредственное редактирование результатов расчета одного из прошлых периодов. Подробнее о документе «Исправление» см. в предыдущем разделе.

• Ввод корректирующего документа — это ввод «забытого» документа прошлого периода или корректировка существующего документа прошлого периода.

Выберем второй вариант и продолжим работу. Далее Помощник предложит выбрать, вводить новый документ или исправлять уже введенный ранее. Затем Помощник предложит выбрать расчетный период, который будет редактироваться.

На следующей странице Помощник предложит выбрать вариант выполнения корректировки: в текущем периоде или «задним» числом.

Затем Помощник предложит выбрать сотрудника, для которого проводится корректировка, документ (если исправляется введенный ранее корректирующий документ) или вид и номер документа (если вводится новый корректирующий документ). После этого корректирующий документ будет предложен для редактирования. После завершения редактирования Помощник предложит провести корректирующий документ, нажав на кнопку «Готово».


1С-Предприятие. Документация | Описание типовой конфигурации "Зарплата и Кадры". Часть 4

Описание типовой конфигурации "Зарплата и Кадры". Часть 4.

Распределение зарплаты по счетам затрат и формирование проводок

По завершении расчета заработной платы результаты расчета должны быть отражены на счетах бухгалтерского учета Задача распределения заработной платы по счетам затрат — одна из самых трудоемких задач учета начисленной заработной платы, находящаяся на стыке задачи расчета и задачи отражения полученных результатов в бухгалтерии Распределение заработной платы по счетам затрат, как правило, заключается в формировании бухгалтерских проводок с отражением аналитики на счетах, корреспондирующих со счетом взаиморасчетов с сотрудниками (70 в «хозрасчетном» плане счетов и 180 в «бюджетном»)

Описываемая конфигурация имеет ряд средств для учета начисленной заработной платы по счетам затрат и кодам аналитического учета

• справочники «Счета», «Виды аналитики», «Элементы аналитики», «Хозяйственные операции»,

• реквизиты типа «хозяйственная операция» в таких справочниках, как «Подразделения», «Категории», «Сотрудники», «Виды расчетов», «Работ и сдельных расценок»,

• реквизиты типа «хозяйственная операция» в таких документах, как «Бригадный наряд», «Больничные листы», «Приказ на отпуск», «Оплата по среднему», «Ввод начислений и удержаний», «Ввод начислений и удержаний списком», «Договор подряда»,

• закладки «Распределение» в документах «Договор подряда» и «Ввод начислений и удержаний»,

• документ «Распределение основных начислений (оклада, тарифа)»,

• константы «Хозоперация по умолчанию», «Счет расчетов по депонентам», «Счет расчетов с ФСС», «Счет расчетов с персоналом», «Счет расх буд периодов» и пр ,

регламентную процедуру формирования проводок в бухгалтерские программы, в том числе в типовые конфигурации системы программ 1С Предприятие

Счета

В справочнике «Счета» содержится фрагмент плана счетов предприятия, имеющий отношение к расчетам с персоналом по оплате труда Справочник «Счета» используется при вводе проводок в справочник «Хозяйственные операции»

Экспорт проводок в типовые конфигурации системы программ 1С: Предприятие. В случае экспорта проводок в типовые конфигурации системы программ 1 С Предприятие справочник «Счета» заполняется автоматически при загрузке данных об аналитическом учете из соответствующей типовой конфигурации (см пункт «Обмен данными» меню «Сервис») При этом справочник открывается только для просмотра и не доступен для редактирования

Экспорт проводок в другие бухгалтерские программы. В случае экспорта в другие бухгалтерские программы вы можете рас ширить этот справочник как новыми счетами, так и субсчетами существующих счетов

Например, в случае распределения заработной платы различных подразделений или отдельных сотрудников по субсчетам 20-го счета, необходимо ввести соответствующие субсчета и затем заполнять ими реквизиты «Дебет» и «Кредит» справочника «Хозяйственные операции»

Кроме того, на счетах можно указывать разрезы аналитического учета, в соответствии с которыми будут указываться объекты аналитического учета при описании хозяйственных операций

Справочник «Счета» редактируется достаточно редко — фактически, при первичном внедрении конфигурации — поэтому для доступа к нему не предусмотрено отдельного пункта меню Для просмотра справочника следует войти в систему с полными правами и с интерфейсом «Настройка»

Справочники «Виды аналитики» и «Элементы аналитики»

Использование справочников «Виды аналитики» и «Элементы аналитики» также как и справочника «Счета» зависит от того, в какую бухгалтерскую конфигурацию или программу будут выгружаться проводки Выбрать конкретную конфигурацию системы программ 1 С Предприятие или другую программу можно в форме «Настройки» (меню «Сервис») на закладке «Бухгалтерия»

Экспорт проводок в типовые конфигурации системы программ 1 С: Предприятие. В случае экспорта проводок в типовые конфигурации системы программ 1С Предприятие справочники «Виды аналитики» и «Элементы аналитики» заполняются автоматически при загрузке данных об аналитическом учете из соответствующей типовой конфигурации (см меню «Регламенты») При этом справочники открываются только для просмотра и не доступны для редактирования

Экспорт проводок в другие бухгалтерские программы. В

справочнике «Виды аналитики» всегда присутствуют два элемента отражающие возможность использования при формировании проводок следующих разрезов аналитического учета по сотрудникам (может использоваться на различных счетах расчетов с работниками) и по подразделениям (т е местам возникновения затрат)

Вводя в справочник «Виды аналитики» новые элементы, вы тем самым добавляете очередной разрез аналитического учета, который можно будет «подцепить» к одному из счетов в справочнике «Счета»

Справочник «Элементы аналитики», являющийся подчиненным справочнику «Виды аналитики», служит для хранения собственно произвольных объектов затрат, которые в дальнейшем могут быть использованы при описании правил распределения начисленных сумм по счетам затрат.

Хозяйственные операции

Справочник «Хозяйственные операции» содержит список хозяйственных операций, применяемых на предприятии. Вызывается справочник «Хозяйственные операции» выбором пункта «Хозяйственные операции» меню «Справочники».

Значениями из справочника «Хозяйственные операции» заполняются соответствующие реквизиты справочников «Сотрудники», «Категории» и «Подразделения», «Виды расчетов».

Каждая хозяйственная операция представляет собой корреспонденцию счетов с указанными элементами аналитики, если счета этого требуют Форма редактирования хозоперации имеет следующий вид:

В реквизит «Счет» группы «Дебет» вводится счет или субсчет дебета из справочника «Счета», в реквизите (одном или нескольких, что зависит от плана счетов программы, в которую выгружаются проводки) «Аналитический учет» записывается или выбирается из справочника «Элементы аналитики» элемент аналитического учета

Аналогичным образом заполняется группа реквизитов «Кредит», в которой заполняются счет или субсчет и элементы аналитического учета кредита.

Особым образом надо отметить счета, аналитический учет по которым ведется в разрезе сотрудников и формируется автоматически

Поэтому при использовании таких счетов ввод элементов аналитического учета запрещен

Для тех счетов, аналитический учет по которым ведется в разрезе подразделений, принято следующее соглашение' если в хозяйственной операции указано конкретное подразделение, то в проводках, формируемых по такой хозоперации будет указано именно это подразделение Если же подразделение не указано, то по такой хозоперации может быть сформировано несколько проводок с одной и той же корреспонденцией счетов. В качестве элементов аналитического учета будут указаны те подразделения, в которых работают сотрудники, чья зарплата распределяется в соответствии с этой хозоперацией.

Настройка хозоперации видов расчетов

В справочнике «Виды расчетов» хранятся, прежде всего, те виды расчетов, которые связаны с определенной хозяйственной операцией, отличной от хозяйственной операции, выбираемой по умолчанию.

Например, оплата больничного производится за счет средств соцстраха, поэтому виду расчета «Оплата больничного» будет соответствовать хозяйственная операция «За счет соцстраха» (хозяйственные операции выбираются из справочника «Хозяйственные операции»).

Порядок распределения по счетам

Собственно распределение начислений по счетам затрат производится системой при подготовке к формированию проводок При этом система просматривает все произведенные начисления и удержания и распределяет их по хозяйственным операциям по описанным ниже правилам

Каждая строка журнала расчетов «Зарплата» (см ниже) представляет собой результат выполнения определенного вида расчета (будь то начисление или удержание), проведенного для конкретного сотрудника

При формировании проводок результат каждого расчета интерпретируется как сумма по одной или нескольким хозяйственным операциям Многие документы (например, наряды, ввод начислений и удержаний, распределение основной заработной платы) могут еще во время проведения заполнять информацию о связанных с этими документами хозяйственных операциях. В любом случае информация о хозяйственных операциях анализируется при окончательном формировании проводок

Приоритетной является следующая последовательность выбора операции(й) для каждой записи журнала расчетов (если отсутствует вышестоящее условие, выполняется следующее за ним)-

Если были введены документы «Договор подряда», «Ввод начислений и удержаний» или «Распределение основной зарплаты», то сумма по виду расчета распределяется пропорционально хозяйственным операциям, введенным в табличных частях или реквизитах «Хозоперация» этих документов

Если были введены другие документы с заполненным реквизитом «Хозоперация», то записи журнала расчетов сопоставляется именно эта хозоперация.

Если для вида расчета в справочнике «Виды расчетов» был установлен флажок «Распределять пропорционально расчетной базе», то сумма по виду расчета распределяется пропорционально хозяйственным операциям базовых видов расчета Такой порядок распределения применяется только при использовании расширенных возможностей расчета зарплаты и только для тех видов расчета, сумма по которым вычисляется на основе группы начислений, входящих в базу Это может быть, например, какая-либо доплата, вычисляемая в процентном соотношении от базовых начислений

Если для вида расчета в справочнике «Виды расчетов» проставлена конкретная хозяйственная операция, то выбирается именно она

Если у сотрудника в справочнике «Сотрудники» выбрана определенная хозяйственная операция, выбирается эта операция Если для подразделения, в котором числится конкретный сотрудник, введена хозяйственная операция, то выбирается данная хозоперация

Если для категории сотрудника в справочнике «Категории» проставлена хозяйственная операция, то выбирается данная хозоперация Справочник «Категории» доступен при использовании расширенных возможностей расчета зарплаты Если не были выполнены вышеперечисленные условия, то используется значение по умолчанию (константа «Хозоперация по умолчанию»)

Распределение основных начислений

Для распределения основных начислений (оклада, тарифа) по счетам затрат предназначен документ «Распределение основных начислений», который вызывается из пункта «Оплата за отработанное время» меню «Документы» Этот документ доступен только при использовании расширенных возможностей расчета зарплаты

Данный документ используется в том случае, если требуется учесть заработную плату конкретного сотрудника не по одному определенному счету и объекту аналитики, а по нескольким

При заполнении документа указывается срок действия документа (реквизиты «С» и «По»), а также суммы и хозяйственные операции, в соответствии с которыми будут в дальнейшем распределены основные начисления.

Например, если оплата сотрудника по окладу в текущем месяце составила 700 рублей, а в документе «Распределение основных начислений» указано 300 рублей по хозяйственной операции «Зарплата АУП», 500 по операции «Основное производство» и 600 — по операции «Зарплата ИТР цехов», то при формировании проводок 150 рублей будет записано на счет хозяйственной операции «Зарплата АУП», 250 на счет операции «Основное производство» и 300 — на счет операции «Зарплата ИТР цехов»

Интернет-поддержка пользователей

Описываемая типовая конфигурация «Зарплата + Кадры», включает в себя блок Интернет-поддержки пользователей программ системы 1С Предприятие 7.7

Интернет-поддержка предназначена для упрощения взаимодействия пользователей с отделом технической поддержки фирмы «1С», для оперативного получения различной технологической информации, необходимой для ведения учета в системе 1С:Предприятие, а также предоставляет возможность отправки по электронной почте мнений о программах системы 1С:Предпрятие.

Работа с Интернет-поддержкой

Для использования Интернет-поддержки необходимо, чтобы компьютер имел доступ в Интернет - по модему, по выделенной линии или через локальную сеть

Чтобы вызвать Интернет-поддержку, необходимо в меню «Сервис» главного меню программы выбрать пункт «Интернет-поддержка»

При первом вызове Интернет-поддержки на экран будет выдана краткая справка по работе с ней Прочитайте справку прежде, чем продолжать работу

Переход к нужному разделу Интернет-поддержки выполняется двойным щелчком мыши по названию раздела в строке меню окна Интернет-поддержки (это самая верхняя строка)

Использование Интернет-поддержки не представляет особого тру да Все необходимые пояснения по работе с тем или иным разделом приводятся в окне этого раздела

Состав Интернет-поддержки

Интернет-поддержка включает в себя несколько разделов Ниже приведены краткие описания назначения и возможностей этих разделов

Посылка мнения на фирму «1С»

Раздел посылки мнений позволяет отослать в адрес фирмы «1С» ваше мнение о работе программы Перед отправкой мнения необходимо заполнить специальную форму, указав в ней сведения о вашей организации и используемой программе Форма вызывается двойным щелчком мыши на слове «Сведения» в верхней строке окна раздела Не забудьте указать регистрационный номер используемой программы г

Обращаем внимание, что, в отличие от запросов, отправленных в отдел технической поддержки (см ниже), обычно ответы на присланные мнения не высылаются Однако, специалисты фирмы «1С» могут запросить у вас дополнительную информацию по присланному вами мнению

Обращение в отдел технической поддержки фирмы «1С»

Раздел позволяет отправить в адрес линии консультаций фирмы «1С» запрос с описанием проблемы, возникшей у вас при работе с программой

Перед отправкой обращения необходимо заполнить специальную форму, указав в ней сведения о вашей организации и используемой программе Форма вызывается двойным щелчком мыши на слове «Сведения» в верхней строке окна раздела

При обращениях на линию консультаций мы просим наших зарегистрированных пользователей обязательно указывать регистрационный номер используемой программы — без этого ваше обращение не будет рассматриваться

На посланное обращение вам обязательно придет ответ Если проблема несложная, это будет описание ее решения Если ответ на обращение требуется более длительной подготовки, вам придет сообщение, что ваше обращение зарегистрировано, а описание решения вашей проблемы будет прислано позже Специалисты линии технической поддержки также могут запросить у вас дополнительную информацию по присланной вами проблеме

Ответы отдела технической поддержки фирмы «1С»

Поступившие от лини консультаций ответы на ваши обращения можно просматривать при помощи режима просмотра ответов Данный режим позволяет только прочитать ответы линии консультаций Чтобы принять присланные письма с ответами, необходимо использовать любую установленную у вас программу работы с электронной почтой

1С.RU

При помощи этого режима вы можете узнать последние новости фирмы «1С», получить справочную и другую информацию, получить список партнеров фирмы «1С», узнать, как стать сертифицированным специалистом и посетить другие страницы сайта

Режим позволяет непосредственно открыть один из перечисленных ниже разделов web-сайта фирмы «1С»'

• последние новости фирмы «1С»,

• программные продукты фирмы «1С»,

• партнеры фирмы «1С»,

• информационно-технологическое сопровождение,

• «1С Профессионал»,

• «Уголок бухгалтера»

Налог на доходы физических лиц

Включенный в предлагаемую конфигурацию алгоритм исчисления налога на доходы физических лиц для расчетов за 2000 год составлен в соответствии с Законом РФ «О подоходном налоге с физических лиц» № 1998-1 от 7 декабря 1991 года в ред Законов РФ с последующими изменениями и Инструкцией Госналогслужбы РФ №35 от 29 июня 1995 г в ред Изменений и дополнений Госналогслужбы РФ №1-8 (далее — Инструкция ГНС №35) Для расчетов за 2001 год алгоритм соответствует главе 23 Налогового Кодекса

Ставки налога

В 2000 году совокупный доход физического лица облагается в зависимости от его размера различными ставками налога на доходы физических лиц Зависимость ставки налога от облагаемого дохода отражается в справочнике «Шкала налога на доходы», который содержит пределы доходов и процентные ставки налога, представленные в виде таблицы

Перед началом работы с программой необходимо откорректировать справочник ставок налога на доходы физических лиц «Шкала налога на доходы», а также ставки налога те виды доходов, по которым налог исчисляется отдельно Для работы со ставками налога на доходы физлиц на закладке «Ставки» формы «Настройки» (меню «Сервис») предусмотрена кнопка «Налог на доходы физлиц»

В справочник записываются пределы доходов по мере их возрастания — сначала первый предел, потом второй и т д

В колонке «№» записывается номер предела по порядку который при добавлении новой строки в справочник формируется автоматически Этот номер можно исправить, но важно при этом помнить, что каждый последующий предел должен иметь больший номер, чем предыдущий'

В колонке «Описание» записывается наименование предела, оно носит произвольный характер, желательно отражающий суть данного предела

В колонке «Предел» записывается предельная сумма совокупного дохода, облагаемого по ставке, величина которой записывается в колонке «% налога»

Каждая строка справочника соответствует очередному пределу налогообложения, причем указанные в строке проценты используются для сумм, меньших указанного в этой же строке предела налогообложения Для правильной работы таблицы налогообложения, в послед ней строке справочника (максимальный процент налогообложения) необходимо задать очень большое число например заполнив графу «девятками»

При редактировании справочника следует помнить, что его реквизиты «Предел» «% налога > являются периодическими и хранят историю изменения своих значении Это значит что необходимо устанавливать значение реквизитов не < просто так» а на определенную дату, используя для этого кнопку «История >

Права Редактирование справочника доступно только пользователям с полными правами

Классификаторы доходов и вычетов

В соответствии с правилами формирования отчетов о доходах физических лиц и удержанном с них налоге на доходы, в налоговых карточках и справках о доходах указываются коды доходов и вычетов которые выбираются из классификаторов утвержденных МНС РФ В связи с этим в предлагаемую конфигурацию включены справочники содержащие классификаторы типов доходов типов вычетов и типов скидок

Справочник «Доходы»

В справочнике «Доходы», кроме кода и наименования типа доходов, указано, предоставляется ли по данному типу дохода скидка, и тип скидки В справочнике «Доходы» перечислены типы доходов со гласно классификатору типов доходов, утвержденных МНС РФ

Значение реквизита «Тип скидки» заполняется значением из справочника «Типы скидок» который представлен ниже

Справочник «Типы скидок»

В справочнике <Типы скидок>, перечислены типы скидок, которые относятся к определенным доходам физических лиц согласно Инструкции ГНС №35

Справочник «Вычеты»

В справочнике «Вычеты» перечислены вычеты, предоставляемые физическим лицам согласно Инструкции ГНС №35

Обновление классификаторов «Доходы», «Вычеты» и «Типы скидок» производится автоматически при обновлении типовой конфигурации.

Важно! Алгоритмы исчисления налога на доходы физлиц и формирования отчетов о доходах опираются на кодировку типов доходов и вычетов, поэтому редактирование классификаторов типов доходов, вычетов и скидок не разрешается.

Назначение типа дохода

Назначение типа доходов конкретному начислению осуществляется в справочнике «Виды расчетов» Вызывается этот справочник вы бором пункта «Виды расчетов» меню «Справочники»

Реквизит «Тип дохода» обязательно заполняется для таких видов расчета, как подарки, призы, материальная помощь, договора гражданско-правового характера и пр Видам расчета, относящимся собственно к заработной плате (премиям, доплатам и пр. ), не следует со поставлять какого-либо типа дохода, поскольку заработная плата может относиться к различным типам дохода в зависимости от того, работает сотрудник на предприятии по совместительству или это его основное место работы

Права Редактирование справочника «Виды расчетов» доступно только пользователям с правами «главного бухгалтера»

Налоговые вычеты сотрудников

В соответствии с законодательством о налоге на доходы физические лица (в том числе работники предприятия) при налогообложении доходов, как правило, пользуются различными льготами (по терминологии Налогового Кодекса — вычетами). Так, герои Российской Федерации имеют право на ежемесячный вычет из дохода в размере 417 руб 45 коп (с 2001 года — 500 руб ежемесячно) и т д. Такие вычеты мы называем «основными», основную льготу можно установить при приеме на работу, выбрав соответствующее значение реквизита «Тип нал вычета» в документе «Приказ о приеме на работу», закладка «Общие» (по умолчанию штатным сотрудникам предлагается вычет в сумме 83 руб 49 коп или 166 руб. 98 коп (с 2001 года — 400 руб , подпункт 3 пункта 1 статьи 218 Налогового Кодекса) в зависимости от дохода за месяц, под названием «Прочие сотрудники»)

Помимо этого сотрудники, имеющие детей или других иждивенцев, пользуются вычетами на их содержание, сотрудники, являющиеся застройщиками либо покупателями жилья, пользуются правом на вычеты в размере сумм, «направленных ими на новое строительство либо приобретение жилого дома, или квартиры, или дачи, или садового домика на территории Российской Федерации» и т д. Такие дополнительные вычеты следует вводить в справочник «Налоговые вычеты» уже после приема сотрудника на работу

Необходимо отметить, что физические лица, не являющиеся штатными работниками предприятия, например совместители, также могут иметь право на предоставление вычетов при исчислении налога, которые могут быть им предоставлены по заявлению

Ниже описаны те вычеты, которые согласно законодательству могут быть предоставлены физическим лицам

Наименование | Описание вычета
вычета |
Чернобыльцы и | В 2000 году вычет предоставляется в размере
пр облученные | 50 000 рублей на календарный год
 | В 2001 году вычет предоставляется в размере
 | 5 000 рублей за каждый месяц
 | Соответствует подпункту 1 пункта 1 ст 218
 | НК (подпункту «е» пункта 6 ст 3 Закона о
 | подоходном налоге)
Герои РФ, бло | В 2000 году вычет предоставляется в размере
кадники Ленин | 5 ММОТ (с 1 июля - базовых сумм) за каж
града и пр | дый месяц
 | В 2001 году вычет предоставляется в размере
 | 500 рублей за каждый месяц
 | Соответствует подпункту 2 пункта 1 ст 218
 | НК (пункт 2 ст 3 Закона о подоходном нало
 | ге)
Родители погиб | В 2000 году вычет предоставляется в размере
ших на военной | 3 ММОТ (с 1 июля - базовых сумм) за каж
службе, афганцы | дый месяц
и пр | В 2001 году вычет предоставляется в размере
 | 500 рублей за каждый месяц
 | Соответствует подпункту 2 пункта 1 ст 218
 | НК (пункта 3 ст 3 Закона о подоходном нало
 | ге)

 | Наименование |  | Описание вычета
 | вычета |  |
 | Прочие сотруд |  | Вычет рассчитывается помесячно, зависит от
 | ники |  | величины совокупного дохода с начала года и
 |  |  | составляет в 2000 году два или четыре разме
 |  |  | ра ММОТ (с 1 июля - базовых сумм), в 2001
 |  |  | году - 600 рублей Такой вычет предоставля
 |  |  | ется самому работнику, если он не имеет ос
 |  |  | нований для получения перечисленных выше
 |  |  | вычетов
 |  |  | Соответствует подпункту 3 пункта 1 ст 218
 |  |  | НК (пункт 4 ст 3 Закона о подоходном нало
 |  |  | ге)
 | Взносы в ПФ |  | Месячный вычет равен сумме взносов в ПФР,
 |  |  | удерживаемых с работника
 |  |  | Взносы в ПФР, исчисленные с основного дохо
 |  |  | да заносятся в отчеты под кодом 10, взносы,
 |  |  | исчисленные с сумм районных коэффициентов
 |  |  | и северных надбавок — с кодом 11
 |  |  | Соответствует подпункту «а» пункта 6 ст 3
 |  |  | Закона о подоходном налоге
 | На детей |  | Вычет рассчитывается помесячно, зависит от
 |  |  | величины совокупного дохода с начала года и
 |  |  | составляет в 2000 году два или четыре разме
 |  |  | ра ММОТ (с 1 июля - базовых сумм), в 2001
 |  |  | году - 600 рублей Такой вычет предоставля
 |  |  | ется работнику на его детей и иждивенцев
 |  |  | Соответствует подпункту 4 пункта 1 ст 218
 |  |  | НК (подпункту «б» пункта 6 ст 3 Закона о
 |  |  | подоходном налоге)
Наименование |  | Описание вычета
вычета |  |
На детей (в двой |  | Вычет рассчитывается помесячно и зависит от
ном размере) |  | величины совокупного дохода с начала года и
 |  | составляет в 2000 году два или четыре разме
 |  | ра ММОТ (с 1 июля - базовых сумм), в 2001
 |  | году - 600 рублей Такой вычет предоставля
 |  | ется одинокому работнику на его детей
 |  | Соответствует подпункту 4 пункта 1 ст 218
 |  | НК (подпункту «б» пункта 6 ст 3 Закона о
 |  | подоходном налоге)
На жилье до |  | Вычет, предоставляемый при покупке или
2201 97 |  | строительстве жилья. Вычет рассчитывается
 |  | по правилам, действовавшим до 22 01 97 года
На жилье после |  | Вычет, предоставляемый при покупке или
22 01 97 |  | строительстве жилья Расчет вычета произво
 |  | дится по правилам, введенным с 22 01 97 года
На жильё с 2000 |  | Вычет в сумме расходов при покупке или
года |  | строительстве жилья Расчет вычета произво
 |  | дится по правилам, введенным с 2000 года
Кредиты на жи |  | Вычет в сумме расходов на погашение креди
лье с 2000 года |  | тов и процентов по ним при покупке или
 |  | строительстве жилья Расчет вычета произво
 |  | дится по правилам, введенным с 2000 года
Перечислено в |  | Вычет предоставляется на календарный год в
избирательный |  | размере, не превышающем 10 ММОТ (с 1 ию
фонд кандидата |  | ля - базовых сумм)
на федеральных |  |
выборах |  |
Перечислено в |  | Вычет предоставляется на календарный год в
избирательный |  | размере, не превышающем 15 ММОТ (с 1 ию
фонд избиратель |  | ля - базовых сумм)
ного объединения |  |
на федеральных |  |
выборах |  |
Наименование | Описание вычета
вычета |
Перечислено в | Вычет предоставляется на календарный год в
избирательный | размере, не превышающем 7 ММОТ (с 1 ию
фонд кандидата | ля - базовых сумм)
на региональных |
выборах |
Перечислено в | Вычет предоставляется на календарный год Ъ
избирательный | размере, не превышающем 5 ММОТ (с 1 ию
фонд кандидата | ля - базовых сумм)
на местных вы |
борах |
Благотворитель | Вычет предоставляется на календарный год и
ность | не имеет ограничений в размере
Взносы на проти | Вычет предоставляется на календарный год и
вопожарное стра | не имеет ограничений в размере
хование |

Список доступных к использованию вычетов может пополняться в соответствии с изменениями законодательства

Расчет налога на доходы физических лиц по фактически полученным доходам

Еще с 1998 года (с вступлением в силу Федерального закона №159-ФЗ от 31 12 1997) перед расчетчиками заработной платы встала проблема исчисления подоходного налога по фактически полученным доходам

В типовую конфигурацию «Зарплата+Кадры» включена возможность расчета налога по фактически полученным доходам по предложенной специалистами фирмы «1С» методике

Начисленные и полученные доходы

При исчислении налога на доходы физических лиц по фактически полученным доходам расчетчик должен знать, не только когда произведены те или иные выплаты, но и за какой период они произведены Например, известно, что некоторая сумма была выплачена физическому лицу 5 мая 1999 года в качестве заработной платы за апрель 1999 года или некоторая сумма была выплачена 20 мая 1999 года в качестве погашения долга по заработной плате за февраль 1999 года

То же самое можно сказать про любые перечисления и выплаты, производимые предприятием за физическое лицо Например, известно, что алименты, перечислены 10 мая 1999 года по результатам начисления заработной платы за апрель 1999 года.

Будем называть «начисленными» те доходы, которые начислены предприятием физическому лицу за исполнение служебных обязанностей, выполнение договорных обязательств или сложившиеся за счет получения услуг, получения материальной выгоды в любой форме и проч.

Будем называть «выплаченными» или «полученными» те доходы, которые получены физическим лицом в денежной или натуральной форме, или в форме материальной выгоды

Выбор порядка исчисления налога на доходы физических лиц

Для выбора порядка расчета налога предусмотрен переключатель в форме, вызываемой кнопкой «Налог на доходы физлиц» на закладке «Ставки» формы «Настройки» (меню «Сервис»).

В зависимости от выбранного порядка исчисления налога будет по-разному проводиться расчет налога, причитающегося к удержанию с работника, а также по-разному будут заполнены формы налоговой отчетности (справка о доходах физического лица, налоговая карточка физического лица и отчет об итоговых суммах доходов и налогов по предприятию в целом).

При расчете сумм налога, причитающегося к удержанию с работника, по полученным доходам предусмотрено два варианта учета ожидаемых к концу месяца выплат-

• будет выплачено все, что начислено за текущий месяц;

• больше ничего выплачено не будет

Для выбора одного из этих вариантов предназначен флажок «Начисленная зарплата выплачивается в срок» на закладке «Зарплата» формы «Настройки» — установите этот флажок, если предполагается выплатить всю зарплату за текущий месяц

Здесь же указывается срок выплаты зарплаты — число, не позже которого по коллективному договору должна быть выплачена заработная плата за истекший месяц

Рекомендации по расчету налога по полученным доходам

Поскольку в доход текущего месяца включаются все выплаты через кассу (банк), то размер удержанного налога может меняться после появления в системе очередной платежной ведомости, а также, возможно, и после проведения процедуры оплаты платежной ведомости

Поэтому, если вы ежемесячно и вовремя выплачиваете зарплату, вы можете по-прежнему рассчитывать налог на доходы по начисленным суммам и только для получения налоговой отчетности по результатам закончившегося года временно включить режим расчета «по полученным доходам», при этом будет учтено возможно имевшее место округление выплачиваемых на руки сумм.

Если же на предприятии имеют место задержки выплаты зарплаты, то следует использовать расчет по полученным доходам Если вы за очередной месяц предполагаете выплатить только некоторую часть зарплаты, то для предварительного расчета ожидаемой суммы налога рекомендуется установить флажок «Начисленная зарплата текущего месяца будет выплачена» в форме группового расчета (пункт «Расчет зарплаты» меню «Регламенты»)

После того, как окончательно выяснится, что все планируемые к выплате деньги выплачены (т е все документы «Платежная ведомость» уже оплачены, а оставшиеся неоплаченными сделаны непроведенными, т е оставлены «на потом»), можно сбросить флажок «Начисленная зарплата текущего месяца будет выплачена» в форме группового расчета и пересчитать все удержания Пересчета одного подоходного налога недостаточно, поскольку от его размера зависят размеры алиментов

При этом налог на доходы будет пропорционально уменьшен по сравнению с предварительно рассчитанной суммой согласно сложившимся полученным доходам Как следствие уменьшения удержанного налога несколько увеличится переходящий на следующий месяц долг за предприятием

Правила учета доходов при расчете налога по полученным доходам

Доходом какого-либо месяца (назовем его текущий период, например февраля 2000 года) считаются суммы выплаченные через кассу (перечисленные на счета сотрудников в банках) в течение этого месяца за текущий месяц (в том числе авансы, межрасчетные выплаты, выплата под расчет за месяц) и зарегистрированные в текущем расчетном периоде документами «Платежная ведомость», как пока еще незакрытыми, так и закрытыми с датой оплаты, укладывающейся в срок выплаты зарплаты (см «Настройки», закладка «Зарплата») за текущий месяц Если ведомость оплачена позже, доход будет отложен до следующего месяца

Пример. Аванс за февраль по платежной ведомости, оплаченной 16 февраля

• Выплаченные за прошлый месяц и зарегистрированные в текущем периоде документами «Платежная ведомость» как пока еще не оплаченными, так и закрытыми с датой оплаты после срока выплаты зарплаты за прошлый месяц, но в срок выплаты зарплаты за текущий месяц

Пример. Суммы, выплаченные по платежной ведомости на выплату зарплаты за январь, оплаченной 14 февраля (срок выплаты зарплаты по коллективному договору - 8 число следующего месяца)

Суммы, выплаченные за прошлый месяц и зарегистрированные в текущем периоде закрытыми ведомостями с датой оплаты в срок выплаты зарплаты за прошлый месяц, относятся в доходы прошлого месяца

Пример. Если бы платежная ведомость из предыдущего примера была бы оплачена 8 февраля, то выплаченные по ней суммы были бы включены в доходы января, хотя сама ведомость была проведена в расчетном периоде журнала расчетов «Февраль»

• Выплаченные за позапрошлый (или более ранний) месяц как пока еще не оплаченными ведомостями, так и закрытыми в срок выплаты зарплаты за текущий месяц ведомостями

• Все доходы в натуральной форме (материальная выгода всех типов, питание в столовой, проездные билеты и т п ), зарегистрированные в текущем периоде

• Все удержанные из зарплаты в текущем периоде суммы

Все суммы, выплаченные по ведомостям (неважно за какой месяц), оплаченным после срока выплаты зарплаты за текущий месяц, относятся в доходы следующих месяцев

Пример. Суммы, выплаченные по платежной ведомости на выплату зарплаты за январь, оплаченной 10 марта (срок выплаты зарплаты по коллективному договору - 8 число следующего месяца) будут включены в доходы марта, хотя сама ведомость проведена и оплачена в расчетном периоде журнала расчетов «Февраль»

Кроме того, обратите внимание на следующие особенности

• Переданные на депонент (документ «Депонирование» со сброшенным флажком «Учесть как долг за предприятием, суммы прошли по дебету счета 70(180)) суммы считаются выплаченными по тем ведомостям, по которым производилось депонирование Датой получения этих доходов считается дата оплаты соответствующей ведомости

• Суммы, отмеченные документом «Депонирование» с установленным флажком «Учесть как долг за предприятием», считаются невыплаченными (т к продолжают считаться задолженностью по зарплате)

• Суммы возврата налога на доходы, выданные через РКО, не учитываются в составе доходов, поскольку излишне удержанный ранее налог уже был включен в совокупный доход работника

• Суммы возврата налога на доходы, зарегистрированные к выплате платежными ведомостями (т е увеличившие долг предприятия перед работником) уменьшают совокупный доход работника, так как уменьшают сумму удержанного налога (которая в свою очередь включается в совокупный доход работника)

Ввод начальных данных

В связи с тем, что налог на доходы физлиц по законодательству РФ исчисляется с доходов, полученных в течение календарного года нарастающим итогом, для корректного расчета налога в начале эксплуатации программы или при приеме нового сотрудника на работу в текущем году необходимо правильно заполнить первоначальные данные

Первоначальные данные заполняются в «Приказе о приеме на работу» (кнопка «Справка о доходах») или в окне редактирования данных сотрудника (кнопка «Налог на доходы»)

Данные с предыдущего места работы указываются в соответствии с порядком заполнения < Справки о доходах физического лица> и вводятся для сотрудников принятых на работу в 2000 году

Данные о доходах на предыдущем месте работы следует вводить в форму справки вызываемой либо из Приказа о приеме (кнопка < Справка о доходах >) либо из формы редактирования данных сотрудника (кнопка < Налог на доходы > пункт меню < Справка с предыдущего места работы >) В форме справки обязательно надо указать год по доходам которого выдана справка При исчислении налога на доходы справка будет учитываться в том случае если год актуальности справки совпадает с годом приема на работу сотрудника

Порядок ввода данных подробно описан ниже в разделе <Ввод справки о доходах на предыдущем месте работы >

Данные о доходах с начала года до начала расчетов вводятся помесячно в налоговую карточку в соответствии с порядком заполнения < Налоговой карточки по учету доходов и подоходного налога> в форме вызываемой в окне редактирования данных сотрудника кноп кои < Налог на доходы > (пункт < Налоговая карточка >)

Порядок ввода данных подробно описан ниже в разделе «Ввод данных с начала года до начала расчетов в налоговую карточку >

Для ввода сальдо по налогу на доходы на 1 января текущего года предназначен документ «Ввод начального сальдо который вызывается из пункта < Первоначальный ввод> меню < Регламенты > Данный документ предназначен для ввода сальдо не только по налогу на до ходы но и по зарплате всем введенным в таблицу документа сотрудникам

В документе вводятся сотрудники списком и в колонке «Сумма» проставляется сальдо по заработной плате на начало текущего расчетного периода (положительная сумма для кредитового сальдо и отрицательная — для дебетового), а в колонке «Сальдо по налогу» проставляется сальдо по налогу (положительная сумма означает переплату сотрудником налога по состоянию на 1 января текущего года)

Возврат налога на доходы физических лиц

Документ «Возврат налога на доходы» используется для регистрации факта возврата налога на доходы Возврат налога производится в текущем расчетном периоде Для ввода данного документа выберите в меню «Документы» пункт «Налог на доходы физлиц», а затем «Воз врат налога на доходы физических лиц»

При выборе в реквизите «Сотрудник» сотрудника автоматически рассчитывается сумма переплаты налога и распределяется по видам налога (основной, с матвыгоды по вкладам и т д. ) Сумму переплаты налога можно сразу же выплатить расходным кассовым ордером или включить в очередную платежную ведомость, для этого в группе «Порядок выплаты» надо выбрать соответствующее значение

Если установлен порядок выплаты «Через РКО», то, нажав на кнопку «РКО», можно распечатать расходный кассовый ордер Сумма возвращенного налога на доходы будет учитываться при исчислении налога в текущем месяце и в последующих расчетных периодах текущего года.

Перерасчет налога по итогам года

В конфигурации имеется возможность произвести перерасчет налога на доходы по итогам истекшего отчетного года в результате различных изменений исходных данных или по фактически полученным доходам Для этого в меню «Документы» выберите пункт «Налог на доходы физлиц», а затем «Перерасчет налога на доходы физлиц»

В документе нужно определить сотрудников, для которых проводится перерасчет налога Для пересчета всех сотрудников предприятия нужно установить флаг «Все сотрудники». Если не установлен признак «Все сотрудники», то необходимо из справочника «Сотрудники» ввести тех, кому необходимо пересчитать налог на доходы Для проведения документа необходимо нажать кнопку «Провести».

По результатам перерасчета за прошлый год будет рассчитано и записано в данные сотрудника сальдо по налогу на доходы на начало текущего расчетного года, которое автоматически будет учтено при очередном расчете налога

Если при этом вы перечисляли в бюджет не всю сумму налога (которая исчислялась с начисленных доходов), а только часть этой суммы, тогда необходимо соответствующим образом скорректировать суммы налога, удержанные с сотрудников в целом за истекший год Для этого предназначены колонки удержанных сумм налога в разделе 5 налоговой карточки Для перерасчета по итогам года достаточно поправить суммы налогов в последнем заполненном месяце налоговой карточки

Справка о каникулах

Документ «Справка о каникулах» вводится в качестве подтверждения срока каникул для учащихся дневной формы обучения в 2000 году. Для ввода данного документа выберите в меню «Документы» пункт «Налог на доходы физлиц», а затем «Справка о каникулах учащихся».

При заполнении документа выберите в реквизите «Учащийся» учащегося сотрудника из списка, а затем укажите период каникул в реквизитах «Каникулы с... по».

На время каникул учащемуся будет предоставлена скидка при налогообложении согласно пункту «8р» Инструкции ГНС №35.

Налоги и отчисления во внебюджетные фонды

Помимо начисления заработной платы перед бухгалтерией стоит задача точного исчисления налогов и взносов в различные внебюджетные фонды, облагаемой базой для которых является фонд оплаты труда (ФОТ).

Налоги и перечисления

Предлагаемая конфигурация программы 1С:Предприятие содержит справочник «Налоги и перечисления», содержащий список налогов и отчислений с ФОТ предприятия в различные внебюджетные фонды, а также информацию о перечислении налога на доходы, алиментов и профвзносов. Эта информация очень редко меняется и должна быть введена в начале работы с программой. Для вызова справочника используйте пункт «Налоги и перечисления» меню «Справочники».

Справочник «Налоги и перечисления» содержит следующие сведения:

• о фондах, в которые отчисляются налоги с фонда оплаты труда предприятия;

• об организациях, в которые производятся отчисления с отдельных физических лиц, такие как алименты или профвзносы,

• о резервном фонде, который может использоваться на предприятии, например, для оплаты отпусков

Сведения, хранящиеся в справочнике «Налоги и перечисления», используются для расчета отчислений в фонды, при формировании проводок, для формирования платежных поручений, а также для получения отчетов о перечисленных по почте алиментах

Информация о фондах и организациях вводится и редактируется в форме, внешний вид которой зависит от того, является ли данные сведения налогом или перечислением

Для налогов с ФОТ и отчислений во внебюджетные фонды форма редактирования элемента справочника имеет следующий вид

Банковские реквизиты получателей налогов (взносов) заносятся в группе реквизитов «Получатель» на закладке «Банковские реквизиты»

На закладке «Расчетные» указываются процент налога (отчисления) и регистрационный номер предприятия в фонде (ГНИ)

В группе реквизитов «Бухгалтерские счета» для налогов (взносов), включаемых в себестоимость продукции, следует установить флажок «Включается в себестоимость» и указать кредитуемый счет, на котором учитываются расчеты по налогу или с внебюджетным фондом, реквизит «Дебетуемый» для них должен остается незаполненным, поскольку эти затраты распределяются по тем же счетам, что и суммы оплаты труда Для налогов, относящихся на прибыль, например, сбора на развитие образовательных учреждений, флажок «Включается в себестоимость» следует сбросить и указать кроме кредитуемого счета также и дебетуемый счет, фактически один из субсчетов 80-го балансового счета

Кнопка «База .» позволяет отредактировать облагаемую базу налога или отчисления (см ниже)

Для различных перечислений форма редактирования имеет следующий вид

Здесь следует заполнить только банковские реквизиты получателя перечисления

Если на хозрасчетном предприятии формируются резервные фонды (например, резерв отпусков), то в этот справочник следует ввести строку с наименованием «Резерв» и проставить процент отчисления в резервный фонд

В случае использования предлагаемой конфигурации в бюджетных организациях для «лишних» строки можно установить нулевое значение реквизита «Процент», либо вовсе их удалить

Важно! Обязательно проверьте соответствие счетов, занесенных в реквизиты группы «Бухгалтерские счета» справочника «Налоги с предприятия», тому плану счетов, который используется на предприятии, и, если нужно, отредактируйте их.

Права Редактирование справочника доступно только пользователям с полными правами.

Облагаемая база для налогов и взносов

Для общероссийских налогов и отчислении во внебюджетные фонды в конфигурации предусмотрены встроенные средства для определения того, входит или нет конкретная выплата в облагаемую базу налога, это так называемые группы видов расчета В то же время, в форме редактирования элемента справочника «Налоги с предприятия) предусмотрена возможность редактирования облагаемой базы — для этого следует нажать кнопку «База > на закладке < Расчетные»

Редактирование состава облагаемой базы описано в пункте «На значение базы начислении» раздела «Виды расчетов»

Ввод нового местного налога

Если в вашем городе (населенном пункте) с предприятия взимаются налоги и сборы, отсутствующие в справочнике «Налоги и перечисления», тогда следует ввести новый элемент в этот справочник заполнить реквизиты получателя налога, процент налога и бухгалтерские счета на которых учитываются расчеты по налогу, а также обязательно — облагаемую базу для исчисления налога

Удержания в Пенсионный фонд РФ

Согласно статье 24 Налогового Кодекса и Федеральному Закону <0 тарифах страховых взносов в Пенсионный фонд Российской Феде рации, » №197 ФЗ от 20 ноября 1999г предприятия и организации применяющие труд наемных работников уплачивают взносы в Пенсионный фонд Российской Федерации, а в 2000 году также исчисляют и удерживают взносы в Пенсионный фонд со своих работников

При расчете взносов с фонда оплаты труда предприятия в Пенсионный фонд (в отчете «Налоговая ведомость» и при формировании проводок) используется значение процента взносов из строки «Отчисления в пенсионный фонд» справочника «Налоги с предприятия >

Размер взносов, удерживаемых в Пенсионный фонд с работников, задается на закладке «Ставки» формы «Настройка > (меню «Сервис») Взносы с работников рассчитываются и удерживаются автоматически

Для некоторых категорий работников (например, инвалидов, полу чающих пенсию по инвалидности) законодательством РФ предусмотрены льготы по взносам во внебюджетные фонды — с их фонда оплаты труда не взимаются взносы с работников и в некоторых случаях и с работодателей Чтобы отразить факт предоставления льгот таким сотрудникам, нужно сбросить соответствующие флажки на закладке < Дополнительные» формы редактирования данных сотрудника

При формировании отчетов для Пенсионного фонда используется также шифр категории сотрудника как плательщика страховых взносов в Пенсионный фонд, которую необходимо выбрать в форме редактирования данных сотрудника

Импорт данных

Импорт адресных классификаторов

Данная процедура предназначена для импорта адресных классификаторов, используемых при вводе различных адресов (пункт «Импорт» меню «Файл»)

Импорт классификаторов может потребоваться как в начале эксплуатации программы, так и в случае их обновления

В поле «Откуда» надо выбрать дисковод, в котором находится дискетка с обновленными классификаторами, либо выбрать каталог, в котором находятся файлы с классификаторами из ГНИ

Кроме того, необходимо указать вид классификатора, который предполагается обновить Для этого следует щелкнуть мышью в окошке рядом с названием классификатора

В классификаторы, имеющиеся в информационной базе, добавляются новые значения из загружаемого классификатора Если установить флажок «Заменять старые наименования существующих объектов», то в этом случае при загрузке программа будет заменять старые значения, если они отличаются от новых Это может быть необходимо, если, например, в адресном классификаторе поменялись названия районов или городов

Если же установить флажок «Полностью очищать классификаторы перед загрузкой», то перед загрузкой новых значений имевшиеся в информационной базе классификаторы будут удалены, что требует значительных затрат времени

Чтобы начать загрузку классификаторов, следует нажать кнопку «Импорт», после чего процесс загрузки отразится в строке «Состояние»

Импорт из 1С: Налогоплательщика

Если на предприятии ранее применялась программа «1С'Налогоплательщик» версий 7 5 или 7 7, то список сотрудников и данные о доходах из этой программы можно импортировать в информационную базу конфигурации «Зарплата + Кадры» (пункт «Импорт» меню «Файл»)

После указания имени файла (или каталога с программой «1С Налогоплательщик 75») нажмите кнопку «Импорт» Процесс загрузки отразится в строке «Состояние»

В результате импорта список физических лиц из программы «1С'Налогоплательщик» будет перенесен в справочник «Сотрудники», а данные о введенных доходах будут перенесены в налоговые карточки

Загрузка данных из текстового файла

Данная процедура предназначена для загрузки в информационную базу данных из текстового файла Текстовый файл, из которого загружаются данные, должен описывать данные в формате, опубликованном диске ИТС Например, с помощью этой процедуры загружаются данные об используемом плане счетов, выгруженные в текстовый файл конфигурациями «Бухгалтерский учет» (начиная с редакции 3 5), «Производство+Услуги+Бухгалтерия» (начиная с редакции 1 5) и Комплексной конфигурацией (начиная с редакции 2 5)

Процедура «Загрузка данных» вызывается из пункта «Обмен данными» меню «Сервис» главного меню программы

В диалоге необходимо указать имя файла загрузки — это имя текстового файла, откуда будут загружены данные

Кнопка «Выбрать» открывает каталог, в котором находится загружаемый файл

По кнопке «Загрузить» начинается загрузка объектов из файла в информационную базу Если установлен флажок «Комментировать процесс загрузки в окне сообщений» сообщения о ходе загрузки будут выводиться в табло

Ошибки, выявленные при разборе файла загрузки, будут записаны в файл Errors txt в каталоге, откуда запущена обработка загрузки данных

Если установлен флажок «Сформировать отчет о результатах загрузки», то после загрузки данных будет открыт отчет, содержащий перечень загруженных справочников и документов:

Колонки отчета

• «№ строки» — номер строки файла загрузки, описывающей загруженный объект;

• «Строка» — содержание строки файла загрузки, описывающей загруженный объект;

• «Вид объекта» — тип и вид загруженного объекта,

• «Объект» — загруженный объект;

• «Результат» — результат загрузки- был найден существующий объект или создан новый.

Сервисные возможности

Калькулятор

Для выполнения несложных текущих расчетов система 1С:Предприятие имеет встроенный калькулятор. Его можно вызвать в любом режиме программы (кроме случаев, когда программа ждет ответа на запрос), выбрав пункт «Калькулятор» из меню «Сервис» главного меню программы или нажав кнопку на панели инструментов.

Подробное описание правил работы с калькулятором см «Руководство пользователя».

Календарь

Система 1С:Предприятие содержит встроенный календарь. Его можно вызвать в любом режиме программы, выбрав пункт «Календарь» из меню «Сервис» главного меню программы или нажав кнопку на панели инструментов.

Для выбора даты следует щелкнуть мышью на нужном числе в окне календаря Чтобы перейти к другому месяцу, следует использовать кнопки «<» или «>», или кнопки ««» и «»», чтобы перейти к другому году. Нажав кнопку , можно перейти на одну из следующих дат-

• текущая (системная) дата,

• начало квартала,

• конец квартала,

• начало года,

• конец года

Перерасчет окладов и тарифов

Регламентная процедура «Перерасчет окладов/тарифов» предназначена для изменения на определенный коэффициент величин, образующих основной заработок: оклады, тарифы, нормы сдельных расценок (пункт «Перерасчет окладов» меню «Регламенты»)

Изменяемые величины являются реквизитами справочников типовой конфигурации и являются периодическими, т.е. программа сохраняет всю историю их изменений. В реквизите «Пересчитать на дату» надо задать дату обновления изменяемой величины (по умолчанию заполняется рабочей датой, см. пункт «Параметры» меню «Сервис», закладка «Общие»)

Опции группы «Обновить данные в справочниках» позволяют управлять объемом изменяемой информации. Так например, при изменении окладов и тарифов на всем предприятии необходимо пропорционально изменить все расчетные данные (для этого нужно установить все флажки)

В результате проведения данной процедуры можно изменить на заданный коэффициент следующие значения

• оклады в справочниках «Сотрудники», «Должности», «Штатное расписание»;

• исходные данные для расчета окладов по ETC — константу «Тариф 1-го разряда», значения графы «Доплата» в справочнике «Тарифная сетка»,

• значения графы «Тариф» в справочнике «Разряды рабочих»;

• сдельные расценки в справочнике «Расценки».

Если требуется изменить оклады сотрудникам только одного подразделения, тогда при установленных флажках группы «Сотрудников» можно выбрать реквизит «Подразделение».

Важно! В отличие от документов типа «Кадровое перемещение», которым также можно оформить изменение окладов/тарифов, автоматически отменить результаты перерасчета окладов, тарифов и других реквизитов невозможно.

Замечание. Если требуется изменить только оклады сотрудников, при этом на предприятии используется штатное расписание (см установки в стартовом Помощнике или форме «Настройки»), то помимо справочника «Сотрудники» не забудьте изменить оклады и в справочнике «Штатное расписание».

Работа с периодическими реквизитами справочников

В формах списков и формах редактирования элементов справочников, имеющих периодические реквизиты, присутствует кнопка «История», которая позволяет вывести для просмотра и, в некоторых случаях, для редактирования всю историю всех периодических реквизитов выбранного элемента справочника (того элемента, который выделен в списке справочника).

При вызове истории значений из формы элемента справочника редактирование ее не разрешается

Кроме того, в форме элемента справочника «Сотрудники», в которой редактируется большое количество периодических реквизитов, присутствуют кнопки , расположенные в непосредственной близости от одного или нескольких периодических реквизитов Нажав на эту кнопку, можно просмотреть историю значений только этой группы реквизитов (или одного реквизита)

В некоторых формах списков справочников, которые содержат периодические реквизиты, существует возможность менять дату их просмотра и редактирования (см например, справочник «Валюты») Для этого в форме списка справочника предназначена кнопка выбора даты просмотра периодических реквизитов Изменение даты приводит к обновлению всех отображаемых значений на эту дату При редактировании значения такого реквизита в списке справочника значение будет редактироваться на указанную дату

Просмотр истории периодических реквизитов

При нажатии кнопки «История» на экран будет выдано окно с таблицей, в которой колонки содержат значения периодических реквизитов, а строки соответствуют датам, на которые вводились эти значения В заголовке окна в круглых скобках выводится наименование элемента справочника, для которого вызвано окно истории

В колонке «Дата» показывается дата, на которую установлено значение реквизита.

Если хотя бы один реквизит справочника может редактироваться документами, то после колонки «Дата» в таблице будет выводиться колонка «Документ», в которой указывается документ, вызвавший изменение значения реквизита.

Далее следуют колонки со значениями периодических реквизитов справочника Каждому изменению значения соответствует строка с указанием даты, документа, изменившего значение реквизита (если такой документ есть), и собственно измененного значения

Обратите внимание, что в колонке «Дата» содержатся все даты, на который изменялось значение хотя бы одного периодического реквизита справочника Значение того реквизита, который был изменен на эту дату, будет располагаться в колонке, соответствующей данному реквизиту, ячейки в остальных колонках будут пустыми

Если на одну дату (один документ) приходится изменение нескольких реквизитов, то все измененные значения показываются в «своих» колонках в одной строке таблицы

Редактирование истории периодических реквизитов

В нижней части окна истории периодических реквизитов располагаются кнопки для редактирования значений реквизитов

Ввод нового значения реквизита. Для ввода нового значения периодического реквизита служит кнопка «Добавить» При ее нажатии вызывается диалог редактирования значения реквизита Внешний вид диалога может незначительно различаться в зависимости от типа редактируемого значения

В этом диалоге следует указать дату, на которую необходимо ввести новое значение реквизита, и само значение После нажатия кнопки «ОК» в историю значения реквизита будет добавлена новая строка

Если при вводе нового значения будет указана дата, уже существующая в истории значения реквизита, то старое значение реквизита будет заменено на указанное новое значение Однако, если значение на указанную дату ранее было введено документом, то в истории значения появится еще одна строка — с указанной датой и значением. Но значение, введенное вручную, будет располагаться перед значениями, введенными документами.

Изменение значения реквизита. Кнопка «Изменить» позволяет изменить значение активного реквизита на дату, которая соответствует текущей позиции курсора. При нажатии на эту кнопку будет вызван диалог, аналогичным тому, который используется при добавлении значения реквизита.

Удаление значения реквизита. Кнопка «Удалить» удаляет значение активного реквизита на дату, соответствующую позиции курсора. Если активный реквизит является единственным реквизитом на эту дату, то удаляется и сама запись истории.

Кнопка «Удалить на дату» удаляет значения всех реквизитов на дату, соответствующую позиции курсора, а также саму запись истории.

Комментарий к документам

На практике часто случается, что помимо заполнения обязательных реквизитов документов есть необходимость сделать как бы «пометки на полях» документа То есть записать в сам документ какую-либо произвольную информацию, например, инструкции о том, что еще нужно сделать с документом.

Для решения этой проблемы во всех документах типовой конфигурации предусмотрено поле комментария, которое может выглядеть как обычная строка внизу формы документа: или располагаться на отдельной закладке-

Блокнот

При постоянной работе с программой удобно посылать себе сообщения о том, что сегодня надо сделать и о чем не забыть. Такой возможностью обладает включенный в описываемую конфигурацию

«Блокнот» Вызвать список напоминаний, хранящихся в «Блокноте», можно, нажав кнопку панели инструментов

Нажав на кнопку «Новое» в списке напоминаний, можно ввести новое напоминание, кнопкой «Удалить» можно удалить отмеченное напоминание, нажав на кнопку «Изменить» можно отредактировать отмеченное напоминание

Первая и вторая колонки списка напоминаний представляют собой дату и время очередного появления соответствующего напоминания на экране Символ третьей колонки показывает, как часто будет появляться напоминание Р - разовое, Д - ежедневное, Н - еженедельное, М - ежемесячное и К - ежеквартальное Последняя колонка содержит краткое содержание напоминания

Рассмотрим назначение реквизитов формы при нажатии на кнопку «Изменить», предназначенной для редактирования напоминания

В поле «Комментарий» вводится краткое содержание сообщения Краткое содержание выводится в списке напоминаний в последней колонке. В поле сообщения можно ввести текст произвольной длины

Опция «Периодическое» определяет периодическое это напоминание (флажок установлен) или разовое Разовое напоминание появляется на экране один раз тогда, когда это определено реквизитами «Дата» и «Время» Частота появления периодического напоминания определяется значением реквизита «Периодичность» и варьируется от ежедневных напоминаний до ежеквартальных

Ежедневные напоминания появляются на экране каждый день (конечно, если при этом запускается система 1С:Предприятие) тогда, когда это определено реквизитом «Время»

Еженедельные напоминания появляются на экране каждую неделю по дням, определяемым реквизитом «Дата» Например, еженедельное напоминание, введенное в пятницу, 10 октября 1997 года, будет появляться на экране по пятницам

Аналогично, ежемесячные (ежеквартальные) напоминания появляются на экране в один и тот день очередного месяца (квартала) Например, ежемесячное напоминание, введенное 10 октября 1997 года, в следующий раз появится на экране 10 ноября 1997 года.

Напоминание выводится при работе программы в окне следующего вида

После появления на экране можно вывести это же напоминание повторно через произвольный интервал времени от 1 минуты до 1 часа. Для этого следует установить флажок «Повторить еще» и ввести нужный интервал времени

Правовая поддержка

При работе с конфигурацией у пользователя могут возникать вопросы, связанные с нормативными документами, на основании которых реализованы многие расчеты, формирование отчетности, ввод первичных документов и т д. Для этого имеется возможность вызова правовой системы «1С Гарант. Правовая поддержка» при нажатии кнопки панели инструментов, если эта система установлена на рабочем компьютере. Если правовая система не установлена, то выдается следующее сообщение.

Если правовая система установлена, то во многих документах, справочниках и отчетах появляется кнопка вызова, при нажатии на которую вызываются необходимые нормативные документы, относящиеся к конкретному действию. Например, кнопка в документах «Оплата сверхурочного времени» и «Приказ о работе в праздничные и выходные дни» вызывает одинаковый нормативный документ; в документе «Больничный лист» при нажатии соответствующей кнопки отображается пакет нормативных документов, относящихся к начислению страховых взносов и т.д.

Дополнение к описанию

В конфигурации есть возможность вызывать файл Readme, txt из пункта «Дополнение к описанию» меню «Регламенты». Этот файл содержит список последних изменений текущего релиза типовой конфигурации.

Приложение

Список констант конфигурации

Пользуясь формой «Настройки», можно редактировать значения констант в удобной для восприятия форме Тем не менее, константы можно редактировать, и не прибегая к помощи этой формы Для этого нужно хорошо представлять себе назначение тех констант, которые требуется изменить, и дату для периодических констант

Список констант вызывается в одноименном пункте меню «Справочники»

Ниже перечислены константы и описано их использование

• «Название организации», «Адрес организации», «Телефоны организации», «Наименование руководителя», «Лого» — используются в различных отчетных формах;

• «Руководитель», «Главный бухгалтер», «Кассир», «Начальник отдела кадров», «Ответственный» — представляют собой элементы справочника «Сотрудники» и используются в различных отчетных формах,

«Код региона», «Код района», «Номер в ПФР» — используются в отчетах для Пенсионного фонда РФ;

«Номер ГНИ», «ИНН организации», «Адрес ГНИ», «Телефон инспектора» — используются в отчетах для налоговой инспекции;

«Банк организации», «Расчетный счет» — банк предприятия (значение представляет собой элемент справочника «Банки») и расчетный счет, используемые в некоторых отчетах;

«Зарплатный счет» — счет в банке предприятия, на который перечисляется зарплата сотрудников предприятия, например, с целью дальнейшего перечисления на кредитные карточки сотрудников;

«ММОТ» — размер минимальной месячной оплаты труда;

«Ставка рефинансирования» — ставка рефинансирования ЦБ РФ, используется при расчете материальной выгоды по заемным средствам и по вкладам в банки;

«Тариф 1го разряда» — тариф 1-го разряда Единой Тарифной Сетки (ETC), используемый в дальнейшем при расчете окладов, соответствующих разрядам по ETC и в некоторых других расчетах;

«Единовр. пособие при рожд. ребенка», «Единовр пособие на похороны», «Единовр. пособие беременным», «Пособие до 1.5 лет», «Пособие с 1.5 до 3-х лет» — используются при расчете различных пособий;

«Месяцев для расч. б/л», «Месяцев для расч отпуска», «Месяцев для расч. по среднему» — количество месяцев, которое используется для расчета среднего заработка при оплате больничных, отпусков и по среднему соответственно, «Ср. число рабоч, дней для расч отпуска» — среднемесячное число рабочих дней при оплате отпуска, установленного в рабочих днях;

«Ср. число календ, дней для расч. отпуска» — среднемесячное число календарных дней при оплате отпуска, установленного в календарных днях;

«% взносов в ПФР» — размер взносов в Пенсионный фонд РФ для сотрудников;

«% профвзносов» — проценты, выплачиваемые в профсоюзный фонд;

«% почтового сбора» — процент почтового сбора при выплате алиментов по почте;

«Ставка п/н с выгоды», «Ставка п/н с рк и сн» —ставки налога на доходы физлиц с различных доходов;

«Название почтамта», «Банк почтамта», «Счет почтамта» — реквизиты почтамта, через который переводятся алименты, «Оплата питания», «Оплата проезда» — размер оплаты проездных и питания сотрудников;

«Округление по умолчанию» — размер округления выдаваемой на руки суммы при расчетах с сотрудниками; « «Календарь по умолчанию» — табель-календарь, используемый по умолчанию;

«К-т доплаты за вечернее время» — коэффициент доплаты за работу в вечернее время;

«К-т доплаты за ночное время» — коэффициент доплаты за работу в ночное время,

«К-т доплаты в праздники» — коэффициент доплаты за работу в праздничные дни;

«К-т оплаты "полуторных" сверхурочных» — коэффициент оплаты первых двух часов в день, отработанных сверхурочно;

«К-т оплаты "двойных" сверхурочных» — коэффициент оплаты последующих сверхурочных часов;

«К-т доплаты за тяж. усл. тр.», «К-т доплаты за вр. усл. тр.», «К-т доплаты за особо вр. усл. тр.» — коэффициенты доплаты за различные условия труда;

«Бухгалтерская конфигурация» — определяет, в какую типовую конфигурацию системы программ «1С.Предприятие» (или другую программу) будут выгружаться проводки, сформированные по результатам расчетов зарплаты, «Тип плана счетов» — характер плана счетов, влияет на алгоритм генерации проводок для бухгалтерских программ, а также на состав сводных отчетов,

«Хозоперация по умолчанию» — хозоперация, по которой распределяются результаты расчетов по умолчанию, если не заданы значения аналогичных реквизитов при вводе документов, при описании видов расчета, сотрудников, подразделений, категорий Значение выбирается из справочника «Хозяйственные Операции» и в дальнейшем используется при формировании проводок по результатам расчетов зарплаты, «Счет расчетов по депонентам», «Счет расчетов с ФСС», «Счет расчетов с ФСС по травматизму», «Счет расчетов с персоналом»,

«Счет расх буд периодов» — являются элементами справочника «Счета» и используются при формировании проводок по результатам расчетов зарплаты, должны соответствовать выбранному типу плана счетов,

«Размер группы» — если на предприятии числится много сотрудников, и во время проведения регламентных процедур (например, начала месяца) работа нескольких пользователей оказывается затруднена из-за длительного ожидания снятия блокировки данных, в этой константе можно определить, посколько человек обрабатывать в одной транзакции, по умолчанию установлено значение 0, т е все,

«Районный коэффициент» — местный районный коэффициент, если больше 1, будут рассчитываться виды расчета, связанные с районными выплатами,

«Территориальные условия» — значение выбирается из классификатора местностей по особым условиям проживания, разработанного ПФР, используется при формировании отчетов в Пенсионный фонд РФ,

«Первый предел для вычетов», «Второй предел для вычетов» размеры пределов, с которых производится уменьшение вычетов, согласно пункту 4 и подпункту «б» пункта 6 статьи 3 Закона РФ «О подоходном налоге с физических лиц» № 1998-1,

Архиватор — если вы предполагаете использовать другой архиватор (не ARJ), тогда установите в этой константе значение «Нет»,

«Команда запуска архиватора» — командная строка для запуска другого архиватора,

«Номер субконто сотрудники» — номер субконто «Сотрудники» в программе «1С Бухгалтерия 60», используется при формировании проводок в «1С Бухгалтерию» для автоматического формирования кода аналитического учета по 70 счету,

«Флажок расчета премии» — способ расчета месячной премии. по текущему или прошлому месяцам,

«Часов в рабочем дне» — количество часов в рабочем дне у окладников,

«Срок выпл з/пл» — число выплаты зарплаты за предыдущий месяц, используется при расчете налога на доходы по фактически полученным доходам,

«Ср-мес кол-во рабоч часов при 40-ч раб неделе», «Ср-мес колво рабоч часов при Зб-ч раб неделе», «Ср-мес кол-во рабоч часов при ЗО-ч раб неделе», «Ср мес кол-во рабоч часов при 24ч раб неделе» — среднемесячное количество рабочих часов в неделе различной продолжительности, используется при расчете среднечасового заработка при оплате по среднему,

Константы - признаки

» «Флажок выплаты питания деньгами», «Флажок оплаты проезда деньгами» — признаки оплаты деньгами дотаций на питание и проезд,

«Флажок ограничения ср зараб в б/л» — признак ограничения среднего заработок двумя должностными окладами (тарифными ставками) при расчете больничного листа, «Флажок исп шт расписания» — признак использования штатного расписания,

«Флажок исп многосменки» — признак использования многосменных графиков работы,

«Флажок расчета военнослужащих» — признак наличия на предприятии военнослужащих,

«Флажок исп фотографий сотрудников» — признак использования фотоархива,

«Флажок выделения РК и СН» — выделять ли районную и северную составляющие при расчетах среднего заработка, если установлено значение 1 - средний заработок разделяться не будет,

«Север» — предприятие расположено в районе Крайнего Севера или приравненном к нему районе Если установлено значение «Да», будут рассчитываться виды расчета, связанные с северными доплатами,

«Флажок проверки выплаты з/пл при смене р п в ж Зарплата» — установленное значение 1 позволяет проверять полноту выплаты зарплаты при смене периода журнала расчетов Зарплата, «Флажок проверки баланса дней при смене р п в ж Зарплата» — установленное значение 1 позволяет проверять баланс дней при смене периода журнала расчетов Зарплата, «Флажок проверки сальдо уволенных» — установленное значение 1 позволяет проверять сальдо уволенных в текущем месяце при смене периода журнала расчетов Зарплата,

• «Режим отображения месяца в платежных документах» — если установлено значение 1, в платежных поручениях, формируемых программой, в дате поручения месяц будет отображен словом, иначе — цифрами;

• «Порядок исчисления налога на доходы» — если установлено значение 0, налог будет исчисляться (как при расчетах, так и в налоговой отчетности) по фактически полученным доходам, если значение 1 — по начисленным.

Обновление конфигурации

Часто возникает необходимость изменения типовой конфигурации, если происходят изменения в законодательстве или по любым другим причинам. В этом случае необходимо сделать обновление текущей рабочей конфигурации, при этом данные сохраняются. Обновление производится в режиме конфигурирования информационной базы, т.е. при запуске системы «1С:Предприятие» в режиме «Конфигуратор».

Для обновления релиза конфигурации следует использовать режим «Объединение конфигураций» Вам потребуется файл метаданных (файл lCv7.MD) нового релиза конфигурации Для этого установите новый релиз конфигурации в отдельный каталог жесткого диска (по окончании процесса обновления этот каталог можно удалить).

1. Запустите систему «1С:Предприятие» в режиме «Конфигуратор».

2. Сделайте архивную копию вашей информационной базы

3. Вызовите режим «Объединение конфигураций», для этого в меню «Конфигурация» выберите пункт «Объединение конфигураций».

4. В запросе «Открыть файл конфигурации» выберите файл метаданных lCv7.MD нового релиза конфигурации

5. В окне режима «Объединение конфигураций» проверьте:

• в группе «Приоритет конфигурации» установлен переключатель «Загружаемая конфигурация»,

• в группе «Метод объединения» установлен переключатель «Замещать объекты».

6. Нажмите кнопку «ОК» для объединения конфигураций.

7. После завершения будет открыто окно «Конфигурация», содержащее конфигурацию с внесенными изменениями. Выполните сохранение конфигурации.

Подробные описание изменений в типовой конфигурации можно получить на дисках Информационно-технологического сопровождения 1С:Предприятия (диски ИТС) или на линии консультаций фирмы «1С» и ее партнеров.

Рекомендации по конфигурированию календарей для многосменной работы

Чтобы создать набор календарей для многосменной работы, следует запустить систему «1С:Предприятие» в режиме «Конфигуратор» и войти в окно «Метаданные».

Рассмотрим для примера создание набора календарей для работы в четыре смены по формуле: сутки работаем, трое отдыхаем, т.е. все календари имеют периодичность по четыре дня. При работе сутками для каждой смены следует создать по три календаря — один для хранения всех часов работы и отдельно по календарю для хранения только вечерних и только ночных часов работы.

Условимся, что данный график работы вводится с 1 января 1997 года. Часы в основном календаре 1-ой смены следует заполнить следующим образом: 24, 0, 0, 0; в вечернем календаре — 2, О, О, 0; в ночном календаре — 8, 0, 0, 0. Календари 2-ой смены сдвинуты на один день: основной — 0, 24, 0, 0; вечерний — 0, 2, О, О и ночной — О, 8, 0, 0. Календари третьей и четвертой смен формируются аналогично.

Рассмотрим более подробно, как происходит в конфигураторе добавление календарей, например основного календаря для 1-ой смены.

Для создания нового экземпляра календаря нужно проделать следующие операции:

• выберите мышью в окне «Метаданные» наименование любого календаря;

• нажатием правой кнопки мыши вызовите на экран контекстное меню;

• в этом меню выберите функцию «Новый Календарь».

На экран будет выдан диалог для редактирования свойств календаря. Новому календарю присваивается условное имя, состоящее из слова «новый» и числа — порядкового номера нового календаря.

После присвоения новому экземпляру календаря идентификатора и комментария для сохранения сделанных изменений необходимо нажать кнопку «OK», при этом диалог для редактирования свойств календаря будет закрыт, а на ветви «Календари» дерева метаданных появится новый элемент с указанным идентификатором

Далее следует задать правила автоматического заполнения календаря Правила автоматического заполнения описываются двумя параметрами списком, количество элементов которого не ограничено (в нашем случае 4) и каждый элемент которого — продолжительность дня в часах, и датой отсчета (в нашем случае 1 01 97)

При редактировании списка числовых значений используются кнопки ввода нового значения и удаления существующего Для редактирования значения используйте двойное нажатие мыши на том элементе списка, который вы хотите отредактировать

Итак, основной календарь 1-ой смены будет выглядеть следующим образом

Для сохранения сделанных изменений необходимо нажать кнопку «ОК»

Аналогично следует создать остальные календари, необходимые для многосменного графика работы Осталось только перед расчетом зарплаты автоматически заполнить все календари в режиме запуска 1 С Предприятие

Методика конвертирования данных программы 1С .'Зарплата для DOS

Система 1 С Зарплата и Кадры, как одна из реализации системы 1С Предприятие, является совершенно новым продуктом, не имеющим программ-предшественников, созданных на других платформах Тем не менее, система содержит встроенное средство, позволяющее облегчить перенос данных программы 1С Зарплата для DOS, вне зависимости от того, какие предметные задачи решались в программе 1С Зарплата

Конвертирование, разумеется, производится в режиме конфигурирования информационной базы, т е при запуске системы в режиме «Конфигуратор» При этом результаты конвертирования, т е новые справочники, перенесенные из 1 С Зарплаты, будут введены в текущую информационную базу

Конвертер данных системы 1 С Предприятие позволит перенести данные из справочников программы lC-Зарплата Реализация в программе lC-Зарплата принципа хранения «свернутых» архивных данных приводит к тому, что при помощи стандартного конвертера данных не возможен адекватный перенос информации из архивов этой программы в информационную базу 1С'Предприятия

С другой стороны, используя возможности встроенного языка системы 1С:Предприятие, предназначенные для работы с внешними Xbase-таблицами, можно создать процедуру переноса архивных данных 1С:Зарплаты в информационную базу 1С:Предприятия.

Создание такой процедуры требует определенной квалификации от администратора системы 1С:Предприятие, знания конфигурации «Расчет зарплаты и Кадровый учет», описанной в данном руководстве и, разумеется, хорошего знания структуры данных конкретной настройки программы 1С:Зарплата, данные которой необходимо перенести.

Ниже, в разделе «Рекомендации» приведен ряд общих замечаний, которые помогут вам создать такого рода процедуру переноса не только справочных данных, но и архивов вашей прежней системы расчета заработной платы.

Важно. Стандартный конвертер данных программы 1С:Зарплата позволит вам перенести информацию всех справочников программы, но не предназначен для переноса архивных данных расчета.

Ниже изложена информация, предполагающая хорошее знание программы 1С:Зарплата. Большинство терминов этой программы приводятся без дополнительных пояснений.

Конвертер «умеет» конвертировать данные программы 1С:Зарплата версий 3.0, 3.1 и 4.0 и вызывается пунктом «Конвертировать данные...» меню «Сервис» при работе в режиме конфигурирования.

При переносе содержимого всех справочников программы 1С:Зарплата производятся следующие действия.

• Конвертирование, т.е. перенос данных в информационную базу, производится полуавтоматически, т.е. конвертер пытается, основываясь на названиях справочников 1С:Зарплаты и идентификаторах уже существующих справочников текущей информационной базы, установить соответствие между ними и предлагает пользователю подтвердить или отвергнуть найденные соответствия.

• Основной справочник программы 1С:Зарплата (как правило, это справочник «Сотрудники») конвертируется в двухуровневый справочник системы 1С:Предприятие. При этом группы элементов справочника (папки) на первом уровне соответствуют ведомостям программы 1С:Зарплата, а собственно, элементы справочника соответствуют сотрудникам.

• Локальные справочники программы 1С:Зарплата, которые связаны с основным справочником по его коду, конвертируются в подчиненные справочники системы 1С:Предприятие. Например, справочник «Дети сотрудников» программы 1С:Зарплата, который является локальным и имеет ключевое выражение типа «Сотрудники:ТабНомер», будет конвертирован в справочник, подчиненный справочнику «Сотрудники» в рамках системы 1С:Предприятие.

• Общие справочники программы 1С:Зарплата конвертируются в обычные, одноуровневые справочники системы 1С:Предприятие.

• В процессе конвертирования конвертер разбирает взаимосвязи справочников программы 1С:Зарплата и на основании набора ключевых выражений каждого справочника устанавливает тип данных связанных с ним граф других справочников. Это приводит к тому, что реквизиты вновь создаваемых справочников могут иметь типы данных, отличные от базовых («число», «строка» и «дата»). Например, если в рамках программы 1С:Зарплата существовал справочник «Банки» связанный с графами «Банк» справочника перечислений, алиментов и пр. (т.н. «связанные макроимена»), то при конвертировании эти графы получат тип «Справочник» конкретного типа «Банки».

Перед выполнением конвертирования рекомендуем выполнить операцию резервного копирования текущей конфигурации системы 1С:Предприятие. Это делается при помощи пункта «Сохранить данные» меню «Файл». Если вы не будете удовлетворены результатом конвертирования, впоследствии можно будет вернуться к исходному состоянию текущей конфигурации (пункт «Восстановить данные» меню «Файл») и повторить процесс.

После выбора пункта «Конвертировать данные...» меню «Сервис» на экран выводится запрос каталога в котором находится настройка программы 1С:Зарплата.

Выбор настройки. Процесс конвертирования начинается с выбора конвертируемой настройки программы 1С Зарплата При этом конвертер предлагает выбрать каталог с так называемой типовой настройкой программы 1С Зарплата Этот каталог распознается конвертером по наличию файла-описателя Config tn, который содержит описание типовой настройки, и, как правило, находится в подкаталогах с расширением имени 1SZ каталога 1SZ 40, 1SZ 31 или 1SZ 30 (в зависимости от версии программы 1С Зарплата для DOS, например, \1SZ40\RFBASIC 1SZ)

После выбора настройки конвертер пытается проанализировать содержимое настройки и определить версию программы 1С Зарплата

В случае, если чтение и разбор файла-описателя прошли удачно, конвертер считывает данные о типовой настройке программы 1С Зарплата и выдает основную панель

Основная панель конвертера содержит список обнаруженных справочников программы 1С Зарплата с первоначальной настройкой параметров их конвертирования

В списке справочников панели конвертера выводятся значки ^ для тех справочников, конвертирование которых будет проводиться Как уже говорилось выше, по умолчанию конвертер предлагает перенести данные тех справочников, которые совпадают по именам с одним из справочников текущей информационной базы 1С Предприятия Вы можете убирать или ставить этот значок, изменяя установки по умолчанию в зависимости от того, какие данные прежней программы вам необходимы

Панель содержит кнопку «Параметры», которая позволит настроить конвертирование всех справочников программы Для настройки переноса данных конкретного справочника необходимо выделить его курсором в списке справочников и нажать кнопку «Параметры» При этом на экране появится панель, первоначальный внешний вид которой зависит от того, конвертируются ли данные справочника в уже существующий справочник текущей информационной базы или нет

Параметры конвертирования. В панели можно установить соответствие старого справочника (программы 1С Зарплата) и нового справочника (информационной базы системы 1С Предприятие), а также настроить соответствие реквизитов старого и нового справочника

Если конвертер обнаружил соответствие названия прежнего справочника и идентификатора какого-либо справочника текущей конфигурации, панель выглядит примерно следующим образом

В этой панели указываются

• необходимость конвертировать справочник (параметр «Конвертировать»),

• возможность использовать вторую графу справочника 1С Зарплаты в качестве предопределенного реквизита «Наименование» справочника системы 1С Предприятие (параметр «Интерпретировать вторую графу как Наименование»),

• возможность использовать уже существующий справочник для заполнения данными справочника 1С Зарплаты (параметр «Использовать существующий справочник»),

• если используется уже существующий справочник, в панели выводится список, в котором можно указать соответствие граф справочника 1С Зарплаты и реквизитов справочника системы 1С Предприятие

Использование второй графы как наименования. В программе 1С Зарплата все графы справочников, кроме первой (ключевой) графы, равноправны Тем не менее, на практике часто вторая графа справочника используется как описание или наименование соответствующего объекта — наименование категории работника, наименование подразделения и пр. Для того, чтобы превратить вторую графу справочника 1С Зарплаты в «Наименование» справочника текущей информационной базы, используйте параметр «Интерпретировать вторую графу как Наименование» При этом все графы справочника 1С Зарплата будут конвертированы как реквизиты справочника 1С Предприятия, первая графа будет интерпретирована как код, а вторая — как наименование

Управление списком реквизитов. Если конвертер предлагает использовать уже существующий справочник, панель выводится в «развернутом» виде — со списком реквизитов Если конвертер не может предложить справочник по умолчанию, панель выводится без списка реквизитов, причем по умолчанию справочник предлагается не конвертировать

После этого можно, тем не менее, задать необходимость конвертирования справочника и даже указать соответствие его уже существующему справочнику текущей конфигурации 1С Предприятия

После того, как в поле «Использовать существующий справочник» будет что-нибудь выбрано, программа попытается установить соответствие граф старого справочника и реквизитов нового и выведет панель в «развернутом» виде Пользуясь кнопками «Добавить связь» и «Удалить связь» можно управлять списком соответствия реквизитов справочников При этом, при конвертировании основного справочника программы 1С Зарплата (как правило, «Сотрудники») связь можно устанавливать для всех граф старого справочника, а при конвертировании прочих справочников связь можно устанавливать для всех реквизитов кроме первого (в случае, если вторая графа не используется как «наименование») или кроме первого и второго (в случае, если вторая графа используется как «наименование»)

Для установки очередной связи в списке реквизитов следует выбрать строку с реквизитом, еще не имеющим связи (т е для которого еще не установлено соответствие реквизиту нового справочника) и нажать кнопку «Добавить связь». При этом появится следующее окно, в котором можно выбрать реквизит существующего справочника системы 1С Предприятие

Для удаления связи в списке реквизитов следует выбрать строку с реквизитом, для которого уже установлено соответствие реквизиту нового справочника, и нажать кнопку «Удалить связь»

При редактировании списка реквизитов можно отказаться от конвертирования той или иной графы справочника 1С Зарплаты, убрав значок </ рядом с названием графы Это необходимо в том случае, если данные справочника «идеологически» не вписываются в текущую конфигурацию системы 1С Предприятие Например, графы справочника «Сотрудники», содержащие налогооблагаемую сумму за год, не используются в описываемой конфигурации lC-Предприятия

Конвертирование. После выбора действия «Конвертировать», программа пытается интерпретировать установленные параметры переноса данных, провести преобразование типов данных, если это необходимо, и установить связи между справочниками прежней программы 1С Зарплата При этом например, если в прежней программе справочник «УченыеЗвания» использовался для заполнения графы «Звание» справочника «Сотрудники», это будет переведено в термины 1С Предприятия и в информационной базе появится справочник «УченыеЗвания», а в новом справочнике сотрудников появится реквизит типа «справочник УченыеЗвания»

Если при конвертировании в настройке программы 1С Зарплата обнаруживаются несовпадения описателя настройки и реальных данных, конвертер выдаст сообщение о невозможности открыть файлы настройки программы 1С Зарплата

Рекомендации

Перед конвертированием данных следует изучить характеристики описываемой в данном руководстве конфигурации Это поможет продумать, какие именно справочники следует переносить в текущую конфигурацию, а какие нет Мало перенести содержимое справочников в текущую конфигурацию, необходимо заставить их «работать» В связи с тем, что концепции программ 1С Зарплата и 1С Предприятие слишком далеки друг от друга, многие «зарплатные» данные просто не имеют смысла в текущей конфигурации Примером могут служить справочники перечислений (список сотрудников, перечисляющих заработок в банки) и алиментщиков (список сотрудников, оплачивающих исполнительные листы) для которых, как правило, «не находится места» в «зарплатной» конфигурации 1С Предприятия Такого рода данные, как правило, вводятся в систему через документы, т е объекты, не имеющие аналога в программе 1С Зарплата "

Очевидно, перенос основного справочника программы 1С Зарплата имеет смысл, перенос таких «маленьких» и легко интерпретируемых справочников как «Категории», «Должности» также имеет смысл

Обработка данных после конвертирования. В том случае, если упомянутые выше справочники перечислений и алиментов содержат много информации их также можно конвертировать, но не для прямого использования, а для автоматического ввода на их основе соответствующих документов системы 1С Предприятие

Например, после конвертирования данных вы можете создать процедуру на встроенном языке программы 1С Предприятие (например, как модуль обработки), которая будет просматривать новые справочники, формируя на основании находящихся в них данных соответствующие документы (такие как «Исполнительный лист» или «Перечисление зарплаты в банк»)

Таким образом, если программа 1С Зарплата содержит очень большое количество данных, возможен их полный перенос в текущую конфигурацию с тем, чтобы некоторые из справочников использовать непосредственно, а некоторые использовать как исходный материал для преобразования в документы 1С Предприятия средствами встроенного языка

Перенос архивных данных. Конвертирование так называемых архивных данных программы 1С Зарплата требует особого обсуждения

Дело в том, что принцип хранения результатов расчетов предыдущих месяцев в свернутом виде, который применяется в программе 1С Зарплата и который продиктован «экономностью» программы с точки зрения расходуемого дискового пространства и скорости доступа к данным, не позволяет перенести архивные данные непосредственно

Компонента «Расчет» системы программ 1 С Предприятие реализует другой подход к хранению данных — хранение полной копии всех результатов расчета в журналах расчетов. И хотя можно провести аналогию между содержимым окна «Данные» программы 1С Зарплата и журналами расчетов 1С Предприятия, эти данные не накапливались во времени, а сворачивались по тем или иным принципам в так называемые «архивные» файлы

Свертка результатов отдельных видов расчета в одно значение (например, «все начисления», «налогооблагаемая сумма» и тд) исключает возможность провести обратный процесс — разобрать полученные данные на составляющие — результаты конкретных расчетов

В связи со всем вышесказанным, стандартный конвертер не способен провести перенос архивных данных Тем не менее, возможна обработка этих данных с целью переноса наиболее полезной информации и интерпретации их в терминах настоящей конфигурации «Расчет Зарплаты и Кадровый учет»

Все данные программы 1С Зарплата хранятся в DBF-формате. Встроенный язык программы 1С Предприятие поддерживает работу с внешними данными в этом формате (т н Xbase-объекты) Это позволяет написать процедуру обработки таких данных и перенос той или иной информации в существующие справочники конфигурации

Рассмотрим, например, вопрос переноса данных для расчета налога на доходы в текущую конфигурацию Необходимая информация, как правило находится в тех или иных графах архивных файлов программы 1С Зарплата Такие данные, как сумма к налогообложению, размер удержанного пенсионного фонда и пр. могут быть перенесены в соответствующие реквизиты справочника сотрудников информационной базы 1С Предприятия Для этого необходимо создать набор Xbase-объектов (соответствующих архивным файлам 1С Зарплаты за все месяцы) с одной стороны, и объект «Справочник Сотрудники» с другой стороны Перебрав все архивные данные и просуммировав необходимую информацию, необходимо заполнить ее в соответствующие реквизиты справочника сотрудников При этом необходимо пользоваться содержимым графы с именем сотрудника в архивных данных как ключом при поиске конкретного элемента справочника сотрудников по наименованию

Названия архивных файлов программы 1С Зарплата формируются следующим образом первый символ — последняя цифра года, например, для 1996 — 6, второй символ — номер месяца, причем десятому, одиннадцатому и двенадцатому месяцам соответствуют символы А, В и С; остальные символы — название ведомости программы 1С Зарплата Эти названия следует использовать как параметр метода ОткрытьФайл Xbase-объекта

Ошибки открытия данных 1С: Зарплаты. Очень важно перед конвертированием убедится в том, что настройка программы 1С Зарплата не содержит внутренних дефектов с точки зрения конвертера данных Это связано с тем, что программа 1С Зарплата значительно «либеральнее» к описанию структур справочников, например, вполне допустимы графы справочников без названий' неполное описания справочника и т д. Кроме того, описание структур справочников (файл Attnb dat программы 1С.Зарплата) и их реальная структура могут не совпадать в результате не до конца проведенной реструктуризации, что «на ходу» обрабатывается программой 1С Зарплата Все это связано с изменчивостью структур данных программы в разных ее реализациях, использованием настроек, созданных в более старых реализациях программы, новыми реализациями и тд

Во всяком случае, при возникновении сообщений об ошибках чтения данных 1С:Зарплаты, следует восстановить целостность данных программы. Например, для того, чтобы структура справочников соответствовала описателю данных 1С:Зарплаты в формате текущей версии программы, необходимо просто открыть для редактирования структуру соответствующего справочника внести в нее не затрагивающие сути изменения (например, увеличив размер графы на 1) для того, чтобы вызвать принудительную перестройку справочника и перезапись его структуры в файл Attrib dat.

Нормативные документы

Алгоритмы расчетов, включенные в описываемую конфигурацию составлены согласно следующим нормативным документам

• Кодекс законов о труде Российской Федерации от 09 12 1971, с последующими изменениями и дополнениями,

• Налоговый кодекс Российской Федерации (часть вторая) от 05082000, № 117-ФЗ,

• Семейный кодекс Российской Федерации от 29 декабря 1995 года, № 223-ФЗ,

• Положение о порядке обеспечения пособиями по государственному социальному страхованию, утвержденное Постановлением Президиума ВЦСПС от 12 ноября 1984 г за № 13-6, с изменениями и дополнениями,

• Порядок исчисления среднего заработка в 2000 - 2001 годах, утвержденный Постановлением Министерства Труда и социального развития РФ от 17 мая 2000 г № 38,

• Федеральный закон от 19 мая 1995 г № 81-ФЗ «О государственных пособиях гражданам, имеющим детей»,

• Положение о порядке назначения и выплаты государственных пособий гражданам, имеющим детей, утвержденное Постановлением Правительства РФ от 4 сентября 1995 г № 883,

• Инструкция о порядке предоставления социальных гарантий и компенсаций лицам, работающим в районах Крайнего Севера и в местностях, приравненных к районам Крайнего Севера, в соответствии с действующими нормативными актами, утвержденная Приказом Министерства труда РСФСР от 22 ноября 1990 г за №2,

• Федеральный закон от 24 июля 1998 г № 125-ФЗ «Об обязательном страховании от несчастных случаев на производстве и профессиональных заболеваний»,

• Федеральный закон от 2 января 2000 г № 10-ФЗ «О страховых тарифах на обязательное социальное страхование от несчастных случаев на производстве и профессиональных заболеваний на 2000 г »,

• Постановление Правительства РФ от 18 июля 1996 г № 841 «О перечне видов заработной платы и иного дохода, из которых производится удержание алиментов на несовершенных детей»,

• Постановление Правительства РФ от 20 мая 1998 г № 465 «О внесении изменений и дополнений в перечень видов заработной платы и иного дохода, из которых производится удержание алиментов на несовершенных детей»,

• Постановление Правительства РФ от 14 октября 1994 г № 1161 «О порядке и условиях выплаты процентных надбавок к должностному окладу (тарифной ставке) должностных лиц и граждан, допущенных к государственной тайне»,

• Постановление Министерства Труда РФ от 23 декабря 1994 г № 84 «Об утверждении разъяснения "О порядке выплаты процентных надбавок должностным лицам и гражданам, допущенным к государственной тайне"»,

• Закон Российской Федерации от 7 декабря 1991 г № 1998-1 «О подоходном налоге с физических лиц» в ред Федеральных законов № 11-ФЗ от 1001 97, № 94-ФЗ от 280697, № 159-ФЗ от 31 12 97, № 65-ФЗ от 31 03 99, № 207-ФЗ от 25 11 99, № 19-ФЗ от 02 01 2000,

• Инструкция Госналогслужбы РФ № 35 от 29 июня 1995 г в ред Изменений и дополнений Госналогслужбы (МНС) РФ № 1 от 01 09 95, № 2 от 02 04 96, № 3 от 11 07 96, № 4 от 27« 03.97, № 5 от 081297, №6 от 260298, №8 от 280499 и №9 от 04.04 2000,

• Порядок исчисления среднего заработка в 1999 году, утвержденный Постановлением Министерства Труда и социального развития РФ от 22 января 1999 г за № 2,

• Федеральный закон от 20 ноября 1999 г. № 197-ФЗ «О тарифах страховых взносов в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации, Государственный фонд занятости населения Российской Федерации и в фонды обязательного медицинского страхования на 2000 г »,

• Постановление Правительства РФ от 12 февраля 1994 г. № 101 «Положение о Фонде социального страхования Российской Федерации»,

• Инструкция «О порядке начисления, уплаты страховых взносов, расходования и учета средств государственного социального страхования», утвержденная постановлением ФСС РФ, Минтруда и социального развития РФ, Минфином РФ, ГНС РФ по согласованию с ЦБ РФ от 2 октября 1996 г № 162/2/87/07-01-07,

• Постановление Правительства РФ от 7 июля 1999 г № 765 «О перечне выплат, на которые не начисляются страховые взносы в Фонд социального страхования Российской Федерации»,

• Инструкция «О порядке уплаты страховых взносов, работодателями и гражданами в Пенсионный фонд России», утвержденная постановлением Правления ПФР от 11 ноября 1994 г. № 258 (с изменениями от 6 и 19 марта 1996г);

• Постановление Правительства РФ от 7 мая 1997 г. № 546 «Перечень выплат, на которые не начисляются страховые взносы в Пенсионный фонд Российской Федерации»;

• Постановление Верховного Совета РФ от 24 февраля 1993 г. № 4543-1 «Положение о порядке уплаты страховых взносов в Федеральный и территориальный фонды обязательного медицинского страхования»,

• Постановление СМ РФ от 11 октября 1993 г № 1018 «Инструкция о порядке взимания и учета страховых взносов (платежей) на обязательное медицинское страхование»,

• Постановление Правительства РФ от 5 января 2000 г № 9 «О Перечне выплат, на которые не начисляются страховые взносы в фонды обязательного медицинского страхования»

Выходные документы стандартной формы соответствуют Постановлению Государственного Комитета Российской Федерации по статистике от 30 октября 1997 г № 7 la «Об утверждении унифицированных форм первичной учетной документации по учету труда и его оплаты, основных средств и нематериальных активов, материалов, малоценных и быстроизнашивающихся предметов, работ в капитальном строительстве».