перем а[ы]
Работает, а вот
перем а[ы,в]
работать отказывается в чистую. подскажите пожалуйста как правильно строить многомерные массивы в 1с7.7
Заранее благодарен.
перем а[ы]
перем а[ы,в]
ТЗ.ПерваяКолонка[М];
ТЗ.ВтораяКолонка[L];
ТЗ.ТретьяКолонка[N];
ТЗ.ПерваяКолонка[М];
ТЗ.ВтораяКолонка[L];
ТЗ.ТретьяКолонка[N];
перем а[ы]
перем а[ы,в]
А[число]=1,,,N;
В[А[число]]=АгрегатноеЗначение;
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Для дд = НачДата по КонДата Цикл
ТЗ.НоваяКолонка(,,,,""+дд);
КонецЦикла
А[НомерСтроки * Длину Строки + НомерПозицииВСтроке]
А[НомерСлоя * КоличествоСтрок * ДлинуСтроки + НомерСтроки * ДлинуСтроки + НомерПозицииВСтроке]
перем а[ы]
перем а[ы,в]
Процедура Test()
перем Месяц;
перем датаТекущая;
Сообщить(ТекущееВремя());
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("контрагент");
дата11=НачМесяца(дата1);
ДатаТекущая=дата11;
Пока ДатаТекущая<=дата2 Цикл
УказательМесяца=ДатаМесяц(ДатаТекущая);
НазваниеМесяца(УказательМесяца,Месяц);
Месяц=месяц+строка(ДатаГод(ДатаТекущая));
ТЗ.НоваяКолонка(Месяц);
ДатаТекущая=ДобавитьМесяц(ДатаТекущая,1);
КонецЦикла;
для НомКолонки=2 по ТЗ.КоличествоКолонок() цикл
Конеццикла;
Номерстроки=0;
контр=СоздатьОбъект("Справочник.Контрагенты");
Док = СоздатьОбъект("Документ.РасходнаяНакладная");
контр.ВыбратьЭлементы();
Пока контр.ПолучитьЭлемент()=1 Цикл
Если контр.ЭтоГруппа()=0 Тогда
Если (сокрЛП(контр.код)<>"00091") Тогда
ТЗ.НоваяСтрока();
ТЗ.контрагент=контр.ТекущийЭлемент();
Номерстроки=номерстроки+1;
ДатаТекущая=НачМесяца(дата1);
НомКолонки=2;
Пока ДатаТекущая<=дата2 Цикл
Док.ВыбратьДокументы(ДатаТекущая, ДобавитьМесяц(ДатаТекущая,1));
Пока Док.ПолучитьДокумент() = 1 Цикл
Если ТЗ.контрагент=Док.Контрагент Тогда
ЗначениеСуммы=ЗначениеСуммы+Док.Итог("СуммаСНДС");
КонецЕсли;
Конеццикла;
ТЗ.УстановитьЗначение(Номерстроки,НомКолонки,ЗначениеСуммы);
ДатаТекущая=ДобавитьМесяц(ДатаТекущая,1);
ЗначениеСуммы=0;
НомКолонки=НомКолонки+1;
Конеццикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Имя=КаталогИБ()+"\Zvit\Аналитика.xls";
Эксель=СоздатьОбъект("Excel.Application");
Книга = Эксель.WorkBooks.add(Имя);
Лист = Книга.WorkSheets("Лист1");
строкаЭксесь=1;
СтолбецЕксель=0;
для НомКолонки=1 по ТЗ.КоличествоКолонок() цикл
ИмяШапки=ТЗ.ПолучитьПараметрыКолонки(НомКолонки);
ИмяШапки=строка(ИмяШапки);
Лист.Cells(1,НомКолонки).Value=ИмяШапки;
Конеццикла;
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
строкаЭксесь=строкаЭксесь+1;
Номерстроки=строкаЭксесь-1;
для НомКолонки2=2 по ТЗ.КоличествоКолонок() цикл
екккеку=екккеку+число(ТЗ.ПолучитьЗначение(Номерстроки,НомКолонки2));
конеццикла;
сообщить(екккеку);
для НомКолонки=1 по ТЗ.КоличествоКолонок() цикл
СтолбецЕксель=НомКолонки;
апапап=ТЗ.ПолучитьЗначение(Номерстроки,НомКолонки);
ффаа1212=строка(апапап);
Если ПустоеЗначение(ффаа1212)=0 Тогда
Лист.Cells(строкаЭксесь,СтолбецЕксель).Value=ффаа1212;
КонецЕсли;
КонецЦикла;
екккеку=0;
КонецЦикла;
//**************************
Эксель.ScreenUpdating = 1;
Эксель.EnableEvents = 1;
Эксель.Visible = 1;
//**************************
КонецПроцедуры
//==========================
Процедура ПриОткрытии()
Дата1="07,05,11";
Дата2=Текущаядата();
очиститьОкноСообщений();
КонецПроцедуры
перем а[ы]
перем а[ы,в]
а[x,y] = a[(x*(y-1)+y]
Перем Запрос, ТекстЗапроса, Таб,М[12];
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы Проведенные;
|Контр = Документ.РасходнаяНакладная.Контрагент;
|Сум = Документ.РасходнаяНакладная.СуммаСНДС;
|Функция СумСумма = Сумма(Сум);
|Группировка Контр без групп;
|Группировка Месяц все;
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
//выводим шапку
Таб.ВывестиСекцию("Шапка|Секция1");
мм=0;
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
Мес = Запрос.Месяц;
Таб.ПрисоединитьСекцию("Шапка|Секция2");//вывод всех месяцев за период в шапке
мм=мм+1;
М[мм]=0;//для итогов по колонке
КонецЦикла;
Прервать;
КонецЦикла;
Таб.ПрисоединитьСекцию("Шапка|Секция3");//вывод итогов по строке в шапке
//заново в запрос
Запрос.ВНачалоВыборки();
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Контр|Секция1");//выводим контрагента
мс=0;
Пока Запрос.Группировка(2) = 1 Цикл
//здесь Запрос.СумСумма вернет сумму за месяц, присоединяем месяц
Таб.ПрисоединитьСекцию("Контр|Секция2");
//соберем итоги по месяцам в колонках
мс=мс+1;
М[мс]=М[мс]+Запрос.СумСумма;
КонецЦикла;
//здесь Запрос.СумСумма вернет сумму за весь период по контрагенту, присоединяем итог по строке
Таб.ПрисоединитьСекцию("Контр|Секция3");
КонецЦикла;
// выведем итоги по месяцам и всего"
Таб.ВывестиСекцию("Дно|Секция1");
Для нн=1 По мм Цикл
//сдесь М[нн] покажет итог по месяцу нн
Таб.ПрисоединитьСекцию("Дно|Секция2");
КонецЦикла;
//здесь Запрос.СумСумма вернет всю сумму за весь период по всем контрагентам, выведем итог
Таб.ПрисоединитьСекцию("Дно|Секция3");
Таб.Показать();