7.7 Вопрос по табличной части документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем AmoZ, 13 ноя 2011.

  1. TopicStarter Overlay
    AmoZ
    Offline

    AmoZ Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    Произвольный документ. В нем табличная часть с тремя столбцами: СтолЗ, НоменклатураЗ, КолвоЗ.
    Плюс на форме располжено несколько полей: Колво0, Колво1, КолвоРД и т.д.
    При изменении стоблцов СтолЗ и НоменклатураЗ идет такой код:
    Код:
    Если ПустаяСтрока(СтолЗ) = 1 Тогда
    Иначе 
    ВыбратьСтроки();             
    Пока ПолучитьСтроку() = 1 Цикл 
    Колво = 0;
    СтрСтолЗ = СокрЛП(СтолЗ) + ","; 
    Для Н = 1 По СтрДлина(СокрЛП(СтрСтолЗ)) Цикл
    СтрЗ = Лев(СтрСтолЗ, (Найти(СтрСтолЗ, ","))-1);//перменная
    СтрСтолЗ = Сред(СтрСтолЗ, (Найти(СтрСтолЗ, ","))+1);//остальная Строка 
    Если СтрЗ = "0" Тогда
    Колво = Колво + Итог0;
    ИначеЕсли СтрЗ = "1" Тогда
    Колво = Колво + Итог1;
    ИначеЕсли СтрЗ = "РД" Тогда
    Колво = Колво + ИтогРД; 
    ИначеЕсли СтрЗ = "7" Тогда
    Колво = Колво + Итог7;
    ИначеЕсли СтрЗ = "8" Тогда
    Колво = Колво + Итог8;
    ИначеЕсли СтрЗ = "9" Тогда
    Колво = Колво + Итог9;
    ИначеЕсли СтрЗ = "10" Тогда
    Колво = Колво + Итог10;
    ИначеЕсли СтрЗ = "Д" Тогда
    Колво = Колво + ИтогД;
    ИначеЕсли СтрЗ = "15" Тогда
    Колво = Колво + Итог15;
    ИначеЕсли СтрЗ = "ПЛ" Тогда
    Колво = Колво + ИтогПл;
    ИначеЕсли СтрЗ = "4" Тогда
    Колво = Колво + Итог4;
    ИначеЕсли СтрЗ = "ИОВ" Тогда
    Колво = Колво + ИтогИОВ;
    ИначеЕсли СтрЗ = "0о" Тогда    
    Колво = Колво + ИтогОнк0;
    ИначеЕсли СтрЗ = "1о" Тогда
    Колво = Колво + ИтогОнк1;
    ИначеЕсли СтрЗ = "7о" Тогда
    Колво = Колво + ИтогОнк7;
    ИначеЕсли СтрЗ = "9о" Тогда    
    Колво = Колво + ИтогОнк9;
    ИначеЕсли СтрЗ = "15о" Тогда
    Колво = Колво + ИтогОнк15;
    КонецЕсли;      
    Если ПустоеЗначение(СокрЛП(СтрСтолЗ)) = 1 Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;
    КолвоЗ = Колво;                                
    КонецЦикла;       
    КонецЕсли;
    
    В переменной СтолЗ идет строка, типа 0,1,2,0о,15о
    НоменклатураЗ - это справочник.
    КолвоЗ - число;

    Меняется только значение текущей строки.
    А как сделать чтобы просчитывалась вся колонка КолвоЗ.
  2. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Код:
    ВыбратьСтроки();
    итКол=0;
    Пока ПолучитьСтроку() = 1 Цикл
    Колво = 0;
    ...
    ...
    ...
    КонецЦикла;                
    КолвоЗ = Колво;                                            
    итКол=итКол+Колво3;
    КонецЦикла;
    
  3. TopicStarter Overlay
    AmoZ
    Offline

    AmoZ Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    123
    Симпатии:
    0
    Баллы:
    26
    Нее... Мне нужна не сумма по всем строкам, а что бы просчитывалось в одной строке.
    К примеру, выбираю третью строку, соответственно, пересчитывается КовлоЗ только в третьей строке.
    А мне бы хотелось, что он по всем строкам пробегал.
    Строка 1: значение СтолЗ = 1,2,3
    Строка 2: значение СтолЗ = 1,2,3,4
    Итог1 = 5
    Итог2 = 6
    Итог3 = 3
    Итог4 = 2
    В итоге если я выберу строку 1, то КолвоЗ будет 14, а вторая строка не пересчитается.
  4. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    После последнего конецЦикла напиши Форма.Обновить()

Поделиться этой страницей