Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 01:24

Что означает знак I в запросе?

Автор developersvil, 18 окт 2018, 18:58

0 Пользователей и 1 гость просматривают эту тему.

developersvil

Я студентка. Изучаю 1С по лабам. Не могу сделать лабу с сайта http://www.1s-up.ru/konfiguracija-v-1c-8-3-odnoslojnaja-linejnaja-nejronnaja-set/ 
Может ли быть 2 запроса в одном Запрос.Текст? Что за знак такой |?
&НаСервере
Процедура РасчетНаСервере()
    ТЗВходныеСигналы = ВходныеСигналы.Выгрузить("ВидВходногоСигнала,ВходнойСигнал");
    //передадим в запрос таблицу значений входных сигналов,
    //поместим ее в во временную таблицу
    //в другую временную таблицы поместим все нейроны указанной сети
    //в конечном запросе получим веса всех нейронов,
    //которые есть в сети и умножим их на данные входных сигналов
    //для этого свяжем таблицу весов нейронов со временной таблицей
    //входных сигналов по полю вид входного сигнала (внутреннее соединение)
    //сгруппируем все входные сигналы для нейрона,
    //чтобы получить выходной сигнал для каждого нейрона сети
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТЗВходныхСигналов.ВходнойСигнал КАК ВходнойСигнал,
                   |    ТЗВходныхСигналов.ВидВходногоСигнала КАК ВидВходногоСигнала
                   |ПОМЕСТИТЬ втВходныхСигналов
                   |ИЗ
                   |    &ТЗВходныхСигналов КАК ТЗВходныхСигналов
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    ВидВходногоСигнала
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ОднослойнаяНейроннаяСетьНейроны.Нейрон КАК Нейрон
                   |ПОМЕСТИТЬ втНейроны
                   |ИЗ
                   |    Справочник.ОднослойнаяНейроннаяСеть.Нейроны КАК ОднослойнаяНейроннаяСетьНейроны
                   |ГДЕ
                   |    ОднослойнаяНейроннаяСетьНейроны.Ссылка = &НейроСеть
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    Нейрон
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    НейронВесаНейрона.Ссылка КАК Нейрон,
                   |    СУММА(НейронВесаНейрона.ЗначениеВеса * втВходныхСигналов.ВходнойСигнал) КАК ВыходнойСигнал
                   |ИЗ
                   |    Справочник.Нейрон.ВесаНейрона КАК НейронВесаНейрона
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втВходныхСигналов КАК втВходныхСигналов
                   |        ПО НейронВесаНейрона.ВидВхода = втВходныхСигналов.ВидВходногоСигнала
                   |ГДЕ
                   |    НейронВесаНейрона.Ссылка В
                   |            (ВЫБРАТЬ
                   |                вт.Нейрон
                   |            ИЗ
                   |                втНейроны КАК вт)
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    НейронВесаНейрона.Ссылка";
    Запрос.УстановитьПараметр("ТЗВходныхСигналов",ТЗВходныеСигналы);
    Запрос.УстановитьПараметр("НейроСеть",ОднослойнаяСеть);
    ВыходыСети = Запрос.Выполнить().Выгрузить();
    ВыходныеСигналы.Загрузить(ВыходыСети);
КонецПроцедуры
&НаКлиенте
Процедура Расчет(Команда)
    РасчетНаСервере();
КонецПроцедуры

Ошибка
Ошибка инициализации модуля: ВнешняяОбработка.РаботаОднослойнойСети.Форма.Форма.Форма
по причине:
{ВнешняяОбработка.РаботаОднослойнойСети.Форма.Форма.Форма(13,21)}: Пропущен символ '"' (двойная кавычка)
    Запрос.Текст = "<<?>>
{ВнешняяОбработка.РаботаОднослойнойСети.Форма.Форма.Форма(13,21)}: Ожидается символ ';'
    Запрос.Текст = "<<?>>
{ВнешняяОбработка.РаботаОднослойнойСети.Форма.Форма.Форма(14,10)}: Неопознанный оператор
ВЫБРАТЬ <<?>>ПЕРВЫЕ 1 ОднослойнаяЛинейнаяСетьНейроны.Нейрон КАК Нейрон
{ВнешняяОбработка.РаботаОднослойнойСети.Форма.Форма.Форма(25,24)}: Неопознанный оператор
                       <<?>>НейронВесаНейрона.ВидВхода КАК ВидВходногоСигнала,

MuI_I_Ika

"|" - это просто перенос строки.

2 запроса в одном - это пакетный запрос. в нем запросы выполняются один за другим

developersvil

Разобралась - ошибок нет, но и не выводит ничего...как тут http://www.1s-up.ru/konfiguracija-v-1c-8-3-odnoslojnaja-linejnaja-nejronnaja-set/

&НаСервере
Процедура ОднослойнаяСетьПриИзмененииНаСервере()
// Вставить содержимое обработчика.
  //очищаем все таблицы значений
    Объект.ВходныеСигналы.Очистить();
    Объект.ВыходныеСигналы.Очистить();
    //в запросе во временную таблицу записываем первый нейрон,
    //выбранной нейросети
    //а потом получаем все входы данного нейрона
    Запрос = Новый Запрос;
    Запрос.Текст = "
|ВЫБРАТЬ
|ПЕРВЫЕ 1
                    |   ОднослойнаяНейроннаяСетьНейроны.Нейрон КАК Нейрон
                    |ПОМЕСТИТЬ втНейрон
                  |ИЗ
                    |   Справочник.ОднослойнаяЛинейнаяСеть.Нейроны КАК ОднослойнаяНейроннаяСетьНейроны
                  | ГДЕ
                    |   ОднослойнаяНейроннаяСетьНейроны.Ссылка = &НейроСеть
                   
                    |ИНДЕКСИРОВАТЬ ПО
                    |   Нейрон
                    |;
                    |
  |////////////////////////////////////////////////////////////////////////////////                 
                  | ВЫБРАТЬ
                    |   НейронВесаНейрона.ВидВхода КАК ВидВходногоСигнала,
                    |   0 КАК ВходнойСигнал
                  | ИЗ
                    |   Справочник.Нейрон.ВесаНейрона КАК НейронВесаНейрона
                    |ГДЕ
                    |   НейронВесаНейрона.Ссылка В
                    |          (ВЫБРАТЬ
                    |               вт.Нейрон
                    |           ИЗ
                    |               втНейрон КАК вт)";
    Запрос.УстановитьПараметр("НейроСеть",Объект.ОднослойнаяСеть);
   Выборка = Запрос.Выполнить().Выбрать();
 
Пока Выборка.Следующий()
Цикл
        НовСтр = Объект.ВходныеСигналы.Добавить();
        ЗаполнитьЗначенияСвойств(НовСтр,Выборка);
    КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОднослойнаяСетьПриИзменении(Элемент)
    ОднослойнаяСетьПриИзмененииНаСервере();

КонецПроцедуры



&НаСервере
Процедура Команда1НаСервере()
    ТЗВходныеСигналы =  Объект.ВходныеСигналы.Выгрузить(,"ВидВходногоСигнала,ВходнойСигнал");
    //передадим в запрос таблицу значений входных сигналов,
    //поместим ее в во временную таблицу
    //в другую временную таблицы поместим все нейроны указанной сети
    //в конечном запросе получим веса всех нейронов,
    //которые есть в сети и умножим их на данные входных сигналов
    //для этого свяжем таблицу весов нейронов со временной таблицей
    //входных сигналов по полю вид входного сигнала (внутреннее соединение)
    //сгруппируем все входные сигналы для нейрона,
    //чтобы получить выходной сигнал для каждого нейрона сети
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТЗВходныхСигналов.ВходнойСигнал КАК ВходнойСигнал,
                   |    ТЗВходныхСигналов.ВидВходногоСигнала КАК ВидВходногоСигнала
                   |ПОМЕСТИТЬ втВходныхСигналов
                   |ИЗ
                   |    &ТЗВходныхСигналов КАК ТЗВходныхСигналов
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    ВидВходногоСигнала
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ОднослойнаяНейроннаяСетьНейроны.Нейрон КАК Нейрон
                   |ПОМЕСТИТЬ втНейроны
                   |ИЗ
                   |    Справочник.ОднослойнаяЛинейнаяСеть.Нейроны КАК ОднослойнаяНейроннаяСетьНейроны
                   |ГДЕ
                   |    ОднослойнаяНейроннаяСетьНейроны.Ссылка = &НейроСеть
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    Нейрон
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    НейронВесаНейрона.Ссылка КАК Нейрон,
                   |    СУММА(НейронВесаНейрона.ЗначениеВеса * втВходныхСигналов.ВходнойСигнал) КАК ВыходнойСигнал
                   |ИЗ
                   |    Справочник.Нейрон.ВесаНейрона КАК НейронВесаНейрона
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втВходныхСигналов КАК втВходныхСигналов
                   |        ПО НейронВесаНейрона.ВидВхода = втВходныхСигналов.ВидВходногоСигнала
                   |ГДЕ
                   |    НейронВесаНейрона.Ссылка В
                   |            (ВЫБРАТЬ
                   |                вт.Нейрон
                   |            ИЗ
                   |                втНейроны КАК вт)
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    НейронВесаНейрона.Ссылка";
    Запрос.УстановитьПараметр("ТЗВходныхСигналов",ТЗВходныеСигналы);
    Запрос.УстановитьПараметр("НейроСеть", Объект.ОднослойнаяСеть);
    ВыходыСети = Запрос.Выполнить().Выгрузить();
     Объект.ВыходныеСигналы.Загрузить(ВыходыСети);
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
// Вставить содержимое обработчика.
Команда1НаСервере();

КонецПроцедуры


Добавлено: 18 окт 2018, 23:00


ЗаполнитьЗначенияСвойств(НовСтр,Выборка);

Почему эта строка ничего не выводит в форму?

MuI_I_Ika

А в консоли запросов запрос выводит какие-то данные?

developersvil

Конфиг и файл формы https://drive.google.com/drive/folders/19Xap7klKsUmZ3wNqePVB6WO2Mw-v7sYQ?usp=sharing
Объяснение, что в итоге http://www.1s-up.ru/konfiguracija-v-1c-8-3-odnoslojnaja-linejnaja-nejronnaja-set/

Добавлено: 20 окт 2018, 18:01


Цитата: MuI_I_Ika от 19 окт 2018, 10:13
А в консоли запросов запрос выводит какие-то данные?

Я не знаю, как посмотреть

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск