1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-03 08:45:31 +02:00

Merge pull request #351 from bia-technologies/feature/256

256 / Тесты на получение данных субконто
This commit is contained in:
Koryakin Aleksey 2024-05-15 13:05:07 +03:00 committed by GitHub
commit 94f9e3fdaa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 388 additions and 19 deletions

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:AccountingRegister 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="149eef4c-8401-420e-a2a5-2837ef33b225">
<producedTypes>
<selectionType typeId="ba35cb1d-6a8c-4454-a8d7-a0c24d90c5c3" valueTypeId="5a2723bc-0237-4d4d-883b-24aa4bae3c94"/>
<listType typeId="815336ca-7a6e-4574-84b8-ee246652b1ee" valueTypeId="97b368de-f614-4143-930f-c154945dab89"/>
<managerType typeId="ce64e69d-8656-48fc-a4e8-98ff8f9b9ce0" valueTypeId="a33113e0-2ab1-42cf-aeee-bf359b325527"/>
<recordSetType typeId="a63bf657-6f03-4252-b5a8-cd02f7afe241" valueTypeId="8eb83090-79b5-4a2d-96c5-d84e22924bb9"/>
<recordKeyType typeId="cc9dfe74-8c02-4b5a-997c-e2f91892ad13" valueTypeId="e5fac3c0-7f12-46c1-8a41-03ef0236b0f8"/>
<recordType typeId="860baa10-ae60-4918-8e81-0dd89ee312bb" valueTypeId="1e310e03-5435-4013-b6f7-43494a47b29c"/>
<extDimensionsType typeId="129de268-d5c3-456d-8bf4-881fdc6c20b1" valueTypeId="bc3c6cb7-8ade-44b6-b1f2-b061a68b7fcb"/>
</producedTypes>
<name>Основной</name>
<synonym>
<key>ru</key>
<value>Основной</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<chartOfAccounts>ChartOfAccounts.Основной</chartOfAccounts>
<dataLockControlMode>Managed</dataLockControlMode>
<enableTotalsSplitting>true</enableTotalsSplitting>
<dimensions uuid="c5b5f415-f501-417a-bd1a-71491cbb3a5d">
<name>Организация</name>
<synonym>
<key>ru</key>
<value>Организация</value>
</synonym>
<type>
<types>CatalogRef.Организации</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<balance>true</balance>
</dimensions>
<resources uuid="a44be632-022a-49e2-b349-4c5b20ff7951">
<name>Сумма</name>
<synonym>
<key>ru</key>
<value>Сумма</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
<scale>2</scale>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<balance>true</balance>
</resources>
</mdclass:AccountingRegister>

View File

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ChartOfAccounts 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="0439de4d-1169-4848-87fc-74f070638caa">
<producedTypes>
<objectType typeId="e5e62631-a9f1-44e3-b376-a2515dcc8441" valueTypeId="bc6bd8f3-5c4b-41dd-9f30-8fa23f25156c"/>
<refType typeId="4ac5407f-0e0a-4df0-9eb8-0fb6dc241d2e" valueTypeId="9066edeb-4e30-4e6f-816a-33bfda8303a3"/>
<selectionType typeId="1515723b-56d4-439a-aff0-3919612e0bd7" valueTypeId="ea676c4d-3d90-436c-ac5f-9c48e07f2c0b"/>
<listType typeId="1529a60c-1434-48d5-8ed6-f6c927402fd5" valueTypeId="31a49ec9-d945-4538-957e-63b7ff59bbe8"/>
<managerType typeId="8eebadc5-9af3-4c3c-a056-16ae7a929920" valueTypeId="6b781c80-c718-4149-bd6f-3e05e010fbb5"/>
<extDimensionTypes typeId="7a45a96f-5cb4-43e3-a7e0-9eff4dc68b3b" valueTypeId="1bbaf6e6-74cd-4d6b-9895-fc0c55651c92"/>
<extDimensionTypesRow typeId="9b9cc6bc-1498-451c-a095-6a7dc02c4db8" valueTypeId="6182e263-ca3c-4c66-8c85-1b5005682e94"/>
</producedTypes>
<name>Основной</name>
<synonym>
<key>ru</key>
<value>Основной</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>ChartOfAccounts.Основной.StandardAttribute.Code</inputByString>
<inputByString>ChartOfAccounts.Основной.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>DontUse</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<extDimensionTypes>ChartOfCharacteristicTypes.ВидыСубконто</extDimensionTypes>
<maxExtDimensionCount>3</maxExtDimensionCount>
<codeLength>9</codeLength>
<descriptionLength>25</descriptionLength>
<checkUnique>true</checkUnique>
<predefined>
<items id="63f293b9-cc39-4dd4-836b-3a729840e6e3">
<name>Товары</name>
<description>Товары</description>
<code>1 </code>
<accountType>ActivePassive</accountType>
<extDimensionTypes>
<characteristicType>ChartOfCharacteristicTypes.ВидыСубконто.Контрагент</characteristicType>
</extDimensionTypes>
<extDimensionTypes>
<characteristicType>ChartOfCharacteristicTypes.ВидыСубконто.Склад</characteristicType>
</extDimensionTypes>
</items>
<items id="a2ff30fd-ec08-4cb9-971f-eebbeb9264ad">
<name>Деньги</name>
<description>Деньги</description>
<code>2 </code>
<accountType>ActivePassive</accountType>
<extDimensionTypes>
<characteristicType>ChartOfCharacteristicTypes.ВидыСубконто.Контрагент</characteristicType>
</extDimensionTypes>
<extDimensionTypes>
<characteristicType>ChartOfCharacteristicTypes.ВидыСубконто.РасчетныйСчетКонтрагента</characteristicType>
</extDimensionTypes>
<extDimensionTypes>
<characteristicType>ChartOfCharacteristicTypes.ВидыСубконто.Валюта</characteristicType>
</extDimensionTypes>
</items>
</predefined>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<attributes uuid="da531e8a-7252-4b48-ac7f-8a0f3ed21a71">
<name>Реквизит</name>
<synonym>
<key>ru</key>
<value>Реквизит</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</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>
<tabularSections uuid="13af0107-5c44-4082-8625-316147b8a0ae">
<producedTypes>
<objectType typeId="19f02e17-705b-451d-a4c6-6107716df86f" valueTypeId="f46faccc-4f9b-4fbe-8079-61dc532eed40"/>
<rowType typeId="6f607f05-d605-46dd-aa31-96459283dd6c" valueTypeId="fa5e9aaa-0553-42b9-bc1e-67d70bcaede8"/>
</producedTypes>
<name>ТабличнаяЧасть</name>
<synonym>
<key>ru</key>
<value>Табличная часть</value>
</synonym>
<attributes uuid="e56d4b89-8fab-477c-ba8f-2865f8dfa368">
<name>Реквизит</name>
<synonym>
<key>ru</key>
<value>Реквизит</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<accountingFlags uuid="b4c92484-b72c-499d-bb7d-3f1fd1c08c0e">
<name>ПризнакУчета</name>
<synonym>
<key>ru</key>
<value>Признак учета</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</accountingFlags>
<extDimensionAccountingFlags uuid="7e58899e-c1f1-4194-9a97-b9bd016a7141">
<name>ПризнакУчетаСубконто</name>
<synonym>
<key>ru</key>
<value>Признак учета субконто</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</extDimensionAccountingFlags>
</mdclass:ChartOfAccounts>

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ChartOfCharacteristicTypes xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1973fc98-e599-4675-89de-55b9bbfd2bcf">
<producedTypes>
<objectType typeId="c5986db5-a49c-4435-915d-97effd7afbdf" valueTypeId="b097e311-e118-494f-b9a1-46c62a5216f3"/>
<refType typeId="da7e985f-9dbc-4c8b-86f8-8f9f59e75da8" valueTypeId="995ed0d7-e6ea-49cd-82c2-ab74f69b7180"/>
<selectionType typeId="c7a144de-5205-468b-bd40-8b209995cb32" valueTypeId="8b6c83a4-cb40-4d4f-b8ff-5eb29c5d1ded"/>
<listType typeId="e377b464-210d-4ffc-a2d4-ba03dc6188fb" valueTypeId="2275e99c-15c8-4ece-a588-c87183135c8a"/>
<managerType typeId="4b51adb7-ef7b-422f-ae04-c57ee3bd93cf" valueTypeId="58e9e951-685c-4109-a175-7b49971aabbf"/>
<containerType typeId="13b90f62-4f0d-4c0c-bc34-33fc74ba976e" valueTypeId="55658c0e-4fe3-43d3-b8ed-79515afe61dd"/>
</producedTypes>
<name>ВидыСубконто</name>
<synonym>
<key>ru</key>
<value>Виды субконто</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>ChartOfCharacteristicTypes.ВидыСубконто.StandardAttribute.Code</inputByString>
<inputByString>ChartOfCharacteristicTypes.ВидыСубконто.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>DontUse</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<type>
<types>CatalogRef.ВидыЦен</types>
<types>CatalogRef.Валюты</types>
<types>CatalogRef.Контрагенты</types>
<types>CatalogRef.РасчетныеСчета</types>
<types>CatalogRef.РасчетныеСчетаКонтрагентов</types>
<types>CatalogRef.Склады</types>
<types>CatalogRef.Товары</types>
</type>
<foldersOnTop>true</foldersOnTop>
<codeLength>9</codeLength>
<codeAllowedLength>Variable</codeAllowedLength>
<descriptionLength>25</descriptionLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<defaultPresentation>AsDescription</defaultPresentation>
<predefined>
<items id="ff4bfb5d-0ec3-43ca-a254-935a1f2c330c">
<name>Контрагент</name>
<description>Контрагент</description>
<code>000000001</code>
<type>
<types>CatalogRef.Контрагенты</types>
</type>
</items>
<items id="4b9b5c81-a5c9-45d1-ade4-e9383082ae7d">
<name>Валюта</name>
<description>Валюта</description>
<code>000000002</code>
<type>
<types>CatalogRef.Валюты</types>
</type>
</items>
<items id="bd0eaf8e-ef51-4867-9631-a34b2cbb10b5">
<name>РасчетныйСчет</name>
<description>Расчетный счет</description>
<code>000000003</code>
<type>
<types>CatalogRef.РасчетныеСчета</types>
</type>
</items>
<items id="7a10ffd0-b176-4751-90f1-2f92e7af1618">
<name>Склад</name>
<description>Склад</description>
<code>000000004</code>
<type>
<types>CatalogRef.Склады</types>
</type>
</items>
<items id="5347a776-f255-4b8c-8d03-4a5a281ba3b8">
<name>РасчетныйСчетКонтрагента</name>
<description>Расчетный счет контрагент</description>
<code>000000005</code>
<type>
<types>CatalogRef.РасчетныеСчетаКонтрагентов</types>
</type>
</items>
</predefined>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
</mdclass:ChartOfCharacteristicTypes>

View File

@ -290,4 +290,7 @@
<accumulationRegisters>AccumulationRegister.Продажи</accumulationRegisters>
<accumulationRegisters>AccumulationRegister.ТоварныеЗапасы</accumulationRegisters>
<chartsOfCharacteristicTypes>ChartOfCharacteristicTypes.ВидыХарактеристик</chartsOfCharacteristicTypes>
<chartsOfCharacteristicTypes>ChartOfCharacteristicTypes.ВидыСубконто</chartsOfCharacteristicTypes>
<chartsOfAccounts>ChartOfAccounts.Основной</chartsOfAccounts>
<accountingRegisters>AccountingRegister.Основной</accountingRegisters>
</mdclass:Configuration>

View File

@ -39,6 +39,8 @@
КонецЕсли;
КонецЕсли;
СформироватьПроводкиБухгалтерия();
КонецПроцедуры
@ -63,7 +65,6 @@
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
//Удалим из списка проверяемых реквизитов валюту, если по организации не ведется
@ -74,3 +75,56 @@
КонецПроцедуры
Процедура СформироватьПроводкиБухгалтерия()
Курс = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Новый Структура("Валюта", Валюта)).Курс;
Если Курс = 0 Тогда
Сумма = Товары.Итог("Сумма");
Иначе
Сумма = Товары.Итог("Сумма") / Курс;
КонецЕсли;
Движения.Основной.Записывать = Истина;
Проводка = Движения.Основной.ДобавитьКредит();
Проводка.Организация = Организация;
Проводка.Период = Дата;
Проводка.Сумма = Сумма;
Проводка.Счет = ПланыСчетов.Основной.Деньги;
Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Контрагент] = Поставщик;
Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Валюта] = Валюта;
Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.РасчетныйСчетКонтрагента] = РасчетныйСчетКонтрагента(Поставщик);
Проводка = Движения.Основной.ДобавитьДебет();
Проводка.Организация = Организация;
Проводка.Период = Дата;
Проводка.Сумма = Сумма;
Проводка.Счет = ПланыСчетов.Основной.Товары;
Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Контрагент] = Поставщик;
Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Склад] = Склад;
КонецПроцедуры
Функция РасчетныйСчетКонтрагента(Контрагент)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| РасчетныеСчетаКонтрагентов.Ссылка
|ИЗ
| Справочник.РасчетныеСчетаКонтрагентов КАК РасчетныеСчетаКонтрагентов
|ГДЕ
| РасчетныеСчетаКонтрагентов.Владелец = &Владелец
| И НЕ РасчетныеСчетаКонтрагентов.ПометкаУдаления";
Запрос.УстановитьПараметр("Владелец", Контрагент);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка[0];
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции

View File

@ -94,6 +94,7 @@
<defaultListForm>Document.ПриходТовара.Form.ФормаСписка</defaultListForm>
<registerRecords>AccumulationRegister.ТоварныеЗапасы</registerRecords>
<registerRecords>AccumulationRegister.Взаиморасчеты</registerRecords>
<registerRecords>AccountingRegister.Основной</registerRecords>
<postInPrivilegedMode>true</postInPrivilegedMode>
<unpostInPrivilegedMode>true</unpostInPrivilegedMode>
<attributes uuid="5f0a6f85-c742-4946-81ce-a6461b6b55ab">

View File

@ -107,6 +107,7 @@
<registerRecords>AccumulationRegister.Продажи</registerRecords>
<registerRecords>AccumulationRegister.ТоварныеЗапасы</registerRecords>
<registerRecords>AccumulationRegister.Взаиморасчеты</registerRecords>
<registerRecords>AccountingRegister.Основной</registerRecords>
<postInPrivilegedMode>true</postInPrivilegedMode>
<unpostInPrivilegedMode>true</unpostInPrivilegedMode>
<attributes uuid="6a0d444b-cd90-4c14-a9d4-dd6fa17e1ea7">

View File

@ -28,6 +28,8 @@
.ДобавитьТест("РезультатПустой")
.ДобавитьТест("Запись")
.ДобавитьТест("Записи")
.ДобавитьТест("Запись_Субконто")
.ДобавитьТест("Записи_Субконто")
.ДобавитьТест("ЗначенияРеквизитовЗаписи")
.ДобавитьТест("ЗначениеРеквизитаЗаписи")
.ДобавитьТест("ДвиженияДокумента")
@ -208,14 +210,7 @@
.НеЗаполнено();
// Документ, тест на табличную часть
Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара")
.Фикция("Склад")
.Фикция("Организация")
.Фикция("Поставщик")
.ТабличнаяЧасть("Товары")
.ДобавитьСтроку()
.Фикция("Товар")
.Фикция("Цена");
Конструктор = ПриходТовара();
Ссылка = Конструктор.Записать();
ДанныеОбъекта = Конструктор.ДанныеОбъекта();
@ -228,7 +223,7 @@
.Свойство("Поставщик").Равно(ДанныеОбъекта.Поставщик)
.Свойство("Товары")
.ИмеетТип("Массив")
.ИмеетДлину(1)
.ИмеетДлину(2)
.Свойство("Товары[0].НомерСтроки").Равно(1)
.Свойство("Товары[0].Товар").Равно(ДанныеОбъекта.Товары[0].Товар);
@ -284,6 +279,42 @@
КонецПроцедуры
Процедура Запись_Субконто() Экспорт
Ссылка = ПриходТовара().Провести();
Запись = ЮТЗапросы.Запись("РегистрБухгалтерии.Основной.ДвиженияССубконто", ЮТест.Предикат()
.Реквизит("Регистратор").Равно(Ссылка));
ЮТест.ОжидаетЧто(Запись)
.ИмеетТип("Структура")
.ИмеетСвойство("ВидСубконто1")
.ИмеетСвойство("ВидСубконто2")
.ИмеетСвойство("ВидСубконто3")
.ИмеетСвойство("Субконто1")
.ИмеетСвойство("Субконто2")
.ИмеетСвойство("Субконто3");
КонецПроцедуры
Процедура Записи_Субконто() Экспорт
Ссылка = ПриходТовара().Провести();
Записи = ЮТЗапросы.Записи("РегистрБухгалтерии.Основной.ДвиженияССубконто", ЮТест.Предикат()
.Реквизит("Регистратор").Равно(Ссылка));
ЮТест.ОжидаетЧто(Записи)
.ИмеетТип("Массив")
.ИмеетДлину(2)
.КаждыйЭлементСодержитСвойство("ВидСубконто1")
.КаждыйЭлементСодержитСвойство("ВидСубконто2")
.КаждыйЭлементСодержитСвойство("ВидСубконто3")
.КаждыйЭлементСодержитСвойство("Субконто1")
.КаждыйЭлементСодержитСвойство("Субконто2")
.КаждыйЭлементСодержитСвойство("Субконто3")
;
КонецПроцедуры
Процедура ЗначенияРеквизитовЗаписи() Экспорт
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
@ -353,15 +384,7 @@
Процедура ДвиженияДокумента() Экспорт
Конструктор = ЮТест.Данные().КонструкторОбъекта("Документ.ПриходТовара")
.ФикцияОбязательныхПолей()
.ТабличнаяЧасть("Товары")
.ДобавитьСтроку()
.Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение
.ФикцияОбязательныхПолей()
.ДобавитьСтроку()
.Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение
.ФикцияОбязательныхПолей();
Конструктор = ПриходТовара();
Документ = Конструктор.Провести();
ДанныеОбъекта = Конструктор.ДанныеОбъекта();
@ -437,4 +460,21 @@
КонецФункции
Функция ПриходТовара()
Возврат ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара")
.Фикция("Склад")
.Фикция("Организация")
.Фикция("Поставщик")
.Фикция("Валюта")
.ТабличнаяЧасть("Товары")
.ДобавитьСтроку()
.Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение
.ФикцияОбязательныхПолей()
.ДобавитьСтроку()
.Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение
.ФикцияОбязательныхПолей();
КонецФункции
#КонецОбласти