Вход | Регистрация
 

Вывод из дерева в табличную часть документа

Вывод из дерева в табличную часть документа
Я
   Karato4ek
 
07.06.19 - 14:31
1с 8.3, уф
Создана обработка, в которой выгружаются документы "Поступление товаров" в виде дерева значений, за родителем идет всего один уровень.
Создан реквизит ДеревоЗначений, там же созданы колонки, все добавлено на форму, само дерево заполняется запросом ( ЗначениеВРеквизитФормы(Дерево, "ДеревоПоступлений")).
Задание- на форме реализовать возможность изменить некоторые данные в колонках, например количество товара в документе, с последующим внесением этих изменений в документ.

Можно ли на прямую из дерева внести изменения? Например добавить на форму кнопку "Загрузить изменения" и в ней что-то прописать? Или необходимо измененные данные предварительно выгрузить в таблицу значений,и только из нее менять документ?
 
 
   vicof
 
1 - 07.06.19 - 14:36
"Можно ли на прямую из дерева внести изменения?" в регистры - нет
"Например добавить на форму кнопку "Загрузить изменения" и в ней что-то прописать" - незачем. Сделай так, чтобы данные с дерева у тебя были доступны в обработке проведения.
"Или необходимо измененные данные предварительно выгрузить в таблицу значений,и только из нее менять документ?" - нет
   Fish
 
2 - 07.06.19 - 14:40
(0) Можно как угодно. Можно при записи/проведении, можно при изменении самого дерева/отдельной ячейки, можно по кнопке.
Но, имхо, правильнее методологически - переносить данные при записи/проведении.
   Fish
 
3 - 07.06.19 - 14:42
(1) Только я бы всё-таки сделал это в ПередЗаписью, а не в ОбработкаПроведения.
   Karato4ek
 
4 - 07.06.19 - 14:44
Прошу прощения, не уточнила сразу! Суть задания в том, чтоб именно по кнопке вносились изменения, то ест пользователь изменил количество или сам товар, нажал кнопку "внести изменения" и вуа-ля
   Fish
 
5 - 07.06.19 - 14:45
(4) нажал кнопку "внести изменения", потом закрыл документ не записав,  и вуа-ля - данных нет :))
   Fish
 
6 - 07.06.19 - 14:47
(4) "не уточнилА" - А пол в карточке лучше поменять.
   Karato4ek
 
7 - 07.06.19 - 14:51
(6) первый час на форуме и не обратила внимания на настройки профиля)
(5)  вот хотелось бы чтоб как раз данные не пропадали, а после вуа-ля документ был перезаписан
   vicof
 
8 - 07.06.19 - 14:51
(3) Это она пока не поймет, я имею ввиду общую картинку)
(4) Кто тебе поставил это задание? и почему именно в такой форме? Как проблема должна быть решена этим действием?
   Fish
 
9 - 07.06.19 - 14:52
(7) Тогда (опять же имхо), по кнопке можно вызывать запись (хотя такая кнопка и так есть), а уже в ПередЗаписью переносить данные - тогда данные не запишутся только в том случае, если пользователь сознательно нажмёт "нет".
   vicof
 
10 - 07.06.19 - 14:53
+(8) как = какая
   Karato4ek
 
11 - 07.06.19 - 14:54
(8) Задание дали на практике, проблему грубо говоря сами создали и сами решаем, для отработки навыков работы с уф
   Fish
 
12 - 07.06.19 - 14:54
(7) "не обратила внимания на настройки профиля" - Обрати внимание, там ещё есть поле для фото :))
   Fish
 
13 - 07.06.19 - 14:55
(11) Ну если для обработки навыков, то делай по кнопке.
   vicof
 
14 - 07.06.19 - 14:56
+(13) только потом на работе так не делай
   Karato4ek
 
15 - 07.06.19 - 15:02
(14) на работе я б и не стала создавать дерево забавы ради))
(13) а можно примерный порядок действий как это реализовать? *please*
   sqr4
 
16 - 07.06.19 - 15:03
(15) фото давай
   Fish
 
17 - 07.06.19 - 15:07
(15) Примерный можно: создаёшь команду в командах формы, в поле "действие" прописываешь обработчик команды. Вытаскиваешь команду на форму. Ну а уже в обработчике пишешь алгоритм заполнения ТЧ из данных дерева.
   Fish
 
18 - 07.06.19 - 15:08
+(17) С алгоритмом, надеюсь, всё понятно? :)
   Karato4ek
 
19 - 07.06.19 - 15:12
(18) это я понимала и ранее(и уже сделала), но спасибо, что подтвердили мои домыслы))) затуп случился дальше
   vicof
 
20 - 07.06.19 - 15:16
(19) на форуме?
   Karato4ek
 
21 - 07.06.19 - 15:21
(20) затуп в моей мозговой деятельности))
   vicof
 
22 - 07.06.19 - 15:22
(21) это к невропатологу)
   Karato4ek
 
23 - 07.06.19 - 15:24
(20)суть затупа в том,что я не понимаю как именно прописать обработчик, чтоб он не перебирал все дерево, а взял именно измененную ячейку и данные из этой ячейки перезаписал в документе
   vicof
 
24 - 07.06.19 - 15:29
(23) Это ты сама придумала?
Не надо так делать.
Берешь все строки дерева, и перезаписываешь.

Ну если-таки это учебная цель, то тебе надо получить дерево до редактирования и дерево после редактирования, сравнить их строки. Причем, если порядок строк поменялся, то нужно понять, какие строки были поменяны, найти их в движениях документа и перезаписать. Для этого ввести идентификаторы строк.

Короче, не страдай херней, бери все строки.
   Ёпрст
 
25 - 07.06.19 - 15:30
(23) в дереве храни идентификатор строки документа, по нему найдешь нужную строку в ТЧ и поменяешь только её.
   Fish
 
26 - 07.06.19 - 15:30
(23) По кнопке - никак. Придётся все дерево перебирать.
   Karato4ek
 
27 - 07.06.19 - 15:39
(24) (26) вот чтоб все дерево не перебирать руководитель посоветовал : 1.добавить "при изменении" у определенных колонок. 2. добавить кнопку (чтоб ее) и при выполнении обработчика будет происходить следующее- если "при изменении" где-то случилось, значит эту строку добавляем в тз, затем вызываем объект.документ ,очищаем его и заполняем данными наших изменений
На словах мне показалось это просто, и я сказала будет сделано, но когда попыталась реализовать случился фатал эрор

и кстати-добавить фото в профиль тоже не так просто, ограничение в 200кб не радует
   vicof
 
28 - 07.06.19 - 15:41
(27) кидай ссылку на вконтактик
   Fish
 
29 - 07.06.19 - 15:49
(27) Имхо, странный совет тебе дал руководитель. По мне либо ты добавляешь "При изменении", и там собственно меняешь только тот реквизит, который был изменён. Но тогда кнопка не нужна. Либо делаешь кнопку и перезаписываешь всё.

А как ты описала, с кнопкой, получается, что тебе в событии "приИзменении" надо для начала запомнить изменённую строку + реквизит. А уже потом по кнопке заполнять только их. Можно конечно и так извратиться (да ещё добавить контроль, что ввели именно новое значение, а не старое), только зачем?
   Karato4ek
 
30 - 07.06.19 - 21:43
(28) https://vk.com/oksandrolon4ik
(29) вот именно так извратиться мне посоветовали, поэтому решила обратиться сюда за помощью
 
 
   Новиков
 
31 - 07.06.19 - 23:27
(27) руководитель направляет тебя в русло кэширования и это, наверное, правильно в этой задаче - т.к. зачем тебе обходить все дерево и меня ть все документы, если предположим ты изменила только одно количество у одного товара одного документа. Поэтому, он и предложил тебе в обработчике при изменении - просто отмечать этот факт (типа сделать ТЗ, в него сразу добавлять документ и изменяемую строку). А уже после всех изменений по кнопке обходить это тз, последовательно получая объект, осуществляя там поиск нужной строчки в ТЧ и ее измененять. И это, кстати, не изврат - на такой технике работы с деревьями (кэширование изменений) и последующая обработка только по кэшу, часто используется даже в типовых.
   Karato4ek
 
32 - 10.06.19 - 09:43
(31) это является извратом (для меня) так как пока нет полной картины в голове как это все правильно реализовать.
Правильно ли я понимаю- переносить данные из дерева в таблицу мне надо?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.