Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ДЗ Групповая разработка #46

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8f7c812e-aa22-4041-bf3f-610bfb0701ee">
<producedTypes>
<objectType typeId="56d7a017-41a6-4011-8afa-1c4f7328ac95" valueTypeId="d3294c16-4815-4504-8487-d359bc21087f"/>
<refType typeId="d41279f7-878d-49e9-9eaa-9a0a848273a1" valueTypeId="e7e7f52d-ddab-4c35-9c9c-e633e81d9378"/>
<selectionType typeId="fc5c4fa1-de6c-46b5-8bf6-2a89c97f3592" valueTypeId="a3e9416f-8a1d-4005-ae95-2f3e3aa7a991"/>
<listType typeId="9f75a055-ab1e-4564-b71a-6f633946e3ec" valueTypeId="2db63d73-e496-413e-8917-c5aa1874e09e"/>
<managerType typeId="08419136-375f-4405-8ea5-c2221ec59cff" valueTypeId="f2757b51-88cc-459a-bce2-07d53a4854a5"/>
</producedTypes>
<name>ДЗ_Должности</name>
<synonym>
<key>ru</key>
<value>Должности</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ДЗ_Должности.StandardAttribute.Code</inputByString>
<inputByString>Catalog.ДЗ_Должности.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<codeLength>9</codeLength>
<descriptionLength>50</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
</mdclass:Catalog>
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6d8260d8-ad07-414b-a68b-bbc388cd2d71">
<producedTypes>
<objectType typeId="513852db-a49f-494d-8acc-af4aae040e36" valueTypeId="130031d4-a8e7-4107-bf2e-37ed793288bb"/>
<refType typeId="554cbf0a-5a76-4057-80bc-51ca4ded823d" valueTypeId="f83441fc-a7e8-4ee3-823e-6582f40bdac5"/>
<selectionType typeId="1b50e087-c3c7-47c3-b7a5-2f1e70e0d36c" valueTypeId="a5d5d533-6986-4584-867b-643da2ef8d2e"/>
<listType typeId="cf4949e6-9443-4233-a970-075c2b8505c6" valueTypeId="d8a584a9-6e00-41f7-bc01-fc2c280861a9"/>
<managerType typeId="e72b1ad4-4d29-48ea-976b-2634eb13ed27" valueTypeId="182d315e-532c-4978-8995-c205b611a7c2"/>
</producedTypes>
<name>ДЗ_КонтактныеЛица</name>
<synonym>
<key>ru</key>
<value>Контактные лица</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ДЗ_КонтактныеЛица.StandardAttribute.Code</inputByString>
<inputByString>Catalog.ДЗ_КонтактныеЛица.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:BooleanValue"/>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<synonym>
<key>ru</key>
<value>ФИО</value>
</synonym>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
<key>ru</key>
<value>Контактное лицо</value>
</objectPresentation>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<owners>Catalog.Контрагенты</owners>
<codeLength>9</codeLength>
<descriptionLength>150</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<attributes uuid="a55f4e5c-af48-4a96-a821-1e6dfff28d90">
<name>КонтактныйТелефон</name>
<synonym>
<key>ru</key>
<value>Контактный телефон</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>18</length>
</stringQualifiers>
</type>
<mask>+7 (999) 999-99-99</mask>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="6e81bda1-a1b6-42d8-91c1-4d132712e021">
<name>Должность</name>
<synonym>
<key>ru</key>
<value>Должность</value>
</synonym>
<type>
<types>CatalogRef.ДЗ_Должности</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="4894c62d-1c05-4762-b28f-8d9d0ab8d4cb">
<name>ДействуетНаОсновании</name>
<synonym>
<key>ru</key>
<value>Действует на основании</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>150</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="16475b5f-0856-4545-bce3-ade4854d183d">
<name>Заметка</name>
<synonym>
<key>ru</key>
<value>Заметка</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
</mdclass:Catalog>
2 changes: 2 additions & 0 deletions onec-mid-base-11/src/Configuration/Configuration.mdo
Original file line number Diff line number Diff line change
Expand Up @@ -1213,6 +1213,8 @@
<catalogs>Catalog.УчетныеЗаписиСинхронизацииФайлов</catalogs>
<catalogs>Catalog.УчетныеЗаписиЭлектроннойПочты</catalogs>
<catalogs>Catalog.Файлы</catalogs>
<catalogs>Catalog.ДЗ_КонтактныеЛица</catalogs>
<catalogs>Catalog.ДЗ_Должности</catalogs>
<documents>Document.ЗаказПокупателя</documents>
<documents>Document.ОплатаОтПокупателя</documents>
<documents>Document.ОплатаПоставщику</documents>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

// +++ Телицин С.Л.: homework-11-2-1 (Добавление ревезита формы "Контактное Лицо")
ДобавитьПолеКонтактноеЛицоВГруппаШапкаПраво();
// --- Телицин С.Л.: homework-11-2-1 (Добавление ревезита формы "Контактное Лицо")

// +++ Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)
ДобавитьГруппаЭлементовСогласованнаяСкидкаВГруппаШапкаЛево();
// --- Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)


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

&НаКлиенте
Expand Down Expand Up @@ -112,11 +121,26 @@
&НаКлиенте
Процедура РассчитатьСуммуСтроки(ТекущиеДанные)

КоэффициентСкидки = 1 - ТекущиеДанные.Скидка / 100;
ТекущиеДанные.Сумма = ТекущиеДанные.Цена * ТекущиеДанные.Количество * КоэффициентСкидки;
// +++ Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)
КоэффициентСкидки = 1 - (ТекущиеДанные.Скидка + Объект.ДЗ_СогласованнаяСкидка) / 100;

Если КоэффициентСкидки <= 0 Тогда
ТекущиеДанные.Сумма = 0;
//@skip-check bsl-legacy-check-dynamic-feature-access
ТекстСообщения = СтрШаблон("Скидка равна или превышает %1 в строке №%2. %3.", "100%", ТекущиеДанные.НомерСтроки, ТекущиеДанные.Номенклатура);
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
Иначе
ТекущиеДанные.Сумма = ТекущиеДанные.Цена * ТекущиеДанные.Количество * КоэффициентСкидки;
КонецЕсли;

РассчитатьСуммуДокумента();
// --- Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)

//КоэффициентСкидки = 1 - ТекущиеДанные.Скидка / 100;
//ТекущиеДанные.Сумма = ТекущиеДанные.Цена * ТекущиеДанные.Количество * КоэффициентСкидки;

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

&НаКлиенте
Процедура РассчитатьСуммуДокумента()

Expand Down Expand Up @@ -146,8 +170,105 @@
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры

&НаКлиенте
Асинх Процедура ДЗ_ЗадатьВопросОПересчетеСкидки()

// +++ Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Ждать ВопросАсинх(НСтр("ru = 'Изменен процент скидки. Пересчитать таблицы товаров и услуг?';"), Режим, 0);

Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;

ДЗ_ПересчитатьСкидкуТчТоварыИУслуги();
// --- Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)

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

//@skip-check module-unused-method
&НаКлиенте
Процедура ДЗ_ПересчитатьСкидку(Команда)

// +++ Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»
ДЗ_ПересчитатьСкидкуТчТоварыИУслуги();
// --- Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)

КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

#КонецОбласти

#Область ПрограммныйИнтерфейс

&НаКлиенте
Процедура ДЗ_СогласованнаяСкидкаПриИзменении(Элемент)

// +++ Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»
Если Не ЗначениеЗаполнено(Объект.Товары) И Не ЗначениеЗаполнено(Объект.Услуги) Тогда
Возврат;
КонецЕсли;

ДЗ_ЗадатьВопросОПересчетеСкидки();
// --- Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)

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

&НаКлиенте
Процедура ДЗ_ПересчитатьСкидкуТчТоварыИУслуги()

// +++ Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»
Для Каждого СтрТч Из Объект.Товары Цикл
РассчитатьСуммуСтроки(СтрТч);
КонецЦикла;

Для Каждого СтрТч Из Объект.Услуги Цикл
РассчитатьСуммуСтроки(СтрТч);
КонецЦикла;
// --- Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)

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

&НаСервере
Процедура ДобавитьПолеКонтактноеЛицоВГруппаШапкаПраво()

// +++ Телицин С.Л.: homework-11-2-1 (Добавление ревезита формы "Контактное Лицо")
ПолеВвода = Элементы.Добавить("КонтактноеЛицо", Тип("ПолеФормы"), Элементы.ГруппаШапкаПраво);
ПолеВвода.Вид = ВидПоляФормы.ПолеВвода;
ПолеВвода.ПутьКДанным = "Объект.ДЗ_КонтактноеЛицо";
// --- Телицин С.Л.: homework-11-2-1 (Добавление ревезита формы "Контактное Лицо")

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

&НаСервере
Процедура ДобавитьГруппаЭлементовСогласованнаяСкидкаВГруппаШапкаЛево()

// +++ Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)
ГруппаСогласованнаяСкидка = Элементы.Добавить("ГруппаСкидка", Тип("ГруппаФормы"), Элементы.ГруппаШапкаЛево);
ГруппаСогласованнаяСкидка.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ГруппаСогласованнаяСкидка.ОтображатьЗаголовок = ЛОЖЬ;
ГруппаСогласованнаяСкидка.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;

ПолеВвода = Элементы.Добавить("СогласованнаяСкидка", Тип("ПолеФормы"), ГруппаСогласованнаяСкидка);
ПолеВвода.Вид = ВидПоляФормы.ПолеВвода;
ПолеВвода.ПутьКДанным = "Объект.ДЗ_СогласованнаяСкидка";
ПолеВвода.УстановитьДействие("ПриИзменении", "ДЗ_СогласованнаяСкидкаПриИзменении");

Команда = Команды.Добавить("ПересчитатьСкидку");
Команда.Заголовок = "Пересчитать скидку";
Команда.Действие = "ДЗ_ПересчитатьСкидку";

КнопкаФормы = Элементы.Добавить("ПересчитатьСкидку", Тип("КнопкаФормы"), ГруппаСогласованнаяСкидка);
КнопкаФормы.ИмяКоманды = "ПересчитатьСкидку";
КнопкаФормы.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
КнопкаФормы.Картинка = БиблиотекаКартинок.Обновить;
КнопкаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст;
// --- Телицин С.Л.: homework-11-2-2 (Добавление поля «Согласованная скидка»)

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

#КонецОбласти

#КонецОбласти

Loading