К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Копирование строки документа СВОЕЙ кнопкой. К тем, кто помнит 77

Гость
0 - 24.03.2016 - 16:10
Собственно, сабж. Находимся в заполненной табличной части документа, курсор стоит на одной из строк.
Нужно, нажав на кнопку на форме - частично скопировать строку, на которой находится курсор. Контекстное "Копировать" не прокатывает - копирует все реквизиты, а все они не нужны.
Есть у кого пример кода процедуры?



Гость
1 - 24.03.2016 - 16:18
А что именно не получается?
Гость
2 - 24.03.2016 - 16:22
1-Dump 20031 >
Да ничего. Жму на кнопку, попадаю в процедуру, определяю - где курсор.
НоваяСтрока()
и все, сразу перепозиционирование. А как с той, где поначалу был курсор - данные стянуть - хз.
Гость
3 - 24.03.2016 - 16:25
Правильно. Сначала запоминаем что надо и только потом НоваяСтрока()
Гость
4 - 24.03.2016 - 16:27
Во, сенкс, я так и думал: загоняем все, что нужно в переменные - иначе никак не выйдет. Щас попробую.
5 - 24.03.2016 - 16:28
//получить текущую строку ТЧ дока = поз
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗ);
ТЗ.НоваяСтрока();
ТЗ.Часть1 = ТЗ.ПолучитьЗначение(поз,"Часть1");
ТЗ.Часть2 = ТЗ.ПолучитьЗначение(поз,"Часть2");
ТЗ.Часть3 = ФигняКакаяТо;
ЗагрузитьТабличнуюЧасть(ТЗ);
Гость
6 - 24.03.2016 - 16:31
5-Чучундер >
Серег, через ТЗ - понятно, думаешь проще?
7 - 24.03.2016 - 16:32
//получить текущую строку ТЧ дока = поз
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗраб = СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗ);
ТЗ.Выгрузить(ТЗраб,поз,поз);
ТЗ.НоваяСтрока();
ТЗ.Заполнить(ТЗраб,ТЗ.НомерСтроки,ТЗ.НомерСтроки);
ТЗ.ЧтоПереинициализировать1=Фигня;
ТЗ.ЧтоПереинициализировать2=Херня;
ЗагрузитьТабличнуюЧасть(ТЗ);
8 - 24.03.2016 - 16:33
6-Valery > если запоминать в пром.буфере - придется цикл по колонкам крутить.
9 - 24.03.2016 - 16:35
Можно третий вариант
программно:
открываем док.
позиционируемся на нужную строку
эмулируем Ф9
записатьдок
закрываем форму
переписываем некопируемые значения
10 - 24.03.2016 - 16:37
Епрст придет - придумает еще красивше
Гость
11 - 24.03.2016 - 16:38
Дальше усложнение идет:
я программно заполняю документ.
например
Товар1 колво
Фигня 250
Юзер потом копирует строку, а количество, котрое он ввел - должно отминусоваться от оригинальной строки.
Т.е. при окончании редактирвания ячейки - 250 минус точтовверюзер.
Гость
12 - 24.03.2016 - 16:52
Но пока и этого хватит.
Гость
13 - 24.03.2016 - 17:24
Перед тем как создать строку запиши в переменные все что нужно или номер строки ТЧ, потом будешь заполнять новую строку по этим данным.
А в чем проблема?
КопТовар=Товар1;
КопКол=колво;
НоваяСтрока();
Товар1=КопТовар;
колво=КопКол;
14 - 24.03.2016 - 17:52
В (7) - красивше. Нигде никаких присвоений существующего не идет. Присваиваются только значения, которые не совпадают с копируемыми
Гость
15 - 24.03.2016 - 18:04
(14 по моему можно еще проще, скопировать строку штатно и использовать процедуру

Процедура ПриРедактированииНовойСтроки()
КонецПроцедуры //

В ней поправить что не нужно копировать
Гость
16 - 24.03.2016 - 19:07
Методанные сообщат расклад строки любого документа.
Следовательно, можно собрать СписокЗначений: значение столбца + название столбца (название столбца уникально в ТЗ).
Потом можешь кушать этот список, как угодно.
17 - 24.03.2016 - 19:37
15-USSR > это если интерактивно
Гость
18 - 24.03.2016 - 19:53
(17)Так автор и собирался аж кнопку вешать на форму
А если не интерактивно, то (16) - иетаданные
Гость
19 - 24.03.2016 - 20:46
У меня вопрос к автору:
- Владельцы бизнеса знают о том, что ты занимаешься вот такой вот фигней, и на цырлах перед пользователями ходишь?

У мну был похожий вариант недавно.
Но там шла речь о копировании документа. С многими тысячами строк в табличной части.

Видели бы вы, какую истерику я закатил, пытаясь доказать что проще бухам в ста тыщ строк обнулить некоторые реквизиты вручную, чем мне милостиво написать им обнуление при копировании документа...

Ладно, в итоге убедили...

Написал им эту хню из нескольких строк и получил премию в размере 380 тысяч рублей.
Гость
20 - 24.03.2016 - 21:03
19-DeiMos >
Знают и поддерживают юзера в этом. Смысл данного действа:
- я делаю сводные данные по продаже товара определенному контрагенту
- обученный юзер сбивает эти продажи по датам и по поставщикам
- я программно формирую Поступление ТМЦ
Ну, понятно - для чего.
Так вот, товар весовой, и если запендюрить одну строку с ходовым товаром в одно Поступление - возникает перевес у транспорта (более 20Т). Потому умный юзверь делит первоначальную строку на несколько, чтоб все было чисто.
И все бы ничего, но у меня там есть несколько скрытых реквизитов для формирования и проверки, которые надо очистить. И оставить всего 3.
Гость
21 - 24.03.2016 - 21:09
15-USSR > Так и сделал. Не нужна лишняя кнопка, все штатно. Спасибо всем :)
Гость
22 - 24.03.2016 - 21:16
18-USSR > А чем метаданные мешают интерактивности?
В чем задача-то? Частичное заполнение новой строки?
Надо иметь копию строки. Заполнять этот список при открытии документа.
после окончания редактировани строки заполняем список значениями (см. предопределенные функции формы).
При создании новой строки сразу ее заполняем из этого шаблона, и возветаемся на начало. Собственно,вся схема.
Токо я "бы повосьмерошному" кнопоцки прменил к табличной части.
Гость
23 - 24.03.2016 - 22:14
2(19) Мда. Дела у тебя идут явно неплохо. И как ты умудряешься себя продавать? У меня 7-ка в постоянном обслуживании, не могу, хоть убей не могу с каждым днем ее вести. Какая-то чушь отнимать начинает часы. В (0), мне сейчас кажется, невозможно просто скопировать строку, нужно все заполнять. Я просто помню , как очень радовался появлению ЗаполнитьЗначенияСвойств в 8-ке. А теперь, кстати, считаю, что наоборот - это зло. У людей элементарно падают компетенции, знания, все молодые - боже прости меня. Такое херачат... А главное - это отношение к делу. Сделал ошибку - ну подумаешь. А ошибка то детская, видно, что системности у человека нет, видно, что Паскаль даже не изучал. Показывает многое. И похреническое отношение показывает - "ну и хрен с ним". И правильно делают - никто их не уволит даже. А если повезет - повысят. И такая вот у нас страна получается, с низкой эффективностью труда.
Гость
24 - 24.03.2016 - 22:23
+(23) И самое отвратительное, что эти люди считают себя правыми. Считают, что они мега-специалисты. Черт возьми, даже я тройку свое время схватил по информатике (ну там были нюансы), в институте схватил тройку за программирование (там правда тоже были нюансы), но эти люди то все отличники! Это что за бред такой? Как будто, в мой мир попала параллельная реальность.
Гость
25 - 24.03.2016 - 22:24
+(24) А дебил, которому я указал на ошибочность его построения кода и даже ВПРЯМУЮ ему сказал почему он медленно работает. Чем он мне ответил? Для упр. приложения оказывается нужна более мощная видеокарта. Это ад. Мы уже в нем.
Гость
26 - 24.03.2016 - 22:33
+(25) Что еще мне интересного "объясняют". Оказывается вложенные запросы использовать нельзя. Вы знаете такое? Вот , мотайте на ус. А когда я говорю - "Для 1С все решает вложенность", мне говорят - "Нет, вы что! Их нельзя использовать!". И дальше они просто стесняются добавить - "Вы дебил". Я спрашиваю - "Почему их нельзя использовать?". В ответ очевидное. Хорошо, дальше я задаю вопрос на который никто не смог ответить, но я больше, чем уверен ушли с мыслями - "Он дебил". Вопрос простой - "Вложенные запросы использовать нельзя, но, что мне делать, если запрос с вложенными запросами работает быстрее, чем с временными таблицами?".
Гость
27 - 25.03.2016 - 00:44
26-Моррисон > Обращайтесь в Лигу Сексуальных Реформ.

@& Некто Остап Бендер.
Гость
28 - 25.03.2016 - 06:17
(22)Я не говорил, что метаданные отменяют интерактивность или интерактивность метаданные. Просто штатное копирование строки это уже и есть скрытое использование метаданных, зачем еще что-то писать. Платформа сама скопирует, а нам лишь "подчистить"
(Моррисон)"Дебилы, [*****]" (Сергей Лавров) А вообще я не понял про что ты
Гость
29 - 25.03.2016 - 19:16
В модуле формы документа, в процедуре ПриВводеНовойСтроки() пропиши обнуление ненужных реквизитов ТЧ.
Гость
30 - 25.03.2016 - 19:18
И не надо никакой лишней кнопки...
Гость
31 - 26.03.2016 - 02:15
через метаданные не катит, ибо документ может быть ещё не записан.
и я бы дополнил обработку тч проверкой на запрет редактирования/удаления видимо первой строки (очевидно, введённой программно).
Гость
32 - 26.03.2016 - 02:19
минусовать с первой строки я бы ничего не стал. можно вывести на форму разницу, если это нужно, а обрабатывать (минусовать) количество первой строки при проведении. иначе потом не узнаешь, какое количество изначально содержалось в первой строке, если юзер ввёл в тч дока что-то не то и надо док юзеру перезаполнить.
Гость
33 - 26.03.2016 - 06:09
(31)по моему абсолютно неважно записан документ или нет. Метаданные к этому не имеют никакого отношения. Они лишь предоставляют нам возможность получить перечень общих реквизитов, реквизитов шапки и табличной части. Копируется строка объекта, а не ссылки
Гость
34 - 26.03.2016 - 21:25
Ну и дураки же вы все...

А что, (29) еще никто не удосужился прочесть?
Гость
35 - 27.03.2016 - 04:57
(34)А ты прочитал (15) ?)) Нужно кстати использовать именно ПриРедактированииНовойСтроки, а не при ВводеНовойСтроки. Я даже попробовал, прежде чем в (15) ответил и попробовал сначала с ПриВводеНовойСтроки тоже думая что с ней работает
Гость
36 - 27.03.2016 - 08:07
35-USSR > Респект тебе и уважуха.
Сорри, я облажался..


К списку вопросов






Copyright ©, Все права защищены