mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-18 00:29:42 +03:00
feat(web-test): M5-pre #3 — textEdit:false поле + 03-fillfields/direct-edit-form
Расширение синтетики: реквизит Поставщик типа CatalogRef.Контрагенты
добавлен в шапку ПриходнаяНакладная. Элемент формы Поставщик скомпилирован
с textEdit:false (новый DSL ключ form-compile v1.21 из коммита 32bf9c1):
ручной ввод запрещён, селект-кнопки нет, выбор только через форму выбора
по pick-кнопке.
Новый шаг 03-fillfields/direct-edit-form (~7s) — fillFields на Поставщик
('ООО Юг') возвращает method:'form', минуя обычные paste/typeahead/dropdown
ветки. fillFields внутренне детектит textEdit:false и сразу идёт через
форму выбора (selectValue path).
Полный регресс **18/18 зелёный** (8m 40.6s).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -147,6 +147,10 @@ export const steps = [
|
|||||||
// Источник — составной тип (для 03-fillfields/composite).
|
// Источник — составной тип (для 03-fillfields/composite).
|
||||||
// Платформа покажет селектор типа в UI перед выбором значения.
|
// Платформа покажет селектор типа в UI перед выбором значения.
|
||||||
{ name: 'Источник', type: 'CatalogRef.Контрагенты + CatalogRef.Номенклатура + CatalogRef.Организации' },
|
{ name: 'Источник', type: 'CatalogRef.Контрагенты + CatalogRef.Номенклатура + CatalogRef.Организации' },
|
||||||
|
// Поставщик — обычная ссылка, но на форме элемент с textEdit:false
|
||||||
|
// (для 03-fillfields/direct-edit-form). Ручной ввод запрещён,
|
||||||
|
// выбор только через pick-кнопку → форма выбора.
|
||||||
|
{ name: 'Поставщик', type: 'CatalogRef.Контрагенты' },
|
||||||
{ name: 'Комментарий', type: 'String', length: 200 },
|
{ name: 'Комментарий', type: 'String', length: 200 },
|
||||||
],
|
],
|
||||||
tabularSections: [{
|
tabularSections: [{
|
||||||
@@ -601,6 +605,8 @@ export const steps = [
|
|||||||
{ input: 'Контрагент', path: 'Объект.Контрагент', title: 'Контрагент' },
|
{ input: 'Контрагент', path: 'Объект.Контрагент', title: 'Контрагент' },
|
||||||
{ input: 'Склад', path: 'Объект.Склад', title: 'Склад' },
|
{ input: 'Склад', path: 'Объект.Склад', title: 'Склад' },
|
||||||
{ input: 'Источник', path: 'Объект.Источник', title: 'Источник' },
|
{ input: 'Источник', path: 'Объект.Источник', title: 'Источник' },
|
||||||
|
// textEdit:false — ручной ввод запрещён, только pick → форма выбора
|
||||||
|
{ input: 'Поставщик', path: 'Объект.Поставщик', title: 'Поставщик', textEdit: false },
|
||||||
{ input: 'Комментарий', path: 'Объект.Комментарий', title: 'Комментарий' },
|
{ input: 'Комментарий', path: 'Объект.Комментарий', title: 'Комментарий' },
|
||||||
{ table: 'Товары', path: 'Объект.Товары', title: 'Товары', changeRowSet: true, columns: [
|
{ table: 'Товары', path: 'Объект.Товары', title: 'Товары', changeRowSet: true, columns: [
|
||||||
{ input: 'Номенклатура', path: 'Объект.Товары.Номенклатура', title: 'Номенклатура' },
|
{ input: 'Номенклатура', path: 'Объект.Товары.Номенклатура', title: 'Номенклатура' },
|
||||||
|
|||||||
@@ -154,4 +154,25 @@ export default async function({ navigateSection, openCommand, clickElement, fill
|
|||||||
|
|
||||||
await closeForm({ save: false });
|
await closeForm({ save: false });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await step('direct-edit-form: textEdit:false → fillFields method=form', async () => {
|
||||||
|
// ПриходнаяНакладная.Поставщик — обычный CatalogRef.Контрагенты, но
|
||||||
|
// элемент формы с textEdit:false: ручной ввод запрещён, выбор только
|
||||||
|
// через форму выбора (не через paste/typeahead/dropdown).
|
||||||
|
await navigateSection('Склад');
|
||||||
|
await openCommand('Приходная накладная');
|
||||||
|
await clickElement('Создать');
|
||||||
|
|
||||||
|
const r = await fillFields({ 'Поставщик': 'ООО Юг' });
|
||||||
|
log('Поставщик method=' + r.filled[0]?.method);
|
||||||
|
assert.equal(r.filled[0]?.ok, true, 'Поставщик заполнен');
|
||||||
|
assert.equal(r.filled[0]?.method, 'form',
|
||||||
|
'textEdit:false принуждает к method=form (минуя paste/typeahead/dropdown)');
|
||||||
|
|
||||||
|
const state = await getFormState();
|
||||||
|
const p = state.fields?.find(f => f.name === 'Поставщик');
|
||||||
|
assert.equal(p?.value, 'ООО Юг', 'значение Поставщик установилось');
|
||||||
|
|
||||||
|
await closeForm({ save: false });
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user