По теме из базы знаний
- Обработка накладных в формате .mmo
- Обработка просмотра DBF-файлов
- Печать таблицы значений в 1С 7.7 при отладке
- Консоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений
- Доработка стандартного модуля обмена от Битрикс для выгрузки произвольных таблиц значений или запросов в Highload-блоки
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) По нажатию кнопки, вызывается функция которая формирует ТЗ и возвращает, затем выводит 0 индекс ТЗ, по нажатию другой кнопки должна переходит по индексу, проверяет текущий шаг, где шаг1 - заполнение функции, если шаг 2, то Возврат ТЗ ну и ничего не возвращает мне, вот и вопрос, что я делаю не так
(8)
Это переход по индексу Массива возвращает с типом "Неопределенно"
Процедура Начать(Команда)
Если ЭтаФорма.Выбор="" Тогда
Сообщить("Выбери тему");
Возврат
КонецЕсли;
ЭтаФорма.Элементы.Закончить.Видимость=Истина;
ЭтаФорма.Элементы.Начать.Видимость=Ложь;
Массив=ОбработкаМассива(0);
КонецПроцедуры
Функция ОбработкаМассива(Переменная)
Если Переменная=0 Тогда
ТаблицаПоиска=ТаблицаЗначений(ЭтаФорма.Выбор);
НайтиПоКоду(ТаблицаПоиска[0]);
КонецЕсли;
Возврат ТаблицаПоиска;
КонецФункции
Это то что я описывал как "Шаг", если шаг 1, тогда формирует таблицу, если второй, то возвращает и выводит ТЗ с 0 индексом
Процедура Следующий(Команда)
Массив=ОбработкаМассива(1);
КонецПроцедуры
ПоказатьЭто переход по индексу Массива возвращает с типом "Неопределенно"
(7)
Что такое "выводит 0 индекс ТЗ"?
Что такое "должна переходить по индексу"? По какому?
Что такое "проверяет текущий шаг"?
Что такое "заполнение функции"?
Что такое "если шаг 2"?
Что такое "ничего не возвращает мне"?
вот и вопрос, что я делаю не так
Не так описываете проблему.
Что такое "выводит 0 индекс ТЗ"?
Что такое "должна переходить по индексу"? По какому?
Что такое "проверяет текущий шаг"?
Что такое "заполнение функции"?
Что такое "если шаг 2"?
Что такое "ничего не возвращает мне"?
(10) Смотри ошибки, которые выдает программа. Твой код впринципе не рабочий.
Ну и когда ты второй раз вызываешь функцию, ТаблицаПоиска не определена. Когда функция закончена, все переменные, объявленные в ней удаляются из памяти, поэтому когда ты второй раз вызываешь эту процедуру, то такой переменной не существует , а ты ее как-то возвращаешь.
Как у тебя вот это все работает, я просто не представляю
Ну и когда ты второй раз вызываешь функцию, ТаблицаПоиска не определена. Когда функция закончена, все переменные, объявленные в ней удаляются из памяти, поэтому когда ты второй раз вызываешь эту процедуру, то такой переменной не существует , а ты ее как-то возвращаешь.
Как у тебя вот это все работает, я просто не представляю
ТаблицаПоиска=ТаблицаЗначений(ЭтаФорма.Выбор);
НайтиПоКоду(ТаблицаПоиска[0]);
(11)ТЗ обрабатывается сервером, была ошибка из-за того что я возвращаю ТЗ на клиент, поэтому по химичил с кодом по поводу
я делаю с 1с работаю недавно и мне нужен тестирование к ут 11.4, я нашёл только ранние варианты, а вопросы с ответами у меня есть, поэтому все значения у меня предопределённые и ничего добавляться не будет, поэтому качество кода не принципиально
мне сказали что массив не подойдёт
если есть мнение как всё это дело улучшить с радостью выслушаю
ТаблицаПоиска=ТаблицаЗначений(ЭтаФорма.Выбор);
НайтиПоКоду(ТаблицаПоиска[0]);
я делаю с 1с работаю недавно и мне нужен тестирование к ут 11.4, я нашёл только ранние варианты, а вопросы с ответами у меня есть, поэтому все значения у меня предопределённые и ничего добавляться не будет, поэтому качество кода не принципиально
Функция ТаблицаЗначений (СписокВопросы)
Список=Новый ТаблицаЗначений;
Список.Колонки.Добавить("Наименование");
Список.Колонки.Добавить("Начало");
Список.Колонки.Добавить("Конец");
Главный=Список.Добавить();
Главный.Наименование="Основной";
Главный.Начало= 101;
Главный.Конец= 174;
Второстепенный=Список.Добавить();
Второстепенный.Наименование="Дополнительный";
Второстепенный.Начало= 201;
Второстепенный.Конец= 255;
Для х=0 по Список.Количество()Цикл
Если Список[х].Наименование=СписокВопросы Тогда
Мини=Список[х].Начало;
Макс=Список[х].Конец;
Прервать
Конецесли;
КонецЦикла;
Массив=новый Массив ;
Для х=Мини по Макс Цикл
Массив.Добавить(х)
КонецЦикла;
Рандом=Новый ГенераторСлучайныхЧисел();
Если СтрДлина(Строка(Макс))>=3 Тогда
Пока Истина Цикл
Макс=Макс-100;
Если НЕ СтрДлина(Строка(Макс))>=3 Тогда
прервать
КонецЕсли;
КонецЦикла;
КонецЕсли;
Для х=0 по Массив.Количество()-1 Цикл
Счёт=Рандом.СлучайноеЧисло(0,Макс-1);
т=Массив[х];
Массив[х]=Массив[Счёт];
Массив[Счёт]=т;
КонецЦикла;
Таб = Новый ТаблицаЗначений;
Таб.Колонки.Добавить("Значение");
Для х=0 по Массив.Количество()-1 Цикл
Таб.Добавить();
КонецЦикла;
Таб.ЗагрузитьКолонку(Массив, "Значение");
Возврат Таб;
КонецФункции
Показатьмне сказали что массив не подойдёт
если есть мнение как всё это дело улучшить с радостью выслушаю
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот