|
v7: Документ УдалитьСтроку() | ☑ | ||
---|---|---|---|---|
0
sunnmas
08.05.14
✎
12:40
|
В документе 2 строки:
ПолучитьСтрокуПоНомеру(1); УдалитьСтроку(); ПолучитьСтрокуПоНомеру(1); УдалитьСтроку(); Ошибка УдалитьСтроку(); {Документ.ДоговорЦТО.Форма.Модуль(152)}: Нет возможности удалить строку! Потому что После удаления первой строки вторая не меняет свой номер. Есть какая нибудь процедурка, которая нормализует номера строк. Т.е. после удаления первой строки я не хочу чтобы документ остался с одной строкой, к которой нужно обращаться по индексу 2. Это не логично. |
|||
1
Попытка1С
08.05.14
✎
12:43
|
Удалять с конца циклом.
|
|||
2
Попытка1С
08.05.14
✎
12:46
|
А какая задача вообще?
|
|||
3
КонецЦикла
08.05.14
✎
12:47
|
Есть УдалитьСтроки()
|
|||
4
sunnmas
08.05.14
✎
12:56
|
Табличная часть документа состоит из одного реквизита: ККМ.
Отображать нужно КК,Номер, ККМ.Модель, ККМ. и так далее Добавляю ТаблицуЗначений. ПриОткрытии закачиваю в нее все из табличной части По мере редактирования таблицы редактирую табличную часть Собственно редактирование таблицы сводится к двум задачам: Добавить строку, Удалить строку. Добавляем в конец - все просто Из задачи удаления строки вытекает вопрос топика |
|||
5
ikea
08.05.14
✎
12:58
|
Как вариант можно после удаления 1 строки, сделать выборку строк и программно переприсвоить нумерацию строк. А затем опять удалять свою 1 строку)))
|
|||
6
Попытка1С
08.05.14
✎
13:01
|
А почему не вставить текстовые колонки в ТЧ документа, зачем эти пляски?
|
|||
7
Масянька
08.05.14
✎
13:03
|
(4)
ТекущаяСтрока = СлужебнаяТаблица.ТекущаяСтрока(); СлужебнаяТаблица.УдалитьСтроку(); СлужебнаяТаблица.ТекущаяСтрока(ТекущаяСтрока - 1); СлужебнаяТаблица - у тебя это таблица док-та. |
|||
8
an-korot
08.05.14
✎
13:04
|
ты хотя бы помошник посмотри...
далитьСтроку(<?>); Синтаксис: УдалитьСтроку(<НомерСтроки>) УдалитьСтроку(1); УдалитьСтроку(1); и все. |
|||
9
Масянька
08.05.14
✎
13:09
|
(8) Сам смотри внимательно: твое - это для таблицы значений.
|
|||
10
an-korot
08.05.14
✎
14:12
|
(9) а ничего что он использует команду ПолучитьСтрокуПоНомеру которая применяется для таблицЗначений?
|
|||
11
Масянька
08.05.14
✎
14:25
|
(10) Чего-чего?!
|
|||
12
monsterZE
08.05.14
✎
14:28
|
(0) делай как в (6)
добавь текст-колонок в основную ТЧ, формула - имя реквизита, который надо отобразить основная ККМ; текст - ККМ.Модель и т.д.. |
|||
13
monsterZE
08.05.14
✎
14:29
|
к (0) если гнуть свой "логичный" изврат =) добавь после удаления строки ВыгрузитьТЧ, ЗагрузитьТЧ
оно перенумерует строки |
|||
14
Duke1C
08.05.14
✎
14:30
|
(4) А зачем после каждого чиха над ТаблицейЗначений теребить таб. часть документа (раз уж пошел этим путем). Сохраняй изменения ПриЗаписи. А вообще (6).
|
|||
15
lamme
08.05.14
✎
14:32
|
старый прикол, однако.
надо делать выборку -не с первой строки а с последней тогда при удалении 10-ой строки, выборка сама встанет на 9 и будет нормально |
|||
16
Масянька
08.05.14
✎
14:36
|
А зачем пихать в ТаблицуЗначений?
|
|||
17
sunnmas
08.05.14
✎
15:12
|
Попытка1С
"А почему не вставить текстовые колонки в ТЧ документа, зачем эти пляски?" Не хочу раздувать базу. Это лишняя инфа будет лежать в базе |
|||
18
sunnmas
08.05.14
✎
15:15
|
an-korot
"а ничего что он использует команду ПолучитьСтрокуПоНомеру которая применяется для таблицЗначений?" ПолучитьСтрокуПоНомеру - есть для документа, есть для таблицы значений |
|||
19
sunnmas
08.05.14
✎
15:18
|
"добавь текст-колонок в основную ТЧ, формула - имя реквизита, который надо отобразить
основная ККМ; текст - ККМ.Модель и т.д.." Подозреваю что пишешь, об "А почему не вставить текстовые колонки в ТЧ документа, зачем эти пляски?" По ходу я не знаю как это сделать. Это не насоздавать кучу текстовых реквизитов для табличной части? Если да, то я мне не позволяет религия так делать) |
|||
20
Builder
08.05.14
✎
15:19
|
(17) Гениально!
Текстовый реквизит на форме никаким образом не увеличивает базу. |
|||
21
sunnmas
08.05.14
✎
15:19
|
ВыгрузитьТЧ, ЗагрузитьТЧ
если ничего не поможет более элегантного |
|||
22
lamme
08.05.14
✎
15:20
|
(19)
что то не уловил куда клонишь но я делал примерно так ТЗ_ТЧ = создатьобъект("ТаблицаЗначений") выгрузитьтабличнуючасть(ТЗ_ТЧ) ... обратный перебор уже ТЗ_ТЧ ... загрузитьтабличнуючасть(ТЗ_ТЧ) |
|||
23
sunnmas
08.05.14
✎
15:22
|
"Гениально!
Текстовый реквизит на форме никаким образом не увеличивает базу." Не понимаю. То- есть если я данные из объекта ККМ буду не динамически подгружать из справочника, а складывать в текстовые реквизиты табличной части, то это ли не дубляж инфы? Или я темный? |
|||
24
Builder
08.05.14
✎
15:23
|
(19) Открываешь форму документа, хватаешь реквизит формы с буковкой "Т", тащишь на табличную часть.
Задаешь ему текст, в формуле пишешь ККМ.Модель. И будет тебе счастье. |
|||
25
Масянька
08.05.14
✎
15:24
|
(23) Слушай, ты опиши более детально задачу: что нужно получить, конфа, документ и т. д. А то - таким макаром посту к 100-ому только до уяснения задачи дойдет :)
|
|||
26
sunnmas
08.05.14
✎
15:39
|
Документ А. В нем реквизит Б (тип справочник В)
Справочник В: Реквизиты: Г,Д,Е,Ж,З,... Хочу на форме А видеть таблицу из Б где сразу видно каждое Г,Д,Е,Ж,З,... не храня их в виде строк в А (ибо религия). Как? Я делаю: Создаю ТаблицуЗначений При открытии документа все в нее вкачиваю из одного реквизита Б (Фигурально: Строка1.Колонка1 = Б.Г; Строка1.Колонка2 = Б.Д .. СледующаяСтрокаТЧ; Строка2.Колонка1 = Б.Г; Строка2.Колонка2 = Б.Д .. .. ) Соответственно нужны правки ТЧ. Добавить строку, которую я приписываю в конец ТЧ и конец ТаблицыЗначений и получаю синхронизацию. И удаление. Вот на удалении стопор. Произвольное количество строк ТЧ Хочу удалить любую Засинхронизировать ТЧ и ТЗ потипу так было бы логично для любого из вас: ПолучитьСтрокуПоНомеру(ТЗ.ТекущаяСтрока()); УдалитьСтроку(); ТЗ.УдалитьСтроку(); Так вот в ТЗ.УдалитьСтроку(); удаляет строку и пересчитывает номера, а УдалитьСтроку(); не пересчитывает их. Потом если удалять следующие строки, то можно нарваться на неприятность, т.к. ТЧ и ТЗ не синхронны. Так вот я матюкаюсь на разрабов 1С логика которых не понятна в данной ситуации. И прошу помощи как пересчитать номера строк в ТЧ, а не стоит вопрос о том использовать ли Таблицу значений. Ответ пока получен в виде выгрузитьтабличнуючасть(ТЗ_ТЧ) загрузитьтабличнуючасть(ТЗ_ТЧ) Если других вариантов нет, то пойду пробовать работает ли этот |
|||
27
sunnmas
08.05.14
✎
15:44
|
Builder
"Открываешь форму документа, хватаешь реквизит формы с буковкой "Т", тащишь на табличную часть. Задаешь ему текст, в формуле пишешь ККМ.Модель. И будет тебе счастье." Так ни разу не пробовал попробую. Но тема замораживается до понедельника. Спасибо |
|||
28
Масянька
08.05.14
✎
15:46
|
(26)Хочу на форме А видеть таблицу из Б где сразу видно каждое Г,Д,Е,Ж,З,.. - адназначна, как описал (24). А все остальное - довольно простая работа с ТЧ документа. И не нужно никаких ТаблицЗначений :)
|
|||
29
Попытка1С
08.05.14
✎
16:02
|
(17) Мощно..
|
|||
30
ERWINS
08.05.14
✎
16:04
|
лучше запросом выбрать, обработать и пихнуть назад
|
|||
31
Serginio1
08.05.14
✎
16:17
|
(4) Ты интерактивно удаляешь?
Процедура УдалитьКомплект(Тз,НомСтр) НомСтр=Тз.ТекущаяСтрока(); Тз.УдалитьСтроку(НомСтр); ПриИзмененииФормы(); Если НомСтр>Тз.КоличествоСтрок() Тогда Тз.ТекущаяСтрока(Тз.КоличествоСтрок()) иначе Тз.ТекущаяСтрока(НомСтр) КонецЕсли; Модификация=1; КонецПроцедуры |
|||
32
monsterZE
08.05.14
✎
17:24
|
(17) ТС, похоже ты тупиш. =)
текстовый реквизит НА МНОГОСТРОЧНОЙ ЧАСТИ - НЕ ЕСТЬ реквизит табличной части документа! Т.е. в свойствах документа, где реквизиты шапки и реквизиты ТЧ - ничего не добавляется. А добавляется на многострочной форме. Диалог - многострочная часть. Соответ - в эти поля значения подставляются из свойств объекта. И нигде их дублировать не нужно. Есть у тебя объект ККМ со свойством ККМ.Модель, вот и достаешь это ККМ.Модель |
|||
33
monsterZE
08.05.14
✎
17:38
|
фак. случайно разморозил тему. =)
все в (24) |
|||
34
sunnmas
14.05.14
✎
12:43
|
Все получилось. Я такого не знал. Да это то что нужно ребята!
НО... Как написать формулу для отображения периодических реквизитов? ККМ.Модель - строка - прокатывает ККМ.ЭКЛЗ - периодический - показывает пустое поле в таблице. |
|||
35
1dvd
14.05.14
✎
12:46
|
ККМ.ИспользоватьДату(...)
или ККМ.ЭКЛЗ.Получить(...) !!!но не вместе!!! |
|||
36
Масянька
14.05.14
✎
13:36
|
(34) Принято - благодарить за помощь.
|
|||
37
sunnmas
14.05.14
✎
13:37
|
Спасибо всем!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |