|
v7: Войны за буфер обмена | ☑ | ||
---|---|---|---|---|
0
dk
10.01.20
✎
14:18
|
Интересный нюанс тут вылез
запускается много (штук 15) экземпляров 1с на одном сервере и они выполняют один и тот же отчет но с разными настройками все бы хорошо, но иногда .... результат отчет не совпадал с заданными настройками подозрение пало на буфер обмена, использование которого прописано в отчете типа 1. 1с01 скопировала в буфер 2. 1с04 скопировала в буфер 3. 1с01 вставила из буфера в Excel 4. 1с04 вставила из буфера в Excel ------------- в итоге в обоих файлах оказался один и тот же набор из буфера - а хотелось бы разные ------------------ Варианты: 1. Попробовать поискать множественный буфер 2. Добавить блокировку на время работы с буфером Какие идеи есть у сообщества? |
19 |
||
1
dk
10.01.20
✎
14:21
|
можно в теории отказаться от буфера обмена но блин тоже переписывать много придется
|
11 19 |
||
2
PiotrLoginov
10.01.20
✎
14:27
|
>>подозрение пало на буфер обмена, использование которого прописано в отчете
ну вы, блин, даете... |
|||
3
ДенисЧ
10.01.20
✎
14:29
|
За построение отчёта, который работает через буфер обмена, положено 10 лет эциха с ржавыми шурупами.
|
7 |
||
4
dk
10.01.20
✎
14:31
|
ну не стал бы я так категорично говорить про работу с Excel
в общем «Не учите меня жить. Лучше помогите материально» |
5 |
||
5
ДенисЧ
10.01.20
✎
14:32
|
(4) Тебе дать денег на кроссовки, которые выдержат кросс до канадской границы?
|
6 8 |
||
6
Злопчинский
10.01.20
✎
14:34
|
(5) можно я буду держателем призового фонда?
. что там переписывать? загнать параметры в СЗ, СЗ - в файл с идом отчета... первое что в голову пришло |
|||
7
8 bit
10.01.20
✎
14:35
|
(3) поддержу, хотя....
Лет 20 назад писал обработку.Там из экселя нужно было копировать выделенную область в БО и вставлять из БО на поле, размещенное на форме этой обработки. Идея понравилась бухам, но через пару месяцев переписал на загрузку данных непосредственно из файлов excel. Фигня эти ваши БО. Учитесь программировать. |
|||
8
8 bit
10.01.20
✎
14:36
|
(5) ухйоп.. ты лучше модель таких добротных кроссовок подскажи, а купить я и сам могу.
|
|||
9
dk
10.01.20
✎
14:43
|
для понимания - в буфере копируется большая область ячеек из одного excel листа на другой excel лист другой книги
|
13 |
||
10
dk
10.01.20
✎
14:44
|
так что сз, непосредственно из excel и прочие - мимо кассы
|
|||
11
Garikk
10.01.20
✎
14:49
|
(1) переписать в теории? это единственно верное решение, вообще это такой адовый уровень наркомании - так писать что аж страшно что там у вас ещё понаписано
|
|||
12
dk
10.01.20
✎
14:58
|
так и запишем - нихто не знает
|
|||
13
Salimbek
10.01.20
✎
15:05
|
(9) Разобраться с Экселем и использовать его встроенные методы копирования, без идиотского буфера обмена, уже предлагали?
|
|||
14
dk
10.01.20
✎
15:09
|
ну что-то не видно разбирающихся - одно советчики
|
16 20 23 |
||
15
dk
10.01.20
✎
15:10
|
однИ советчики
|
18 |
||
16
Salimbek
10.01.20
✎
15:12
|
(14) А что непонятного? Ну типа такого:
"В данной конструкции можно указывать только верхную левую ячейку, куда собираете вставить, т.е. так Sub Macro1() Range("R3:T65536").Copy Worksheets("Лист2").Range("A1") End Sub А1 - и является верхней левой ячейкой диапазона" Отсюда: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=2032 |
|||
17
Salimbek
10.01.20
✎
15:12
|
Можешь тут посмотреть еще и видео: https://excelpedia.ru/makrosi-v-excel/3-sposoba-kopirovaniya-yacheek-vba-excel
|
|||
18
8 bit
10.01.20
✎
15:13
|
(15) а ты ССЗБ. И учись программировать.
|
|||
19
dk
10.01.20
✎
15:14
|
Лист = Книга.Sheets(1);
Лист_Образец = Книга_Образец.Sheets(1); Лист_Образец.Activate(); ЗаписьЖурналаРегистрации("Excel: 3.1"); Лист_Образец.Range(Лист_Образец.Cells(1,1), Лист_Образец.Cells(Таб.ВысотаТаблицы(),Таб.ШиринаТаблицы())).EntireColumn.Copy(); ЗаписьЖурналаРегистрации("Excel: 3.2"); Лист.Paste(); ЗаписьЖурналаРегистрации("Excel: 3.3"); Лист.Activate(); ЗаписьЖурналаРегистрации("Excel: 4"); Лист_Образец = ""; // [+] ((( dk, 17.09.2019 чтобы дурные вопросы не задавала о сохранении и буфере обмена Книга_Образец.Saved = -1; Excel.CutCopyMode = 0; //[+] dk, 17.09.2019 ))) ЗаписьЖурналаРегистрации("Excel: 4.1"); Книга_Образец.Close(0); -------------------- вот исходный что поменять чтобы без буфера было? |
20 25 26 28 |
||
20
Garikk
10.01.20
✎
15:15
|
(14) разбирающихся в наркоманском коде?
у вас даже из постановке задачи видно в чем косяк, если вы идете сюда спрашивать 'почему не работает и как починить', то блин тут вам не советчик нужен 'как чинить что есть' - а совет - все переделать чтобы вообще буфер не юзать (19) <что поменять чтобы без буфера было?> а это уже денег стоит |
|||
21
dk
10.01.20
✎
15:17
|
можно и дальше в др/др какашками кидаться
а можно по делу подсказать |
22 |
||
22
Garikk
10.01.20
✎
15:19
|
(21) по делу - всё переписать
это именно что подсказка, единственно верная. |
23 |
||
23
dk
10.01.20
✎
15:21
|
24 |
|||
24
Garikk
10.01.20
✎
15:21
|
(23) ккк, не вам мне указывать куда ходить ;)
|
|||
25
Salimbek
10.01.20
✎
16:31
|
(19) Вроде это, именно оно, модифицируйте под себя: Workbooks("План.xlsx").Worksheets("Лист1").Range("A1").Copy(Workbooks("Факт.xlsx").Worksheets("Лист1").Range("A1"))
Источник: https://excelpedia.ru/makrosi-v-excel/3-sposoba-kopirovaniya-yacheek-vba-excel |
31 33 |
||
26
Злопчинский
10.01.20
✎
22:06
|
(19) а ты попробуй интерактивно смоделировать ситуацию "одновременного" использования буфера двумя разными прогами. точно так же не получится (наверное?).
если подправлять - то только блокировать использование буфера до осовобождения. или - если винды поддерживают - как выше писал - с множественным буфером (я не спец). я бы пошел по простому пути - блокировать буфер. но тут будет проблема (?) доступа к разделяемому ресурсу-флагу занятости буфера (?) |
|||
27
Cthulhu
11.01.20
✎
01:25
|
если Win10 - вспомнить про клавиатурную композицию Win + V и перестать парить мозги себе и людям
(опционально, при всей "одинаковости" копируемого - в копируемый фрагмент программно или ручками проставлять хроно-маркер формирования и основные характеристики использованных при формировании настроек) |
|||
28
trdm
11.01.20
✎
04:38
|
(19) может сделать шаблон листа и его копировать через фс с переименованием и заполнять уже его?
|
|||
29
DES
11.01.20
✎
07:06
|
буфер заменить внешним файлом с уникальным именем
|
|||
30
DES
11.01.20
✎
07:08
|
заменить везде
1с01 скопировала в буфер на 1. 1с01 скопировала_в_файлбуфер() |
31 |
||
31
dk
13.01.20
✎
07:35
|
34 |
|||
32
Сияющий в темноте
13.01.20
✎
09:05
|
у вас сервер,видимо,не совсем сервер,вот буфер обмена для всех и один.
при работе с буфером нужно по-хорошему подписываться на оповещение о его изменении,чтобы было не так обидно. и,если честно,то через буфер намногг сложнее программировать,чем напрямую макросами. |
33 |
||
33
dk
13.01.20
✎
09:16
|
36 |
|||
34
DES
13.01.20
✎
10:14
|
(31) Куда влезть? Если буфер не будет использоваться вообще, а вместо него будет у каждого экземпляра свой уникальный файл. И это не так медленно как кажется, файлы буферизируются в памяти. Особенно если короткие, то полностью.
|
35 |
||
35
dk
13.01.20
✎
10:58
|
(34) я думал речь про сохранение буфера в файл и обратно из файла в буфер
а без буфера напиши пример как несколько тыс ячеек скопировать из одной книги в другую книгу |
|||
36
Сияющий в темноте
13.01.20
✎
18:34
|
(33) 15 пользователей для 15 заданий слабо?
|
37 |
||
37
dk
15.01.20
✎
13:42
|
(36) думали над таким вариантом- есть проблемы
1. трудно отслеживать визуально что задание упало с какой-нить ошибкой 2. настройка сетевых прав 3. ну и если список баз например почистился в реестре, то снова всем прописывать 4. 1с не любит если пользователь не залогинен в системе под которым задание выполняется есть и плюсы конечно, но пока отказались |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |