Копилка опыта

220. пользователь 23.01.14 11:24
Сообщение было скрыто модератором.
...
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
320. O-Planet 6432 11.03.07 04:16 Сейчас в теме
Да, Ч., сложное детство ...

Poppy - репспект. Я и говорю про то же. Каждая контрукция должна делать то, для чего она и предназначена. Конечно, когда с помощью скрытой таблицы на форме решают проблему отработки нажатия несимвольных клавиш - это можно назвать находчивостью. Но все-таки такие методы должны быть исключением, а не правилом. Конструкция "Попытка - Исключение" предназначена для отработки аварийных ситуаций, которые проверить средствами языка выглядит проблематично. Например, я пытаюсь записать файл, а диск защищен от записи, или элемент справочника открыт юзером, а я его хочу удалить программно. Но деление на 0 или проверка выхода индекса за пределы чего-то - это уже дурной тон.
321. CheBurator 3119 11.03.07 04:19 Сейчас в теме
Сложное детство приучило решать проблемы наименее болезненным способом.
И если Попытка сокращает код по сдвигу в списке в 2 раза - то это как раз то, что надо...
322. O-Planet 6432 11.03.07 04:21 Сейчас в теме
А кстати...
> вот тут случаем напомнили мне мою же мелкую полезность...
Ты бы кинул куда-нить описание, как работать с ексцелевскими доками в 1С. Помнится, кто-то из моих друзей с ног сбился, ища. Так и пользуется буфером обмена. Вордовский нашел, а ексцелевский - нЭту...
323. CheBurator 3119 11.03.07 04:23 Сейчас в теме
ну, для этого есть книга знаний на мисте.
324. Abadonna 3960 11.03.07 05:38 Сейчас в теме
>Цена = ?(Количество = 0, 0, Сумма/Количество);
Не знаю кого как, а меня просто в бешенство приводит эта притянутая за уши нечитабельная конструкция из Си. Я бы уж тогда просто по "человечьи" написал Если-Иначе. Но дело вкуса! А вот по части загрузки процессора надо еще очень посмотреть, что его грузит меньше: сравнение или попытка.
Предлагаю конкурс: вон моя простенькая "ОписательМетаданных". Совсем я забыл, что существует ТиС (никогда с ней не работал), и что там нет по определению объекта ВидыСубконто(). Так вот: если кто-нибудь придумает, как узнать, что такого объекта метаданных в данной конфе вообще не существует другим способом, чем через попытку - сниму шляпу и "ку" два раза сделаю.
И цитата напоследок:
"Исключение - это ОБЪЕКТ специального вида, характеризующий возникшую в программе исключительную ситуацию... Особенностью исключений является то, что они существуют до тех пор, пока не попадут к обработчику событий. Как только исключение обработано, оно разрушается..."
325. Abadonna 3960 11.03.07 06:22 Сейчас в теме
Во, специально провел эксперимент, два кода:
Для К=1 По 1000000 Цикл
Попытка
С=А/Б;
Исключение
С=0;
КонецПопытки;
КонецЦикла;
------------------------------------
Для К=1 По 1000000 Цикл
Если Б=0 Тогда
С=0;
Иначе
C=А/Б;
КонецЕсли;
КонецЦикла;
В случае, если Б<>0 вариант с Попыткой отрабатывает на 1 секунду меньше, чем через Если (пустяк, а приятно!)
В случае Б=0 Попытка работает на 2 секунды больше, но не надо забывать, что она аж 1000000 исключений обработала, чего в нормальной практике быть не может.
Выводы делайте сами
А вывод,кстати, простой - если имеем миллион строчек, из которых в 5-10 случаях может быть нулевое деление, то Попытка отработает все равно быстрее, т.к. исключение произойдет 5-10 раз, а обработка условия Если всегда будет выполняться миллион раз (за что проц спасибо не скажет)
326. Abadonna 3960 11.03.07 07:47 Сейчас в теме
2 poppy и O-Planet
Вот и подумайте, что лучше: ВСЕГДА заставлять процессор выполнять операцию сравнения (представляете как оно там внутри?) или РЕДКО заставить его обработать исключение.
Где "дурного тона" больше?
327. poppy 11.03.07 12:06 Сейчас в теме
Abadonna Написал:
-------------------------------------------------------
> Предлагаю конкурс: вон моя простенькая "ОписательМетаданных". Совсем я забыл, что
> существует ТиС (никогда с ней не работал), и что там нет по определению объекта ВидыСубконто(). Так
> вот: если кто-нибудь придумает, как узнать, что такого объекта метаданных в данной конфе вообще не
> существует другим способом, чем через попытку - сниму шляпу и "ку" два раза сделаю.

Причесала твою простенькую. Убрала все "попытки". Заодно исправила ошибки и неточности.
Прикрепленные файлы:
Метаданные.rar
328. Abadonna 3960 11.03.07 12:10 Сейчас в теме
Попытка там была всего одна.
А что скажешь по поводу вышеизложенного? Или логика там хромает, или
факты неправильные? ;)
329. Abadonna 3960 11.03.07 12:14 Сейчас в теме
Кстати, мужики тут о тебе уж беспокоиться начали - куда пропала
Любят тебя ;)
330. poppy 11.03.07 12:31 Сейчас в теме
Abadonna Написал:
-------------------------------------------------------
> Попытка там была всего одна.
Плохо, что только одна. Ты не учитывал варианты, когда в конфигурации нет регистров и (или) планов счетов, а также когда есть план счетов и нет счетов.

Кстати у реквизитов типа строка неограниченной длины в метаданных длина значится как "0" и чтение этого значения не вызывает исключительную ситуацию.

> А что скажешь по поводу вышеизложенного? Или
> логика там хромает, или факты неправильные?

Логика - нормальная. И факты правильные, только неполные.

Попробуй такой код:
Код
А = 5;
Начало = _GetPerformanceCounter();

Для Б = 0 по 1 Цикл   
   
   Для К=1 По 1000000 Цикл 
      Попытка 
         С=А/Б; 
      Исключение 
         С=0; 
      КонецПопытки; 
   КонецЦикла; 
   
   Сообщить(_GetPerformanceCounter() - Начало);
   Начало = _GetPerformanceCounter();
   
   Для К=1 По 1000000 Цикл 
      Если Б=0 Тогда 
         С=0; 
      Иначе 
         C=А/Б; 
      КонецЕсли; 
   КонецЦикла; 
   
   Сообщить(_GetPerformanceCounter() - Начало);
   Начало = _GetPerformanceCounter();
   
   Для К=1 По 1000000 Цикл 
      C=?(Б = 0, 0, А/Б); 
   КонецЦикла; 
   
   Сообщить(_GetPerformanceCounter() - Начало);
   Начало = _GetPerformanceCounter();
   
КонецЦикла;
Показать полностью


Что скажешь?
331. poppy 11.03.07 12:34 Сейчас в теме
Abadonna Написал:
-------------------------------------------------------
> Кстати, мужики тут о тебе уж беспокоиться начали - куда пропала
> Любят тебя

В отпуске была Отдыхала. Соскучилась по всем.

Кстати, а где поздравления с восьмым мартом?
332. Abadonna 3960 11.03.07 12:34 Сейчас в теме
Так я ж и написал вверху точно такой же пример, и сказал, цитирую:
"В случае Б=0 Попытка работает на 2 секунды больше, но не надо забывать, что она аж 1000000 исключений обработала, чего в нормальной практике быть не может. "
И
"А вывод,кстати, простой - если имеем миллион строчек, из которых в 5-10 случаях может быть нулевое деление, то Попытка отработает все равно быстрее, т.к. исключение произойдет 5-10 раз, а обработка условия Если всегда будет выполняться миллион раз (за что проц спасибо не скажет)"

Да, извини, с праздником прошедшим! Желаю денег, на них в наше время можно даже здоровье купить
333. poppy 11.03.07 12:54 Сейчас в теме
Сравнивая "Попытку" и "Если" - по быстродействию. Выигрывает "Попытка", если Б<>0.

Я предлагаю сравнить "Попытку" и "?(,,)".

Последняя конструкция работает в 2,5 раза быстрее, чем "Попытка" если Б=0 и на 25% быстрее, если Б<>0.
334. Abadonna 3960 11.03.07 13:20 Сейчас в теме
poppy Написал:
-------------------------------------------------------
> чем "Попытка" если Б=0 и на 25% быстрее, если
> Б<>0.

Ну не знаю, проверил на своем компе (атлон 3000+), при Б<>0 Попытка и
? дают совершенно одинаковый результат.
Кстати, а ты не думаешь, что механизм C=?(Б = 0, 0, А/Б);
вполне может быть внутри как раз и реализован через попытку?
Голову на отсечение даю, что внутри исходного кода 1С навалом
блоков try-exception и try-finally, не считая еще и искусственной генерации
исключений. Уж поверь, много кодов на дельфи и Си я видел - там без этих блоков практически ни один код не обходится
335. Abadonna 3960 11.03.07 13:30 Сейчас в теме
Кстати (для O-Planet) как раз признаком хорошего стиля программирования считается использования блоков попыток в "нормальных" языках.
Например,
GetMem(buff, sizeof(buff))
что-то делаем...
FreeMem(buff).
Если внутри что-то произошел облом, поимеем захваченный и не освобожденный кусок памяти. Если с обломом программу несколько раз запустить - всю оперативку съесть может.
А вот так
try
GetMem(buff, sizeof(buff))
что-то делаем...
finally
FreeMem(buff)
нормальный язык ВСЕГДА освободит память, даже в случае облома
336. poppy 11.03.07 13:56 Сейчас в теме
Abadonna Написал:
-------------------------------------------------------
> Ну не знаю, проверил на своем компе (атлон 3000+),
> при Б<>0 Попытка и
> ? дают совершенно одинаковый результат.
У меня разница получилась небольшая. Но это несущественно.

> Кстати, а ты не думаешь, что механизм C=?(Б = 0, 0, А/Б);
> вполне может быть внутри как раз и реализован через попытку?
Возможно. Однако, быстродействие Попытки зависит от исходных данных (почти в 2 раза). А у ? быстродействие не зависит.

> Голову на отсечение даю, что внутри исходного кода 1С навалом
> блоков try-exception и try-finally, не считая еще и искусственной генерации
> исключений.
Я в этом даже не сомневаюсь.

> Уж поверь, много кодов на дельфи и Си
> я видел - там без этих блоков практически ни один
> код не обходится
На Си не писала, но с Дельфи знакома не понаслышке. Правда, давно не практиковала.
ИМХО блоки try, как и ООП были придуманы для увеличения производительности программистов, но не программ.

Кстати, одно из преимуществ платформы от 1С - это быстрота разработки прикладного решения. В ущерб его производительности.

Конструкция ?(,,) в Си присутствовала ИМХО для уменьшения исходного текста кода, но не для других задач.
337. poppy 11.03.07 14:05 Сейчас в теме
Abadonna Написал:
-------------------------------------------------------
> Кстати (для O-Planet) как раз признаком хорошего
> стиля программирования считается использования
> блоков попыток в "нормальных" языках.

В "нормальных" языках - да.

Но мы ведь речь ведем про интерпретатор платформы 1С:Предприятие? Или нет?

Кстати, ты видел блоки попыток в других интерпретаторах?
338. CheBurator 3119 11.03.07 14:07 Сейчас в теме
> одно из преимуществ платформы от 1С - это быстрота разработки прикладного решения. В ущерб его производительности.
Это да! Что всегда бесило в дельфи - для поля ввода числа надо так изгаляться, что все!
Поппи, фотку давай!!!
339. Abadonna 3960 11.03.07 14:09 Сейчас в теме

> На Си не писала, но с Дельфи знакома не
> понаслышке. Правда, давно не практиковала.
А я-то думал, почему я к тебе интуитивно хорошо отношусь ;)
Дельфи - рулез!

> Конструкция ?(,,) в Си присутствовала ИМХО для
> уменьшения исходного текста кода, но не для других

Вот за это я терпеть не могу синтаксис Си - там такие навороты-извраты
340. poppy 11.03.07 14:09 Сейчас в теме
Сhe Burashka Написал:
-------------------------------------------------------
> Поппи, фотку давай!!!

Не боишься разочароваться?
341. CheBurator 3119 11.03.07 14:35 Сейчас в теме
Не, не боюсь.. в мои годы - разочарований уже не бывает ;-)
342. O-Planet 6432 11.03.07 19:41 Сейчас в теме
Ага, весна и у Чебуратора уши защекотало (выяснили мы тут тонким анализом, зачем ему они такие большие ;) )
343. Abadonna 3960 12.03.07 03:28 Сейчас в теме
2 Чебур и O-Planet на 2 последних:
это копилка опыта программирования или ваще?
Давайте создадим отдельную ветку "Копилка опыта общения с женщинами" с подветкой "Заигрывания с poppy" :)
344. CheBurator 3119 12.03.07 03:31 Сейчас в теме
Ну так надо потереть весь неконструктив в ветке и все.
Ладно, меня фотка Poppy интересует - это естественнно...
но прошу оградить от приставнаий О-планета к моим ушам - это противоествественно!
345. O-Planet 6432 12.03.07 08:48 Сейчас в теме
Не! Форум этот тем хорошь, что конструктив с неконструктивом переплетены и сосуществуют. Потому форум живой, и сотни юзеров нас читают и цитируют где-нить, как супермонстров 1С. Прикольно!!! Пол Росии сейчас задумалось, как связаны фотка Poppy с весной и противоестественным использованием чебурашкиных ушей...
346. azernot 779 12.03.07 11:46 Сейчас в теме
Мда,
Че бурашка пристаёт к Poppy,
O-planet пристаёт к Че бурашке,
Абадонна пресекает флуд, и настаивает на использовании "Попытки"
Poppy кокетливо молчит, но требует поздравления с 8 марта...

Дом-7.7:Весна на инфостарте!
347. CheBurator 3119 12.03.07 11:58 Сейчас в теме
Угум.. А Azernot подглядывает...
;-)
348. O-Planet 6432 12.03.07 17:14 Сейчас в теме
Ладно, конструктив - так конструктив...

Обработка-убийца

Кто бы мог подумать, что грамотное использование привязок в 1С:8.0 может вызвать эффект мгновенного закрытия программы без каких-либо комментариев?! Самое прикольное, что если этого не знать, то даже после ящика водки не поймешь, что вызывает ошибку: в коде-то ее нет! Точнее, до выполнения кода даже и не доходит.

А теперь - о главном. Под грамотным использованием понимается обычное зацикливание в привязках, когда первое ссылается на расположение второго, а второе - на расположение первого. Создаю обработку, устанавливаю две привязки. Верх первой привязываю к низу второй, верх второй - к середине первой. Отключаю пропорции и все! Кстати, вот верх второй к низу или верху первой привязать не удастся: программа "заметит" зацикливание. А вот середину пропускает и ... умирает!

Прикрепленные файлы:
1.zip
349. Abadonna 3960 12.03.07 17:25 Сейчас в теме
сам-то понял что сказал? ;) ;)
350. vasilykushnir 63 12.03.07 17:33 Сейчас в теме
Черт! Обработка под 8-ку. Хотел посмотреть -дудки! Абадонна, допиши свой плагин коммандирский для просмотра еще ЕПФ.
351. vasilykushnir 63 12.03.07 17:35 Сейчас в теме
Интеллигент тоже эти файлы не открывает...
352. Abadonna 3960 12.03.07 17:36 Сейчас в теме
дык есть уже, причем автор там прям целиком в свой ридми из моего копирнул (по части установки)
353. ivnik 585 12.03.07 21:59 Сейчас в теме
Тоже поделюсь кое-чем, прошу не пиннать, ведь я не супер, а самоучка.
Если нужно в ТЗ удалить строки из ТЗ по условию - то на мой взгляд самый эффеквный способ использовать для этого команду "шаг назад", т.е. написать двумя строками
УдалитьСтроку();
ПолучитьСтрокуПоНомеру(НомерСтроки-1);

работает безотказно, скорость удовлетворительная, т.е. за один цикл и без пропусков и не требуется ни каких таблиц для перегрузки.
354. Abadonna 3960 13.03.07 02:01 Сейчас в теме
>Тоже поделюсь кое-чем, прошу не пиннать, ведь я не супер, а самоучка.
Думаешь тут другие не самоучки? Когда я учился в институте, компьютеры были паровые, а чугунные дисководы раскручивали лошадьми ;)
А обратный ход - совершенно правильный (но об этом Чебурах уже писал)
Но у тебя нагляднее- красивее.
355. alexmob 13.03.07 07:51 Сейчас в теме
O-Planet Написал:
-------------------------------------------------------
> Тоже поделюсь кое-чем, прошу не пиннать, ведь я не
> системщик. Был клиент, у которого стояла база на
> затрапезном компе. Однажды они вызывают и говорят,
> что все слетело вдруг неожиданно. Проверяю: 1С
> вылетает по какой-то системной ошибке. Не знаю
> как, но интуитивно я допер тогда, что надо войти в
> каталог ИБ м стереть папку SYSLOG со всем
> содержимым. Все заработало. Этот метод помогал мне
> после раз десять.
> _______________
> Мож спецы путно объяснят, что там, ведь интуиция -
> это не всегда надежно ))

Есть такая глюка у 1С, сам неоднократно встречался. 1С-ка или не она, пишет в лог "мусор" а потом при загрузке трапается когда находит эти строки.
356. vasilykushnir 63 13.03.07 08:40 Сейчас в теме
>Abadonna: Когда я учился в институте, компьютеры были паровые, а чугунные дисководы раскручивали лошадьми

А у меня вообще мобильник был с пленочной камерой...
А Ivnik - молодца.
357. vasilykushnir 63 13.03.07 08:49 Сейчас в теме
> Мож спецы путно объяснят, что там, ведь интуиция -
> это не всегда надежно ))

Все сносить не обязательно - достаточно в 1cv7.mlg снести мусорные строки (статистика ведь нам нужна!), к примеру редактором из тотал командира. Эти строки сразу видны - всякая фигня в них и неимоверно длинющие.
358. ivnik 585 13.03.07 20:51 Сейчас в теме
> Все сносить не обязательно - достаточно в 1cv7.mlg снести мусорные строки (статистика ведь нам нужна!)
Спасибо, Василий. Я обычно удалял 1cv7.mlg, теперь буду использовать твои рекомендации.
С уважением, Вячеслав.
359. vasilykushnir 63 14.03.07 08:48 Сейчас в теме
Ivnik Написал:
-------------------------------------------------------
> > Все сносить не обязательно - достаточно в
> 1cv7.mlg снести мусорные строки (статистика ведь
> нам нужна!)
> Спасибо, Василий. Я обычно удалял 1cv7.mlg, теперь
> буду использовать твои рекомендации.
> С уважением, Вячеслав.

Сам на это случайно наткнулся: в филиале потерялась статистика до определенного периода (15 декабря прошлого года). Местный программист очень далек от этого - даже не заметил, но когда в начале этого года начались проблемы с входом в базу - пришлось ехать. Что интересно - весь лог в текстовом редакторе просматривался от начала 2006 только в 15 декабря сидели две подозрительные записи - длинные и со всякой абракадаброй. После их удаления весь лог стал нормально просматриватся и в 1С. Что были за записи и че в них сидело разбиратся не стал - заработало и слава Богу...
360. Abadonna 3960 14.03.07 09:04 Сейчас в теме
Чую надо писать прогу по выискиваю хрени в логе;)
Хотя у меня на ТАКИХ лога - ни фига (тфу-тфу) не бывало такого
361. vasilykushnir 63 14.03.07 09:27 Сейчас в теме
А че, и напиши! А мы тебе рейтингов накидаем...
362. vladko 14.03.07 12:15 Сейчас в теме
я сталкивался с таким на заре моей деятельности ;-)
Просто приходилось удалять лог.
363. CheBurator 3119 14.03.07 12:17 Сейчас в теме
ну вы маньяки...
ни разу не сталкивался.
А по наблюденимя - это из-за чего вылазит такая бяка?
364. O-Planet 6432 14.03.07 17:32 Сейчас в теме
А по наблюденимя - это из-за чего вылазит такая бяка?

Когда в качестве сервера умудряются использовать пень 133 с 64МБ памяти и 98 виндом :)
365. vladko 15.03.07 10:38 Сейчас в теме
да, в году так 2002, поставили сервер тогда на небольшое предприятие
IP 733, 512 mb с WinNT4 server terminal edition. На нём наблюдалось такое.
366. vasilykushnir 63 15.03.07 13:34 Сейчас в теме
O-Planet Написал:
-------------------------------------------------------
> А по наблюденимя - это из-за чего вылазит такая
> бяка?
>
> Когда в качестве сервера умудряются использовать
> пень 133 с 64МБ памяти и 98 виндом

Прав на 200%
367. poppy 16.03.07 00:06 Сейчас в теме
Ivnik Написал:
-------------------------------------------------------
> > Все сносить не обязательно - достаточно в
> 1cv7.mlg снести мусорные строки (статистика ведь
> нам нужна!)
> Спасибо, Василий. Я обычно удалял 1cv7.mlg, теперь
> буду использовать твои рекомендации.
> С уважением, Вячеслав.

У меня дежавю? Или по второму разу обсуждаем?

http://infostart.ru/forum/read.php?25,4076,page=2,ref=4246
368. Abadonna 3960 16.03.07 03:08 Сейчас в теме
> Когда в качестве сервера умудряются использовать
> пень 133 с 64МБ памяти и 98 виндом
Значит, на 2-х процессорном с 2 Гигами памяти мне этих строк не увидать?
Расстроили вы меня :( Какая досада...
369. O-Planet 6432 16.03.07 04:22 Сейчас в теме
> У меня дежавю?
Нет, но актуальные темы в этом топике будем повторять серез страницу. ;)
370. vasilykushnir 63 28.03.07 13:38 Сейчас в теме
Ребята, обхохочетесь, но факт...
Конструкция

Наименование = СпрВыб.Наименование;
СтрЗаменить(Наименование, "|", " ");

не сработала (второй оператор) символ "|" не убирается. Пришлось сделать

Длн = СтрДлина(СпрВыб.Наименование);

Для Ин = 1 По Длн Цикл
СМ = Сред(СпрВыб.Наименование, Ин, 1);

Если СМ = "|" Тогда
Наименование = Наименование + " ";
Иначе
Наименование = Наименование + СМ;
КонецЕсли;
КонецЦикла;
371. vip 28.03.07 14:46 Сейчас в теме
Обхохотались, но

Стр="А|Б|В|Г";
Стр=СтрЗаменить(Стр,"|"," ");
Сообщить(Стр);

сообщает "А Б В Г".
372. vasilykushnir 63 28.03.07 15:56 Сейчас в теме
Даа, vip, теперь уже мне хочется обхохатыватся:
Вместо

СтрЗаменить(Наименование, "|", " ");

Надо как ты предложил

Наименование = СтрЗаменить(Наименование, "|", " ");

Банальная невнимательность. Вот ведь бывает, вроде все правильно написал, а есть маленький ньюансик....
373. O-Planet 6432 29.03.07 07:08 Сейчас в теме
> не сработала (второй оператор) символ "|" не убирается.
Обхохотался. А первый??? Он тоже по идее, в твоей конструкции не должен бы убраться.
374. vasilykushnir 63 29.03.07 11:12 Сейчас в теме
Имелось в виду не второй символ "|"? а именно второй оператор СтрЗаменить(Наименование, "|", " ");
375. Abadonna 3960 29.03.07 12:53 Сейчас в теме
Был у меня программер, ПОСТОЯННО писал:
ВыбЭлемент=Спр.НайтиПоКоду(Код);
и ВСЕГДА удивлялся почему ВыбЭлемент получается только 1 или 0
Раз я не выдержал, влепил ему мощный подзатыльник - болезнь прошла ;)
376. CheBurator 3119 29.03.07 20:26 Сейчас в теме
Скопипастено отсюда: http://www.forum.mista.ru/topic.php?id=263535&forum=1c
..
запостил Drok
v7: Фича #ЗагрузитьИзФайла
Доброго времени суток! Может никого не удивлю, но хочу поделится одной находкой (как минимум для себя). С 1С уже не первый год, но все-таки был удивлен, что нигде про такую фичу не читал. Суть в следующем, все мы знаем, зачем и для чего нужна такая штука как #ЗагрузитьИзФайла, которая значительно облегчает жизнь при конфигурировании-отладке. Так вот, случайно обнаружил следующую вещь: если мы пишем, например, в модуле формы документа #ЗагрузитьИзФайла ExtTXT\Реализация_Ф.txt, то по идее при открытии формы документа считывание текста файла происходит по следующему пути ...ПапкаБазы\ExtTXT\Реализация_Ф.txt НО, как оказалось, если в папке текущего пользователя (если для пользователя она определена) будет папка ExtTXT, то будет предпринята попытка считат текст файла оттуда, т.е. по следующему пути... ПапкаБазы\ПапкаПользователя\ExtTXT\Реализация_Ф.txt ПРИЧЕМ, если такого файла там найдено не будет, то файл будет читаться по пути ПапкаБазы\ExtTXT\Реализация_Ф.txt. Собственно и все...
Одно из применений этой фиче следующее: если в рабочей конфигурации активно используются внешнии модули, то прог, имея у себя в папке пользователя копию папки с внешними файлами модулей, может в рабочей базе отлаживать и менять код никому не мешая (конечно, если это не злой прог :).
377. iS 29.03.07 22:19 Сейчас в теме
как вам такая конструкция?
на мой взгляд очень красиво.

Test(str,"руков|бух|начал|директ") = 1 // первые лица
Test(str,"@.+\.") = 1 // е-мейл



function Test(str,patt) export
re = CreateObject("VBScript.RegExp");
re.Pattern = trimall(patt);
re.IgnoreCase = 1;
return re.Test(str);
endfunction

378. CheBurator 3119 30.03.07 01:14 Сейчас в теме
Что-то как я ни пробую, у меня либо 0 либо -1
----------------------------------------------------------
наверное, я тупой али с похмелья...
379. iS 30.03.07 07:28 Сейчас в теме
точно -1, поэтому чтобы однаэсовским программистам было привычнее заменим

function Test(str,patt) export
re = CreateObject("VBScript.RegExp");
re.Pattern = trimall(patt);
re.IgnoreCase = 1;
return -re.Test(str);
endfunction
380. Abadonna 3960 30.03.07 07:36 Сейчас в теме
>наверное, я тупой али с похмелья...
А почему ОБА варианта не рассматриваешь? ;)
381. O-Planet 6432 03.04.07 05:07 Сейчас в теме
А скажите ка мне... Вот, бухитоги...

После "ВыполнитьЗапрос" я обычно пользуюсь СНД, СКД, ДО и КО. Иногда перед всем этим пишу, что надо использовать субконто при расчете итогов. А вот такие супер функции, как СНДР или СНДРС - оно о чем?
382. Ворона 03.04.07 11:05 Сейчас в теме
2 Сhe Burashka
Скопипастено отсюда: [www.forum.mista.ru]
..
запостил Drok
v7: Фича #ЗагрузитьИзФайла ....

а я натыкалась на конфигурацию где при запуске системы была всего одна команда,именно загрузитьизфайла,причем при каждом запуске,естесно будь то конфигуратор,отладчик,или предприятие, это был разный файл,который переписывался и переименовывался всякий раз... а функции вызывались угадайте откуда!!!
клиент плакал и бился в истерике,потому как в отчетах сплошь 999999,а формат-как оказалось...ищи иглу...и как вснгда все же нужно было вчера срочно!
383. Ворона 03.04.07 11:21 Сейчас в теме
O-Planet Написал:
-------------------------------------------------------
> А скажите ка мне... Вот, бухитоги...
>
> После "ВыполнитьЗапрос" я обычно пользуюсь СНД,
> СКД, ДО и КО. Иногда перед всем этим пишу, что
> надо использовать субконто при расчете итогов. А
> вот такие супер функции, как СНДР или СНДРС - оно
> о чем?
>

А после "рассчитать" - эти супер функции
_
384. sashulyT 201 12.04.07 13:02 Сейчас в теме
Вот еще наблюдение:

Пробывал получить итог документа открытого через ОЛЕ у меня получилось:
ОлеДок.Итог("Сумма") = 9218.45999999999
385. natalijnnn 340 12.04.07 13:30 Сейчас в теме
to (sashulyT): если я правильно поняла и чем вы, эта особенность описана во многих источниках, называется "потеря точности при передаче через OLE Automation параметров числового типа" ...
386. poppy 12.04.07 13:50 Сейчас в теме
natalijnnn Написал:
-------------------------------------------------------
> "потеря точности при передаче через OLE Automation параметров числового типа" ...

ИМХО это связано с преобразованием из двоично-десятичного формата хранения числа в двоичный и обратно.
387. natalijnnn 340 12.04.07 14:03 Сейчас в теме
Оно самое.
Не знаю как там с копирайтами, так и не поняла, что за сайт но выдержка:

"Данное явление связано с тем, что числовые значения в системе 1С:Предприятие представляются в десятичной форме с фиксированной точкой, что обеспечивает лучшую точность при вычислениях в экономических задачах. В то же время при передаче числовых значений через механизмы OLE Automation , эти значения преобразуются в двоичную форму с плавающей точкой. А в двоичной форме с плавающей точкой не любое десятичное число может быть представлено абсолютно точно. "
388. O-Planet 6432 13.04.07 05:45 Сейчас в теме
> А в двоичной форме с плавающей точкой не любое десятичное число может быть представлено абсолютно точно.
Точнее, почти никакое. Вывод: надо пользоваться округлением при приеме данных, хотя бы до 3 знаков. Я когда с с++ работал и с типом float, всегда определял некую дельту, чтобы сравнивать числа. Особенно меня убивало, когда пол дня ищешь, почему не срабатывает условие:

float a;
...
a=0.0;
...
if(a==0.0) ...

, а потом оказывается, что там в "a" и не ноль вовсе, а 0.000008453...
389. CheBurator 3119 29.04.07 23:17 Сейчас в теме
Выбор цвета из типового диалога виндов:
Код
Скрипт = CreateObject("MSScriptControl.ScriptControl");
Dialog=СоздатьОбъект("MSComDlg.CommonDialog");
Скрипт.AddObject("Dialog",Dialog);
Dialog.ShowColor();
Цв=Скрипт.Eval("Dialog.Color");
Показать полностью
390. CheBurator 3119 04.05.07 04:37 Сейчас в теме
Наука против Шаманов или Я брожу в темноте...
Обнаружилась интересная фишка (для кого-то м.б. это очевидно, но - не для меня...)
..
Суть: применение и срабатывание в запросах конструкции
Условие (НЕ(Элемент в СписокЗначений))
..
Пример:
несущественное опускаем...
Типовая ТиС, DBF, СЗ - это список значений
..
Вариант1.
|Контрагент = Документ.ПКО.Контрагент;
|Условие(НЕ(Контрагент в СЗ));
РАБОТАЕТ УСПЕШНО.
..
Вариант2.
|Контрагент = Документ.ПКО.Контрагент,Документ.СтрокаВыпискиПриход.Контрагент;
|Условие(НЕ(Контрагент в СЗ));
НИФИГА НЕ РАБОТАЕТ! ЗАПРОС ВОЗВРАЩАЕТСЯ ПУСТОЙ.
..
Вариант3. внимание - засада!
|Контрагент = Документ.ПКО.Контрагент.ТекущийЭлемент,Документ.СтрокаВыпискиПриход.Контрагент.ТекущийЭлемент;
|Условие(НЕ(Контрагент в СЗ));
РАБОТАЕТ УСПЕШНО.
..
А теперь в нашей что-где-когде - вопрос!!!
В чем разница, где засада, почему работает/не работает???
391. sevenlis 69 05.05.07 18:01 Сейчас в теме
ХЕЗ...
МБ в в.1: используется одна переменная - значение из одного места Ж:-), в.2: одна переменная, значения из разных мест, в.3: одна переменная, значения из разных мест, но .ТекущийЭлемент позиционирует переменную на конкретный элемент справочника...
А не пробовал в в.2 в СЗ добавлять не элементы, а элементы по текущему представлению (типа если наименование, то наименования, если код, то коды...).
392. CheBurator 3119 06.05.07 02:06 Сейчас в теме
ниче не понял...
> А не пробовал..
тогда лучше программирование начать с тумблеров - так что ли?
393. poppy 06.05.07 14:56 Сейчас в теме
Сhe Burashka Написал:
-------------------------------------------------------
> А теперь в нашей что-где-когде - вопрос!!!
> В чем разница, где засада, почему работает/не
> работает???
>

Проверено на ДБФ версии - вариант 2 работает.

Добавь "несущественные" детали или выложи отчет, где это не работает.
394. poppy 06.05.07 14:59 Сейчас в теме
LiS Написал:
-------------------------------------------------------
> А не пробовал в в.2 в СЗ добавлять не элементы, а

Бяка! Так точно работать не будет. Это известно даже начинающему 1С-программисту... ;)
395. CheBurator 3119 06.05.07 15:08 Сейчас в теме
На всякий случай уточню - 26 ядро.
Тестовый примерчик выложу вечером.
396. CheBurator 3119 07.05.07 00:16 Сейчас в теме
Просто скринсейвер BSOD - пугать юзеров.
забирать отсюда: http://infostart.ru/file.php?0,file=308
397. CheBurator 3119 07.05.07 00:45 Сейчас в теме
Тестовый пример, демонстрирующий бяку (специально для Poppy)
исходные условия
1. ТИС 933 или любой более свежий релиз, главное чтобы в процедуре ГМ
Функция глФильтрПоСправочнику(ПолеЕФ,ИмяПоляЕФ... (в районе 13300 строки) блок операторов выглядел так (+30 строк примерно)
Код
Если ЕстьМФ = 1 Тогда      // есть множественный фильтр по позициям справочника
   Если ТипМФ=1 Тогда // принадлежит списку
      ТекстЗапроса = ТекстЗапроса+"Условие ("+ИмяПеремЗапроса+" в "+ИмяПоляМФ+");";
   Иначе     
      ТекстЗапроса = ТекстЗапроса+"Условие (НЕ("+ИмяПеремЗапроса+" в "+ИмяПоляМФ+"));";
   КонецЕсли;
КонецЕсли;
Показать полностью


2. ядро 26 у меня
3. запускаем файл-обработку, которую берем отсюда
http://infostart.ru/file.php?0,file=309 - это простой запрос по документам оплаты за период (желательно взять такой период чтобы были и ПКО и выписки приход)
4. задаем период, МФ = пустой. Формируем, вываливается ТЗ - запоминаем первого клиента а ТЗ
5. Устанавливаем МФ "по покупателям" "все кроме" покупателя из п.4. Формируем. Должна вывалиться таблица оплат без этого покупателя. У меня вываливается пустая.
...
где я косячу? или где косяк в алгоритме м.б у меня?
жду сводок информбюро
398. CheBurator 3119 07.05.07 00:47 Сейчас в теме
Самое убойное - что по другим полям МФ "все кроме" вроде нормально отрабатывает... Может я где накосячил - ткните.. может у меня глаз замылен...
399. CheBurator 3119 07.05.07 01:59 Сейчас в теме
Кстати, в продолжение темы Опланета про субконто...
Имея ТЗ вида
ТЗ.НоваяКолонка("Контрагент");
ТЗ.НоваяКолонка("Договор" );
ТЗ.НоваяКолонка("КредДокумент");
где колонки типизированы как АГРЕГАТНЫЕ ОБЪЕКТЫ
при наличии в базе одинаковых наименований улиентов и/или договоров (что сплошь и рядом - Основной договор) - пользуясь ТЗ.Сортировать - нет возможности получить верную сортировку _по алфафиту_ Контрагент-Договор с соблюдением иерархии "подчиненности" Контрагент-Договор...
подробные беседы на эту тему http://www.kuban.ru/forum_new/forum9/files/290092.html
400. poppy 07.05.07 23:57 Сейчас в теме
Предварительные результаты:

Сhe Burashka Написал:
-------------------------------------------------------
> 4. задаем период, МФ = пустой. Формируем,
> вываливается ТЗ - запоминаем первого клиента а ТЗ
> 5. Устанавливаем МФ "по покупателям" "все кроме"
> покупателя из п.4. Формируем. Должна вывалиться
> таблица оплат без этого покупателя. У меня
> вываливается пустая.

Если в п.4 запомнить не одного, но двух клиентов, а в п.5 вспонить обоих, то таблица непустая.

Есть идеи?
401. poppy 08.05.07 00:08 Сейчас в теме
Вдогонку.

Если в п.5 выберем клиента, которого нет в п.4, то та же бяка. При двух элементах - все работает.
402. CheBurator 3119 08.05.07 00:09 Сейчас в теме
Пока нет... При этом еще при Добавленн в запрос к контрагенту из доков .ТекущийЭлемент(0 - все работает... блин.. шаманство какое-то...
403. poppy 08.05.07 00:42 Сейчас в теме
404. Abadonna 3960 08.05.07 06:12 Сейчас в теме
Объявляю конкурс на лучший ответ на вопрос, только что по чату получил:
Что означает "Пароль набран неверно"?

Вопрос процитирован абсолютно точно ;)
405. Abadonna 3960 08.05.07 07:22 Сейчас в теме
Оба-на!
Глючок в стандартной ЗиК.
Процедура ПриЗаписи()
...............................................................
ГодДатыРождения=ДатаГод(ДатаРождения);
Если ГодДатыРождения>2000 Тогда
ДатаРожденияСотрудника=Формат(ДатаРождения,"ДДДММГГГГ");
Предупреждение("Не верно указана дата рождения сотрудника: "+РазделительСтрок+ДатаРожденияСотрудника,10);
СтатусВозврата(0); Возврат;
КонецЕсли;
Если РабочаяДата соответствует 21 веку, для года меньше 1948
ДатаГод возвращает 2047 (например) и фиг запишешь.
При установке рабочей даты в 1999 год возвращает как положено 1947
(Отмечу, что ввод с клавиатуры или через выпадающий календарь на результат не влияет)
А в общем, получается, что это глюк функции ДатаГод
406. CheBurator 3119 08.05.07 12:28 Сейчас в теме
Смотри в параметрах - установка "год начала столетия"....?
407. sevenlis 69 08.05.07 14:02 Сейчас в теме
poppy Написал:
-------------------------------------------------------
> Бяка! Так точно работать не будет. Это известно
> даже начинающему 1С-программисту...

Не то я имел в виду:
Вариант2.
|Контрагент = Документ.ПКО.Контрагент.Наименование,Документ.СтрокаВыпискиПриход.Контрагент.Наименование;
|Условие(НЕ(Контрагент в СЗ));

В СЗ - строки с наименованиями контров.
Вот интересно, будет работать иль нет...
408. poppy 08.05.07 17:23 Сейчас в теме
LiS Написал:
-------------------------------------------------------
> В СЗ - строки с наименованиями контров.
> Вот интересно, будет работать иль нет...

Накладывать условие на наименование контрагентов - не для этого случая.

Для этого лучше использовать код или полный код (в зависимости от уникальности). Но ИМХО такой способ считается дурным тоном.
409. Abadonna 3960 08.05.07 21:55 Сейчас в теме
Сhe Burashka Написал:
-------------------------------------------------------
> Смотри в параметрах - установка "год начала
> столетия"....?
Ха! Действительно, никогда не обращал внимания на этот параметр.
Забавно, что по умолчанию стоит 1947, типа кто старше - свободны, столько не живут ;)
410. CheBurator 3119 13.05.07 16:59 Сейчас в теме
Штатная универсальная выгрузка/загрузка в формате XML
При загрузке схемы выдает такую ошибку:
Если гТабСхемыЗагрузки.ПолучитьЗначение(1, "Иден") = "Данные" Тогда
{C:\1C_DATA\487\1SBDEMO\EXTFORMS\MCEXP.ERT(1382)}: Номер за пределами значения!
Ответил ТакВотЖе: Нужно грохнуть четвёртый парсер и установить третий. Тогда обработка заработает.
regsvr32 /u msxml4.dll
regsvr32 msxml3.dll
411. CheBurator 3119 13.05.07 18:00 Сейчас в теме
если при загрузке данных из предыдущего топика ругается типа "в группе д.б хотя бы один 'element'" - проверяйте выгружаемые значения на наличие "нечитаемых" символов в строковых реквизитах
412. Abadonna 3960 19.05.07 10:00 Сейчас в теме
Конвертер MXL в XLS для больших таблиц (аттач)
Автор: Роман Корнелиус.
Примечание: для ускорения работы с текстом используется стандартная
V7PLUS.DLL
Прикрепленные файлы:
MXL_XLS.zip
413. Abadonna 3960 20.05.07 12:47 Сейчас в теме
К предыдущему, тестанул на скорость, ОСВ по счету
5300 строчек:
с сохранением стилей/ без сохранения стилей - 22/11 секунд.
Поскольку ей по барабану, сколько строчек, для
53 тыс. строк должно получиться соотвественно
220/110 секунд, т.е. меньше 4 минут (!)
(Атлон 64 3000+, 1.99 Гц, ОЗУ 512 МБ)
414. CheBurator 3119 20.05.07 13:33 Сейчас в теме
Тоже тестанул на скорость...
Ведомость по партиям, 45000 строк (по счетчику ячеек), порядка 26000 чтрок по счетчику строк вывода (много объединенияй). За 15 минут, было орработано примерно 1/6...
415. CheBurator 3119 20.05.07 13:37 Сейчас в теме
ОСВшку и ромиксовский патч сохранит, причем даже быстрее...
416. Abadonna 3960 20.05.07 13:48 Сейчас в теме
Зато абсолютно надежная, работает с любыми версиями ёкселя и ничего дополнительного не требует, кроме V7PLUS.DLL, которая идет в стандартной поставке
417. CheBurator 3119 20.05.07 14:15 Сейчас в теме
Застрелись! http://infostart.ru/file.php?0,file=318
Разумное использование доп.возможностей - приветствуются...
Отчет по партиям, 18600 строк (по счетчику приведенного тобой ковертора) - чуть больше 30 минут... так что - стреляйтесь.
418. Abadonna 3960 20.05.07 14:20 Сейчас в теме
А мне чего стреляться? прога не моя ;)
419. Abadonna 3960 20.05.07 14:31 Сейчас в теме
Ты лучше расскажи почему народ жалуется, что твоя в 2003-й ёксель сохранять не хочет? ;)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот