22 декабря 2021 г.

Notepad++ поменять местами колонки

 Если массив данных поддается одной логике, то процесс можно автоматизировать.

Задача стояла простая - есть 65К+ строк, "Имя;'номерТелефона;'НомерКарты", нужно представить данные так - "НомерКарты Имя". Это можно сделать при помощи Excel/Calc и прочих табличных программ, но на ПК кроме Notepad++ больше ничего нету. А Notepad++ поддерживает регулярные выражения.

В качестве поля поиска выступит: "(\w+);'(\w+);'(\w+)", т.к. нам известен шаблон, мы т.о. получим массив размерностью в три элемента и заменим его на нужные нам: "\3 \1", вот и все. За 15 сек программа решит задачу:

Данные до

Данные после

Обращаем внимание что "\w" - это не все до следующего разделителя ";", а "слово" с точкой запятой в конце. В моем случае почти на всех строках шаблон был именно такой, если же до точки запятой появится делитель, то схема не сработает.

1СОшибка УНФ не сохраняет начальный экран

Завел себе УНФ и не стал заморачиваться с предварительной настройкой, а просто синхронизировал с БП. Убрал начальную страницу настройки в разделе "Настройка начальной страницы", настроил панели под себя... И какого же было мое удивление, когда перезапустив базу я увидел начальную страницу О_О

Подумал может кэш, т.к. галки "завершить настройку" на странице нету. Оказалось - нет, кэш тут не при чем. Пошел копать дальше. Наткнулся на константу "Дата первого запуска", заполнена не была, установка проблему не решила. Полез разбираться, откуда идет вызов, в итоге нашел ОбщиеМодули.ИнформацияПРиЗапуске.ГлобальныеНастройки(). Здесь как раз идет опрос различных частей и устанавливается признак отображения страницы. Почитав код, нашел это:


Если Настройки.Показывать Тогда
	УстановитьПривилегированныйРежим(Истина);
	ЗаписьРегистра = РегистрыСведений.ПакетыИнформацииПриЗапуске.Получить(Новый Структура("Номер", 0));
	ПакетыСтраниц = ЗаписьРегистра.Состав.Получить();
	УстановитьПривилегированныйРежим(Ложь);
	Если ПакетыСтраниц = Неопределено Тогда
		Настройки.Показывать = Ложь;
	Иначе
		Информация = ПодготовитьПакетыСтраницКВыводу(ПакетыСтраниц, НачалоДня(ТекущаяДатаСеанса()));
		Если Информация.ПодготовленныеПакеты.Количество() = 0
			Или Информация.МинимальныйПриоритет = 100 Тогда
			Настройки.Показывать = Ложь;
		КонецЕсли;
	КонецЕсли;
КонецЕсли;

  

Открыл регистр "Пакеты информации при запуске", там только 1с запись со значением "0", установил отличное и получил значение Настройки.Показывать равным Ложь. Проверил - теперь открывается мой внешний вид.

5 декабря 2021 г.

[Microsoft][ODBC Text Driver] The Microsoft Access database engine could not find

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC Text Driver] The Microsoft Access database engine could not find the object 'FA_BTL_DAILY_REPORT 02_12.decode.CSV'. Make sure the object exists and that you spell its name and the path name correctly. If 'FA_BTL_DAILY_REPORT 02_12.decode.CSV' is not a local object, check your network connection or contact the server administrator.