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

Автор Тема: Проблема с индексами в табличной части документа  (Прочитано 213 раз)

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

Оффлайн Yazon_DA

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-12
  • Сайт: 
  • Профессия: Программист 1С
Программист я начинающий, столкнулся с проблемой впервые. Погуглил, но решения проблемы не нашел :dfbsdfbsdf:
Проблема:
УФ, УП 8.3 В документе есть ТЧ. Удаляю строки в ТЧ путем выделения всех через SHIFT и нажатия на кнопку Delete. После чего программно вставляю в ТЧ новые строки. В результате при определении Индекса текущей строки (Элементы.ТЧ.ТекущаяСтрока) Индекс оказывается за пределами массива. Получается, Таблица на форме еще хранит в себе память об удаленных строках. Попытка решить проблему через записать/прочитать форму оказалась глупой.
Что делать?

Последний раз редактировалось: Yazon_DA; 12 Окт 2020, 14:02


Оффлайн Геннадий ОбьГЭС

  • Консультант-программист 1С. ЗВОНИТЕ!
  • *****
  • Сообщений: 4091
  • РЕПУТАЦИЯ: 169
  • КПД: 4%
  • Проблемы в 1С решу удаленно дешево
  • Регистрация: 2015-03-12
  • Компания: Фрилансер - частное лицо
  • Профессия: Программист 1С
после чего перед программной вставкой надо бы записать объект

Оффлайн Yazon_DA

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-12
  • Сайт: 
  • Профессия: Программист 1С
Добавлено: 12 Окт 2020, 14:30

после чего перед программной вставкой надо бы записать объект
Сделал через ЭтотОбъект.Записать() и ЭтотОбъект.Прочитать()
НЕ помогло
При этом, если форму закрыть и открыть заново - все ок. Что за нафиг?! Почему тогда не работает при ЭтаФорма.Прочитать()?

Последний раз редактировалось: Yazon_DA; 12 Окт 2020, 14:42

Оффлайн IL2016

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: 12
  • КПД: 14%
  • Регистрация: 2016-02-20
  • Сайт: 
  • Профессия: Ученик 1С
Удаляю строки в ТЧ путем выделения всех через SHIFT и нажатия на кнопку Delete.
так, это Вы делаете в пользовательском режиме.
а в чем состоит ваша задача?

Использую учебную платформу 1С:Предприятие 8.3

Оффлайн Геннадий ОбьГЭС

  • Консультант-программист 1С. ЗВОНИТЕ!
  • *****
  • Сообщений: 4091
  • РЕПУТАЦИЯ: 169
  • КПД: 4%
  • Проблемы в 1С решу удаленно дешево
  • Регистрация: 2015-03-12
  • Компания: Фрилансер - частное лицо
  • Профессия: Программист 1С
 Запись происходит только в оперативной памяти, а на жесткий диск - потом

Надо поискать - как форсировать сброс файлов кэша 1С программно

Оффлайн Yazon_DA

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-12
  • Сайт: 
  • Профессия: Программист 1С
Удаляю строки в ТЧ путем выделения всех через SHIFT и нажатия на кнопку Delete.
так, это Вы делаете в пользовательском режиме.
а в чем состоит ваша задача?

Задача состоит в определении текущей строки ТЧ при обработке действия пользователя в определенной колонке. Стандартное решение - ИндексСтроки = Элементы.ТЧ.ТекущаяСтрока. Проблема в том, что при указанной последовательности действий Данный метод возвращает значение, равное сумме текущего индекса и количества удаленных строк, что в свою очередь приводит к ошибке "Индекс находится за пределами массива"
Добавлено: 12 Окт 2020, 16:56

Запись происходит только в оперативной памяти, а на жесткий диск - потом

Надо поискать - как форсировать сброс файлов кэша 1С программно
Проблема в том, что Объект.ТЧ.Количество() дает правильное значение количества строк в ТЧ, а Элементы.ТЧ.ТекущаяСтрока возвращает индекс, равный сумме текущего индекса и количества удаленных строк. Таким образом, объект на сервере все удалил и индексы пересчитал, а Форма на клиенте - нет. При этом шаманство  в виде ЭтаФорма.Прочитать() не помогает от слова совсем. Волос на голове всё меньше :(((

Последний раз редактировалось: Yazon_DA; 12 Окт 2020, 16:56. Причина: Объединение сообщений

Оффлайн IL2016

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: 12
  • КПД: 14%
  • Регистрация: 2016-02-20
  • Сайт: 
  • Профессия: Ученик 1С
касательно индексов строк ТЧ:
до действий пользователя ТЧ содержит строки, каждая имеет свой индекс. При удалении любой строки сверху  индексы ниже-находящихся строк смещаются на тоже число удаленных строк. Поэтому система и сообщает что индекс выходит за пределы...   
Использую учебную платформу 1С:Предприятие 8.3

Оффлайн Yazon_DA

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-12
  • Сайт: 
  • Профессия: Программист 1С
касательно индексов строк ТЧ:
до действий пользователя ТЧ содержит строки, каждая имеет свой индекс. При удалении любой строки сверху  индексы ниже-находящихся строк смещаются на тоже число удаленных строк. Поэтому система и сообщает что индекс выходит за пределы...
Я, наверное, тупой, но эта теория мне не помогает ибо:
1. В пользовательском режиме пользователь в ТЧ выделяет строки и удаляет их.
2. В пользовательском режиме пользователь нажимает кнопку, по которой программно вставляются новые строки.
3. ПОСЛЕ этих действий пользователь тыкает на ячейку ТЧ и вызывается обработчик "ПриИзменении" в котором я вызываю метод Элементы.ТЧ.ТекущаяСтрока, который возвращает неверное значение (см выше). Что не так я делаю? И главное: что НУЖНО мне сделать?

Последний раз редактировалось: Yazon_DA; 12 Окт 2020, 17:17

Оффлайн IL2016

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: 12
  • КПД: 14%
  • Регистрация: 2016-02-20
  • Сайт: 
  • Профессия: Ученик 1С
ну наконец-то описание задачи. :D
Добавлено: 12 Окт 2020, 17:42

вызываю метод Элементы.ТЧ.ТекущаяСтрока
надо брать Элементы.ТЧ.ТекущиеДанные. Совсем непонятно для решения какой подзадачи вы ищете индекс строки?

Использую учебную платформу 1С:Предприятие 8.3

Последний раз редактировалось: IL2016; 12 Окт 2020, 17:42. Причина: Объединение сообщений

Оффлайн Yazon_DA

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-12
  • Сайт: 
  • Профессия: Программист 1С
ну наконец-то описание задачи. :D
Добавлено: 12 Окт 2020, 17:42

вызываю метод Элементы.ТЧ.ТекущаяСтрока
надо брать Элементы.ТЧ.ТекущиеДанные. Совсем непонятно для решения какой подзадачи вы ищете индекс строки?
Спасибо. Пошел пробовать.
Чтобы в зависимости от значения данных из других ячеек текущей строки правильно обработать нажатие пользователя
PS Всё работает! Спасибо!!! Этот способ сильно лучше того, что использовал ранее. :zebzdr:

Последний раз редактировалось: Yazon_DA; 12 Окт 2020, 18:00


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

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

Ответов: 1
Просмотров: 6327
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Добавление сведений в графу "основание" документа "ТОРГ-12"

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

Ответов: 4
Просмотров: 10132
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

Автор yunovoРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 9070
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

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

Ответов: 14
Просмотров: 14299
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz
Фамилия руководителя в печатных формах документа "Акт сверки", "Акт об оказании"

Автор MKozzlikРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 9472
Последний ответ 03 Фев 2012, 17:27
от Dinah

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
82 Сообщений
IL2016
32 Сообщений
antoneus antoneus
31 Сообщений
alexandr_ll
22 Сообщений
DmitriyF DmitriyF
20 Сообщений
MuI_I_Ika MuI_I_Ika
16 Сообщений
Varlant1n
15 Сообщений
Дмитрий Джей Дмитрий Джей
13 Сообщений
Алексей_1985_06
12 Сообщений
illiona
10 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal