|
|
#1 |
|
Участник
|
Уважаемые коллеги.
Итак, имеем форму SalesTable Необходимо перебрать SalesLines выбранного заказа и установить определенное значение InventDim, например InventGTDId_RU. У меня пока не получается ((
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
|
|
|
#2 |
|
Участник
|
это надо использовать методы таблицы InventDim.
Код: {
InventDim dim = InventDim::find(SalesLine.inventDimId);
dim.InventGtdId_RU = ...код любимого ГТД...
dim = InventDim::findOrCreate(dim.dimID);
}Дополнительно полезно разобраться как добавлять/скрывать/запрещать редактирование аналитики в формах/отчетах стандартными методами. |
|
|
|
|
#3 |
|
Участник
|
Код: {
SalesLine SalesLineSelect;
InventDim dim;
;
SalesLineSelect = SalesLine_ds.getFirst();
while ( SalesLineSelect )
{
dim = InventDim::find(SalesLineSelect.inventDimId, true);
//EN_find - ищет последнюю ГТД от определенного поставщика
dim.InventGtdId_RU = InventGTD_RU::EN_find(SalesTable.K_DrawFrom,SalesLineSelect.ItemId);
dim = InventDim::findOrCreate(dim);
SalesLineSelect.InventDimId = dim.inventDimId;
SalesLineSelect.write();
SalesLineSelect = SalesLine_ds.getNext();
}
} не работает. При попытке записать ругается, что не выбран номер лота.Т.е. стоит задача - по нажатию на кнопочку заполнить SalesLine последними (по времени ГТД от конкретного поставщика) ------------------- не, надо снова на 1С переходить
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
|
|
|
#4 |
|
Участник
|
не работает потому, что getFirst() работает не с таблицей, а с датасорсом формы. А у датасорса есть свои методы. InventDimId он на форме отсутствует. Форма сама его обновляет исходя из других полей на форме.
работай с query либо с select'ом напрямую. while select { ... } а в конце что-либо вроде salesline_ds.research() для того, чтобы обновить форму исходя из обновленных значений в базе. |
|
|
|
|
#5 |
|
Участник
|
Код: void clicked()
{
SalesLine SalesLineSelect;
InventDim dim;
;
if (SalesTable.K_DrawFrom)
TTSBEGIN;
while select forupdate SalesLineSelect where SalesLineSelect.SalesId == SalesTable.SalesId
{
dim = InventDim::find(SalesLineSelect.inventDimId, true);
dim.InventGtdId_RU = InventGTD_RU::EN_find(SalesTable.K_DrawFrom,SalesLineSelect.ItemId);
dim = InventDim::findOrCreate(dim);
SalesLineSelect.InventDimId = dim.inventDimId;
SalesLineSelect.update();
}
TTSCOMMIT;
Salesline_ds.research();
}
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
|