Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
20 Окт 2017, 06:16
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Индекс находится за границами массива  (Прочитано 7247 раз)

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

Оффлайн Александр Ездаков

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-19
  • Сайт: 
Есть код:
&НаСервереБезКонтекста
Функция расчетНаСервере(Сотрудник)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|ПродажиОбороты.ПроданоОборот
|ИЗ
| РегистрНакопления.Продажи.Обороты(, , Месяц, ) КАК ПродажиОбороты
|ГДЕ
| ПродажиОбороты.Сотрудник.Наименование = &Сотрудник";
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
Результат = Запрос.Выполнить().Выгрузить()[0];
//ВыборкаДетальныеЗаписи = Результат.Выбрать();
//ВашеЗначение = Запрос.Выполнить().Выгрузить()[0];
Сообщить(Результат);
КонецФункции

&НаКлиенте
Процедура расчет(Команда)
ТекущаяДата = Объект.Дата;
//Объект.Движения.Зарплата
ТекущийМесяц = Месяц(ТекущаяДата);
//Сообщить(ТекущийМесяц);
//ЗП = СпрЗарплата.ПродажДо;

//Сообщить(ЗП);
ЗП = 10;
Сообщить(ЗП);
ЗП = Элементы.Зарплата.ТекущиеДанные;
Парам = расчетНаСервере(ЗП.Сотрудник);

КонецПроцедуры
И есть ошибка:
{Документ.СведенияОЗарплате.Форма.ФормаДокумента.Форма(13)}: Индекс находится за границами массива
Результат = Запрос.Выполнить().Выгрузить()[0];
Есть предположения? Версия 8.3: ссыль на конфиг


Оффлайн Kironten

  • *****
  • Сообщений: 879
  • РЕПУТАЦИЯ: 183
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Есть код:
&НаСервереБезКонтекста
Функция расчетНаСервере(Сотрудник)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|ПродажиОбороты.ПроданоОборот
|ИЗ
| РегистрНакопления.Продажи.Обороты(, , Месяц, ) КАК ПродажиОбороты
|ГДЕ
| ПродажиОбороты.Сотрудник.Наименование = &Сотрудник";
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
Результат = Запрос.Выполнить().Выгрузить()[0];
//ВыборкаДетальныеЗаписи = Результат.Выбрать();
//ВашеЗначение = Запрос.Выполнить().Выгрузить()[0];
Сообщить(Результат);
КонецФункции

&НаКлиенте
Процедура расчет(Команда)
ТекущаяДата = Объект.Дата;
//Объект.Движения.Зарплата
ТекущийМесяц = Месяц(ТекущаяДата);
//Сообщить(ТекущийМесяц);
//ЗП = СпрЗарплата.ПродажДо;

//Сообщить(ЗП);
ЗП = 10;
Сообщить(ЗП);
ЗП = Элементы.Зарплата.ТекущиеДанные;
Парам = расчетНаСервере(ЗП.Сотрудник);

КонецПроцедуры
И есть ошибка:
{Документ.СведенияОЗарплате.Форма.ФормаДокумента.Форма(13)}: Индекс находится за границами массива
Результат = Запрос.Выполнить().Выгрузить()[0];
Есть предположения? Версия 8.3: ссыль на конфиг

Есть не предположение, а уверенность, что вы не умеете работать с запросами.
И тут надо не подсказывать, а учить.
Но увы, боюсь вас мой ответ не устроит.

Оффлайн Александр Ездаков

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

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
ТЗРезультат = Запрос.Выполнить().Выгрузить();
СтрокаТЗ=ТЗРезультат[0];
Сообщить(СтрокаТЗ) - не очень понятно что вы тут пытаетесь таким образом увидеть. Тем более, что строка ТХ с сервера на клиент не передается.

Оффлайн Александр Ездаков

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-19
  • Сайт: 
ТЗРезультат = Запрос.Выполнить().Выгрузить();
СтрокаТЗ=ТЗРезультат[0];
Сообщить(СтрокаТЗ) - не очень понятно что вы тут пытаетесь таким образом увидеть. Тем более, что строка ТХ с сервера на клиент не передается.
И в итоге я вернулся к тому с чего начал. Сообщить мне выводит "СтрокаТаблицыЗначений", когда мне требуется получить содержимое этой строки. Я это делаю, чтобы полученное значение я мог в дальнейшем обработать в другой процедуре/функции. А использую сообщить в качестве проверки, как я прост других способов не знаю. Про отладку с точками останова можно не рассказывать, так как и их использую тоже.
Я нашёл обработку с консолью запросов:
Рейтинг@Mail.ru
А Вам,Kironten, "спасибо" хочу сказать, из ваших слов я посчитал, что запрос у меня не верный, что мне добавило ещё один круг страданий, но благо я нашёл консоль запросов и убедился в правильности моего запроса.

Оффлайн Kironten

  • *****
  • Сообщений: 879
  • РЕПУТАЦИЯ: 183
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
А Вам,Kironten, "спасибо" хочу сказать, из ваших слов я посчитал, что запрос у меня не верный, что мне добавило ещё один круг страданий, но благо я нашёл консоль запросов и убедился в правильности моего запроса.

Т.е. вы искренне верите, что это:
Запрос.Текст = 
        "ВЫБРАТЬ
        |    Зарплата.ПродажОт,
        |    Зарплата.ПродажДо,
        |    Зарплата.НачисляемаяЗП,
        |    ПродажиОбороты.Сотрудник,
        |    СУММА(ПродажиОбороты.ПроданоОборот) КАК ПроданоОборот
        |ИЗ
        |    РегистрНакопления.Продажи.Обороты(, , Месяц, ) КАК ПродажиОбороты,
        |    Справочник.Зарплата КАК Зарплата
        |ГДЕ
        |    ПродажиОбороты.Сотрудник = &Сотрудник
        |
        |СГРУППИРОВАТЬ ПО
        |    Зарплата.ПродажОт,
        |    Зарплата.ПродажДо,
        |    Зарплата.НачисляемаяЗП,
        |    ПродажиОбороты.Сотрудник";
и это:
Результат = Запрос.Выполнить().Выгрузить()[0];
Это нормальная работа с запросами?

А в конце концов, ваш "правильный" запрос, за ВСЕ периоды:
Запрос.Текст = 
        "ВЫБРАТЬ
        |    ПродажиОбороты.ПроданоОборот
        |    ИЗ
        |    РегистрНакопления.Продажи.Обороты(, , Месяц, ) КАК ПродажиОбороты
        |    ГДЕ
        |    ПродажиОбороты.Сотрудник = &Сотрудник";

тоже считается правильным? О.о
Ну, за ради Бога. Сколько людей, столько мнений.

Оффлайн Александр Ездаков

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-19
  • Сайт: 
Т.е. вы искренне верите, что это:
Первый код Вы выдернули из предыдущей моей темы, я полностью соглашусь что он нисколечки не правильный, ниразу, даже под дулом пистолета.
Это нормальная работа с запросами?
Я вообще не имею никакого понятия как после выполнения запроса с ним работать. Поэтому я в новой теме уже прошу помощи именно с этим, так как понял, что глобальные проблемы тут не решаются. Было простое желание хотя бы получить пинка в сторону, где я могу найти ответ.
А в конце концов, ваш "правильный" запрос, за ВСЕ периоды:
Не знаю чем Вас не утроил последний запрос, может другим видением решения данной задачи, но то, что данный запрос в консоли запросов выдаёт нужный мне и ожидаемым мной ответ говорит лишь о том, что я полный идиот. Получается так.
Из ваших слов я понял, что зря зарегистрировался и задал здесь вопрос. Но при всём при этом не понял как учиться и не задавать при этом вопросы.



Оффлайн Kironten

  • *****
  • Сообщений: 879
  • РЕПУТАЦИЯ: 183
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Т.е. вы искренне верите, что это:
Первый код Вы выдернули из предыдущей моей темы, я полностью соглашусь что он нисколечки не правильный, ниразу, даже под дулом пистолета.
Это нормальная работа с запросами?
Я вообще не имею никакого понятия как после выполнения запроса с ним работать. Поэтому я в новой теме уже прошу помощи именно с этим, так как понял, что глобальные проблемы тут не решаются. Было простое желание хотя бы получить пинка в сторону, где я могу найти ответ.
Все это и указывало на то, что я и ответил вам в первом посте. Выдернут, не выдернут - называйте как хотите, это ваши сегодняшние посты. Все это свидетельствует, о том, что как бы это грубо не звучало, но вы не очень хорошо представляете, как вообще работают запросы. Этому надо учиться, как вы правильно заметили. Для этого есть книги (в первую очередь Радченко), видео тоже очень много (тот же Чистов, в свободном доступе). С моей точки зрения, лучше было бы сначала подучить азы, а потом спрашивать, где тут ошибка? А у вас получилось, что вы фактически все написали некорректно. сложнее было найти, что там написано правильно.

А в конце концов, ваш "правильный" запрос, за ВСЕ периоды:
Не знаю чем Вас не утроил последний запрос, может другим видением решения данной задачи, но то, что данный запрос в консоли запросов выдаёт нужный мне и ожидаемым мной ответ говорит лишь о том, что я полный идиот. Получается так.
Из ваших слов я понял, что зря зарегистрировался и задал здесь вопрос. Но при всём при этом не понял как учиться и не задавать при этом вопросы.
Последний ваш запрос написан как минимум без параметров времени. Т.е. вы получаете продажи сотрудника за все время существования базы. Зачем спрашивается нужны продажи января 2014 года для расчета премии/зарплаты октября 2015 года?

Ну да ладно. Это все полемика. На самом деле здесь все белые и пушистые.
П.С.
Точка зрения автора может не совпадать с мнением редакции (с)

Оффлайн Александр Ездаков

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-19
  • Сайт: 
Все это и указывало на то, что я и ответил вам в первом посте. Выдернут, не выдернут - называйте как хотите, это ваши сегодняшние посты. Все это свидетельствует, о том, что как бы это грубо не звучало, но вы не очень хорошо представляете, как вообще работают запросы. Этому надо учиться, как вы правильно заметили. Для этого есть книги (в первую очередь Радченко), видео тоже очень много (тот же Чистов, в свободном доступе). С моей точки зрения, лучше было бы сначала подучить азы, а потом спрашивать, где тут ошибка? А у вас получилось, что вы фактически все написали некорректно. сложнее было найти, что там написано правильно.
Вот тут действительно спасибо, без сарказма. Радченко у меня скачан, но объём очень внушительный, поэтому, чтобы в этой книге найти что-то конкретное уходит ну очень большое кол-во времени. Про Чистова не знал, сейчас качаю. Про весь синтаксис языка в 1с скажу, что я его не понимаю, он мне напоминает C# Я много раз пытался учить его, перелопатил кучу книг, толку было ноль, а вот когда взялся решить конкретную задачу, так дело сразу сдвинулось с мёртвой точки. Так и с 1с. Уперся в эти запросы и ни туда и ни сюда.
Последний ваш запрос написан как минимум без параметров времени.
А мне пока оно и не надо. Мне бы разобраться как просто получить число, которое этот запрос выдаёт, в виде переменной, чтобы её дальше использовать. Вот как я с этим разберусь, то я вернусь опять к времени, так как Вы правильно заметили мне не нужны продажи за всё время, а мне нужны всего за один месяц. Если слон большой, зачем пытаться его съесть целиком, когда можно по частям?


Теги:
 

Попытка вставки неуникального значения в уникальный индекс

Автор MuI_I_IkaРаздел Ошибки 1С:Предприятия

Ответов: 0
Просмотров: 2311
Последний ответ 19 Фев 2015, 17:01
от MuI_I_Ika
Попытка вставки неуникального значения в уникальный индекс:

Автор fsaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 787
Последний ответ 21 Янв 2017, 21:08
от fsa
Работа с xBase. Не может распознать индекс.

Автор ***Vjacheslav***Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 3608
Последний ответ 13 Окт 2010, 08:44
от ***Vjacheslav***
Как, передав в запрос массивСсылок, получить из запроса ТабЗнач с данными из массива?

Автор deziren1Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 1818
Последний ответ 27 Апр 2016, 14:09
от has
Как получить индекс элемента управления?

Автор MKozzlikРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 5613
Последний ответ 11 Окт 2011, 16:10
от MKozzlik

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
89 Сообщений
alex0402
53 Сообщений
AIFrame
43 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
37 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
19 Сообщений
DmitriyF DmitriyF
14 Сообщений
BuhRust
12 Сообщений

* Кто онлайн

  • Точка Гостей: 250
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal