Poppy - репспект. Я и говорю про то же. Каждая контрукция должна делать то, для чего она и предназначена. Конечно, когда с помощью скрытой таблицы на форме решают проблему отработки нажатия несимвольных клавиш - это можно назвать находчивостью. Но все-таки такие методы должны быть исключением, а не правилом. Конструкция "Попытка - Исключение" предназначена для отработки аварийных ситуаций, которые проверить средствами языка выглядит проблематично. Например, я пытаюсь записать файл, а диск защищен от записи, или элемент справочника открыт юзером, а я его хочу удалить программно. Но деление на 0 или проверка выхода индекса за пределы чего-то - это уже дурной тон.
Сложное детство приучило решать проблемы наименее болезненным способом.
И если Попытка сокращает код по сдвигу в списке в 2 раза - то это как раз то, что надо...
А кстати...
> вот тут случаем напомнили мне мою же мелкую полезность...
Ты бы кинул куда-нить описание, как работать с ексцелевскими доками в 1С. Помнится, кто-то из моих друзей с ног сбился, ища. Так и пользуется буфером обмена. Вордовский нашел, а ексцелевский - нЭту...
>Цена = ?(Количество = 0, 0, Сумма/Количество);
Не знаю кого как, а меня просто в бешенство приводит эта притянутая за уши нечитабельная конструкция из Си. Я бы уж тогда просто по "человечьи" написал Если-Иначе. Но дело вкуса! А вот по части загрузки процессора надо еще очень посмотреть, что его грузит меньше: сравнение или попытка.
Предлагаю конкурс: вон моя простенькая "ОписательМетаданных". Совсем я забыл, что существует ТиС (никогда с ней не работал), и что там нет по определению объекта ВидыСубконто(). Так вот: если кто-нибудь придумает, как узнать, что такого объекта метаданных в данной конфе вообще не существует другим способом, чем через попытку - сниму шляпу и "ку" два раза сделаю.
И цитата напоследок:
"Исключение - это ОБЪЕКТ специального вида, характеризующий возникшую в программе исключительную ситуацию... Особенностью исключений является то, что они существуют до тех пор, пока не попадут к обработчику событий. Как только исключение обработано, оно разрушается..."
Во, специально провел эксперимент, два кода:
Для К=1 По 1000000 Цикл
Попытка
С=А/Б;
Исключение
С=0;
КонецПопытки;
КонецЦикла;
------------------------------------
Для К=1 По 1000000 Цикл
Если Б=0 Тогда
С=0;
Иначе
C=А/Б;
КонецЕсли;
КонецЦикла;
В случае, если Б<>0 вариант с Попыткой отрабатывает на 1 секунду меньше, чем через Если (пустяк, а приятно!)
В случае Б=0 Попытка работает на 2 секунды больше, но не надо забывать, что она аж 1000000 исключений обработала, чего в нормальной практике быть не может.
Выводы делайте сами
А вывод,кстати, простой - если имеем миллион строчек, из которых в 5-10 случаях может быть нулевое деление, то Попытка отработает все равно быстрее, т.к. исключение произойдет 5-10 раз, а обработка условия Если всегда будет выполняться миллион раз (за что проц спасибо не скажет)
2 poppy и O-Planet
Вот и подумайте, что лучше: ВСЕГДА заставлять процессор выполнять операцию сравнения (представляете как оно там внутри?) или РЕДКО заставить его обработать исключение.
Где "дурного тона" больше?
Abadonna Написал:
-------------------------------------------------------
> Предлагаю конкурс: вон моя простенькая "ОписательМетаданных". Совсем я забыл, что
> существует ТиС (никогда с ней не работал), и что там нет по определению объекта ВидыСубконто(). Так
> вот: если кто-нибудь придумает, как узнать, что такого объекта метаданных в данной конфе вообще не
> существует другим способом, чем через попытку - сниму шляпу и "ку" два раза сделаю.
Причесала твою простенькую. Убрала все "попытки". Заодно исправила ошибки и неточности.
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();
КонецЦикла;
Abadonna Написал:
-------------------------------------------------------
> Кстати, мужики тут о тебе уж беспокоиться начали - куда пропала
> Любят тебя
Так я ж и написал вверху точно такой же пример, и сказал, цитирую:
"В случае Б=0 Попытка работает на 2 секунды больше, но не надо забывать, что она аж 1000000 исключений обработала, чего в нормальной практике быть не может. "
И
"А вывод,кстати, простой - если имеем миллион строчек, из которых в 5-10 случаях может быть нулевое деление, то Попытка отработает все равно быстрее, т.к. исключение произойдет 5-10 раз, а обработка условия Если всегда будет выполняться миллион раз (за что проц спасибо не скажет)"
Да, извини, с праздником прошедшим! Желаю денег, на них в наше время можно даже здоровье купить
poppy Написал:
-------------------------------------------------------
> чем "Попытка" если Б=0 и на 25% быстрее, если
> Б<>0.
Ну не знаю, проверил на своем компе (атлон 3000+), при Б<>0 Попытка и
? дают совершенно одинаковый результат.
Кстати, а ты не думаешь, что механизм C=?(Б = 0, 0, А/Б);
вполне может быть внутри как раз и реализован через попытку?
Голову на отсечение даю, что внутри исходного кода 1С навалом
блоков try-exception и try-finally, не считая еще и искусственной генерации
исключений. Уж поверь, много кодов на дельфи и Си я видел - там без этих блоков практически ни один код не обходится
Кстати (для O-Planet) как раз признаком хорошего стиля программирования считается использования блоков попыток в "нормальных" языках.
Например,
GetMem(buff, sizeof(buff))
что-то делаем...
FreeMem(buff).
Если внутри что-то произошел облом, поимеем захваченный и не освобожденный кусок памяти. Если с обломом программу несколько раз запустить - всю оперативку съесть может.
А вот так
try
GetMem(buff, sizeof(buff))
что-то делаем...
finally
FreeMem(buff)
нормальный язык ВСЕГДА освободит память, даже в случае облома
Abadonna Написал:
-------------------------------------------------------
> Ну не знаю, проверил на своем компе (атлон 3000+),
> при Б<>0 Попытка и
> ? дают совершенно одинаковый результат.
У меня разница получилась небольшая. Но это несущественно.
> Кстати, а ты не думаешь, что механизм C=?(Б = 0, 0, А/Б);
> вполне может быть внутри как раз и реализован через попытку?
Возможно. Однако, быстродействие Попытки зависит от исходных данных (почти в 2 раза). А у ? быстродействие не зависит.
> Голову на отсечение даю, что внутри исходного кода 1С навалом
> блоков try-exception и try-finally, не считая еще и искусственной генерации
> исключений.
Я в этом даже не сомневаюсь.
> Уж поверь, много кодов на дельфи и Си
> я видел - там без этих блоков практически ни один
> код не обходится
На Си не писала, но с Дельфи знакома не понаслышке. Правда, давно не практиковала.
ИМХО блоки try, как и ООП были придуманы для увеличения производительности программистов, но не программ.
Кстати, одно из преимуществ платформы от 1С - это быстрота разработки прикладного решения. В ущерб его производительности.
Конструкция ?(,,) в Си присутствовала ИМХО для уменьшения исходного текста кода, но не для других задач.
Abadonna Написал:
-------------------------------------------------------
> Кстати (для O-Planet) как раз признаком хорошего
> стиля программирования считается использования
> блоков попыток в "нормальных" языках.
В "нормальных" языках - да.
Но мы ведь речь ведем про интерпретатор платформы 1С:Предприятие? Или нет?
Кстати, ты видел блоки попыток в других интерпретаторах?
> одно из преимуществ платформы от 1С - это быстрота разработки прикладного решения. В ущерб его производительности.
Это да! Что всегда бесило в дельфи - для поля ввода числа надо так изгаляться, что все!
Поппи, фотку давай!!!
> На Си не писала, но с Дельфи знакома не
> понаслышке. Правда, давно не практиковала.
А я-то думал, почему я к тебе интуитивно хорошо отношусь ;)
Дельфи - рулез!
> Конструкция ?(,,) в Си присутствовала ИМХО для
> уменьшения исходного текста кода, но не для других
Вот за это я терпеть не могу синтаксис Си - там такие навороты-извраты
2 Чебур и O-Planet на 2 последних:
это копилка опыта программирования или ваще?
Давайте создадим отдельную ветку "Копилка опыта общения с женщинами" с подветкой "Заигрывания с poppy" :)
Ну так надо потереть весь неконструктив в ветке и все.
Ладно, меня фотка Poppy интересует - это естественнно...
но прошу оградить от приставнаий О-планета к моим ушам - это противоествественно!
Не! Форум этот тем хорошь, что конструктив с неконструктивом переплетены и сосуществуют. Потому форум живой, и сотни юзеров нас читают и цитируют где-нить, как супермонстров 1С. Прикольно!!! Пол Росии сейчас задумалось, как связаны фотка Poppy с весной и противоестественным использованием чебурашкиных ушей...
Мда,
Че бурашка пристаёт к Poppy,
O-planet пристаёт к Че бурашке,
Абадонна пресекает флуд, и настаивает на использовании "Попытки"
Poppy кокетливо молчит, но требует поздравления с 8 марта...
Кто бы мог подумать, что грамотное использование привязок в 1С:8.0 может вызвать эффект мгновенного закрытия программы без каких-либо комментариев?! Самое прикольное, что если этого не знать, то даже после ящика водки не поймешь, что вызывает ошибку: в коде-то ее нет! Точнее, до выполнения кода даже и не доходит.
А теперь - о главном. Под грамотным использованием понимается обычное зацикливание в привязках, когда первое ссылается на расположение второго, а второе - на расположение первого. Создаю обработку, устанавливаю две привязки. Верх первой привязываю к низу второй, верх второй - к середине первой. Отключаю пропорции и все! Кстати, вот верх второй к низу или верху первой привязать не удастся: программа "заметит" зацикливание. А вот середину пропускает и ... умирает!
Тоже поделюсь кое-чем, прошу не пиннать, ведь я не супер, а самоучка.
Если нужно в ТЗ удалить строки из ТЗ по условию - то на мой взгляд самый эффеквный способ использовать для этого команду "шаг назад", т.е. написать двумя строками
УдалитьСтроку();
ПолучитьСтрокуПоНомеру(НомерСтроки-1);
работает безотказно, скорость удовлетворительная, т.е. за один цикл и без пропусков и не требуется ни каких таблиц для перегрузки.
>Тоже поделюсь кое-чем, прошу не пиннать, ведь я не супер, а самоучка.
Думаешь тут другие не самоучки? Когда я учился в институте, компьютеры были паровые, а чугунные дисководы раскручивали лошадьми ;)
А обратный ход - совершенно правильный (но об этом Чебурах уже писал)
Но у тебя нагляднее- красивее.
O-Planet Написал:
-------------------------------------------------------
> Тоже поделюсь кое-чем, прошу не пиннать, ведь я не
> системщик. Был клиент, у которого стояла база на
> затрапезном компе. Однажды они вызывают и говорят,
> что все слетело вдруг неожиданно. Проверяю: 1С
> вылетает по какой-то системной ошибке. Не знаю
> как, но интуитивно я допер тогда, что надо войти в
> каталог ИБ м стереть папку SYSLOG со всем
> содержимым. Все заработало. Этот метод помогал мне
> после раз десять.
> _______________
> Мож спецы путно объяснят, что там, ведь интуиция -
> это не всегда надежно ))
Есть такая глюка у 1С, сам неоднократно встречался. 1С-ка или не она, пишет в лог "мусор" а потом при загрузке трапается когда находит эти строки.
> Мож спецы путно объяснят, что там, ведь интуиция -
> это не всегда надежно ))
Все сносить не обязательно - достаточно в 1cv7.mlg снести мусорные строки (статистика ведь нам нужна!), к примеру редактором из тотал командира. Эти строки сразу видны - всякая фигня в них и неимоверно длинющие.
> Все сносить не обязательно - достаточно в 1cv7.mlg снести мусорные строки (статистика ведь нам нужна!)
Спасибо, Василий. Я обычно удалял 1cv7.mlg, теперь буду использовать твои рекомендации.
С уважением, Вячеслав.
Ivnik Написал:
-------------------------------------------------------
> > Все сносить не обязательно - достаточно в
> 1cv7.mlg снести мусорные строки (статистика ведь
> нам нужна!)
> Спасибо, Василий. Я обычно удалял 1cv7.mlg, теперь
> буду использовать твои рекомендации.
> С уважением, Вячеслав.
Сам на это случайно наткнулся: в филиале потерялась статистика до определенного периода (15 декабря прошлого года). Местный программист очень далек от этого - даже не заметил, но когда в начале этого года начались проблемы с входом в базу - пришлось ехать. Что интересно - весь лог в текстовом редакторе просматривался от начала 2006 только в 15 декабря сидели две подозрительные записи - длинные и со всякой абракадаброй. После их удаления весь лог стал нормально просматриватся и в 1С. Что были за записи и че в них сидело разбиратся не стал - заработало и слава Богу...
O-Planet Написал:
-------------------------------------------------------
> А по наблюденимя - это из-за чего вылазит такая
> бяка?
>
> Когда в качестве сервера умудряются использовать
> пень 133 с 64МБ памяти и 98 виндом
Ivnik Написал:
-------------------------------------------------------
> > Все сносить не обязательно - достаточно в
> 1cv7.mlg снести мусорные строки (статистика ведь
> нам нужна!)
> Спасибо, Василий. Я обычно удалял 1cv7.mlg, теперь
> буду использовать твои рекомендации.
> С уважением, Вячеслав.
> Когда в качестве сервера умудряются использовать
> пень 133 с 64МБ памяти и 98 виндом
Значит, на 2-х процессорном с 2 Гигами памяти мне этих строк не увидать?
Расстроили вы меня :( Какая досада...
Был у меня программер, ПОСТОЯННО писал:
ВыбЭлемент=Спр.НайтиПоКоду(Код);
и ВСЕГДА удивлялся почему ВыбЭлемент получается только 1 или 0
Раз я не выдержал, влепил ему мощный подзатыльник - болезнь прошла ;)
Скопипастено отсюда: http://www.forum.mista.ru/topic.php?id=263535&forum=1c ..
запостил Drok
v7: Фича #ЗагрузитьИзФайла
Доброго времени суток! Может никого не удивлю, но хочу поделится одной находкой (как минимум для себя). С 1С уже не первый год, но все-таки был удивлен, что нигде про такую фичу не читал. Суть в следующем, все мы знаем, зачем и для чего нужна такая штука как #ЗагрузитьИзФайла, которая значительно облегчает жизнь при конфигурировании-отладке. Так вот, случайно обнаружил следующую вещь: если мы пишем, например, в модуле формы документа #ЗагрузитьИзФайла ExtTXT\Реализация_Ф.txt, то по идее при открытии формы документа считывание текста файла происходит по следующему пути ...ПапкаБазы\ExtTXT\Реализация_Ф.txt НО, как оказалось, если в папке текущего пользователя (если для пользователя она определена) будет папка ExtTXT, то будет предпринята попытка считат текст файла оттуда, т.е. по следующему пути... ПапкаБазы\ПапкаПользователя\ExtTXT\Реализация_Ф.txt ПРИЧЕМ, если такого файла там найдено не будет, то файл будет читаться по пути ПапкаБазы\ExtTXT\Реализация_Ф.txt. Собственно и все...
Одно из применений этой фиче следующее: если в рабочей конфигурации активно используются внешнии модули, то прог, имея у себя в папке пользователя копию папки с внешними файлами модулей, может в рабочей базе отлаживать и менять код никому не мешая (конечно, если это не злой прог :).
После "ВыполнитьЗапрос" я обычно пользуюсь СНД, СКД, ДО и КО. Иногда перед всем этим пишу, что надо использовать субконто при расчете итогов. А вот такие супер функции, как СНДР или СНДРС - оно о чем?
а я натыкалась на конфигурацию где при запуске системы была всего одна команда,именно загрузитьизфайла,причем при каждом запуске,естесно будь то конфигуратор,отладчик,или предприятие, это был разный файл,который переписывался и переименовывался всякий раз... а функции вызывались угадайте откуда!!!
клиент плакал и бился в истерике,потому как в отчетах сплошь 999999,а формат-как оказалось...ищи иглу...и как вснгда все же нужно было вчера срочно!
O-Planet Написал:
-------------------------------------------------------
> А скажите ка мне... Вот, бухитоги...
>
> После "ВыполнитьЗапрос" я обычно пользуюсь СНД,
> СКД, ДО и КО. Иногда перед всем этим пишу, что
> надо использовать субконто при расчете итогов. А
> вот такие супер функции, как СНДР или СНДРС - оно
> о чем?
>
to (sashulyT): если я правильно поняла и чем вы, эта особенность описана во многих источниках, называется "потеря точности при передаче через OLE Automation параметров числового типа" ...
natalijnnn Написал:
-------------------------------------------------------
> "потеря точности при передаче через OLE Automation параметров числового типа" ...
ИМХО это связано с преобразованием из двоично-десятичного формата хранения числа в двоичный и обратно.
Оно самое.
Не знаю как там с копирайтами, так и не поняла, что за сайт но выдержка:
"Данное явление связано с тем, что числовые значения в системе 1С:Предприятие представляются в десятичной форме с фиксированной точкой, что обеспечивает лучшую точность при вычислениях в экономических задачах. В то же время при передаче числовых значений через механизмы OLE Automation , эти значения преобразуются в двоичную форму с плавающей точкой. А в двоичной форме с плавающей точкой не любое десятичное число может быть представлено абсолютно точно. "
> А в двоичной форме с плавающей точкой не любое десятичное число может быть представлено абсолютно точно.
Точнее, почти никакое. Вывод: надо пользоваться округлением при приеме данных, хотя бы до 3 знаков. Я когда с с++ работал и с типом float, всегда определял некую дельту, чтобы сравнивать числа. Особенно меня убивало, когда пол дня ищешь, почему не срабатывает условие:
float a;
...
a=0.0;
...
if(a==0.0) ...
, а потом оказывается, что там в "a" и не ноль вовсе, а 0.000008453...
Наука против Шаманов или Я брожу в темноте... Обнаружилась интересная фишка (для кого-то м.б. это очевидно, но - не для меня...)
..
Суть: применение и срабатывание в запросах конструкции
Условие (НЕ(Элемент в СписокЗначений))
..
Пример:
несущественное опускаем...
Типовая ТиС, DBF, СЗ - это список значений
..
Вариант1.
|Контрагент = Документ.ПКО.Контрагент;
|Условие(НЕ(Контрагент в СЗ));
РАБОТАЕТ УСПЕШНО.
..
Вариант2.
|Контрагент = Документ.ПКО.Контрагент,Документ.СтрокаВыпискиПриход.Контрагент;
|Условие(НЕ(Контрагент в СЗ));
НИФИГА НЕ РАБОТАЕТ! ЗАПРОС ВОЗВРАЩАЕТСЯ ПУСТОЙ.
..
Вариант3. внимание - засада!
|Контрагент = Документ.ПКО.Контрагент.ТекущийЭлемент,Документ.СтрокаВыпискиПриход.Контрагент.ТекущийЭлемент;
|Условие(НЕ(Контрагент в СЗ));
РАБОТАЕТ УСПЕШНО.
..
А теперь в нашей что-где-когде - вопрос!!!
В чем разница, где засада, почему работает/не работает???
ХЕЗ...
МБ в в.1: используется одна переменная - значение из одного места Ж:-), в.2: одна переменная, значения из разных мест, в.3: одна переменная, значения из разных мест, но .ТекущийЭлемент позиционирует переменную на конкретный элемент справочника...
А не пробовал в в.2 в СЗ добавлять не элементы, а элементы по текущему представлению (типа если наименование, то наименования, если код, то коды...).
Сhe Burashka Написал:
-------------------------------------------------------
> А теперь в нашей что-где-когде - вопрос!!!
> В чем разница, где засада, почему работает/не
> работает???
>
Проверено на ДБФ версии - вариант 2 работает.
Добавь "несущественные" детали или выложи отчет, где это не работает.
Тестовый пример, демонстрирующий бяку (специально для Poppy)
исходные условия
1. ТИС 933 или любой более свежий релиз, главное чтобы в процедуре ГМ
Функция глФильтрПоСправочнику(ПолеЕФ,ИмяПоляЕФ... (в районе 13300 строки) блок операторов выглядел так (+30 строк примерно)
Код
Если ЕстьМФ = 1 Тогда // есть множественный фильтр по позициям справочника
Если ТипМФ=1 Тогда // принадлежит списку
ТекстЗапроса = ТекстЗапроса+"Условие ("+ИмяПеремЗапроса+" в "+ИмяПоляМФ+");";
Иначе
ТекстЗапроса = ТекстЗапроса+"Условие (НЕ("+ИмяПеремЗапроса+" в "+ИмяПоляМФ+"));";
КонецЕсли;
КонецЕсли;
Показать полностью
2. ядро 26 у меня
3. запускаем файл-обработку, которую берем отсюда
http://infostart.ru/file.php?0,file=309 - это простой запрос по документам оплаты за период (желательно взять такой период чтобы были и ПКО и выписки приход)
4. задаем период, МФ = пустой. Формируем, вываливается ТЗ - запоминаем первого клиента а ТЗ
5. Устанавливаем МФ "по покупателям" "все кроме" покупателя из п.4. Формируем. Должна вывалиться таблица оплат без этого покупателя. У меня вываливается пустая.
...
где я косячу? или где косяк в алгоритме м.б у меня?
жду сводок информбюро
Кстати, в продолжение темы Опланета про субконто...
Имея ТЗ вида
ТЗ.НоваяКолонка("Контрагент");
ТЗ.НоваяКолонка("Договор" );
ТЗ.НоваяКолонка("КредДокумент");
где колонки типизированы как АГРЕГАТНЫЕ ОБЪЕКТЫ
при наличии в базе одинаковых наименований улиентов и/или договоров (что сплошь и рядом - Основной договор) - пользуясь ТЗ.Сортировать - нет возможности получить верную сортировку _по алфафиту_ Контрагент-Договор с соблюдением иерархии "подчиненности" Контрагент-Договор...
подробные беседы на эту тему http://www.kuban.ru/forum_new/forum9/files/290092.html
Оба-на!
Глючок в стандартной ЗиК.
Процедура ПриЗаписи()
...............................................................
ГодДатыРождения=ДатаГод(ДатаРождения);
Если ГодДатыРождения>2000 Тогда
ДатаРожденияСотрудника=Формат(ДатаРождения,"ДДДММГГГГ");
Предупреждение("Не верно указана дата рождения сотрудника: "+РазделительСтрок+ДатаРожденияСотрудника,10);
СтатусВозврата(0); Возврат;
КонецЕсли;
Если РабочаяДата соответствует 21 веку, для года меньше 1948
ДатаГод возвращает 2047 (например) и фиг запишешь.
При установке рабочей даты в 1999 год возвращает как положено 1947
(Отмечу, что ввод с клавиатуры или через выпадающий календарь на результат не влияет)
А в общем, получается, что это глюк функции ДатаГод
poppy Написал:
-------------------------------------------------------
> Бяка! Так точно работать не будет. Это известно
> даже начинающему 1С-программисту...
Не то я имел в виду:
Вариант2.
|Контрагент = Документ.ПКО.Контрагент.Наименование,Документ.СтрокаВыпискиПриход.Контрагент.Наименование;
|Условие(НЕ(Контрагент в СЗ));
В СЗ - строки с наименованиями контров.
Вот интересно, будет работать иль нет...
LiS Написал:
-------------------------------------------------------
> В СЗ - строки с наименованиями контров.
> Вот интересно, будет работать иль нет...
Накладывать условие на наименование контрагентов - не для этого случая.
Для этого лучше использовать код или полный код (в зависимости от уникальности). Но ИМХО такой способ считается дурным тоном.
Сhe Burashka Написал:
-------------------------------------------------------
> Смотри в параметрах - установка "год начала
> столетия"....?
Ха! Действительно, никогда не обращал внимания на этот параметр.
Забавно, что по умолчанию стоит 1947, типа кто старше - свободны, столько не живут ;)
Штатная универсальная выгрузка/загрузка в формате XML
При загрузке схемы выдает такую ошибку:
Если гТабСхемыЗагрузки.ПолучитьЗначение(1, "Иден") = "Данные" Тогда
{C:\1C_DATA\487\1SBDEMO\EXTFORMS\MCEXP.ERT(1382)}: Номер за пределами значения!
Ответил ТакВотЖе: Нужно грохнуть четвёртый парсер и установить третий. Тогда обработка заработает.
regsvr32 /u msxml4.dll
regsvr32 msxml3.dll
если при загрузке данных из предыдущего топика ругается типа "в группе д.б хотя бы один 'element'" - проверяйте выгружаемые значения на наличие "нечитаемых" символов в строковых реквизитах
К предыдущему, тестанул на скорость, ОСВ по счету
5300 строчек:
с сохранением стилей/ без сохранения стилей - 22/11 секунд.
Поскольку ей по барабану, сколько строчек, для
53 тыс. строк должно получиться соотвественно
220/110 секунд, т.е. меньше 4 минут (!)
(Атлон 64 3000+, 1.99 Гц, ОЗУ 512 МБ)
Тоже тестанул на скорость...
Ведомость по партиям, 45000 строк (по счетчику ячеек), порядка 26000 чтрок по счетчику строк вывода (много объединенияй). За 15 минут, было орработано примерно 1/6...
Застрелись! http://infostart.ru/file.php?0,file=318 Разумное использование доп.возможностей - приветствуются...
Отчет по партиям, 18600 строк (по счетчику приведенного тобой ковертора) - чуть больше 30 минут... так что - стреляйтесь.