|
Из табличной части в строку. | ☑ | ||
---|---|---|---|---|
0
gaur777
17.08.17
✎
14:44
|
Подскажите пожалуйста. Необходимо заполнение строки в общем модуле из строки табличной части внешней обработке. Может не так выражаюсь
Грубо говоря, что мне нужно: Есть таблица внешней обработки заполненная 7 строками 1. Выбираю нужную строку, щелкаю по ней 2. Нажимаю кнопку заполнить (и все поля табличной части данной строки заполняются в строки, прописанные в общем модуле) 3. Затем нажимаю кнопку погасить (после чего выполняется другая операция, которая берёт значения из общего модуля) Вот пример чего я хочу Для каждой ВыбранныйСтроки из Остатки(это табличная часть) Цикл ДатаТТН = стр.ДатаТТН; НомерВСД = стр.НомерВСД КонецЦикла; |
|||
1
Мимохожий Однако
17.08.17
✎
14:45
|
Что у тебя в переменной стр?
|
|||
2
gaur777
17.08.17
✎
14:47
|
(1) стр = Остатки.Добавить();
Остатки - табличная часть |
|||
3
Мимохожий Однако
17.08.17
✎
14:47
|
(0) что такое "погасить"?
" все поля табличной части данной строки заполняются в строки, прописанные в общем модуле" переведи на русский |
|||
4
Denis_CFO
17.08.17
✎
14:48
|
(0) для человека с датой рождения 19.07.2017 он ещё хорошо пишет. Только не понятно...
|
|||
5
Мимохожий Однако
17.08.17
✎
14:48
|
(2) Из Остатки заполняешь Остатки. Зачем?
Приведи весь код и... по порядку объясни каждую строку кода |
|||
6
Kondarat
17.08.17
✎
14:48
|
(0) Мож сразу "Погасить"?
|
|||
7
gaur777
17.08.17
✎
14:50
|
(3) (5) просто каша в голове
существует две операции. две операции запроса одна получает список продукции, другая гасит его по выбранной строке. |
|||
8
Мимохожий Однако
17.08.17
✎
14:52
|
(7) В чьей голове каша?
что такое "операция запроса"? что означает в данном случает "гасит"? |
|||
9
dezss
17.08.17
✎
14:55
|
(7) сохранить что-то в общем модуле? О_о
Это как? В общем модуле есть процедуры и функции. Там же нет никаких объектов, если их туда не передать. И эти объекты там живут только во время вызова метода модуля. Тебе, наверное, надо просто сохранять выбранные строки твоей ТЧ, а это делается обычным булевым реквизитом. |
|||
10
gaur777
17.08.17
✎
14:55
|
(8)
http://help.vetrf.ru/wiki/GetVetDocumentListOperation получение списка всд (раз) http://help.vetrf.ru/wiki/IncomingOperation операция гашения (два) должны они выполняться поочерёдно на одной внешней обработки. |
|||
11
Denis_CFO
17.08.17
✎
14:57
|
(10) денег сколька?
|
|||
12
gaur777
17.08.17
✎
14:57
|
(11) что?
|
|||
13
Denis_CFO
17.08.17
✎
15:00
|
(12) сколько платят за решение вопроса?
|
|||
14
gaur777
17.08.17
✎
15:02
|
(13) это собственная реализация
|
|||
15
Denis_CFO
17.08.17
✎
15:06
|
(14) тогда решай проблему РАЗ, а потом проблему ДВА. Недостаточно входных данных. Либо выкладывай сюда свою поделку - получишь ответ.
|
|||
16
azernot
17.08.17
✎
15:12
|
В конкурсе "Как бы так задать вопрос, чтобы посильнее скрыть его суть" вы тянете как минимум на призовое место.
Зачем вообще нужно действие "Заполнить"? Почему нельзя сразу "Погасить" взяв нужные значения из выбранной строки? |
|||
17
gaur777
17.08.17
✎
16:04
|
(16) потому что название объектов одной операции не соответствует названию другой операции. будет кривой запрос, без нужных параметров
пример для особо непонятных: 1. операция GetVetDocumentListOperation (получение списка всд) объект vetDocument (содержит сведения о ВСД) имеет параметры: Идентификатор ВСД. Серия ВСД. Номер ВСД. Дата оформления ВСД и.т.д 2. операция IncomingOperation (гашение входящей всд) объект vetCertificate (содержит сведения о ВСД) имеет параметры: серия всд, номер, дата оформления и.т.д андестенд, не? |
|||
18
dezss
17.08.17
✎
16:12
|
(17) а не проще сделать одну кнопку "Заполнить и погасить" и выполнить эти операции последовательно?
|
|||
19
gaur777
17.08.17
✎
16:15
|
(18) ну по сути можно.
заполнить - это будет отправка запроса на сервер с этими параметрами погасить это уже отправка ответа с сервера |
|||
20
dezss
17.08.17
✎
16:17
|
(19) если они всегда нажимаются исключительно последовательно, то зачем заставлять пользователя делать лишние телодвижения. Мы же стремимся к идеалу.
|
|||
21
azernot
17.08.17
✎
17:46
|
(17) Да вы батенька, идиот. Но спеси у вас, как будто вы нобелевский лауреат!
В общем модуле Процедура Заполнить(СтрокаТЧ) МояСтрока1 = СтрокаТЧ.ДатаТТН; МояСтрока2 = СтрокаТЧ.НомерВСД; //и т.п. что там надо для запроса //Генерация текста запроса, с подствлением строк из переменных, вызов моей супер-пупер процедуры GetVetDocumentListOperation, разбор результата получение нужных данных в каком-то структурированном виде (например в структуре МойРезультат, или в виде XDTO объекта) МойРезультат= ВызовМоейСуперФункцииGetVetDocumentListOperation(МояСтрока1, МояСтрока2, ... бла-бла-бла); Если ВызовУспешен Тогда СтрокаТЧ.Заполнен = Истина; СтрокаТЧ.ИД = МойРезультат.UUID; СтрокаТЧ.ТипДокумента = МойРезультат.vetDocumentType; СтрокаТЧ.Статус = МойРезультат.vetDocumentStatus; СтрокаТЧ.НомерВСД = МойРезультат.issueNumber; СтрокаТЧ.СерияВСД = МойРезультат.issueSeries; СтрокаТЧ.ДатаВСД = МойРезультат.issueDate; //и т.п. что там надо для погашения КонецЕсли; КонецПроцедуры Процедура Погасить(СтрокаТЧ) //Генерация текста запроса, с подствлением строк из переменных, вызов моей супер-пупер процедуры IncomingOperation, ВызовУспешен ВызовУспешен = ВызовМоейСуперФункцииIncomingOperation(СтрокаТЧ.ИД, бла-бла-бла); Если ВызовУспешен Тогда СтрокаТЧ.Погашено = Истина; КонецЕсли; КонецПроцедуры На форме обработки Процедура КоманднаяПанельОстаткиЗаполнитьИПогастить(Элемент) ТекСтрока = ЭлементыФормы.Остатки.ТекущаяСтрока; Если НЕ ТекСтрока = Неопределено Тогда МойОбщийМодуль.Заполнить(СтрокаТЧ); Если СтрокаТЧ.Заполнено Тогда МойОбщийМодуль.Погасить(СтрокаТЧ); КонецЕсли; КонецЕсли; КОнецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |