<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Подробнее про ТаблицаЗначений.Сортировать() …
Плохо что нет возможности добавлять в блоги файлы, можно было бы демонстрировать… Может кидать файлы в какой-нибудь файлообменник?
КонтФормыДокумента.НоваяСтрока — решено в ВК 1С++ и ФормЕкс — достаточно их просто загрузить, и эта фича уже работает, чем и пользуюсь уже давно, порядка 6 лет 🙂
Если открыть отчеты—>Регламентированные.
Затем зайти в Сервис—>Параметры—>Интерфейс и там поменять шрифт, размер шрифта
то 1С выдаст ошибку и закроется
Чет поздновато вы баги семерочные начали собрирать. Они все уже давно изжеваны.
Просто к концу года должна выйти 28 платформа, по статистики. А в январе-феврале 29
(6)Не выйдет.
я фигею… а что, ПРИ СОРТИРОВКЕ изменяется количество строк…? а мужики-то и не знают! Побегу расскажу…
и не баг и не фича, а так, наблюдение…
а=а ;
не вызовет исключительной ситуации…
>-некорректно работает функция Сортировать()
Если после сортировки ТЗ применить метод КоличествоСтрок(), результат будет такой же, как если бы сортировки не было.
А каким он должен быть? Ты же не сворачиваешь ТЗ…
(4) Есть такое дело. Не часто, но вываливается.
(9) А вот сейчас проверю… Самому интересно стало.
(9) Че, а вот так не пробовал 🙂 ?
а=а/0;
2 бага, с которыми сталкиваюсь постоянно:
1. Бухучет + УРИБ: Меняем конфигурацию в ЦИБ, затрагивая план счетов. После получения новой конфигурации в ПИБ запускается пересчет итогов, после которого получаем жутко кривые бухитоги. Лечится удалением индексов и запуском пересчета итогов вручную.
2. Синтаксический контроль для внешнего отчета после «Сохранить как» ссылается на старый файл.
Что касается количества строк в ТЗ, догадываюсь, что глючит не получение количества, а его изменение. Хотелось бы узнать подробности от автора, самому проверять лень.
+ к (13)
Блин, и я ошибку впилял, надо
с = 5/0;
Упал, читая первый пример. Писал явный ламер и нуб. Вот так все работает:
Показать полностью
(17) в статье собраны баги, которые можно воспроизвести только обкурившись (это же надо догадаться искать значение в конкретной строке и конкретной клолонке), баги, которые уже давно устранили, баги, которые на самом деле фичи, а также «дыры», которые являются следствием кривых рук админа.
Столкнулся с таким фактом (может так и должно быть, хотя не понятно, почему). Потребовалась служебная обработка, к-я должна была запускаться только из форм документов. Поскольку никакого диалога не планировалось, на форму обработки не положил ни одного элемента (ни кнопок, ни текста и т.п.). ОткрытьФорму() не сработало. Попробовал запустить «на прямую» — нулевой результат. Процедура ПриОткрытии() срабатывает, если есть хотя-бы один элемент диалога.
+ (20) Уточнение. Не открывается не только форма внешней обработки, но и встроенной в конфигурацию. И не только программно, но и напрямую (через «Файл» — «Открыть» для внешней, или через «Операции» — «Обработки» для встроенной).
Лажа какая-то.
Максимальное количество группиповок = 5.
С чего бы это? Нет такого ограничения, поэтому и в документации по языку — ни слова.
Функция Формат()
Формат(1.2, «Ч.0») = 1.2
Формат(’12/01/2002′, «ДДДММММГГ») = «12.01.02»
Форматные строки написаны с ошибками, поэтому результат вполне предсказуемый. При чем здесь баги платформы?
Вообще, да. Больше некоторого числа группировок семерка не позволяет делать запрос. Вроде, после 5-и, действительно. Поэтому в ТиС на всех отчетах стоит такое ограничение.
А вот у меня реально несколько раз получался странный бак, то внешний отчет ругался на попытку выполнить метод ИсходнаяТаблица(), хотя и таблица присутствовала, и ошибок никаких не было. Странно, что оно работало сперва, а через какое-то время слетало. Восстанавливалось удалением таблицы и созданием новой, абсолютно такой же.
(23)А до этого было проведение документа?
потеря контекста скорее всего.
У одного из клиентов была следующая проблема на ТиС типовой. Открывался справочник «Номенклатура» из него далее форма любого товара в нем кнопка справочники — Цены. Далее это все оставлялось БЕЗ ДВИЖЕНИЯ МЫШИ ИЛИ КЛАВИАТУРЫ. Через несколько минут цены начинали сами собой изменяться, причем интервалы разные, а через какое-то время опять возвращались к исходным. Причем в это время мог никто не работать. Мне сняли это на сотовый. Проблема наверное решилась (точно не могу сказать сейчас с ним не работаю) после исправления модуля формы списка справочника «Цены»: При октрытии, Владельца сразу в переменную и потом используем именно ее, а создание «таблицы расчетных цен» в процедуру «СформироватьТаблицуРасчЦен()». Такое ощущение было, что все время менялся владелец справочника… Повторюсь одна копия базы открыта одним пользователем через терминал, и 100% никто по удаленке не прикалывается…
Баг-нибаг.
В любой версии платформы нельзя получить перечень (список, выборку) групп из справочника запросом (ТОЛЬКО ГРУПП и ИМЕННО ЗАПРОСОМ).
(26)
Показать полностью
.
устроит?
(23) подтверждаю… и на данный момент есть такой отчет…
(25) стопудово шаловливые ручки или алгоритмобяки
(20) есть такое, но это не баг, а фича — проге некуда спозиционировать фокус… если на форме нет ни одного эл.управления — нафига ее открывать…
к 31
Просто кусок кода выносят иногда во внешнюю обработку и в ПриОткрытии() выполняют необходимое. Реквизиты на форме удаляют (я вот думал размер файла уменьшу). Сейчас оставлляю на форме кнопку «Закрыть».
(31) <Сейчас оставляю на форме кнопку «Закрыть»
Достаточно элемента «Текст», без заголовка и идентификатора.
(31) <кусок кода выносят иногда во внешнюю обработку и в ПриОткрытии() выполняют необходимое
Получается, что из внешней обработки можно сделать «хранилище» процедур. Можно ли как-то это использовать?
(33) Хранилище процедур можно сделать в дополнительном глобальном модуле или внескольких модулях (что с успехом использую) — кури Формекс от Альфа.
(33),(34) Пусть человек сразу к хорошему привыкает! Кури 1с++http://www.1cpp.ru/ и используй свои классы.
(23)
> Вообще, да. Больше некоторого числа группировок семерка не позволяет
> делать запрос. Вроде, после 5-и, действительно. Поэтому в ТиС на всех
> отчетах стоит такое ограничение.
Оооо, блин, чЮдо-прогаммер.
Ограничения в отчетах ТиС не связаны с ограничениями платформы и(или) объекта «Запрос».
http://infostart.ru/projects/1154/
Смторим тут
В отчете можно использовать девять группировок одновременно, и это явно не предел.
(36) Ну значит, сейчас можно. Я помню точно, что пару раз вылетало сообщение, что в запросе больше пяти группировок…
(37)
В отчетах ТиС и сейчас вылетает такое сообщение:
Показать полностью
Это особенность конкретных отчетов конкретной (хотя и типовой) конфигурации… 🙂
Почему об этом ограничении должно быть сказано в документации по языку?
(38) Срезала чЮдо ;))
Это шоб не обзывался.
А я тоже всю жизнь ограничения ставил и сильно от этого страдал, хоть и не догадывался… :(((((((
Ладно! На затравку — супер глюк, о котором почему-то ни кто ни где не пишет…
Сколько раз замечал, чо если конкретно загрузить семерку чем-то вроже загрузки или восстановления данных, переиндексировкой, пересчетом итогов или регистров, но в конфигураторе, то имеет место следующее явление. Если в процессе этого действа просто увести мышь хотя бы на кнопку Пуск (о хранителях экрана, Alt+Tab я даже не говорю), то семерка подвисает навечно! Возможно, прослеживается не на всех компах, а с некоторым дефицитом памяти.
А что ни кто не спит-то? 0_о
(41) Ты сам почти ответил на свой вопросс:
1. Чем больше база тем больше мозгов для подобных действий.
2. На хрюшке, а особенно хомке — это сплошь и рядом. У хомки диспетчер памяти ни в дугу, ни в красную армию. На сервере 2003 ни разу подобного не замечал даже на более слабом компе.
Вывод — неча на 1С кивать, если железо — дерьмо.
(41)Подвисает только на компьютерах с процессорами с «гипертрейдингом», так кажется это называется. Т.е. процессор с эмуляцией двухпроцессорности.
И вроде даже не подвисает навечно, а просто оооочень медленно работает.
Решается проблема отключением «гипертрейдинга» в биосе.
(43) <<На сервере 2003 ни разу подобного не замечал даже на более слабом компе — а вот у меня подвисает, ну или, как говорит (44) — «оооочень медленно работает», что делать-то? Нервно покуривать? 🙂
В 7.7 есть еще такой глюк: когда пишешь Сообщить(«текст»+переменная) — то все работает, а когда Сообщить(переменная) — не выводится в табло и все тут! пользуюсь для быстрой проверки работы модуля. Такой
(43)(44)(45) «Подвисает» на любом компе и на любой ОС.
Никакое это не подвисание, просто перестает обновляться экран. Никакого замедления работы при этом нет.
Ничего в этом страшного нет, просто малоприятно.
Чтобы обновлялась хотя бы строка состояния во время выполнения тяжелого задания, можно установить режим совместимости с Windows 2000.
+(46) такой глюк происходит не всегда, но он есть и как-то я потратила часа 4 на то чтобы пнять что не так 🙂
Проблема большая очень если файл регистра в опер учете достигает объема 1,2 Gb тогда перевод точки актуальности из месяца в месяц происходит очень долго притом что чем больше месяцев за раз пытаешся перенести то больше приходится ждать если первый месяц проходит за 7 минут то 2 уже за 15 и т.д. в геометрической прогрессий.
на 46
Из описания процедуры Сообщить() видно, что как параметр передается строковое выражение, поэтому надо переменную (не тип «Строка») преобразовать в тип «строка». Например «» + переменная или Строка(переменная). Так что это не баг и не глюк.
(47)Речь не об этом, по крайней мере я не об этом. Эта проблема решаетсяhttp://infostart.ru/profile/1329/projects/798/
А в случае (44) именно «подвисает».
(46) Дык конструкцией Сообщить(«текст»+переменная) ты явно указываешь, что «переменная» должна преобразоватся к текстовому виду. Без Сообщить(» «+переменная), Например Сообщить(переменная), 1С-ка почему-то не может «сообразить» что ей делать с типом переменной и какой он у нее….
(47)+5
(51) Выйдет Абадонна с больницы — попрошу, чтобы восстановил приблуду по ссылке. Очень часто выручала в подобных ситуациях.
(25)
Было открыто две формы справочника номенклатуры в них спозиционированы разные товары.
Окошко с ценами может быть только одно — вот оно и переключалось между ценами этих товаров.
(50) я не написала, но переменная заранее либо число, либо строка. Но действительно понаблюдаю, может и я накосячила 🙂 но в том случае когда 4 часа потратила было Строка(переменная), исправила на Строка(«»+переменная) и все заработало…это точно, я проверяла 0_0
(27) Меня — нет. В выборке не будут Группы Без Элементов….
Так что низачОт.
(47), (51), (53) — Спасибо!
Вот, очередной [:]||||||||||||||||[:] от Рупора Абсурда
Процедура Сформировать()
тз = СоздатьОбъект(«ТаблицаЗначений»);
тз.НоваяКолонка(«Тест»);
Для Номер=1 По 10 Цикл
тз.НоваяСтрока();
тз.Тест = Формат(Номер, «ЧП»);
КонецЦикла;
тз.Сортировать(«Тест»);
тз.КоличествоСтрок(8);
тз.КоличествоСтрок(4);
тз.КоличествоСтрок(2);
тз.КоличествоСтрок(1);
тз.ВыбратьСтроку();
КонецПроцедуры
Счас попробую пройтись по багам с объяснениями:
1. Сортировка и КоличествоСтрок():
Читаем документацию:
КоличествоСтрок(<Колич>)
Назначение:
Устанавливает/возвращает количество строк в таблице значений.
Параметры:
<Колич> — необязательный параметр. Новое количество строк в таблице значений.
Заметьте, НИГДЕ не сказано, оставшиеся строки начинаются с 1-й строки. Это лишь ожидаемое поведение, ожидаемое, но не прописанное.
А теперь объяснение: Если сделать лья ТЗ ЗначениеВСтрокуВнутр, и посмотреть на результат, то в нем можно обнаружить что во-первых, ТЗ выгрузится поколоночно, а не построчно, во-вторых, там присутствует колонка с нумерацией строк, при чем для ТЗ после Сортировать() они идут не по порядку. Логично предположить, что в памяти ТЗ хранится именно так же: массив колонок+ колонку с индексом. Сортировка не меняет физического порядка строк, а меняет только индексы (понятно, так быстрее). и соответственно, уменьшение кол-ва строк делается простым убиранием лишних элементов из массивов именно в физическом порядке. Вот оттуда и этот глюк.
По поводу формата: с числом действительно глюк. А с датой — опять-таки домыслы. Если прочитать документацию :), то обнаружим, что формата ДДММММГГ попросту нет! Есть ДДММММГГГГ, есть ДДММГГГГ, но нет ни ДДММММГГ, ни указания что части ММ/ММММ и ГГ/ГГГГ можно использовать произвольно (мне бы, к примеру подошел бы еще формат ГГГГ-ММ-ДД, но я ж не возмущаюсь что так не выдает!). А для неясного формата 1Ска выдает результат «как есть». не удивлюсь, что если установить режим показа дат «4 цифры года», то ДДММММГГ выдаст 12.01.2002 :).
странно, что никто не написал о глюке отладчика 1С.
Если запущен отладчик, то нельзя запустить другую базу 1С в режиме предприятия — висяк получается с ней.
Еще глюкаво работает с ОЛЕ-сессией. Например, если открываешь какую-нить 1Сину ч/з ОЛЕ, а в ней выскакивает модальное окно (например, не рассчитаны итоги и пр.), то 1С виснет. Приходится срубать оба процесса диспетчером задач.
Ветка длинная, оказывается, про формат оказывается уже сказали :).
По поводу а=а/0:
Если перед это строкой вставить а=1 — то будет вполне ожидаемая ошибка :). Суть в том, что при выполнении а=а/0 «самой по себе» в А в момент выполнения деления содержится пустое значение (ТипЗначения=0). Согласно документации, выполнение выражения определяется первым типом его операнда. Т.е. выражение должно будет обрабатываться как выражение «пустого типа». Работа с пустым типом в доке не описано, но вероятно действует правило, что «любое выражение пустого типа дает пустой тип» (в этом можно убедиться, выполнив что-то вроде ПустоеЗначение()+123). Так что тут скорее не глюк, а «неопределенное поведение».
(61) Очень даже логично. Плюсик за красивую логику.
(17), (18) иhttp://www.klerk.ru/soft/1c/?1069
А это между прочим действительно глюк.
Читаем доку:
НайтиЗначение(<Знач>,<Строка>,<Колонка>)
…
Параметры:
<Знач> — значение для поиска.
<Строка> — идентификатор переменной, куда возвращается номер найденной строки. Если при вызове метода передать в этот параметр номер строки, то поиск будет осуществляться только по указанной строке.
<Колонка> — … Если при вызове метода передать в этот параметр номер или идентификатор колонки, то поиск будет осуществляться только по указанной колонке
Что с того, что мы передали и номер строки, и идентификатор колонки? Должен быть поиск в указанной (строке,колонке), т.е. в одиночной ячейке! И т.к. значения нет — вернуть 0!
Ну а для тех кто говорит, что таки низзя задавать и то и то, предлагаю выполнить в том же примере
Сообщить(ТЗ .НайтиЗначение(1 ,1, 0 )); — тут явно поиск по колонкам в 1-й строке, но почему-то возвращает 1 (а должен 0).
И даже более того:
Показать полностью
получим КК=2, т.е. вполне себе находит, в нужной колонке, тока не в той строке.
И чего интересно (18) автора нубом обозвал?
Но конечно да, там дальше идут вещи которые явно в области администрирования лежат, и к самой 1Ске прямого отношения не имеют.
По поводу макс. кол-ва группировок: у меня есть отчет, в котором фильтрация/группировка по куче признаков товара, самих признаков 5+собственно товар, +еще сколько-то вышестоящих группировок, + группировка по документу движения. С полным набором включенных группировок тестировалось, и работает. Так что на счет макс. количество группировок — деза, если оно и есть — то достаточно большое, чтобы этого ограничения не ощущать. А макс. значение которое в некоторых отчетах стоит — это действительно связано только с отчетами. Это отчеты, в которых состав и кол-во группировок меняются; в самой таблице отчета для группировок заданы секции, допустим, «Строка1″,»Строка2″,…,»Строка5». Вывод секции сделан наподобие Таб.ВывестиСекцию(«Строка»+номерГруппировки). Естественно, в таком случае НомерГруппировки=6 вызовет ошибку — такой секции попросту нет. Вот для того и поставили ограничения :).
(41) Мож таки не глюк, а «необновление»? Этим именно ХР и иже с ним грешат. Если включить режим совместимости с 2000, то тогда хоть в статусной строке что-то видно…
некорректно работает функция Сортировать()
А каким образом сортировка (перестановка по определенному порядку) строк может повлиять на их количество? Или я чего то недопонимаю?
про группы справочника запросом
Только что проверил запрос
«род = Справочник.Контрагенты.Родитель;Группировка род;»
Все работает 🙂 (27й релиз, SQL).
Кстати, вот такой запрос
» //{{ЗАПРОС(ККК)
|ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент;
|Код = Справочник.Контрагенты.Родитель.Код;
|род = Справочник.Контрагенты.Родитель;
|Группировка Код;
|»
Почему-то группирует не по кодам родителей, а по кодам самих элементов :).
(66) Хоть и говорилось, но всеж повторю.
КоличествоСтрок(КС) — оно УСТАНАВЛИВАЕТ количество строк. Соответственно глюк такой: создаем таблицу, добавляем строки, сортируем так, чтобы новый порядок отличался от начального, потом устанавливает количество строк < текущего к-ва. Строки удаляются не с конца, а «с конца в старом порядке».
(67) См. (56)… НизачОт..
(60) <Еще глюкаво работает с ОЛЕ-сессией. Например, если открываешь какую-нить 1Сину ч/з ОЛЕ, а в ней выскакивает модальное окно (например, не рассчитаны итоги и пр.), то 1С виснет. Приходится срубать оба процесса диспетчером задач. >
При открытии окна (модального или не модального) в ОЛЕ, база не виснет, просто на ОЛЕ-базе НЕТ ВИДИМОГО ОКНА ВИНДЫ, решается след. образом:
1). попробовать пощелкать Alt+Tab
2). вытянуть окно наверх в диспетчере задач
(70) Гораздо проще открыть базу запущенную по Оле сторонней приблудой и посмотреть что там происходит в натуре…
(47) >> Никакое это не подвисание, просто перестает обновляться экран.
Это я тоже видел. В данном случае — речь именно о подвисании. Пример. Жду 2 часа, не выдерживаю, использую три кнопки. В результате, повторный процесс с нетроганием мыши и отключенным хранителем происходит 30 минут.
(72) Ты не пишешь, какая тяжелая работа в этот момент выполнялась.
Через 2 часа подвисание только тремя пальцами и можно исправить (гм…).
Возможно, за эти два часа большая часть работы уже проделалась и повторный заход только успешно завершил начатое дело.
Речь идет о восстановлении из архива выгруженных данных. При повторе я их все снес, чтобы не путались.
(74) Сегодняшней ночью я именно этим и занимался в разных позах.
Никакой разницы по времени не заметил.
Может у тебя доки были с пустой датой или ТА на начало 23 века стояла.
(23) тотже глюк решился переносом команды создания объекта таблица в начало процедуры
«Если после сортировки ТЗ применить метод КоличествоСтрок(), результат будет такой же, как если бы сортировки не было.
»
Честно, не понимаю как сортировка таблицы может привести к изменению количества строк?
«4) Невозможно сохранить большую таблицу в формате Excel. Программа зависает (или долго думает). »
Уже есть замечательные разработки ЧеБурашки и в теме 1C + Excel [MXL to XLS] от 10.03.2008 ака Ужас бухгалтера !
Причём вторая, в отличие от первой, более корректно сохраняет формат 1С-ки и позволяет в бесплатной версии задать имя файла 😉
Не в укор ЧеБурашке. А плюсы обоим!
(77) 2 Fisherru
Это нужно читать между строк.
А пояснения в (58) и (59)
Сорри.
Спешил домой и не прочитал всю ветку…
Ошибки найденные мной в 1С Предприятии 7.7.
1. Некорректный перенос точки актуальности на конец дня в котором нет документов.
Ошибка проявляется при попытке установить точку актуальности на конец дня в котором нет ни одного документа. Некорректность заключается в том, что время ТА становится равным 26:01. Если у вас релиз 21, то после этого документы перестают проводиться, пока вручную не переместить ТА на какой-нибудь документ. В 23 релизе всё проводится нормально и 26 часов в сутках уже особо не мешают. Хотя, всё равно, как-то не по себе.
Пример:
Показать полностью
2. Не работает обратный порядок выборки элементов справочника по реквизиту с учётом иерархии.
Проверено в 21 и 23 релизе.
Пример:
Показать полностью
Стоит только поменять
Партия.ОбратныйПорядок(1);
на
Партия.ОбратныйПорядок(0);
как в выборке появляются элементы.
3. Некорректно работает запрос, если путь в запросе длиннее одного родителя.
Следующие строки запроса дают одинаковый результат:
Показать полностью
Даже если вписать .Родитель десять раз, это будет считаться как один. Проверено на 21 и 23 релизе на DBF базе.
В предыдущем посте проглотилось пару строк «КонецПроцедуры» в коде. Вобщем, исходник с картинками тут:http://dima-gsv.pisem.net/1cv77errors.html
Попробуйте в форме списка справочнике 7.7 создать кнопочку с перепозиционированием текущего элемента (например, по введенному в диалоге коду или наименованию)
а затем нажать ее находясь в режиме редактирования текущего элемента «в списке». На «боевой» базе экспериментировать не советую!!!
(77) Речь идет, скорее всего о том, метод КоличествоСтрок() выдает то же количество строк что и до сортировки, однако, таблица значений после этого становится неотсортированной. Так?
+ (83) прочитал все комменты.
(56) (27) (26) можно сделать не с помощью запроса, но с пом. метода ВыбратьЭлемен
Давайте все же про текущий 27 релиз писать
релиз 27
в диалоге формы реквизит — справочник (форма списка справочника с закладками)
если форма открыта модально, то при выборе элемента справочника — открывается форма списка справочника БЕЗ закладок,
а если НЕ модально — С закладками
Если после сортировки ТЗ применить метод КоличествоСтрок(), результат будет такой же, как если бы сортировки не было.»
Чел очевидно имел в виду Функцию Свернуть(), но если в ней указать правильно все параметры то количество строк
в ТЗ уменьшается.
22. «Лажа какая-то.
Максимальное количество группиповок = 5.
С чего бы это? Нет такого ограничения, поэтому и в документации по языку — ни слова.»
При выполнении запроса стоится индекс. Его длина = Длина поля группировки 1 + Длина поля группировки 2 + Длина поля группировки 3….
Так вот, если длина этого индекса составит больше 255, то в запросе будет ошибка.
(85) про 27-й, так про 27-й…
НЕ ПРОБОВАТЬ ПОВТОРИТЬ НА РАБОЧЕЙ БАЗЕ!!!!!!!
Итак: 1Cv77 дебилд 027, база скульная (довольно большая — МДФ 28 гиг).
Решил удалить в конфигуратере ненужный справочник (простой, как дверь в военкомате — код, наименование и все). При сохранении начала проверять ссылки, когда долго зависла на регистрах — достало конкретно. Прервать естественно не удалось — удалил процесс через медежер задач. После вызова конфигуратора продолжила свое грязное дело, пришлость опять грубо вырубить. Перегрузил комп, захожу в конфигуратор — продолжает, сволочь… Махнул рукой — дал доработать жо конца.
А вот теперь самое интересное: при закрытии конфигуратора жутко матерится, что память не может быть reed. Фиг с тобой! Кое-как позакрывал всплывающие окна с ошибкой. Открытие ЛЮБОЙ базы в конфигураторе и последующее закрытие вызывает ту же ошибку (перегрузка компа — до лампочки).
Полечил переустановкой 1С. Все базы стали нормально открыватся. Почему так — не спрашивайте, сам не знаю. По идее на экзэшный файл не должно было повлиять, но все-таки…
Вывод: кривые ручки и не на такое способны…. Так что неча кивать на глюки платформы.
Все эти баги почти полный отстой по сравнению с тем, что напишу:
В компоненте бух учета 27-го релиза платформы, захожу монопольно для восстановления последовательности. Восстанавливаю последовательность, останавливается на РКО (расходный кассовый ордер). Переношу его в конец дня (в этот день был еще и ПКО), восстанавливаю последовательность еще раз. Опять останавливается на том же РКО, и его позиция (дата и время) не изменилась. Т.е. мои действия с документом не сохранились! Причем это с любым видом документа, если при восстановлении последовательности выпала ошибка при проведении.
90: Нужно провести этот документ вручную.
Причём предварительно придётся на первом доке этого дня установить ТА(через контекстное меню)
Метод НомерДняГода для пустой даты возвращает 2:
НомерДняГода(‘ ‘)=2
(92) Учитывая то, 01.01.1980 г. был вторник, думаю, что НомерДняГода(‘ ‘)=2 вполне нормальный результат. Пустая дата — это же как ‘01.01.80’.
Кстати, НомерДняГода(‘ ‘ + 1) = 3!
Неисправляемые Баги со временем становятся Фичами.
Досадный глюк, который так и не починили: если для числового реквизита в табличной части установлена галочка «неотрицательный», то после выгрузки табличной части в ТЗ, в колонку соответствующую этому реквизиту не удается установить отрицательные значения
Еще один досадный глюк возможность использовать в бухгалтерских запросах списки значений для субконто, и невозможность использовать списки для кор. субконто
А с такой ошибкой никто не встречался? ❓ —
в печатной таблице,
Если
объединить ячейки отметив галочку «По выделенным столбцам» в закладке «Положение» в свойствах ячейки,
ТО
перестает работать поиск по таблице, когда активны объединенные таким образом ячейки, т.е. на них установлен фокус.
ИначеЕсли
ячейки объединить обычным образом — кнопкой «Объединить/Разъединить» —
ТО
поиск работает нормально.
КонецЕсли
п. 1,2 — не согласен что это баг. лечить не нуно
3 — не мешает
4 — вылечено уже
5 — а в снеговике тоже так и че?
По поводу «Режим «Отладчик» и «Конфигуратор»» — конструктивные особенности. не мешает
// не понял на счет сортировки. вот простой пример.. создаем обработку с ТЗ (ид «ТЗ») заливаем..
ТЗ.НоваяКолонка(«Н»);ТЗ.НоваяКолонка(«Н_Знач»,»Число»);
Для Сч=1 по 5 Цикл
ТЗ.НоваяСтрока();
ТЗ.Н=»Элемент № «+Сч;
ТЗ.Н_Знач=Сч;
КонецЦикла;
ТЗ.Сортировать(«-Н»); Сообщить(«= «+ТЗ.КоличествоСтрок());
// ну и где тут изчезает сортировка сортировка? 7.70 027
(80)
|Родитель = Справочник.Товары.Родитель;
|РодительРодителя = Справочник.Товары.Родитель.Родитель;// Родитель = РодительРодителя — это не баг, а так и должно быть.
Я если честно, даже не могу понять назначения вашего примера. Для чего это нужно? Вы собрались сделать выборку и группировку по родителю родителя или что? Как вы себе это представляете?
(99) читайте внимательнее! «Если после сортировки ТЗ применить метод КоличествоСтрок() для уменьшения количества строк…»
означает, что если после сортировки пишем:
ИсхКолво = ТЗ.КоличествоСтрок();
ТЗ.КоличествоСтрок(ИсхКолво-1);
то получаем… ОПА!