init
This commit is contained in:
commit
d9254a0a76
4
push.sh
Executable file
4
push.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
git add .
|
||||||
|
git commit -m "update"
|
||||||
|
git reset $(git commit-tree "HEAD^{tree}" -m "init")
|
||||||
|
git push origin master -f
|
644
readme.md
Normal file
644
readme.md
Normal file
@ -0,0 +1,644 @@
|
|||||||
|
---
|
||||||
|
gitea: none
|
||||||
|
include_toc: true
|
||||||
|
---
|
||||||
|
|
||||||
|
Данный материал является заметками которые я делаю чтобы запомнить как решать задачи. Для конкретной ситуации нужно делать по заданию.
|
||||||
|
|
||||||
|
# Задания
|
||||||
|
|
||||||
|
## 1 смена
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Сформировать алгоритм подсистемы для работы с материалом на складе. Разработать алгоритм функции расчета требуемого количества материала исходя из продукции, в производстве которой используется указанный материал.
|
||||||
|
|
||||||
|
Требуемое количество материала рассчитывается на основании данных об использовании указанного материала при изготовлении продукции: суммируется необходимое количество материала, используемого в производстве различных продуктов.
|
||||||
|
|
||||||
|
Требуемое количество материала может включать два знака после запятой.
|
||||||
|
|
||||||
|
### Пример
|
||||||
|
|
||||||
|
"Требуемое количество" - (наверное) Сумма количества материала используемого в каждом продукте
|
||||||
|
|
||||||
|
В `Справочник` "Продукция" добавить `Табличная часть` "Материалы" с реквезитами "Материал" и "Количество".
|
||||||
|
|
||||||
|
В `Справочник` "Материалы" добавить `Форма` `Форма списка справочника`
|
||||||
|
|
||||||
|
- Далее в произвольном запросе нужно выбрать `Справочник` "Продажи" -> "Материалы" -> Количество
|
||||||
|
- В конструкторе запроса открыть вкладку `Группировка`
|
||||||
|
- "Количество" выбрать в `Суммируемое поле` с функцией сумма
|
||||||
|
- ok, нарисовать форму по требованию
|
||||||
|
|
||||||
|
### Оценка
|
||||||
|
|
||||||
|
Импортирование данных. Создание скрипта БД
|
||||||
|
- 0 - Данные объектов не загружены
|
||||||
|
- 1 - Часть данных объектов загружена верно и в правильном формате
|
||||||
|
- 2 - Все данные объектов загружены верно и в правильном формате
|
||||||
|
|
||||||
|
|
||||||
|
## 2 смена
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Сформировать алгоритм подсистемы для работы с продукцией компании. Разработать алгоритм функции расчета стоимости продукции исходя из используемых материалов.
|
||||||
|
|
||||||
|
Стоимость продукта должна быть рассчитана исходя из используемых материалов.
|
||||||
|
|
||||||
|
Стоимость продукта записывается с точностью до сотых, и не может быть отрицательной.
|
||||||
|
|
||||||
|
### Оценка
|
||||||
|
|
||||||
|
Использование комментариев по коду:
|
||||||
|
- 0 - Комментарии отсутствуют
|
||||||
|
- 1 - Комментарии дают минимальное понимание кода
|
||||||
|
- 2 - Комментарии дают полное и очевидное понимание кода
|
||||||
|
|
||||||
|
|
||||||
|
# Справочник
|
||||||
|
|
||||||
|
## Нарисовать форму для элементов
|
||||||
|
|
||||||
|
Нужно:
|
||||||
|
- `Справочник`: "Партнеты", "Товары"
|
||||||
|
- `Документ`: "УстановкаЦенТоваров" (Партнер, Товар, Цена)
|
||||||
|
- `Регистр сведений`: "ЦеныТоваров" (Партнер, Товар, Цена)
|
||||||
|
|
||||||
|
"УстановкаЦенТоваров" связать с "ЦеныТоваров"
|
||||||
|
|
||||||
|
В `Справочник` "Партнеты":
|
||||||
|
|
||||||
|
Справочник -> `Формы` -> `Форма списка справочника`
|
||||||
|
|
||||||
|
Список(на форме, с права) в свойствах -> `Произвольный запрос`, галочку поставить -> `Настройка списка` открыть
|
||||||
|
|
||||||
|
Настроить расчет скидки из регистра в `Конструктор запроса`
|
||||||
|
|
||||||
|
Указать основную таблицу из которой изначально выбераем, например справочник "Партнеры" а не регистр
|
||||||
|
|
||||||
|
Если сразу запрос сделать весь нажать ок он закроет запрос этот и в `Основная таблица` выберет регистр, надо будет снова открыть и выбрать справочник
|
||||||
|
|
||||||
|
Разделитель добавить в запрос:
|
||||||
|
`Список` -> `Настройка списка` -> `Вычисляемые поля` добавить "Разделитель"(без кавычек), `Выражение` "|"(с кавычками)
|
||||||
|
|
||||||
|
Для вычесления скидки добавить в запрос:
|
||||||
|
```1с
|
||||||
|
ВЫБОР
|
||||||
|
КОГДА ПродажиОбороты.СуммаОборот > 300000 ТОГДА 15
|
||||||
|
КОГДА ПродажиОбороты.СуммаОборот > 50000 ТОГДА 10
|
||||||
|
КОГДА ПродажиОбороты.СуммаОборот > 50000 ТОГДА 5
|
||||||
|
ИНАЧЕ 0
|
||||||
|
КОНЕЦ КАК Скида
|
||||||
|
```
|
||||||
|
|
||||||
|
Нарисовать нужную форму с помощью "Группа - Группа колонок"
|
||||||
|
|
||||||
|
В реквезитах Рейтинг и Скидка -> `Формат` -> `Представление нуля`, галочку поставить
|
||||||
|
Также в формате для Скидки поставить %, для Рейтинга написать "Рейтинг : Ч"
|
||||||
|
У Рейтинг сделать `ГоризонтальноеПоложение` левто
|
||||||
|
|
||||||
|
Форма -> `Шапка` убрать галочку
|
||||||
|
|
||||||
|
|
||||||
|
# Импорт файлов
|
||||||
|
|
||||||
|
`Обработки` -> Добавить "ИмпортФайловЭксель"
|
||||||
|
|
||||||
|
Добавить форму
|
||||||
|
|
||||||
|
На форме добавить в `Команды` фкнкцию для нужного файла например "ИмпортТоваров", перетащить ее на форму
|
||||||
|
|
||||||
|
В команде написать код:
|
||||||
|
|
||||||
|
## 1 вариант
|
||||||
|
|
||||||
|
В данном случае надо сделать 1 функцию "ПолучитьПутьКФайлу", и к каждому типу файла который надо импортировать надо делть 2 функции.
|
||||||
|
|
||||||
|
Если надо импортировать 5 файлов то это будет 5 * 2 = 10 + 1
|
||||||
|
|
||||||
|
```1с
|
||||||
|
&НаКлиенте
|
||||||
|
Асинх Функция ПолучитьПутьКФайлу()
|
||||||
|
Режим = РежимДиалогаВыбораФайла.Открытие;
|
||||||
|
Диалог = Новый ДиалогВыбораФайла(Режим);
|
||||||
|
Диалог.Фильтр = "Табличный Документ(*.xlsx)|.xlsx";
|
||||||
|
ВыбранныеФайлы = Ждать Диалог.ВыбратьАсинх();
|
||||||
|
|
||||||
|
Если ВыбранныеФайлы <> Неопределено Тогда
|
||||||
|
Возврат ВыбранныеФайлы[0];
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ВызыватьИсключение "Файл не выбран";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ЗагрузитьТоварыНаСервере(ПутьКФайлу)
|
||||||
|
Тд = Новый ТабличныйДокумент;
|
||||||
|
Тд.Прочитать(ПутьКФайлу);
|
||||||
|
|
||||||
|
Для Сч = 2 по Тд.ВысотаТаблицы Цикл
|
||||||
|
ТоварНазвание = Тд.Облать(Сч, 1, Сч, 1).Текст;
|
||||||
|
|
||||||
|
ТоварЦена = Тд.Облать(Сч, 2, Сч, 2).Текст;
|
||||||
|
ТоварЦена = Число(ТоварЦена);
|
||||||
|
|
||||||
|
Товар = Справочники.Товары.СоздатьЭлемент();
|
||||||
|
|
||||||
|
// Если товара нету в справочнике, добавить его
|
||||||
|
Если Справочники.Товары.НайтиПоНаименованию(ТоварНазвание) = Справочники.Товары.ПустаяСсылка() Тогда
|
||||||
|
Товар.Наименование = ТоварНазвание;
|
||||||
|
Товар.Запись();
|
||||||
|
Иначе
|
||||||
|
Товар = Справочники.Товары.НайтиПоНаименованию(ТоварНазвание);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НовыйТоварДокументЦена = Документы.УстановкаЦен.СоздатьДокумент();
|
||||||
|
НовыйТоварДокументЦена.Дата = ТекущаяДата();
|
||||||
|
НовыйТоварДокументЦена.Товар = Товар.Ссылка;
|
||||||
|
НовыйТоварДокументЦена.Цена = ТоварЦена;
|
||||||
|
НовыйТоварДокументЦена.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Сообщить("Данные загружены");
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Асинх Процедура ЗагрузитьТовары(Команда)
|
||||||
|
ПутьКФайлу = Ждать ПолучитьПутьКФайлу();
|
||||||
|
ЗагрузитьТоварыНаСервере(ПутьКФайлу);
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2 вариант
|
||||||
|
|
||||||
|
Тут надо создать 3 функции "ПолучитьПутьКФайлу", "ЗагрузкаДанныхНаСервере", "ЗагрузкаДанных"
|
||||||
|
|
||||||
|
Если надо импортировать 5 файлов то это будет 3 + 5 = 8
|
||||||
|
|
||||||
|
```1с
|
||||||
|
&НаКлиенте
|
||||||
|
Асинх Функция ПолучитьПутьКФайлу()
|
||||||
|
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
|
||||||
|
ВыбранныеФайлы = Ждать Диалог.ВыбратьАсинх();
|
||||||
|
|
||||||
|
Если ВыбранныеФайлы <> Неопределено Тогда
|
||||||
|
Возврат ВыбранныеФайлы[0];
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ВызватьИсключение "Файл не выбран";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ЗагрузкаДанныхНаСервере(ПутьКФайлу, Имя)
|
||||||
|
Тд = Новый ТабличныйДокумент;
|
||||||
|
Тд.Прочитать(ПутьКФайлу);
|
||||||
|
Для Сч = 2 по Тд.ВысотаТаблицы Цикл
|
||||||
|
Выполнить (Имя + "НаСервере(Тд, Сч)");
|
||||||
|
КонецЦикла;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Асинх Процедура ЗагрузкаДанных(Команда)
|
||||||
|
ПутьКФайлу = Ждать ПолучитьПутьКФайлу();
|
||||||
|
ЗагрузкаДанныхНаСервере(ПутьКФайлу, Команда.Имя);
|
||||||
|
Сообщить("Данные Загружены");
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ИмпортТиповМатериаловНаСервере(Тд, Сч)
|
||||||
|
ТипНазвание = Тд.Область(Сч, 1, Сч, 1).Текст;
|
||||||
|
|
||||||
|
ТипКоэфицент = Тд.Область(Сч, 2, Сч, 2).Текст;
|
||||||
|
|
||||||
|
// если "%" есть
|
||||||
|
ТипКоэфицент = Число(Сред(ТипКоэфицент, 1, СтрДлина(ТипКоэфицент)-1));
|
||||||
|
|
||||||
|
// если нету "%"
|
||||||
|
ТипКоэфицент = Число(ТипКоэфицент);
|
||||||
|
|
||||||
|
ТипМатериала = Справочники.ТипМатериала.НайтиПоНаименованию(ТипНазвание);
|
||||||
|
|
||||||
|
Если ТипМатериала = Справочники.ТипМатериала.ПустаяСсылка() Тогда
|
||||||
|
ТипМатериала = Справочники.ТипМатериала.СоздатьЭлемент();
|
||||||
|
ТипМатериала.Наименование = ТипНазвание;
|
||||||
|
Иначе
|
||||||
|
Возврат
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТипМатериала.ПроцентБрака = ТипКоэфицент;
|
||||||
|
ТипМатериала.Записать();
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ИмпортПартнеровНаСервере(Тд, Сч)
|
||||||
|
ПартнерТип = Тд.Область(Сч, 1, Сч, 1).Текст;
|
||||||
|
ПартнерНаименование = Тд.Область(Сч, 2, Сч, 2).Текст;
|
||||||
|
|
||||||
|
Партнер = Справочники.Партнеры.НайтиПоНаименованию(ПартнерНаименование);
|
||||||
|
|
||||||
|
Если Партнер = Справочники.Партнеры.ПустаяСсылка() Тогда
|
||||||
|
Партнер = Справочники.Партнеры.СоздатьЭлемент();
|
||||||
|
Иначе
|
||||||
|
Возврат
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
|
||||||
|
ТипПартнера = Справочники.ТипПартнера.НайтиПоНаименованию(ПартнерТип);
|
||||||
|
|
||||||
|
Если ТипПартнера = Справочники.ТипПартнера.ПустаяСсылка() Тогда
|
||||||
|
ТипПартнера = Справочники.ТипПартнера.СоздатьЭлемент();
|
||||||
|
ТипПартнера.Наименование = ПартнерТип;
|
||||||
|
ТипПартнера.Записать();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Партнер.Наименование = ПартнерНаименование;
|
||||||
|
Партнер.Тип = ТипПартнера.Ссылка;
|
||||||
|
Партнер.ФИОДиректора = Тд.Область(Сч, 3, Сч, 3).Текст;
|
||||||
|
Партнер.Почта = Тд.Область(Сч, 4, Сч, 4).Текст;
|
||||||
|
|
||||||
|
// 1 вариант
|
||||||
|
// если нету маски на поле
|
||||||
|
Партнер.Телефон = Тд.Область(Сч, 5, Сч, 5).Текст
|
||||||
|
|
||||||
|
// 2 вариант
|
||||||
|
// сделать если есть маска на поле
|
||||||
|
ТелРаздельно = СтрРазделить(Тд.Область(Сч, 5, Сч, 5).Текст, " ", Ложь);
|
||||||
|
// шаблон делать под маску
|
||||||
|
Партнер.Телефон = СтрШаблон("+7 %1 %2 %3 %4", ТелРаздельно[0], ТелРаздельно[1], ТелРаздельно[2], ТелРаздельно[3]);
|
||||||
|
|
||||||
|
Партнер.ЮредическийАдрес = Тд.Область(Сч, 6, Сч, 6).Текст;
|
||||||
|
Партнер.Инн = Тд.Область(Сч, 7, Сч, 7).Текст;
|
||||||
|
Партнер.Рейтинг = Число(Тд.Область(Сч, 8, Сч, 8).Текст);
|
||||||
|
|
||||||
|
Партнер.Записать();
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Документ
|
||||||
|
|
||||||
|
## Установка цены товара в табличной части
|
||||||
|
|
||||||
|
Цену товара можно устанавливать в документе например "УстановкаЦен" чтобы он сам заносил его в регистр сведений
|
||||||
|
|
||||||
|
Для подстановки цены товара надо для "Товара" и "Количество" добавить функции `ПриИзменении`:
|
||||||
|
|
||||||
|
```1с
|
||||||
|
&НаКлиенте
|
||||||
|
Функция ЦенаТовара(Товар)
|
||||||
|
// 1 вариант
|
||||||
|
Отбор = Новый Структура("Товар", Товар);
|
||||||
|
Запись = РегистрыСведений.ЦеныПродукции.ПолучитьПоследнее(Объект.Дата, Отбор);
|
||||||
|
Возврат ?(Запись.Цена, Запись.Цена, 0)
|
||||||
|
|
||||||
|
// 2 вариант
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ
|
||||||
|
| ЦеныПродукцииСрезПоследних.Цена как Цена
|
||||||
|
| Из
|
||||||
|
| РегистрСведений.ЦеныПродукции.СрезПоследних(&Дата, Товар = &Товар) КАК ЦеныПродукцииСрезПоследних";
|
||||||
|
Запрос.УстановитьПараметр("Дата", Объект.Дата);
|
||||||
|
Запрос.УстановитьПараметр("Товар", Товар);
|
||||||
|
Выборка = Запрос.Выполнить();
|
||||||
|
Результат = Выборка.Выбрать();
|
||||||
|
Возврат ?(Выборка.Следующий(), Выбор.Цена, 0);
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ТоварыТоварПриИзменении(Элемент)
|
||||||
|
Строка = Элементы.Товары.ТекущиеДанные;
|
||||||
|
Строка.Сумма = Строка.Количество * Строка.Цена
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ТоварыКоличествоПриИзменении(Элемент)
|
||||||
|
Строка = Элементы.Товары.ТекущиеДанные;
|
||||||
|
Строка.Цена = ЦенаТовара(Строка.Товар);
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Фото
|
||||||
|
|
||||||
|
Сделать справочник "Фото"
|
||||||
|
|
||||||
|
Добавить реквезит "Значение" тип `ХранилищеЗначения`
|
||||||
|
|
||||||
|
Добавить форму:
|
||||||
|
- `Наименование` -> `ТолькоПросмотр` -> поставить галочку
|
||||||
|
- В `Реквезиты` на форме добавить "Значение"
|
||||||
|
- На форме добавить функции `ПриЧтенииНаСервере`, `ПередЗаписьюНаСервере`:
|
||||||
|
- В `Команды` добваить "ЗагрузитьФото", "СкачатьФото", помесить их в группу с наименованием
|
||||||
|
|
||||||
|
Добавить новое поле на форму:
|
||||||
|
- `Имя` -> "Фото"
|
||||||
|
- `Заголовок` -> "Превью"
|
||||||
|
- `ПутьКданным` -> "Значение"
|
||||||
|
- `Вид` -> `Поле картинки`
|
||||||
|
- `РазмерКартинки` -> `Пропорционально`
|
||||||
|
|
||||||
|
Написать код для функций:
|
||||||
|
|
||||||
|
```1с
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||||
|
Данные = ТекущийОбъект.Значение.Получить();
|
||||||
|
Значение = ПоместитьВоВременноеХранилище(Данные, УникальныйИдентификатор);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
|
||||||
|
Если ЭтоАдресВременногоХранилища(Значение) Тогда
|
||||||
|
Данные = ПолучитьИзВременногоХранилища(Значение);
|
||||||
|
ТекущийОбъект.Значение = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных(9));
|
||||||
|
Иначе
|
||||||
|
Отказ = Истина;
|
||||||
|
Сообщить("Файл не выбран");
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура СкачатьФото(Команда)
|
||||||
|
ПараметрыДиалога = Новый ПараметрыДиалогаПолученияФайлов("Сохраните файл");
|
||||||
|
НачатьПолучениеФайлаССервера(Значение, Объект.Наименование, ПараметрыДиалога);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Асинх Процедура ЗагрузитьФото(Команда)
|
||||||
|
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов("Загрузка фото");
|
||||||
|
//ПараметрыДиалога.Фильтр = "Картинка(*.png;*.jpg;*.jpeg)|*.png;*.jpg;*.jpeg";
|
||||||
|
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,, ПараметрыДиалога, УникальныйИдентификатор);
|
||||||
|
|
||||||
|
Если ОписаниеФайла <> Неопределено Тогда
|
||||||
|
Значение = ОписаниеФайла.Адрес;
|
||||||
|
Файл = ОписаниеФайла.СсылкаНаФайл;
|
||||||
|
Объект.Наименование = Файл.Имя;
|
||||||
|
Иначе
|
||||||
|
Сообщить("файл не выбран");
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Свойства программы
|
||||||
|
|
||||||
|
Конфигурация -> `Имя` "Мастер пол"
|
||||||
|
|
||||||
|
Конфигурация -> `Заставка` Выбрать фото
|
||||||
|
|
||||||
|
Конфигурация -> `Логотип` Выбрать фото
|
||||||
|
|
||||||
|
|
||||||
|
# Подсистемы
|
||||||
|
|
||||||
|
Добавить в главную подсистему чтобы небыло пусто:
|
||||||
|
|
||||||
|
Конфигурация -> Открыть командный интерфейс основного раздела
|
||||||
|
|
||||||
|
Добавить все справочники, документы, отчеты и тд кроме регистров
|
||||||
|
|
||||||
|
|
||||||
|
# Цвета Интерфейса
|
||||||
|
|
||||||
|
Общее -> Добавить стиль
|
||||||
|
|
||||||
|
Конфигурация -> Основной стиль -> выбрать стиль
|
||||||
|
|
||||||
|
|
||||||
|
# Пользователи и Роли
|
||||||
|
|
||||||
|
Роль -> добавить "админ", действия -> Установить все права
|
||||||
|
|
||||||
|
Администрирование -> Пользователи -> Добавить
|
||||||
|
|
||||||
|
|
||||||
|
# Регистры
|
||||||
|
|
||||||
|
## Сведений
|
||||||
|
|
||||||
|
Использовать для изменения свойтва объекта, например цена товара обновляется каждый день
|
||||||
|
|
||||||
|
## Накопления
|
||||||
|
|
||||||
|
Использовать для расчета общей суммы по параметрам
|
||||||
|
|
||||||
|
Например:
|
||||||
|
- Измерения - Партнер, Товар
|
||||||
|
- Ресурсы - Цена, Колличество, Сумма
|
||||||
|
|
||||||
|
# Отчет
|
||||||
|
|
||||||
|
Схема компоновки данных:
|
||||||
|
- В конструкторе запроса выбрать только нужные поля, остальные вкладки не трогать
|
||||||
|
- Ресурсы: можно выбрать поля для вычесления например Сумма, Колличество, Мин, Макс и тд
|
||||||
|
- Настройки: Добавить групировку, в нее добавить нужные для отображения поля
|
||||||
|
|
||||||
|
|
||||||
|
# Инвентаризация
|
||||||
|
|
||||||
|
документ: инвентаризация
|
||||||
|
Таблица
|
||||||
|
Товар УчетноеКолличество ФактическоеКоличество Отколнение= ФактическоеКоличество - УчетноеКолличество
|
||||||
|
УчетноеКолличество из РегистрНакопления: остатки или 0
|
||||||
|
Заполняет только ФактическоеКоличество
|
||||||
|
|
||||||
|
документы: Списание
|
||||||
|
Таблица
|
||||||
|
Товар Количество=Отколнение
|
||||||
|
Добавить если ФактическоеКоличество < УчетноеКолличество
|
||||||
|
|
||||||
|
документы: Приход
|
||||||
|
Таблица
|
||||||
|
Товар Количество=Отколнение
|
||||||
|
Добавить если ФактическоеКоличество > УчетноеКолличество
|
||||||
|
|
||||||
|
регистр накопления: остатки
|
||||||
|
|
||||||
|
|
||||||
|
# Оформление проекта
|
||||||
|
|
||||||
|
Администриование -> Выгрузить информационную базу (как .dt)
|
||||||
|
|
||||||
|
## ERD
|
||||||
|
|
||||||
|
Ссылка как primary key
|
||||||
|
|
||||||
|
Свойства из реквезитов переписать с их типами
|
||||||
|
|
||||||
|
Табличные части делать как отдельная таблица многие ко многим
|
||||||
|
|
||||||
|
Нужно показать:
|
||||||
|
- Справочники
|
||||||
|
- Документы
|
||||||
|
- Перечесление
|
||||||
|
|
||||||
|
## readme:
|
||||||
|
|
||||||
|
Описание какую систему сделал зачем:
|
||||||
|
|
||||||
|
Данная система сделана для организации "Мастер пол" для учета партнеров, продаж, материалов ....
|
||||||
|
|
||||||
|
Данная система сделана в 1с, нужно создать новую конфигурацию, загрузить ее через `Администрирование` -> `Загрузить информационную базу` -> выбрать файл "<ИмяФайла>.dt"
|
||||||
|
|
||||||
|
Далее необходимо запустить конфигурацию
|
||||||
|
|
||||||
|
## git
|
||||||
|
|
||||||
|
Если попросят загрузить проект на git репозиторий, для этого нужно открыть терминал в папке проекта, выполнить команды:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git init
|
||||||
|
git add .
|
||||||
|
git commit -m "init"
|
||||||
|
git remote add origin <link>
|
||||||
|
|
||||||
|
# Если нужен логин пароль
|
||||||
|
git remote add origin https://<user>:<password>@<link>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Вопросы
|
||||||
|
|
||||||
|
- Разные варианты будут или один
|
||||||
|
|
||||||
|
- Как будут оценивать
|
||||||
|
|
||||||
|
- Сколько модулей, 3 или 4
|
||||||
|
|
||||||
|
- Что будет в 4 модуле
|
||||||
|
|
||||||
|
- Какие задания будут
|
||||||
|
- Фото
|
||||||
|
- Импорт файлов
|
||||||
|
- Открытие дверей
|
||||||
|
- Доступ сотрудников
|
||||||
|
- Менеджер составляет заявки
|
||||||
|
- Резервирование материалов
|
||||||
|
|
||||||
|
- Надо ли делать импорт файлов как функция, или просто переписать данные
|
||||||
|
|
||||||
|
- Надо ли делать отчеты и какие
|
||||||
|
|
||||||
|
|
||||||
|
# pro tips
|
||||||
|
|
||||||
|
## Конфигуратор
|
||||||
|
|
||||||
|
- Если написать "Процедура", `Ctrl` + `q` - быстрое создание процедуры
|
||||||
|
- `Ctrl` + `Пробел` - авто подстановка переменных, функций, значений и тд
|
||||||
|
|
||||||
|
# Рабочий режим
|
||||||
|
|
||||||
|
- `Insert` - добавить новую запись
|
||||||
|
- `Shift` + `F9` - копировать записть
|
||||||
|
|
||||||
|
|
||||||
|
# time
|
||||||
|
|
||||||
|
150 минут (2.5 часа):
|
||||||
|
- 10 прочитать, понять че делать
|
||||||
|
- 90 программа
|
||||||
|
- 10 padding (проверка выполненой работы)
|
||||||
|
- 20 erd
|
||||||
|
- 10 readme
|
||||||
|
- 10 padding (проверить несколько раз что сделал)
|
||||||
|
|
||||||
|
|
||||||
|
# Оценки
|
||||||
|
|
||||||
|
Всего 50 балов:
|
||||||
|
- 10 баллов - 3
|
||||||
|
- 20 баллов - 4
|
||||||
|
- 35 и больше - 5
|
||||||
|
|
||||||
|
|
||||||
|
# Waves
|
||||||
|
|
||||||
|
Turn it up!
|
||||||
|
|
||||||
|
Step up in this bitch like (Turn it up!)
|
||||||
|
|
||||||
|
I'm the one your bitch like
|
||||||
|
|
||||||
|
Yeah, I'm the one your bitch like (Turn it up!)
|
||||||
|
|
||||||
|
And I be talkin' shit like
|
||||||
|
|
||||||
|
I ain't scared to lose a fistfight (Turn it up!)
|
||||||
|
|
||||||
|
And she grabbin' on my, like
|
||||||
|
|
||||||
|
She wanna see if it'll fit right
|
||||||
|
|
||||||
|
That's just the wave (Turn it up!)
|
||||||
|
|
||||||
|
|
||||||
|
(Yeah) Waves don't die
|
||||||
|
|
||||||
|
Let me crash here for the moment, yeah
|
||||||
|
|
||||||
|
I don't need to own it
|
||||||
|
|
||||||
|
No lie
|
||||||
|
|
||||||
|
Waves don't die, baby
|
||||||
|
|
||||||
|
Let me crash here for a moment (Yeah, yeah, yeah, yeah)
|
||||||
|
|
||||||
|
Baby, I don't, I don't need to own you (Turn it up!)
|
||||||
|
|
||||||
|
|
||||||
|
Sun don't shine in the shade, ugh (Turn it up!)
|
||||||
|
|
||||||
|
Bird can't fly in a cage, ugh (Turn it up!)
|
||||||
|
|
||||||
|
Even when somebody go away (Turn it up!)
|
||||||
|
|
||||||
|
The feelings don't really go away
|
||||||
|
|
||||||
|
That's just the wave
|
||||||
|
|
||||||
|
|
||||||
|
(Yeah) Waves don't die
|
||||||
|
|
||||||
|
Let me crash here for the moment
|
||||||
|
|
||||||
|
I don't need to own it
|
||||||
|
|
||||||
|
No lie
|
||||||
|
|
||||||
|
Waves don't die, baby
|
||||||
|
|
||||||
|
Let me crash here for a moment (Yeah, yeah, yeah, yeah)
|
||||||
|
|
||||||
|
Baby, I don't, I don't need to own you
|
||||||
|
|
||||||
|
|
||||||
|
No lie
|
||||||
|
|
||||||
|
No lie
|
||||||
|
|
||||||
|
No lie
|
||||||
|
|
||||||
|
You set the night on fire
|
||||||
|
|
||||||
|
I'm still gon' be here in the morning
|
||||||
|
|
||||||
|
No lie
|
||||||
|
|
||||||
|
|
||||||
|
No lie (Yeah)
|
||||||
|
|
||||||
|
Ooh, babe, ooh, baby, oh, yeah
|
||||||
|
|
||||||
|
You set the night on fire
|
||||||
|
|
||||||
|
I'm still gon' be here in the morning
|
||||||
|
|
||||||
|
No lie
|
||||||
|
|
||||||
|
by Kanye West
|
Loading…
x
Reference in New Issue
Block a user