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

Автор Тема: Проблема с сортировкой таблицы по НомеруСтроки  (Прочитано 867 раз)

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

Оффлайн Gennadiyy

  • **
  • Сообщений: 77
  • РЕПУТАЦИЯ: 5
  • КПД: 6%
  • Регистрация: 2015-12-08
  • Сайт: 
Здравствуйте! Я только начал изучать 1с, и возникли некоторые трудности:( Есть внешняя обработка, в ней есть форма, на форме присутствует табличная часть с двумя реквизитами - 1) НомерСтроки (стандартный реквизит) 2) Значение, так же на форме присутствует кнопка.
Так вот мне необходимо, что бы по нажатию по кнопке табличная часть сортировалась по номеру строки по убыванию, т.е. отсчет начинался не с 1, а к примеру с 10,9,8 и т.д., пишу так:

&НаКлиенте
Процедура ОтсортироватьСтроки(Команда)
Объект.ТабличнаяЧасть1.Сортировать("Значение Убыв");
КонецПроцедуры
Строки нормально сортируются, только по столбцу "Значение", мне же надо, что бы сортировка шла по номеру строки, пишу так:

Объект.ТабличнаяЧасть1.Сортировать("НомерСтроки Убыв");

И ничего не происходит, даже, если выделить столбец "НомерСтроки" и нажать по стандартной команде "Сортировать по убыванию", то так же ничего не происходит + в таблице ничего нельзя редактировать, хотя на всех столбцах стоит галка "Доступность" и не стоит галка "Только просмотр", скажите, в чем может быть причина того, что нельзя редактировать поля в таблице и возможно ли сделать сортировку по убыванию стандартного реквизита?


Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 40
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Сортировку сделать можно, но немного другим способом.
А реквизит НомерСтроки - служебный. И редактировать его нельзя.
Для этого необходимо набрать в синтаксис-помощнике НомерСтроки и прочитать назначение данного реквизита. Т.к. Использование - Только Чтение(!!!).
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
номера строк всегда выстроены от 1 и до количества строк.
добавляйте еще одну колонку типа число и имитируйте СЛУЖЕБНУЮ колонку НомерСтроки.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 40
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
А я придумал так:
1. Создать новую таблицу значений с такими же колонками
2. Загрузить туда данную таблицу с использованием метода Вставить(1)
3. Очистить данную таблицу
4. Загрузить значения из созданной.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн Gennadiyy

  • **
  • Сообщений: 77
  • РЕПУТАЦИЯ: 5
  • КПД: 6%
  • Регистрация: 2015-12-08
  • Сайт: 
А я придумал так:
1. Создать новую таблицу значений с такими же колонками
2. Загрузить туда данную таблицу с использованием метода Вставить(1)
3. Очистить данную таблицу
4. Загрузить значения из созданной.
Спасибо! Сегодня попробую так сделать)
Добавлено: 08 Дек 2015, 10:14

А я придумал так:
1. Создать новую таблицу значений с такими же колонками
2. Загрузить туда данную таблицу с использованием метода Вставить(1)
3. Очистить данную таблицу
4. Загрузить значения из созданной.
Спасибо! Сегодня попробую так сделать)
Так тоже нельзя:( Пишет, что "Поле объекта недоступно для записи (НомерСтроки)"

Последний раз редактировалось: Gennadiyy; 08 Дек 2015, 10:14. Причина: Объединение сообщений

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 40
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Учись студент.
ТЗ = Новый ТаблицаЗначений; // Промежуточная таблица
Для каждого Колонка Из ЭлементыФормы.Материалы.Колонки Цикл // Таблица Материалы из документа
ТЗ.Колонки.Добавить(Колонка.Имя);
КонецЦикла;

Для каждого СтрТЧ Из Материалы Цикл
Стр = ТЗ.Вставить(0);
ЗаполнитьЗначенияСвойств(Стр, СтрТЧ);
КонецЦикла;

Материалы.Очистить();
Материалы.Загрузить(ТЗ);
Кнопка находится в самом документе. Код работает. Сам сейчас проверил.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн Gennadiyy

  • **
  • Сообщений: 77
  • РЕПУТАЦИЯ: 5
  • КПД: 6%
  • Регистрация: 2015-12-08
  • Сайт: 
Учись студент.
ТЗ = Новый ТаблицаЗначений; // Промежуточная таблица
Для каждого Колонка Из ЭлементыФормы.Материалы.Колонки Цикл // Таблица Материалы из документа
ТЗ.Колонки.Добавить(Колонка.Имя);
КонецЦикла;

Для каждого СтрТЧ Из Материалы Цикл
Стр = ТЗ.Вставить(0);
ЗаполнитьЗначенияСвойств(Стр, СтрТЧ);
КонецЦикла;

Материалы.Очистить();
Материалы.Загрузить(ТЗ);
Кнопка находится в самом документе. Код работает. Сам сейчас проверил.

У меня выдает "Тип не определен (ТаблицаЗначений)
   ТЗ = Новый <<?>>ТаблицаЗначений; // Промежуточная таблица (Проверка: Тонкий клиент)"
+ ЭлементыФормы не находит (т.е. не работает дополнение кода по нажатию ctrl+пробел)
Возможно из за того, что я делаю всё во внешней обработке?

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 40
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Это я написал для толстого клиента. Тебе теперь нужно адаптировать этот код для тонкого клиента.
Таблица значений используется только в толстом клиенте. Поэтому и ошибка.
ЭлементыФормы в толстом клиенте, Элементы - в тонком. Как-то так.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн Gennadiyy

  • **
  • Сообщений: 77
  • РЕПУТАЦИЯ: 5
  • КПД: 6%
  • Регистрация: 2015-12-08
  • Сайт: 
Это я написал для толстого клиента. Тебе теперь нужно адаптировать этот код для тонкого клиента.
Таблица значений используется только в толстом клиенте. Поэтому и ошибка.
ЭлементыФормы в толстом клиенте, Элементы - в тонком. Как-то так.

Я пытаюсь сделать так: Создал новую табличную часть во внешнем обработчике с реквизитами: 1) НомерСтроки (Стандартный реквизит) 2) НомерСтр (сюда будет передаваться номер строки из первой таблице, и по нему и будет происходить сортировка) 3) Значение

КоличествоСтрок = Объект.ТабличнаяЧасть1.Количество();
Счетчик = 0;
Пока Счетчик<КоличествоСтрок Цикл
СуществующаяСтрока = Объект.ТабличнаяЧасть1.Получить(Счетчик);
НоваяСтрока = Объект.ТабличнаяЧасть2.Добавить();
НоваяСтрока.НомерСтр = СуществующаяСтрока.НомерСтроки;
НоваяСтрока.Значение = СуществующаяСтрока.Значение;
Счетчик = Счетчик + 1;
КонецЦикла;
Объект.ТабличнаяЧасть2.Сортировать("НомерСтр Убыв");

Объект.ТабличнаяЧасть1.Очистить();
Счетчик = 0;
КоличествоСтрок = Объект.ТабличнаяЧасть2.Количество();

Пока Счетчик<КоличествоСтрок Цикл
СуществующаяСтрока = Объект.ТабличнаяЧасть2.Получить(Счетчик);
НоваяСтрока = Объект.ТабличнаяЧасть1.Добавить();
НоваяСтрока.НомерСтроки = СуществующаяСтрока.НомерСтр;
НоваяСтрока.Значение = СуществующаяСтрока.Значение;
Счетчик = Счетчик + 1;
КонецЦикла;

Во время выполнения программы появляется сообщение "{Форма.Форма.Форма(71)}: Поле объекта недоступно для записи (НомерСтроки) НоваяСтрока.НомерСтроки = СуществующаяСтрока.НомерСтр;"
Добавлено: 08 Дек 2015, 14:23

Это я написал для толстого клиента. Тебе теперь нужно адаптировать этот код для тонкого клиента.
Таблица значений используется только в толстом клиенте. Поэтому и ошибка.
ЭлементыФормы в толстом клиенте, Элементы - в тонком. Как-то так.

Я пытаюсь сделать так: Создал новую табличную часть во внешнем обработчике с реквизитами: 1) НомерСтроки (Стандартный реквизит) 2) НомерСтр (сюда будет передаваться номер строки из первой таблице, и по нему и будет происходить сортировка) 3) Значение

КоличествоСтрок = Объект.ТабличнаяЧасть1.Количество();
Счетчик = 0;
Пока Счетчик<КоличествоСтрок Цикл
СуществующаяСтрока = Объект.ТабличнаяЧасть1.Получить(Счетчик);
НоваяСтрока = Объект.ТабличнаяЧасть2.Добавить();
НоваяСтрока.НомерСтр = СуществующаяСтрока.НомерСтроки;
НоваяСтрока.Значение = СуществующаяСтрока.Значение;
Счетчик = Счетчик + 1;
КонецЦикла;
Объект.ТабличнаяЧасть2.Сортировать("НомерСтр Убыв");

Объект.ТабличнаяЧасть1.Очистить();
Счетчик = 0;
КоличествоСтрок = Объект.ТабличнаяЧасть2.Количество();

Пока Счетчик<КоличествоСтрок Цикл
СуществующаяСтрока = Объект.ТабличнаяЧасть2.Получить(Счетчик);
НоваяСтрока = Объект.ТабличнаяЧасть1.Добавить();
НоваяСтрока.НомерСтроки = СуществующаяСтрока.НомерСтр;
НоваяСтрока.Значение = СуществующаяСтрока.Значение;
Счетчик = Счетчик + 1;
КонецЦикла;

Во время выполнения программы появляется сообщение "{Форма.Форма.Форма(71)}: Поле объекта недоступно для записи (НомерСтроки) НоваяСтрока.НомерСтроки = СуществующаяСтрока.НомерСтр;" Т.е. как я понимаю в моем случае стандартный реквизит "НомерСтроки" изменить нельзя?


Последний раз редактировалось: Gennadiyy; 08 Дек 2015, 14:23. Причина: Объединение сообщений

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 40
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
НомерСтроки доступен только для чтения. Туда никак нельзя что-то записать. В синтаксис-помощнике это написано.ui;;t;
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс


Теги:
 

Проблема с выгрузкой НН в "Звит" Не найдено соответствие для схемы "J1201008"

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

Ответов: 3
Просмотров: 758
Последний ответ 06 Июл 2016, 09:19
от AldemaH
проблема с "ЗагрузкаДанныхИзТабличногоДокумента"

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

Ответов: 4
Просмотров: 3952
Последний ответ 08 Янв 2014, 14:30
от LordWizard
Проблема с развертыванием окон и сохранением окон

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

Ответов: 1
Просмотров: 1306
Последний ответ 09 Дек 2015, 14:09
от pavl_vs
Проблема с отчетом "Перемещение товаров"

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

Ответов: 3
Просмотров: 2831
Последний ответ 14 Дек 2010, 20:27
от progmikon
1C 8.2 УПП проблема с отчетом "Задолженость по контрагентам"

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

Ответов: 2
Просмотров: 3039
Последний ответ 26 Сен 2011, 20:42
от Dethmontt

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
149 Сообщений
alex0402
102 Сообщений
MuI_I_Ika MuI_I_Ika
53 Сообщений
Norfolk
50 Сообщений
LexaK
47 Сообщений
AsadRoman
27 Сообщений
друган
21 Сообщений
SlimShady
21 Сообщений
alexandr_ll
19 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal