mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
Update homework-5-7.md
This commit is contained in:
parent
50839442f0
commit
6bd94a96af
@ -1,29 +1,29 @@
|
||||
# Задание к занятию "Файлы"
|
||||
# Задание к занятию «Файлы»
|
||||
|
||||
Результат выполнения всех двух задач вышлите одним файлом (.dt)
|
||||
Результат выполнения двух задач вышлите одним файлом (.dt).
|
||||
|
||||
## Задача 1 Создать обработку для загрузки цен из файла
|
||||
## Задача 1. Создать обработку для загрузки цен из файла
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создадим обработку для загрузки цен из файла CSV.
|
||||
|
||||
Обработка создает новый документ Цены номенклатуры, в табличной части заполняет данные из файла.
|
||||
Обработка создаёт новый документ «Цены номенклатуры», в табличной части заполняет данные из файла.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Выгрузка информационной базы (.dt), csv-файл содержащий список номенклатуры с ценами.
|
||||
Выгрузка информационной базы (.dt), CSV-файл, содержащий список номенклатуры с ценами.
|
||||
|
||||
Возможность выбора файла с фильтром *.CSV, обработка файла должна выполняться на клиенте.
|
||||
|
||||
В файле разделитель ";" между колонками
|
||||
В файле разделитель «;» между колонками.
|
||||
|
||||
Возможность загрузить и создать документ Цены номенклатуры.
|
||||
Возможность загрузить и создать документ «Цены номенклатуры».
|
||||
|
||||
Поиск номенклатуры по наименованию
|
||||
Поиск номенклатуры по наименованию.
|
||||
|
||||
Если не найдена, вывести сообщение вида
|
||||
"Номенклатура: " + НаименованиеНоменклатуры + " не найдена"
|
||||
«Номенклатура: « + НаименованиеНоменклатуры + » не найдена»
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
@ -34,9 +34,9 @@
|
||||
Тапочки;1000
|
||||
Хлеб;40
|
||||
|
||||
Создать новую обработку "Загрузка прайса из файла"
|
||||
Создать новую обработку «Загрузка прайса из файла».
|
||||
|
||||
Добавим команду Загрузить, вынесем в командную панель формы и назначим кнопкой по умолчанию
|
||||
Добавим команду «Загрузить», вынесём в командную панель формы и назначим кнопкой по умолчанию.
|
||||
Назначим обработчик команды со следующим алгоритмом:
|
||||
```bsl
|
||||
Режим = РежимДиалогаВыбораФайла.Открытие;
|
||||
@ -56,7 +56,7 @@
|
||||
|
||||
СоздатьДокумент(ДанныеФайла);
|
||||
```
|
||||
Так как в обработчике используется ключевое слово Ждать перед словом Процедура добавим **Асинх**
|
||||
Так как в обработчике используется ключевое слово «Ждать», перед словом «Процедура» добавим **Асинх**
|
||||
|
||||
Далее обработаем файл на клиенте и подготовим данные для создания документа:
|
||||
```bsl
|
||||
@ -98,14 +98,14 @@
|
||||
КонецФункции
|
||||
```
|
||||
|
||||
Теперь загрузим данные файла в ТЧ документа Цены номенклатуры
|
||||
Теперь загрузим данные файла в ТЧ документа «Цены номенклатуры».
|
||||
|
||||
Создам процедуру ЗагрузитьЦеныНоменклатуры(). Т.к. мы передаем только данные файла можно использовать директиву НаСервереБезКонтекста
|
||||
Создаём процедуру ЗагрузитьЦеныНоменклатуры(). Т.к. мы передаём только данные файла, можно использовать директиву НаСервереБезКонтекста:
|
||||
```bsl
|
||||
&НаСервереБезКонтекста
|
||||
Процедура СоздатьДокумент(ДанныеФайла)
|
||||
|
||||
// Создаем новый документ
|
||||
// Создаём новый документ
|
||||
ДокументЦены = Документы.УстановкаЦен.СоздатьДокумент();
|
||||
ДокументЦены.Дата = ТекущаяДата();
|
||||
|
||||
@ -137,25 +137,25 @@
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
## Задача 2 Развитие обработки для загрузки цен из файла
|
||||
## Задача 2. Развитие обработки для загрузки цен из файла
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Если при загрузке файла высняется, что хотя бы одной номенклатуры нет в базе задайте вопрос пользователю с текстом "Не все номенклатурные позиции из файла существуют в справочнике. Продолжить создание документа?" и вариантами ответа "Да" и "Нет".
|
||||
Если при загрузке файла выясняется, что хотя бы одной номенклатуры нет в базе, задайте вопрос пользователю с текстом «Не все номенклатурные позиции из файла существуют в справочнике. Продолжить создание документа?» и вариантами ответа «Да» и «Нет».
|
||||
|
||||
При ответе "Да" - записывать документа.
|
||||
При ответе «Да» — записывать документ.
|
||||
|
||||
При ответе "Нет" - приостанавливать работу алгоритма.
|
||||
При ответе «Нет» — приостанавливать работу алгоритма.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Выгрузка информационной базы (.dt) из Задачи 1, в которой реализован вопрос пользователю.
|
||||
Выгрузка информационной базы (.dt) из задачи 1, в которой реализован вопрос пользователю.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
Разбейте процедуру СоздатьДокумент() на 2 отдельных метода.
|
||||
Разбейте процедуру СоздатьДокумент() на два отдельных метода.
|
||||
|
||||
Первый метод сделайте функцией, которая будет возвращать информацию есть ли ненайденная номенклатура (Истина или Ложь).
|
||||
Первый метод сделайте функцией, которая будет возвращать информацию о том, есть ли ненайденная номенклатура: «Истина» или «Ложь».
|
||||
Одновременно с проверкой дополните данные файла ссылкой на номенклатуру:
|
||||
```bsl
|
||||
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(ДанныеСтроки.НаименованиеНоменклатуры);
|
||||
@ -175,10 +175,10 @@
|
||||
КонецЕсли;
|
||||
```
|
||||
|
||||
Если функция вернула Ложь, то задайте вопрос пользователю с помощью функции **ВопросАсинх**. В противном случае сразу сохраните документ.
|
||||
Если функция вернула «Ложь», то задайте вопрос пользователю с помощью функции **ВопросАсинх**. В противном случае сразу сохраните документ.
|
||||
|
||||
Если пользователь ответил "Да", то сохраните документ, вызвав второй метод.
|
||||
Если пользователь ответил «Да», то сохраните документ, вызвав второй метод.
|
||||
|
||||
Для заполнения документа используйте уже ранее полученные и сохраненные в данных файла ссылки на номенклатуру. Если номенклатура для какой-то строки не заполнена, то такая строка не должна создаваться в документе (не должно быть строк с пустой номенклатурой).
|
||||
Для заполнения документа используйте уже ранее полученные и сохранённые в данных файла ссылки на номенклатуру. Если номенклатура для какой-то строки не заполнена, то такая строка не должна создаваться в документе. Не должно быть строк с пустой номенклатурой.
|
||||
|
||||
### Подсказка: [результат выполнения домашнего задания](Examples/homework-5-7-example.md)
|
||||
### Подсказка: [результат выполнения домашнего задания](Examples/homework-5-7-example.md).
|
||||
|
Loading…
Reference in New Issue
Block a user