public void КорректироватьТабЧастьСерийныеНомера(/*СтруктДанныеСерНомера, ИндексИсхСтроки, ИсхКоличество, НоваяСтрока, ВыделеноКоличество*/)
{
if(true/*СтруктДанныеСерНомера = Неопределено*/)
{
}
//ТабДанные = СтруктДанныеСерНомера.ТабДанные;
/*// Определим избыток серийных номеров, "висящих" на исходной строке
*/
if(true/*ТабДанные[ИндексИсхСтроки].СерНомера = Неопределено*/)
{
/*// Не было серийных номеров связанных с исходной строкой
*/
}
//Превышение = ТабДанные[ИндексИсхСтроки].СерНомера.Количество() - Цел(ИсхКоличество);
if(true/*Превышение > 0*/)
{
/*// Избыток серийных номеров, которые надо "перекинуть" на новую строку
*/
//МожноПереместить = Мин(Превышение, ВыделеноКоличество);
if(true/*МожноПереместить <= 0*/)
{
}
if(true/*НоваяСтрока.КлючСвязи <> 0*/)
{
/*// Были изменения ключей связи/серийных номеров вне данного механизма.
*/
/*// Либо повторный вызов данной процедуры для одной строки. Такая ситуация не обрабатывается.
*/
}
/*// Вычислим новое значение ключа связи
*/
//МаксКлюч = СтруктДанныеСерНомера.МаксКлюч;
//МаксКлюч = МаксКлюч + 1;
//СтруктДанныеСерНомера.Вставить("МаксКлюч", МаксКлюч);
/*// Установим новый ключ связи в новой строке документа
*/
//НоваяСтрока.КлючСвязи = МаксКлюч;
/*// Запоминаем сколько всего серийных номеров, перемещать будем последние (т.е. с конца)
*/
/*// первые остаются на первоначальной строке
*/
//ВсегоСерНомеров = ТабДанные[ИндексИсхСтроки].СерНомера.Количество() - 1;
while(true/*МожноПереместить > 0*/)
{
//ТабДанные[ИндексИсхСтроки].СерНомера[ВсегоСерНомеров].КлючСвязи = МаксКлюч;
/*// Установлен новый ключ связи в ТАБ.ЧАСТИ документа
*/
//ТабДанные[ИндексИсхСтроки].СерНомера.Удалить(ВсегоСерНомеров);
/*// Удаляем элемент массива, строка в документе остается!!!
*/
//ВсегоСерНомеров = ВсегоСерНомеров - 1;
/*// Уменьшаем индекс последнего элемента массива
*/
//МожноПереместить = МожноПереместить - 1;
/*// Уменьшаем количество доступных перемещений.
*/
}
//;;
}
}