Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Вывод максимального элемента двумерного массива

[1C]Есть двумерный массив 5 на 5 элементов
Вывести максимальный элемент всего массива
Ответ: Евгений1212,
Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
Максимум = Массив[0][0];
Если Массив[0][1] > Максимум Тогда Максимум = Массив[0][1];
Если Массив[0][2] > Максимум Тогда Максимум = Массив[0][2];
Если Массив[0][3] > Максимум Тогда Максимум = Массив[0][3];
.....
Если Массив[4][4] > Максимум Тогда Максимум = Массив[4][4];
Вопрос: Двумерный массив в ТЗ

Здравствуйте!
Беру данные из Excel и получаю двумерный массив с помощью
Лист.UsedRange.Value.Выгрузить();
Но вот как его обойти, чтобы все это преобразовать в ТЗ. Простым перебором строк и колонок получаю текущее значение массива, а вот как создать "заголовок шапки", и заполнить остальными данными построчно, не получается.
Спасибо.
Ответ:
Естественно, нужно сформировать колонки в ТЗ, можно сделать это автоматически по количеству элементов массива, получаемого из ComSafeArray.
Вопрос: Передача двумерного массива через веб-сервис

Добрый день!

Мобильное приложение 1С обменивается с центральным сервером по веб-сервисам. Необходимо из мобильного приложения с помощью веб-сервиса передать двумерный массив, а на центральном сервере принять его, обойти его и заполнить табличную часть его значениями.

Со стороны мобильного приложения делаю так (передаю в веб-сервис ОбъектХDTO):

Код:
ОбъектXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/core", "Array"));
Для каждого Строка из СписокЗаказа Цикл
                                              
    ТипКартридж = СериализаторXDTO.XMLТипЗнч(Строка.Картридж);
    ЗначениеКартридж = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ТипКартридж.URIПространстваИмен, ТипКартридж.ИмяТипа),XMLСтрока(Строка.Картридж));
                                             
    ТипРабочееМесто = СериализаторXDTO.XMLТипЗнч(Строка.РабочееМесто);
    ЗначениеРабочееМесто = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ТипРабочееМесто.URIПространстваИмен, ТипРабочееМесто.ИмяТипа),XMLСтрока(Строка.РабочееМесто));
  
    ОбъектXDTO.value.Добавить(ЗначениеКартридж);
    ОбъектXDTO.value.Добавить(ЗначениеРабочееМесто);
                                     
КонецЦикла;
//..... далее подключаюсь к веб-сервису и передаю в него ОбъектXDTO      
Со стороны центрального сервера принимаю ОбъектХDTO в параметр ActivList, который имеет тип: Array (). Обхожу циклом:
Код:
Для каждого Элемент из ActivList.Value Цикл
Сообщить(Элемент);
КонецЦикла;
И получаю список значений элементов, то есть как одномерный массив.

Подскажите, как правильно передать двумерный массив?
Ответ:
Да, все супер!!! Спасибо большое!
Вопрос: Заполнение двумерного массива "змейкой"

ВО. Написать программу для заполнения двумерного массива "змейкой":
1 2 3
6 5 4
7 8 9.

Не пойму как его вобще делать

Добавлено через 41 минуту
Код 1C
1
2
3
4
5
6
Н=1;
а = Значен;
массив = новый массив(3,3); 
Для а=0 по Н цикл 
массив[а+1][а]=1; // сомнения вот тут 
ПолеСписка1.Вставить(массив)

Подскажите что не так
бьет ошибку
Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Вставить)
ПолеСписка1.Вставить(массив)
по причине:
Несоответствие типов (параметр номер '1')

Добавлено через 24 минуты
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
массив = новый массив(3,3);
Для каждого Строка из ТабличноеПоле1 Цикл 
    для НомКол = 0 по ТабличноеПоле1.Колонки.Количество()-1 Цикл
            ИмяКол = ТабличноеПоле1.Колонки.Получить(НомКол).Имя;
            Массив.Добавить(Строка[ИмяКол]);
    
        КонецЦикла;
          КонецЦикла;
          
а = массив.Количество()-1;
Н=1;
Для а= Неопределено по Н цикл 
массив[а+1][а]=1;  
ПолеСписка1.Вставить(массив[а])
Пробывал и таким макаром бьет ошибку
ма.Форма.Форма(26)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Для а=Неопределено по Н цикл
Ответ: СПС огромное всем
Вопрос: Массивы 1С Программирования

И так, это снова я, товарищи
Нужна ваша ценная помощь, уже несколько часов пытаюсь выполнить следующие задание, не получается сделать как нужно.
Вот задание и скриншот что должно получится:
ЗАДАНИЕ:
1. Создайте массив из 7 элементов
2. Задайте элементам массива следующие значения: 21, 4, 1, 5, 23, 12, 18
3. Сообщите: в окно сообщений - текст МАССИВЫ
4. Сообщите: кол-во элементов в массиве, используя программный метод – количество()
5. Сообщите: наибольший индекс массива с помощью соответствующего метода
6. Выведите созданный массив с помощью оператора.

Ответ:
1C
1
2
3
4
5
6
    Массив = Новый Массив(10);
 
    Для сч=-Массив.ВГраница() По 0 Цикл 
        Сообщить((-сч));
        Сообщить("Массив["+(-сч)+"]="+Массив[-сч]);
    КонецЦикла; 
Вопрос: 77 Подчиненный справочник. Вывод наименования Элемента-Владельца на рамке окна.

2 справочника: 1."Товар" и подчиненный ему 2."Комплектация"
Чем выводится Наименование Элемента-Владельца на верхней рамке ?
Проблема: открыл в отладчике модуль подчиненного (Комплектация), подчиненных элементов нет, но переменная Владелец пуста!
Если есть хотя-бы один подчиненный элемент - "Владелец" становится "не пустым", т.е. виден в отладчике..

Подозреваю, это делается на уровне движка, но не уверен..
В конфе не нашел..
Ответ: () спасибо!
Вопрос: Как объединить два упорядоченных по возрастанию массива в третий?

Имеются два упорядоченных по возрастанию массива A и B с произвольными целыми числами. Требуется написать код, который сформирует третий массив C, в котором будут содержаться все элементы из массивов A и B, также упорядоченные по возрастанию.

Пример:

А = [1, 2, 5, 8]

B = [3, 6, 7]

С = [1, 2, 3, 5, 6, 7, 8]
Ответ: Xomych, Огромное спасибо! С меня магарыч!
Вопрос: Посчитать сумму по элементам для каждой группы справочника

Добрый день.
Столкнулся с такой проблемой -
Из справочника формируется отчет с сортировкой по группам + к элементам добавляются числовые значения(в колонку Факт).
Нужно напротив Групп(выделены жирным) в колонке "Факт" выводить сумму по элементам входящим в эту группу, а для групп высшего уровня выводить сумму по подгруппам входящим в эту группу и т.д.

Т.е. для 111 Выручка от основной деятельности = сумма по эл-там 1111+1115
для 11 Средства полученные по текущей деятелньости = сумма по группам 111 + 112
для 10 Текущая деятельность = сумма по группам 11 + 12



Собственно как выводить суммы по группам я и не пойму
Ответ: emkaa, это отчет не в СКД, а с выводом в табличный документ?
Делайте в запросе итоги по группам с суммированием значения в колонке Факт.
При выводе в табдок информации сначала делайте Выборка = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам) - там будут ваши группы и суммы Факт по ним, а уже внутри делайте ВыборкаДет = Выборка.Выбрать() - и выводите элементы.
Вопрос: Вывод печатной формы с подписями.

Здравствуйте! Есть печатная форма, в табличном документе выводится таблица (заполняется в цикле) и подвал с подписями, необходимо следующее: если на страницу не входит таблица + подвал, то последнюю строку таблицы вместе с подвалом переносить на новую страницу. Если вывод входит в две страницы, то работает, если три и более - то рвутся подписи
// Шапка
Область = Макет.ПолучитьОбласть("Шапка");

// Шапка списка товаров
Область1 = Макет.ПолучитьОбласть("ТоварыШапка");
ТабДок.Вывести(Область1);

// Товары
ОбластьТовары = Макет.ПолучитьОбласть("Строка");
ВсегоСтрокПоИндексу = Товары.Количество()-1;

// Подписи (формируем)
Подвал = Макет.ПолучитьОбласть("Подвал");

// Вывод товаров
Для ИНД = 0 ПО ВсегоСтрокПоИндексу Цикл
ТекСтрокаТовары = Товары[ИНД];
ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
ОбластьТовары.Параметры.ТоварКод = ТекСтрокаТовары.Товар.Код;
ОбластьТовары.Параметры.КодЕдиницаИзмерения = ТекСтрокаТовары.ЕдиницаИзмерения.Код;

// Проверим последнюю строку перед выводом
Если ИНД = ВсегоСтрокПоИндексу Тогда
МВО.Очистить();
МВО.Добавить(Область);
МВО.Добавить(Область1);
МВО.Добавить(ОбластьТовары);
МВО.Добавить(Подвал);
Если НЕ ТабДок.ПроверитьВывод(МВО) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
КонецЕсли;
ТабДок.Вывести(ОбластьТовары);
КонецЦикла;

Подвал.Параметры.ИтогоЦенаПродажиСН = Товары.Итог("ЦенаПродажиСН");
Подвал.Параметры.ИтогоКоличествоЗ = Товары.Итог("Количество");
Подвал.Параметры.ИтогоКоличествоО = Товары.Итог("Количество");
Подвал.Параметры.ИтогоСуммаПродажиСН = Товары.Итог("СуммаПродажиСН");
//Подвал.Параметры.Руководитель = ДанныеФирма.Руководитель;

ТабДок.Вывести(Подвал);

ТабДок.Показать();
Ответ:
у вас не правильно настроена проверка вывода.
в массив проверки надо помещать последнюю строчку таблицы (область строка) + области Итог + Подписи + Подвал (то что в конце непрерывно должно идти)
ни какой шапки в массиае не должно быть.
для примера можете посмотреть как в стандартных конфигурациях сама 1С выводит Торг-12 или др. печ.формы.
Вопрос: СКД вывод иерархии по группировкам

Всем привет.
Есть вот такая иерархия справочников.

При выводе получаем 2 раза элемент.
первый раз с моим количеством. второй раз по группировке сумма.
Как выводить мой элемент только по группировке и подставлять свою сумму.
Ответ: во блин. другая лажа. если элемент без вложения. он не выводиться. а вот это плохо