Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебники 80235

.pdf
Скачиваний:
5
Добавлен:
01.05.2022
Размер:
1.32 Mб
Скачать

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

Рис. 27. Отчет «Анализ сбыта»

Проверить правильность получения данных всех отчетов.

ЛАБОРАТОРНАЯ РАБОТА № 9 ЭКСПОРТ-ИМПОРТ ДАННЫХ

1. ЦЕЛЬ РАБОТЫ

Изучение механизмов осуществления переноса данных из одной программы в другую.

39

2. КОММЕНТАРИИ ПО ВЫПОЛНЕНИЮ РАБОТЫ

Для работы с файлами в системе используются специальные процедуры и функции, можно сказать предопределенные платформой. Также можно воспользоваться специальным объектом «Файл», который предназначен для доступа к параметрам файлов или каталогов.

При работе с файлами дополнительно можно использовать следующие процедуры:

1.КопироватьФайл(<ИмяФайлаИсточника>,

<ИмяФайлаПриемника>) – копирует файл-источник в файлприемник;

2. УдалитьФайлы(<Путь>, <Маска>) – если <Маска> не указана, то удаляются все файлы и каталог <Путь> др.

Использование текстовых файлов для переноса данных

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

Работу с текстом условно можно поделить на две части: чтение текста и запись текста.

При работе с объектом типа "ЧтениеТекста" используются функции:

1.Открыть(<ИмяФайла>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>, <МонопольныйРежим>) – открывает (монопольно) текстовый файл для чтения. Обязательным является только первый параметр, остальные можно не заполнять;

2.Закрыть() – закрывает открытый текстовый файл;

3.Прочитать(<РазмерСтроки>) – считывает строку произвольной длины. Параметр «РазмерСтроки» необязательный, если он не указан, то файл читается до конца;

40

4. ПрочитатьСтроку(<Разделитель>) – считывает строку текста, ограниченную разделителем. Параметр «Разделитель» необязательный, если он не указан, то совпадает со стандартным переносом строки.

При работе с объектом типа "ЗаписьТекста" используются функции:

1.Открыть(<ИмяФайла>, <Кодировка>, <РазделительСтрок>, <Дописывать>, <КонвертируемыйРазделительСтрок>) – открывает (монопольно) текстовый файл для записи. Обязательным является только первый параметр;

2.Закрыть() – закрывает открытый текстовый файл;

3.Записать(<Строка>) – записывает строку текста в файл, разделитель за записываемой строкой не ставиться;

4.ЗаписатьСтроку(<Строка>, <Разделитель>) – записывает строку текста в файл, в конце строки записывается разделитель. Параметр «Разделитель» не обязательный, если его не указывать, то проставляется по умолчанию перенос строки.

Листинг 5. Процедура выгрузки справочника товаров в текстовый файл.

&НаКлиенте Процедура Выгрузить(Команда)

ВыгрузитьТоварыНаСервере();

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

&НаСервере Процедура ВыгрузитьТоварыНаСервере()

//Получаем данные для записи Запрос = Новый Запрос; Запрос.Текст =

"ВЫБРАТЬ

|

Товары.Код,

|

Товары.Наименование,

|

Товары.Артикул,

41

|

Товары.ЕдиницаИзмерения,

|

Товары.ЦенаЗакупочная,

|

Товары.ЦенаОптовая,

|

Товары.СтавкаНДС

|ИЗ

 

|

Справочник.Товары КАК Товары

|ГДЕ

 

|

Товары.ПометкаУдаления = ЛОЖЬ

|

И Товары.ЭтоГруппа = ЛОЖЬ";

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДанных = РезультатЗапроса.Выбрать();

//Создаем файл Текст = Новый ТекстовыйДокумент();

Пока ВыборкаДанных.Следующий() Цикл

Строка = ВыборкаДанных.Код + " -- " + ВыборкаДанных.Наименование + " -- " +

ВыборкаДанных.Артикул + " -- " + ВыборкаДанных.ЕдиницаИзмерения + " -- " +

ВыборкаДанных.ЦенаЗакупочная + " -- " + ВыборкаДанных.ЦенаОптовая + " -- " +

ВыборкаДанных.СтавкаНДС; Текст.ДобавитьСтроку(Строка);

КонецЦикла;

Текст.Записать("D:\Exp_imp.txt");

Сообщить("Справочник товаров выгружен в файл D:\Exp_imp.txt");

КонецПроцедуры // ВыгрузитьТоварыНаСервере()

Результат работы:

000000001 --

Овощи --

-- кг --

0 --

0 --

18%

000000002 --

Фрукты --

-- кг --

0 --

0 --

Без НДС

Замечание. «ЕдиницаИзмерения» – элемент справочника ЕдиницыИзмерения, и «СтавкаНДС» - элемент справочника «СтавкиНДС». При импорте пользоваться наименованиями справочников – не корректно, т.к. наименования могут быть не уникальными. Поэтому

42

необходимо переписать процедуру экспорта таким образом, чтобы выгружались коды справочников:

Спр.ЕдиницаИзмерения.Код; Спр.СтавкаНДС.Код;

Листинг 6. Загрузка справочника из текстового файла:

&НаКлиенте Процедура Загрузить(Команда)

ЗагрузитьДанныеНаСервере(); КонецПроцедуры

&НаСервере Процедура ЗагрузитьДанныеНаСервере()

Текст = Новый ТекстовыйДокумент;

Текст.Прочитать("D:\Exp_imp.txt");

Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл

Строка = Текст.ПолучитьСтроку(НомерСтроки); МасДанных = РазложитьСтрокуВМассивПодстрок(Строка, "

-- ");

Товары = Справочники.Товары.НайтиПоКоду(СокрЛП(МасДанных[0]));

Если НЕ ЗначениеЗаполнено(Товары) Тогда СоздатьТовар(МасДанных);

Иначе

Сообщить("Товар - " + МасДанных[1] + " в базе уже

существует");

КонецЕсли;

КонецЦикла;

КонецПроцедуры // ЗагрузитьДанныеНаСервере()

&НаСервере Процедура СоздатьТовар(МасДанных)

Товар = Справочники.Товары.СоздатьЭлемент(); Товар.Код = СокрЛП(МасДанных[0]); Товар.Наименование = СокрЛП(МасДанных[1]); Товар.Артикул = СокрЛП(МасДанных[2]); Товар.ЦенаЗакупочная = СокрЛП(МасДанных[4]); Товар.ЦенаОптовая = СокрЛП(МасДанных[5]);

43

//Единицы измерения ЕдИзм =

Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СокрЛП(МасДанн ых[3]), Истина);

Если НЕ ЗначениеЗаполнено(ЕдИзм) Тогда Ед = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();

Ед.Наименование = СокрЛП(МасДанных[3]); Ед.Записать(); ЕдИзм = Ед.Ссылка;

КонецЕсли; Товар.ЕдиницаИзмерения = ЕдИзм;

//Ставка НДС НДС =

Справочники.СтавкиНДС.НайтиПоНаименованию(СокрЛП(МасДанных[6]), Истина);

Если НЕ ЗначениеЗаполнено(НДС) Тогда Ставка = Справочники.СтавкиНДС.СоздатьЭлемент();

Ставка.Наименование = СокрЛП(МасДанных[6]); Ставка.Записать(); НДС = Ставка.Ссылка;

КонецЕсли; Товар.СтавкаНДС = НДС;

Товар.Записать();

Сообщить("Товар " + Товар.Ссылка + " добавлен в базу");

КонецПроцедуры // СоздатьТовар()

&НаСервере Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт

МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда

Стр = СокрЛП(Стр); Пока Истина Цикл

Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда

МассивСтрок.Добавить(Стр); Возврат МассивСтрок;

КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз));

КонецЦикла;

44

Иначе

ДлинаРазделителя = СтрДлина(Разделитель); Пока Истина Цикл

Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда

МассивСтрок.Добавить(Стр); Возврат МассивСтрок;

КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя);

КонецЦикла; КонецЕсли;

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

3. СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

2.Написать процедуру загрузки справочника сотрудников из текстового файла.

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

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

5.Написать процедуру загрузки справочника должностей из текстового файла.

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

7.Написать процедуру выгрузки справочника сотрудников и справочника складов в текстовый файл. В

45

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

8.Написать процедуру загрузки справочника контрагентов в текстовый файл.

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

10.Написать процедуру выгрузки справочника должностей из текстового файла.

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

12.Написать процедуру выгрузки справочника сотрудников в текстовый файл. В текстовом файле должны

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

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

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

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

46

ЛАБОРАТОРНАЯ РАБОТА № 10 ОПРЕДЕЛЕНИЕ РОЛИ ПОЛЬЗОВАТЕЛЯ

1. ЦЕЛЬ РАБОТЫ

Целью данной лабораторной работы изучение возможностей администрирования в среде 1С.

2. КОММЕНТАРИИ ПО ВЫПОЛНЕНИЮ РАБОТЫ

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

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

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

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

Пользовательским интерфейсом в системе

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

47

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

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

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

3. СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Подсистемы. Для удобства работы пользователей и дальнейшего распределения ролей используется механизм подсистем (в 1С появился с версии 8.2).

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

48

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]