![]() |
![]() |
![]() |
|
Можно ли сохранить данные во внешней обработке? Ø |
☑ | ||
---|---|---|---|---|
0
ANTIpod
27.10.06
✎
12:08
|
Требуется сохранять некоторые данные непосредственно в самой внешней обработке. Никаких дополнительных файлов, никакого хранения в данных самой базы. Вписали строчку с данными, закрыли обработку, отослали по почте, там открывают - та же самая строчка.
Такое реально сделать? |
|||
1
angro
27.10.06
✎
12:09
|
перем константа;
константа = "данные"; |
|||
3
konde
27.10.06
✎
12:14
|
нет, нереально. Внешняя обработка не предназначена для хранения чего-либо, придется в пару к ней приелываь внешний файл с данными.
|
|||
4
Мутабор
27.10.06
✎
12:19
|
Можно, но нужно научиться заменять таблицы во внешних обработках.... Они же там храняться.
|
|||
5
Lew50
27.10.06
✎
12:30
|
(0) (3) (4) Думаю, что можно создать макет и записывать в его ячейки. Только предусмотреть процедуры записи и чтения.
(4) Табличные части во внешних обр. делал. В них можно псевдохранить данные, если в командной панели предусмотреть действие "Сохранение данных", при следующем открытии на том же рабочем месте - их увидишь, но если получат почту и откроют, то ничего не увидят. |
|||
7
konde
27.10.06
✎
12:35
|
(4, 6) Имеется в виду - научиться в процессе исполнения обработки заменять в ней же (и сохранять) макет? Штатными средствами ни в 7.7, ни в 8.0 никак. В 7.7 можно попробовать при помощи Rainbow, да и то вряд ли удастся нормально работу заполняющего организовать - пока открыта обработка заменить что-либо в ней невозможно (файл блокируется... или я не прав?)
|
|||
9
Lew50
27.10.06
✎
12:45
|
(7)Почему же невозможно? Например, чтение информации из макета я уже делал:
Процедура МакетПрочитать() Перем Макет; Макет = ПолучитьМакет(МакетИмя); КолКолонок=Макет.ШиринаТаблицы; КолСтрок=Макет.ВысотаТаблицы; Сообщить("КолКолонок="+КолКолонок+"; КолСтрок"+КолСтрок+";"); Для Аа=1 По КолСтрок Цикл ОбработкаПрерыванияПользователя(); Строка=""; Для Бб=1 По КолКолонок Цикл ТекОбласть=Макет.Область("R"+Аа+"C"+Бб); ТекЗначение=ТекОбласть.Текст; Если ПустаяСтрока(Строка)=Ложь Тогда Строка=Строка+" # "; КонецЕсли; Строка=Строка+ТекЗначение; КонецЦикла; Сообщить(Строка); КонецЦикла; КонецПроцедуры P.S. Может можно и записать? |
|||
10
konde
27.10.06
✎
12:50
|
(9) не по сути высказались - смотрите (0) и (8)
Чтение - мелочь. делал обработку обработку заполнения демо-базы с обработки - ничего, стреляет... а вот сделать ЗАПИСЬ в обработку штатными средствами нельзя... если файл обработки не блокируется при открытии ее пользователем (в чем я сомневаюсь, наверняка блокируется), может быть можно будет сделать при помощи ВК, основанной на rainbow. |
|||
11
Uho
27.10.06
✎
12:54
|
чё то я не пойму зачем отсылать обработку??? почему нельзя отослать файл распространенного формата, сформированный этой обработкой?
|
|||
12
konde
27.10.06
✎
12:57
|
а вообще по поводу (6) - шлите архивом, который нужно положить в указанное место. При начале работы другая обработка его распакует куда нужно (все барахло, которое туда вложено, включая и логику в виде обработки, и данные) и исполнит обработку с заранее определенным наименованием. Причем данные гарантированно будут на месте. Процесс упаковки обработки и данных тоже можно (и нужно) сделать автоматическим (есть бесплатная ВК от Раруса, которая работает с ЗИПом, валялась на dead.hare.ru). Таким образом, пользователь работает с обработками, входящими в состав конфы, но скрытым от него образом в виде одного архива передаются и данные, и интерпретирующая эти данные логика.
|
|||
13
konde
27.10.06
✎
12:59
|
(11) видимо, имеется в виду случай, когда формат файла меняется "на ходу"
|
|||
15
Lew50
27.10.06
✎
13:17
|
(10) Вспомнил, я тогда действительно в макет записал в режиме конфигуратора через буфер. Но тоже нужно было, чтобы информация по остаткам была в той же вн. обработке, с помощю которой эти остатки потом и закачали в другую ИБ.
|
|||
16
AlexNew
27.10.06
✎
13:17
|
А почему ты из обработки не можешь отослать, что тебе надо с письмом с определенным зоголовком, а на входе проверять письма с таким заголовком и выкладывать что тебе надо куда надо, чтобы страшные люди этого не видели?
|
|||
17
Неглупый
27.10.06
✎
13:18
|
(14) хранить данные в самих базах нельзя. вот нельзя и всё
железный аргумент |
|||
18
Uho
27.10.06
✎
13:22
|
чушь какая то
|
|||
19
angro
27.10.06
✎
13:26
|
(18) Это точно
(0)Если обработка обноразовая, то почему нельзя просто файл excel-евский отослать, всем проще будет. |
|||
20
konde
27.10.06
✎
13:28
|
к (0)
так чем (12) не усторил? Пользователи видят ОДИН файл - архив. А в нем уже - что хошь. |
|||
21
Lew50
27.10.06
✎
13:41
|
(20)А если макет внешней обработки заполнять не из нее самой? Например из обработки в самой конфигурации или другой вн.обр.:
Обработка = ВнешниеОбработки.Создать(""+ИмяВнешнейОбработки); Макет = Обработка.ПолучитьМакет("Данные"); ТекОбласть=Макет.Область("R1C1"); ТекОбласть.Текст="Проба"; В отладчике видно, что в тексте уже строка "Проба", вот теперь как-то необходимо "Обработка" записать опять в файл... |
|||
23
Uho
27.10.06
✎
14:01
|
(22) ответь на (19)
|
|||
25
snc
27.10.06
✎
16:35
|
(0) Если вн.обработка отсылается по инету, то она может хранить данные в сжатом виде в интернете по определенному адресу (прописанному в самой обработке)
|
|||
26
Ахмед ибн Фадлан
27.10.06
✎
16:45
|
Интересно говорите, давайте еще версий.
Могу подсказать одну из сфер применения - например универсальная обработка, которая не должна зависеть от наполнения ИБ, и даже от состава метаданных. Наприер в этой обработке нужно хранить структуру ХМЛ-файла. Чтобы не разкидывать саму обработку и структуру по разным файлам. |
|||
27
Pilcrow
27.10.06
✎
22:32
|
А ты попробуй набить реквизиты и ТЧ обработки данными, а потом из модуля обработки:
ЗначениеВФайл(ЭтотОбъект, ПутьКФайлу); А потом: Обработка = ЗначениеИзФайла(ПутьКФайлу); Интересно, что получится? Гы-гы-гы! |
|||
28
Pilcrow
27.10.06
✎
22:41
|
(27)+ Не, не получается. Сохраняет только GUID. Видимо ОбработкОбъект не сериализуется.
|
|||
29
Дурочка 1С ™
27.10.06
✎
22:43
|
(0) А в чем проблема?
|
|||
30
VZ
27.10.06
✎
22:57
|
Во-первых, сам файл обработки при открытии не захватывается монопольно. И при открытой и работающей обработке ее файл вполне доступен и для чтения, и для записи.
Во-вторых, очень даже просто организовать внутри тела обработки "буфер", куда можно запсочить битовые данные. Средствами встроенного языка затруднительно, конечно, но виндовыми утилами - да. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |