воскресенье, 31 мая 2020 г.

1С 8.x Где хранится список информационных баз

Список баз хранится в обычном текстовом файле ibases.v8i. Для каждого пользователя 1С создает свой файл, поэтому необходимо знать имя пользователя, пусть это будет User, пути к файлу указаны ниже:

C:\Users\user\AppData\Roaming\1C\1CEStart
Версия 1С 8.1
Win XP:
C:\Documents and Settings\User\Application Data\1C\1Cv81\ibases.v8i
Vista, 7, 8:
C:\Users\User\AppData\Roaming\1C\1Cv81t\ibases.v8i
Версия 1С 8.2, 8.3
Win XP:
C:\Documents and Settings\User\Application Data\1C\1CEStart\ibases.v8i
Vista, 7, 8:

C:\Users\User\AppData\Roaming\1C\1CEStart\ibases.v8i

Windows 10. Показ скрытых папок

Открываю проводник и выбираю в меню позицию Вид, далее Параметры




  • Откроется окно. В котором выбираю вкладку "Вид"
  • В "дополнительных параметрах" убираю галочку в строчке "скрывать защищенные системные файлы"
  • Ниже ставлю отметку на строчке "Скрытые файлы, папки и диски" щелчком левой клавиши мыши.
Появится окно с Предупреждением - выбираю кнопку Да

Все.

вторник, 19 мая 2020 г.

Python 3.7. Установка Anaconda



Скачиваем дистрибутив с официального сайта Anaconda. Необходимо скачать версию с установленным Python 3.7.

Переходим на сайт 


Разрядность (32-бита или 64-бита) зависит от разрядности версии Windows. В моем случае 64-разрядная операционная система.



После скачивания запускаем установочный файл

Anaconda3-2020.02-Windows-x86_64.exe

Дальше следуем инструкциям в установщике

При выборе пользователя. Рекомендуется устанавливать только для текущего пользователя:
Далее нужно выбрать путь установки. Путь к Anaconda должен содержать только латинские символы:


Если на следующем шаге установщик выдает ошибку о том, что пользователь не имеет доступа к записи в указанную папку, то вы можете перезапустить установщик с правами администратора.

На следующем шаге, рекомендуется установить Anaconda в качестве Python, который будет использоваться по умолчанию в системе, а также НЕ добавлять Anaconda в переменную окружения PATH:





Запустить Jupyter Notebook в Windows после установки Anaconda можно двумя способами. 

1 способ: через Anaconda Prompt

В той же папке «Anaconda3», в разделе Программы, есть ярлык Anaconda Prompt. Кликнув на этот ярлык, мы вызовем окно терминала, в котором можно ввести команду «jupyter notebook» и запустить Jupyter Notebook 

2 способ: через Anaconda Navigator

После установки Anaconda в меню Пуск в разделе Программы появится папка “Anaconda3”, в которой есть ярлык Anaconda Navigator
После запуска этого ярлыка перед нами появится окно с выбором приложения. Запустить Jupyter Notebook можно, нажав на кнопку «Launch» на плитке приложения Jupyter Notebook.





четверг, 14 мая 2020 г.

Google sheet (гугл таблицы). Вывод данных в формате JSON с помощью App Script.

Создадим исходные данные. Создадим новую гугл таблицу и введем данные в два столбца:



Откроем редактор скриптов и введем текст функции  doGet ()


//--------------------
//--- function doGet  -  когда пользователь посещает приложение или программа отправляет ему GETз
//--- Справка - https://developers.google.com/apps-script/guides/web?hl=ru
//--- Автор: Andrey Sipelawes
//--- Дата создания: 2020-05-15
//--------------------
function doGet(e){

 // Заменить на URL Вашей таблицы
 var ss = SpreadsheetApp.openByUrl("URL Вашей таблицы");

// sheet - имя листа в таблице, заменить на имя Вашего листа в таблице
 var sheet = ss.getSheetByName("sheet - имя Вашего листа в таблице");
  
 return getUsers(sheet); 
  
}

В моем случае будет:

function doGet(e){

 // Заменить на URL Вашей таблицы
 var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1TO4mbdjVi36wrm7GccEvTn7rqfgwnIZD35i5PQJxWGs/edit?usp=sharing");

// sheet - имя листа в таблице, заменить на имя Вашего листа в таблице
 var sheet = ss.getSheetByName("test");
  
// вызываем нашу функцию по созданию JSON
 return getTest(sheet); 
  
}

Далее создадим функцию по обработке полученных данных и вывод их в формате JSON.


/--------------------
//--- function getTest  -  вывод данных с листа гугл таблицы в формате JSON
//--- Автор: Andrey Sipelawes
//--- Дата создания: 2020-05-15
//--------------------
function getTest(sheet){
  var jo = {};
  var dataArray = [];

// заносим данные с листа test  в массив rows
  var rows = sheet.getRange(2,1,sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
  
  for(var i = 0, l= rows.length; i<l ; i++){
    var dataRow = rows[i];
    var record = {};
    record['id'] = dataRow[0];
    record['name'] = dataRow[1];
    
    dataArray.push(record);
    
  }  
  
  jo.user = dataArray;
  
  var result = JSON.stringify(jo);
  
  return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
  
}  

Опубликуем наше веб приложение 



Проверим







среда, 13 мая 2020 г.

Google sheet (гугл таблицы). Выбор данных из выпадающего списка на отдельном листе.


Есть таблица с данными


Из исходной таблицы будем формировать список товаров, по наименованию, которое будет введено в ячейку A1 Лист4. Для этого в ячейку B2 введем формулу

=QUERY('Лист3'!A:E;"select A,B,C WHERE B = '"&A1&"' ";1)


Google таблицы. Функция QUERY

QUERY

Синтаксис

QUERY(данные; запрос; [заголовки])
  • данные – диапазон ячеек, для которого нужно выполнить запрос.
    • Каждый столбец данных может содержать только логические, числовые (включая типы дата/время) или строковые значения.
    • Если в столбце содержатся данные разных типов, преобладающий тип данных определяет тип всего столбца для целей запросов. Остальные типы данных считаются нулевыми.
  • запрос – запрос на выполнение, записанный на языке запросов API визуализации Google.
    • Значение параметра запрос должно быть заключено в кавычки или представлять собой ссылку на ячейку, содержащую соответствующий текст.
    • На странице https://developers.google.com/chart/interactive/docs/querylanguage можно получить более подробную информацию о языке запросов.
  • заголовки – [ НЕОБЯЗАТЕЛЬНО ] – количество заголовочных строк в верхней части раздела данных. В случае, если параметр опущен или равен -1, его значение вычисляется автоматически в зависимости от содержимого данных.
справка по функции (https://support.google.com/docs/answer/3093343?hl=ru)

С диапазоном ячеек все понятно. Перейдем к запросу.

Синтаксис языка запросов состоит из следующих пунктов. Каждое предложение начинается с одного или двух ключевых слов. Все пункты не являются обязательными. Пункты разделены пробелами. Порядок пунктов должен быть следующим:
пункт
Применение
Выбирает, какие столбцы возвращать и в каком порядке. Если опущено, возвращаются все столбцы таблицы в порядке по умолчанию.
Возвращает только те строки, которые соответствуют условию. Если опущено, возвращаются все строки.
Агрегирует значения по строкам.
Преобразует отдельные значения в столбцах в новые столбцы.
Сортирует строки по значениям в столбцах.
Ограничивает количество возвращаемых строк.
Пропускает указанное количество первых строк.
Устанавливает метки столбцов.
Форматирует значения в определенных столбцах, используя заданные шаблоны форматирования.
Устанавливает дополнительные параметры.
from
from Пункт был исключен из языка.

Справка от Google по языку запросов API находится по ссылке: https://developers.google.com/chart/interactive/docs/querylanguage


Начнем с SELECT, введем в ячейку G2 Лист 1 формулу

=QUERY($A$1:$E$49;"select A";1)


мы вывели данные из диапазона $A$1:$E$49 первый столбец - А

Можно вывести все столбцы 

=QUERY($A$1:$E$49;"select *";1)


Можно ограничить количество строк

=QUERY($A$1:$E$49;"select * limit 5";1)