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

Feature/document pay from buyer #43

Open
wants to merge 3 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="9f483125-d024-410c-8249-497c8d9ecd33">
<producedTypes>
<objectType typeId="2cc82bf9-6a93-45c1-8872-46516d77cba6" valueTypeId="1dcc79e5-f126-4836-87de-2d4494836ef8"/>
<refType typeId="267a4326-7d92-441e-8eb6-d789ba7acf6e" valueTypeId="00577adf-dfec-4cd1-b000-9c58e05268cc"/>
<selectionType typeId="394736be-c7b2-464a-9ad8-321a0577f915" valueTypeId="7ef95ab8-908e-475b-a962-d18d2676ef1e"/>
<listType typeId="d89eacc5-3ca2-4150-8b18-be8d3c8770f1" valueTypeId="1dcd0c26-8eef-4f3a-a44c-1fa6da9f4ddf"/>
<managerType typeId="5a9206fc-40cb-4734-9998-1a1454eff798" valueTypeId="57f0a4c2-7f4f-4888-b1b8-19dc2b3cd7fd"/>
</producedTypes>
<name>ДЗ13_7_Должность</name>
<synonym>
<key>ru</key>
<value>Должность</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ДЗ13_7_Должность.StandardAttribute.Code</inputByString>
<inputByString>Catalog.ДЗ13_7_Должность.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,101 @@
<?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="93037f0d-3f84-4f51-bf39-233013371c21">
<producedTypes>
<objectType typeId="4a62ab1f-161a-4339-b223-21f67db9f3fc" valueTypeId="2d71f114-c9de-41cb-94a0-2ee9a2b18566"/>
<refType typeId="e0974ef6-42ef-4098-8e6f-03a6eb8dcd62" valueTypeId="4c503ffc-6039-408d-98df-1dbb04c72afc"/>
<selectionType typeId="9cba43ad-7ff3-4cbc-ba08-4033d276621b" valueTypeId="d2546bec-3ed6-45cd-923e-9e19af7fb8e4"/>
<listType typeId="d6cf9d5d-6a83-4f3d-8f49-3764ca186756" valueTypeId="260dad7e-0935-4827-916d-5d1184b3aa6e"/>
<managerType typeId="4eea4a17-304b-47fe-8e0c-10bfbd18faf7" valueTypeId="722acf9e-710e-4af9-9d6c-0e6b9f0db638"/>
</producedTypes>
<name>ДЗ13_7_КонтактныеЛица</name>
<synonym>
<key>ru</key>
<value>Контактные лица</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ДЗ13_7_КонтактныеЛица.StandardAttribute.Code</inputByString>
<inputByString>Catalog.ДЗ13_7_КонтактныеЛица.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<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="ce10136b-4adf-4aae-8cce-83e0f75fb235">
<name>КонтактныйТелефон</name>
<synonym>
<key>ru</key>
<value>Контактный телефон</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>50</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="ffab70cc-2ab2-4c7a-bdcc-474934baa247">
<name>Должность</name>
<synonym>
<key>ru</key>
<value>Должность</value>
</synonym>
<type>
<types>CatalogRef.ДЗ13_7_Должность</types>
</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="0f312e30-8df5-469b-a709-292687ed42a5">
<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="6844b709-d747-4d45-8c86-1c20fd0417d1">
<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.ДЗ13_7_Должность</catalogs>
<catalogs>Catalog.ДЗ13_7_КонтактныеЛица</catalogs>
<documents>Document.ЗаказПокупателя</documents>
<documents>Document.ОплатаОтПокупателя</documents>
<documents>Document.ОплатаПоставщику</documents>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,73 @@
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
//++ Каирец А. В. Задача ДЗ 13_7 п. 1 доработка 18.11.2024
Если Элементы.Найти("КонтактноеЛицо") = Неопределено Тогда

НовыйЭлемент = Элементы.Вставить("КонтактноеЛицо", Тип("ПолеФормы"), Элементы.ГруппаШапкаПраво);

НовыйЭлемент.ПутьКДанным = "Объект.ДЗ_13_7_КонтактноеЛицо";
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.Заголовок = "Контактное лицо";

КонецЕсли;

Если Элементы.Найти("ГруппаСкидка") = Неопределено Тогда

НовыйЭлемент2 = Элементы.Вставить("ГруппаСкидка", Тип("ГруппаФормы"), Элементы.ГруппаШапкаЛево);

НовыйЭлемент2.Вид = ВидГруппыФормы.ОбычнаяГруппа;
НовыйЭлемент2.ОтображатьЗаголовок = Ложь;
НовыйЭлемент2.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;

Если Элементы.Найти("Скидка") = Неопределено Тогда

НовыйЭлемент3 = Элементы.Вставить("Скидка", Тип("ПолеФормы"), Элементы.ГруппаСкидка);

НовыйЭлемент3.ПутьКДанным = "Объект.ДЗ_13_7_Скидка";
НовыйЭлемент3.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент3.Заголовок = "Скидка";

//установить действие при изменении
НовыйЭлемент3.УстановитьДействие("ПриИзменении", "ДЗ_13_7_СкидкаПриИзменении");

КонецЕсли;

//Добавление кнопки команды только если ее нет
Если Элементы.Найти("ПересчитатьТаблицу") = Неопределено Тогда

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

КнопкаКоманды = Элементы.Вставить("ПересчитатьТаблицу", Тип("КнопкаФормы"), Элементы.ГруппаСкидка);
КнопкаКоманды.ИмяКоманды = "ПересчитатьТаблицу";
КнопкаКоманды.Вид = ВидКнопкиФормы.ОбычнаяКнопка;

КонецЕсли;

КонецЕсли;
//-- Каирец А. В. Задача ДЗ 13_7 п. 1
КонецПроцедуры

&НаКлиенте
Процедура ДЗ_13_7_СкидкаПриИзменении(Элемент)
//++ Каирец А. В. Задача ДЗ 13_7 п.1 Доработка 19.11.2024
//обработка нажатия программно добавленной кнопки
Если Объект.Услуги.Количество() > 0 Или Объект.Товары.Количество() > 0 Тогда

Режим = РежимДиалогаВопрос.ДаНет;
Текст = "Табличную часть документа пересчитать.|Продолжить?";

Оповещение = Новый ОписаниеОповещения("ДЗ_13_7_ПослеЗакрытияВопроса", ЭтотОбъект, Параметры);
ПоказатьВопрос(Оповещение, Текст, Режим);

КонецЕсли;

//-- Каирец А. В. Задача ДЗ 13_7 п.1
КонецПроцедуры


&НаКлиенте
Процедура ПриОткрытии(Отказ)

Expand Down Expand Up @@ -109,10 +173,63 @@

#Область СлужебныеПроцедурыИФункции

&НаКлиенте
Процедура ДЗ_13_7_ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
//++ Каирец А. В. Задача ДЗ 13_7 п.1 Доработка 19.11.2024
//обработка выбора пользователя после изменения скидки в шапке документа

Если Результат = КодВозвратаДиалога.Да Тогда

ДЗ_13_7_ПересчитатьТаблицу();

КонецЕсли;
// -- Каирец А. В. Задача ДЗ 13_7 п.1
КонецПроцедуры

&НаКлиенте
Процедура ДЗ_13_7_ПересчитатьТаблицу()
//++ Каирец А. В. Задача ДЗ 13_7 п.1 Доработка 19.11.2024
//Расчет построчной суммы табличных частей
Для каждого СтрУслуги Из Объект.Услуги Цикл

РассчитатьСуммуСтроки(СтрУслуги);

КонецЦикла;

Для Каждого СтрТовары из Объект.Товары Цикл

РассчитатьСуммуСтроки(СтрТовары);

КонецЦикла;

РассчитатьСуммуДокумента();
// -- Каирец А. В. Задача ДЗ 13_7 п.1
КонецПроцедуры


&НаКлиенте
Процедура РассчитатьСуммуСтроки(ТекущиеДанные)
//внести здесь изменения
//++ Каирец А. В. Задача ДЗ 13_7 п.1 Доработка 19.11.2024
//Изменение механизма расчета скидки с учетом двух ее составляющих
//КоэффициентСкидки = 1 - ТекущиеДанные.Скидка / 100;
ОбщаяСкидка = ТекущиеДанные.Скидка + Объект.ДЗ_13_7_Скидка;

Если ОбщаяСкидка > 100 Тогда

ОбщаяСкидка = 100;

Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Скидка (результатирующая сумма скидок) не может быть больше 100%";
Сообщение.поле =
Элементы.Страницы.ТекущаяСтраница.Заголовок +"[" + (ТекущиеДанные.НомерСтроки-1) + "].Номенклатура";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();

КонецЕсли;

КоэффициентСкидки = 1 - ТекущиеДанные.Скидка / 100;
КоэффициентСкидки = 1 - ОбщаяСкидка / 100;
//-- Каирец А. В. Задача ДЗ 13_7 п.1
ТекущиеДанные.Сумма = ТекущиеДанные.Цена * ТекущиеДанные.Количество * КоэффициентСкидки;

КонецПроцедуры
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,53 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="ab5bcbe3-a51b-4102-9ffa-7971bdb11633">
<name>ДЗ_13_7_КонтактноеЛицо</name>
<synonym>
<key>ru</key>
<value>Контактное лицо</value>
</synonym>
<type>
<types>CatalogRef.ДЗ13_7_КонтактныеЛица</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<choiceParameterLinks>
<name>Отбор.Владелец</name>
<field>Document.ЗаказПокупателя.Attribute.Контрагент</field>
</choiceParameterLinks>
<choiceParameters>
<name>Отбор.ПометкаУдаления</name>
<value xsi:type="core:BooleanValue"/>
</choiceParameters>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="81a0dc30-4b3a-4437-968f-e93b968cfc3f">
<name>ДЗ_13_7_Скидка</name>
<synonym>
<key>ru</key>
<value>Д з 13 7 скидка</value>
</synonym>
<comment>Не более 100</comment>
<type>
<types>Number</types>
<numberQualifiers>
<precision>5</precision>
<scale>2</scale>
</numberQualifiers>
</type>
<minValue xsi:type="core:StringValue">
<value>0</value>
</minValue>
<maxValue xsi:type="core:StringValue">
<value>100</value>
</maxValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="d2984117-1a5a-45ca-bc97-adb070bd946d">
<name>ФормаДокумента</name>
<synonym>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

//++ Каирец А. В. Задача ДЗ 13_7 п. 1 доработка 20.11.2024
Если Элементы.Найти("КонтактноеЛицо") = Неопределено Тогда

СледующийЭлемент = Элементы.Найти("Основание");

НовыйЭлемент = Элементы.Вставить("КонтактноеЛицо", Тип("ПолеФормы"), , СледующийЭлемент);

НовыйЭлемент.ПутьКДанным = "Объект.ДЗ_13_7_КонтактноеЛицо";
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.Заголовок = "Контактное лицо";

КонецЕсли;
//-- Каирец А. В. Задача ДЗ 13_7 п. 1

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

&НаКлиенте
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,29 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b2c768ef-eaf6-4a21-9888-d540b5d6ca51">
<name>ДЗ_13_7_КонтактноеЛицо</name>
<synonym>
<key>ru</key>
<value>Rонтактное лицо</value>
</synonym>
<type>
<types>CatalogRef.ДЗ13_7_КонтактныеЛица</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<choiceParameterLinks>
<name>Отбор.Владелец</name>
<field>Document.ОплатаОтПокупателя.Attribute.Контрагент</field>
</choiceParameterLinks>
<choiceParameters>
<name>Отбор.ПометкаУдаления</name>
<value xsi:type="core:BooleanValue"/>
</choiceParameters>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="976f23f0-3fb8-45d3-9d21-0aa14380fea2">
<name>ФормаДокумента</name>
<synonym>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@
<content>Catalog.НоменклатурныеГруппы</content>
<content>Catalog.ДоговорыКонтрагентов</content>
<content>Catalog.Организации</content>
<content>Catalog.ДЗ13_7_Должность</content>
<content>Catalog.ДЗ13_7_КонтактныеЛица</content>
<parentSubsystem>Subsystem.ПокупкиИПродажи</parentSubsystem>
</mdclass:Subsystem>