Хелпикс

Главная

Контакты

Случайная статья





Примеры масок ввода



 

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

Таблица - объект базы данных, в котором данные хранятся в виде записей (строк) и полей (столбцов). Является основным структурным элементом системы управления реляционной базой данных.

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

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

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

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

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

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

Процесс проектирования БД состоит из следующих этапов:

1. Сбор информации;

2. Идентификация объектов;

3. Моделирование объектов;

4. Идентификация типов информации для каждого объекта;

5. Идентификация отношений;

6. Нормализация;

7. Преобразование к физической модели;

8. Создание базы данных.

Этапы 1-6 образуют фазу логического моделирования. Этапы 7-8 представляют собой фазу физического моделирования.

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

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

• Какие значения должны содержаться в поле;

• Сколько места необходимо для хранения значений в поле;

• Какие операции должны производиться со значениями в поле;

• Нужна ли сортировка данных поля;

• Необходимо ли группировать данные.

В Таблице 1 приведен список предусмотренных в приложении Microsoft Office Access 2010 типов данных, инструкции по их применению и сведения о размере места, необходимого для хранения данных каждого типа. При этом необходимо помнить, что максимальный размер файла базы данных Office Access 2010 составляет 2 гигабайта.

Таблица 1. Типы данных MS Access

Тип данных Применение Размер
Текстовый Используется для буквенно- цифровых символов, включая текст, а также текст и числа, не применяемые в вычислениях. До 255 символов
Поле МЕМО Используется для текста, размер которого превышает 255 символов, или для текста, в котором используется КТБ- форматирование. Свойство поля МЕМО указывает, поддерживает ли поле форматированный текст. До 1024 х 1024 х 1024 символов, для хранения которых требуется 2 гигабайта (2 байта на символ). Из них можно отображать до 65 535 символов в одном элементе управления.
Числовой Применяется для хранения числовых значений (целых или дробных), которые используются в вычислениях (за исключением денежных сумм). 1, 2, 4, 8 или 12 байтов (16 байтов, когда поле используется для кода репликации).
Дата/время Используется для хранения значений дат и времени. 8 байтов

 

Денежный Используется для хранения денежных значений. Используется для предотвращения округлений во время вычислений. 8 байтов
Счетчик Используется для формирования уникальных значений, которые могут применяться в качестве первичного ключа. Эти значения автоматически вставляются в поле при добавлении записи. Поля с типом данных " Счетчик" могут формироваться добавлением единицы, добавлением заданного значения или с помощью случайных чисел. 4 байта (16 байтов, когда поле используется как код репликации)
Логический Используется для логических значений: Да/Нет, Истина/Ложь или Вкл/Выкл. 1 бит (0, 125 байта)
Поле объекта OLE Используется для хранения объектов OLE из других программ Microsoft Windows. До 1 гигабайта
Вложение Используется для хранения двоичных файлов (файлов, которые нельзя прочесть с помощью текстового редактора), таких как цифровые изображения (фотографии и другие изображения) или файлов, созданных с помощью других приложений Microsoft Office. Используя поле с типом данных " Вложение", можно вложить в одну запись более одного файла. 2 гигабайта для сжатых вложений. Для несжатых вложений приблизительно 700 КБ, в зависимости от степени сжатия вложений.
Гиперссылка Используется для хранения гиперссылок (в том числе ссылок на объекты приложения Access, которые хранятся в базе данных). До 1024 х 1024 х 1024 символов, для хранения которых требуется 2 гигабайта (2 байта на символ). Из них можно отображать до 65 535 символов в одном элементе управления.
Мастер подстановок Используется для запуска мастера подстановок, позволяющего Если к полю подстановок

создавать поле, в котором в виде раскрывающегося списка

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

присоединена таблица или запрос, то это размер

присоединенного столбца.

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


 


 


В большинстве систем управления базами данных, включая Microsoft Access версий до Mirosoft Access 2007, в поле можно хранить только одно значение. При работе с Microsoft Office Access 2010 можно создать поле, хранящее несколько значений, например список категорий, к которым относится проблема.

Технически модель поля, одновременно допускающего несколько значений, в Access реализует отношение «многие-ко-многим».

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

• Хранить выборку из списка вариантов, содержащую одновременно несколько значений (и этот список относительно невелик).

• Экспортировать таблицу Access на узел SharePoint, где будут применяться поля вариантов или подстановок с несколькими значениями, доступные в Windows SharePoint Services.

• Создать связь со списком SharePoint, содержащим поля вариантов или подстановок с несколькими значениями.

Кроме описанных выше ситуаций, поля, одновременно допускающие несколько значений, можно использовать, когда есть уверенность, что не придется позже переносить базу данных на Microsoft SQL Server. Поля, одновременно допускающие несколько значений, из формата Office Access 2010 преобразуются в поля SQL Server в виде полей типа МЕМО (ntext), которые содержат значения с разделителями. Поскольку SQL Server не поддерживает типы данных, одновременно допускающие несколько значений и представляющие модель отношения «многие-ко-многим», может потребоваться дополнительная работа по конструированию и преобразованию.

В Таблице 2 перечислены свойства полей и описано влияние этих свойств на поля в зависимости от их типа данных.

Таблица 2. Свойства полей MS Access

Свойство поля Применение свойства
Размер поля Задание максимального размера для данных.
Формат поля Настройка отображения поля по умолчанию на экране и при печати.
Число десятичных знаков Задание числа десятичных знаков, используемых при отображении чисел.
Новые значения Указывает, какие значения (последовательные или случайные) присваиваются полю " Счетчик" при добавлении новой записи.
Маска ввода Символы редактирования, определяющие способы ввода данных.
Подпись Текст, отображаемый по умолчанию в качестве подписи в формах, отчетах и запросах.
Значение по умолчанию Значение, автоматически назначаемое полю при добавлении новой записи.
Условие на значение Выражение, значение которого должно быть истинно при добавлении или изменении значения поля.
Текст для проверки Текст, появляющийся при вводе значения, при котором нарушается условие, указанное в поле Условие на значение.
Обязательное поле Указывает, должно ли это поле содержать значение в каждой записи.
Пустые строки Разрешает (установкой значения Да) ввод строки нулевой длины (" " ) в текстовое поле и в поле МЕМО.
Индексация Посредством создания и использования индекса ускоряет доступ к этому полю для чтения.
Сжатие Юникод Выполняется сжатие данных, содержащихся в этом поле, если в нем менее 4096 символов (это условие всегда выполняется для текстовых полей). Если в поле содержится более 4096 символов, не выполняется никаких действий.
Режим ІМЕ Управление преобразованием символов в восточноазиатских версиях Windows.
Режим предложений ІМЕ Управление преобразованием предложений в восточноазиатских версиях Windows.
Смарт-теги Позволяет выбрать смарт-теги, применяемые к полю.
Только добавление Когда для свойства задано значение Да, ведется журнал значения поля.
Формат текста Для хранения данных в виде HTML-кода и использования RTF-форматирования следует

 

  выбрать значение Формат RTF. Чтобы хранить только текст без форматирования, следует выбрать значение Обычный текст.
Выравнивание текста Выравнивание текста по умолчанию в элементе управления.
Отображать элемент выбора даты Указывает, должен ли в приложении Access отображаться элемент выбора даты (элемент управления " Календарь" ), когда пользователь изменяет значение поля.

 

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

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

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

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

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

Ключи также делятся на два класса: простые и составные.

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

Индекс - средство, ускоряющее поиск и сортировку данных в таблице. Существенное повышение скорости выполнения запросов приносит индексирование полей, расположенных по обе стороны отношения, или создание связи между этими полями, а также индексирование всех полей, используемых для задания условий отбора в запросе. Индекс может быть простым (состоять из одного атрибута) или составным (состоять из нескольких атрибутов). Индекс может быть уникальным или не уникальным.

Реляционные базы данных позволяют объединять информацию, принадлежащую разным сущностям базы данных. Отношения определяются в процессе проектирования базы; для этого следует проанализировать разные таблицы, выявить логические связи, сущест­вующие между ними, и охарактеризовать выявленные связи.

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

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

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

Один к одному: каждой записи первой сущности соответствует только одна запись второй сущности, а каждой записи второй сущности - только одна запись первой сущности. Пример - автор, у которого в данный момент имеется лишь одна незавершенная книга.

Один ко многим: каждой записи первой сущности могут соответствовать несколько записей второй сущности, однако каждой записи второй сущности соответствует только одна запись первой сущности. Пример - издательство, выпустившее несколько книг.

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

Пример - один автор может написать несколько книг, а у одной книги может быть несколько авторов.

В реляционных базах данных этот тип отношений не реализуем, поэтому создается дополнительная сущность, ассоциирующая данную связь (ассоциация).

Связи между сущностями устанавливаются по равенству значений первичного и внешнего ключей.

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

• Межтабличные связи предоставляют сведения для структуры запросов;

• Межтабличные связи предоставляют сведения для структуры форм и отчетов;

• Межтабличные связи являются основой, с помощью которой можно обеспечить целостность данных.

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

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

• Связанные поля (первичный ключ главной таблицы и внешний ключ подчиненной таблицы) имеют один тип данных. Здесь существует исключение: поле счетчика может быть связано с числовым полем, свойство которого Размер поля (FieldSize) имеет значение Длинное целое.

• Обе таблицы принадлежат одной базе данных Microsoft Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта.

При установке целостности данных, необходимо помнить следующие правила:

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

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

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

Чтобы задать правила целостности данных для конкретной связи, при ее создании в Microsoft Office Access следует установить флажок

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

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

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

В Microsoft Access существует два инструмента, помогающих в усовершенствовании структуры баз данных:

• Мастер анализа таблиц может проанализировать структуру таблицы, предложить подходящие новые структуры и связи, а также разделить таблицу на новые связанные таблицы, если это имеет смысл.

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

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

В Microsoft Access есть несколько типов запросов:

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

2. Запросы с параметрами - это запрос, при выполнении отображающий в собственном диалоговом окне приглашение ввести данные, например условие для возвращения записей или значение, которое требуется вставить в поле. Можно разработать запрос, выводящий приглашение на ввод нескольких единиц данных, например двух дат. Затем Microsoft Access может вернуть все записи, приходящиеся на интервал времени между этими датами. Запросы с параметрами также удобно использовать в качестве основы для форм, отчетов и страниц доступа к данным.

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

4. Запросы на изменение - запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение.

4. 1. На удаление записи - удаляет группу записей из одной или

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

4. 2. На обновление записи - вносит общие изменения в группу записей одной или нескольких таблиц. Запрос на обновление записей позволяет изменять данные в существующих таблицах.

4. 3. На добавление записей - добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц.

4. 4. На создание таблицы - создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создании архивной таблицы, содержащей старые записи.

4. 5. На объединение - позволяет объединить данных из двух таблиц с аналогичными структурами.

Запросы можно создавать с помощью Мастера запросов (Query Wizard) или Конструктора запросов (Query Design).

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

1. Форма для ввода и модификации данных:

1. 1. Форма с одним элементом;

1. 2. Разделенная форма;

1. 3. Форма для нескольких элементов (ленточная форма);

1. 4. Составная форма (главная и подчиненная, с отношением «один-ко- многим»).

2. Сводная таблица (сводная диаграмма).

3. Форма навигации.

4. Пользовательское окно диалога.

 

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

• ДД. ММ. ГГГГ

• (___ )___ -____ доб. ____

Маска ввода может состоять из трех частей, которые разделены точкой с запятой. Первая часть является обязательной, а две остальные — необязательными. Пример маски ввода для телефонных номеров в формате США: (999) 000-0000; 0; -

Первая часть определяет строку маски и состоит из местозаполнителей и текстовых констант. Вторая часть указывает, следует ли сохранять знаки маски вместе с данными в базе данных. Введите 0, если в базе данных необходимо сохранить маску и данные. Введите 1, если необходимо сохранить только данные. Третья часть определяет местозаполнитель, который служит для обозначения позиции данных. По умолчанию в Access используется знак подчеркивания (_). Если нужно использовать другой знак, введите его в третью часть маски. По умолчанию позиция принимает только один знак или пробел.

 

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

Знак Использование
Цифра. В эту позицию обязательно следует ввести одну цифру.
Цифра. В эту позицию можно ввести одну цифру, но необязательно.
# В эту позицию следует ввести цифру, пробел либо знак плюса или минуса. Если пользователь пропускает эту позицию, вставляется пробел.
L Буква. В эту позицию обязательно следует ввести одну букву.
? Буква. В эту позицию можно ввести одну букву, но необязательно.
A Буква или цифра. В эту позицию обязательно следует ввести одну букву или цифру.
a Буква или цифра. В эту позицию можно ввести одну букву или цифру, но необязательно.
& Любой знак или пробел. В эту позицию обязательно следует ввести знак или пробел.
C Любой знак или пробел. В эту позицию можно ввести знак или пробел, но необязательно.
. , : ; - / Разделитель целой и дробной части, групп разрядов, значений дат и времени. Выбираемый знак зависит от региональных параметров Windows.
> Все последующие знаки отображаются в верхнем регистре.
< Все последующие знаки отображаются в нижнем регистре.
! Маска ввода заполняется слева направо, а не справа налево.
\ Отображение следующего знака, как он указан. Тот же результат получается при заключении знака в двойные кавычки.
" Текстовая константа" Любой текст, который должен видеть пользователь, заключается в двойные кавычки.
Пароль В режиме конструктора таблиц или форм можно задать для свойства Маска вводазначение Пароль; при этом создается поле для ввода пароля. Когда пользователь вводит пароль в это поле, введенные знаки сохраняются, но вместо них отображаются звездочки (*).

Примеры масок ввода

Примеры в таблице демонстрируют некоторые способы применения масок ввода.

Маска ввода Обеспечивает ввод значения в виде Примечания
(000) 000-0000 (206) 555-0199 В данном случае пользователи должны вводить междугородный код, так как в этой области маски (000 в скобках) используется местозаполнитель 0.
(999) 000-0000! (206) 555-0199 ( ) 555-0199 В этом случае в области междугородного кода используется местозаполнитель 9, поэтому междугородные коды необязательны. Кроме того, восклицательный знак (! ) обусловливает заполнение маски слева направо.
(000) AAA-AAAA (206) 555-ТЕЛЕ Предоставляется возможность заменить буквами четыре последних цифры телефонного номера в формате США. Обратите внимание на местозаполнитель 0 в области кода города, который делает междугородный код обязательным.
#999 -20 2000 Любое положительное или отрицательное число, включающее не более четырех знаков и не имеющее разделителей тысяч и дробной части.
> L???? L? 000L0 ЗЕЛЕНЫЙ339М3 МАЙ Р 452Б7 Сочетание обязательных (L) и необязательных (? ) букв и обязательных цифр (0). Знак «больше» требует вводить все буквы в верхнем регистре. Чтобы использовать маску ввода этого типа, необходимо задать для типа данных поля таблицы значение Текстовый или Поле МЕМО.
00000-9999 98115- 98115-3007 Обязательный почтовый индекс и необязательная область четырехзначного расширения.
> L<?????????????? Мария Вадим Имя или фамилия, первая буква которой автоматически вводится заглавной.
ISBN 0-& & & & & & & & & -0 ISBN 1-55615-507-7 Учетный номер книги с текстовой константой, обязательными первой и последней цифрами и произвольной комбинацией букв и знаков между ними.
> LL00000-0000 БД51392-0493 Сочетание обязательных букв и цифр, все в верхнем регистре. Данный тип маски ввода помогает, например, правильно вводить инвентарные номера или заполнять другие формы складского учета.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.