Size: a a a

2019 October 15

AG

Anton Gorbylev in Bitrix24dev
В результатах будут номер, название, файл
источник

EK

Ekaterina Konyaeva in Bitrix24dev
Anton Gorbylev
Если у вас шаблон договора привязан к компании, то можете сфорировать его через активити "Создание документа CRM" (запустите отдельный БП на компании, там добавьте этот кубик)
спасибо, сейчас попробую
источник

N

Nikita Lukovich in Bitrix24dev
А кто нибудь синхронизировал гугл таблицы с Битрикс 24? Взможно ли передавать из списков информацию в гугл таблицу и как это можно делать?
источник

ИИ

Игорь Исаев in Bitrix24dev
Подскажите пожалуйста как при создании элемента типа списка в поле типа "список"  записать некоторое значение переменной(значение совпадает одному из значений переменной списка) , а не из самого списка?
источник

Т

Танос in Bitrix24dev
Ребят, есть код, который загружает отпуска из 1c в график отсутствий. Пытаюсь понять, как можно запихнуть их в пользовательское поле в список сотрудников. Подскажите, пожалуйста
источник

Т

Танос in Bitrix24dev
<?

//==================== Загрузка отпусков из 1С ====================

// выполняем все действия от админа битрикса
global $USER;
$USER = new CUSer();
$USER->Authorize(1);

function LoadVacations1C($paramDate = ''){

$fileLog = fopen($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/123/log.txt", "a");

// fwrite($fileLog, "Агент LoadVacations1C запущен ".date("d.m.Y H:i:s", time()).PHP_EOL);

CModule::IncludeModule('bizproc');
CModule::IncludeModule('iblock');
CModule::IncludeModule('lists');

// Необходимо отключить кэширование для SOAP. Если этого не сделать, функции веб-сервисов будут работать некорректно
ini_set('soap.wsdl_cache_enabled', 0 );
ini_set('soap.wsdl_cache_ttl', 0);

$client = CLyalyaev::getSOAPClient1C();

//Заполняем массив передаваемых параметров
if ($paramDate == ''){
$paramDate = time();
}

// $paramDateString = ConvertTimeStamp($paramDate); //d.m.Y
$paramDateString = date('d.m.Y', $paramDate);
$paramDateString1C = date("Y-m-d", $paramDate);

$params["Date"] = $paramDateString1C;

// fwrite($fileLog, "Получаем отпуска, начинающиеся ".$paramDateString.PHP_EOL);

//Получаем отсутствия из 1С
try {
// $result = $client->GetPlannedVacations($params);
$result = $client->GetAbsences($params);
}
catch (Exception $e) {
// Если что-то пошло не так, выходим
123::echoStandartErrorMessage($e);
// fwrite($fileLog, "Ошибка при получении данных из 1С".PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";
}

//Обработка результата
$jsResult = $result->return;

try{
if (count($jsResult->ROW) == 0){
123::echoit(123::formatStringForSite('Нет отпусков на '.$paramDateString));
// fwrite($fileLog, "Нет отпусков на эту дату".PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";
}
}
catch (Exception $e) {
123::echoit(123::formatStringForSite('Нет отпусков на '.$paramDateString));
// fwrite($fileLog, "Нет отпусков на эту дату".PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";
}

// Удаление ранее автоматически загруженных отсутсвий на дату
123::deleteIBlockEl(CKLIBlock::getArFilterForIBlockDate("absence", $paramDateString));
// CRLBizproc::deleteDocument(CKLIBlock::getArFilterForIBlockDate("bitrix_auto_vacation", $paramDateString));

foreach ($jsResult->ROW as $el){

// Поиск сотрудника
// * * * Без убирания пробелов сравнения в запросе часто не срабатывают * * *
// $lastName = CLyalyaev::formatStringForSite(explode(' ', $el->FullName)[0]);
$code = 123::formatStringForSite($el->Code);
$arUserID = 123::getArUserIDByField('UF_EMPLOYEE_ID', $code);
// echo CLyalyaev::formatStringForSite($el->Condition).' '.$arAbsenceTypes[trim($el->Condition)].' - ';

$arUserID = CLyalyaev::getArUserIDByField('UF_EMPLOYEE_ID', $code);

foreach ($arUserID as $userID){
CKLIBlock::createIBlockEl("absence", "ABSENCE_TYPE", $userID, $el);

}

}

1234::echoit(CLyalyaev::formatStringForSite('Операция выполнена'));
// fwrite($fileLog, "Отпуска загружены".PHP_EOL);
// fwrite(PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";

}

?>
источник

SK

Sergey Kozhin 🚀 in Bitrix24dev
Nikita Lukovich
А кто нибудь синхронизировал гугл таблицы с Битрикс 24? Взможно ли передавать из списков информацию в гугл таблицу и как это можно делать?
на изменение списка выполнять php код с api google sheets...
источник

N

Nikita Lukovich in Bitrix24dev
Sergey Kozhin 🚀
на изменение списка выполнять php код с api google sheets...
а как подружить Б24 и гугл таблицы? есть какое нибудь готовое решение?
источник

SK

Sergey Kozhin 🚀 in Bitrix24dev
Nikita Lukovich
а как подружить Б24 и гугл таблицы? есть какое нибудь готовое решение?
через программиста php
источник

MM

Maxim Mesilov in Bitrix24dev
1. потратить денег \ времени и напилить самому
2. воспользоваться готовым и заносить им https://www.bitrix24.ru/apps/?app=b24io.googlespreadsheets
3. посмотреть кто ещё может, например альбато
источник

MM

Maxim Mesilov in Bitrix24dev
если это разовое \ не в промышленных объёмах, то делайте сами через их API
источник

AO

Alexander Ostrovsky in Bitrix24dev
Танос
<?

//==================== Загрузка отпусков из 1С ====================

// выполняем все действия от админа битрикса
global $USER;
$USER = new CUSer();
$USER->Authorize(1);

function LoadVacations1C($paramDate = ''){

$fileLog = fopen($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/123/log.txt", "a");

// fwrite($fileLog, "Агент LoadVacations1C запущен ".date("d.m.Y H:i:s", time()).PHP_EOL);

CModule::IncludeModule('bizproc');
CModule::IncludeModule('iblock');
CModule::IncludeModule('lists');

// Необходимо отключить кэширование для SOAP. Если этого не сделать, функции веб-сервисов будут работать некорректно
ini_set('soap.wsdl_cache_enabled', 0 );
ini_set('soap.wsdl_cache_ttl', 0);

$client = CLyalyaev::getSOAPClient1C();

//Заполняем массив передаваемых параметров
if ($paramDate == ''){
$paramDate = time();
}

// $paramDateString = ConvertTimeStamp($paramDate); //d.m.Y
$paramDateString = date('d.m.Y', $paramDate);
$paramDateString1C = date("Y-m-d", $paramDate);

$params["Date"] = $paramDateString1C;

// fwrite($fileLog, "Получаем отпуска, начинающиеся ".$paramDateString.PHP_EOL);

//Получаем отсутствия из 1С
try {
// $result = $client->GetPlannedVacations($params);
$result = $client->GetAbsences($params);
}
catch (Exception $e) {
// Если что-то пошло не так, выходим
123::echoStandartErrorMessage($e);
// fwrite($fileLog, "Ошибка при получении данных из 1С".PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";
}

//Обработка результата
$jsResult = $result->return;

try{
if (count($jsResult->ROW) == 0){
123::echoit(123::formatStringForSite('Нет отпусков на '.$paramDateString));
// fwrite($fileLog, "Нет отпусков на эту дату".PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";
}
}
catch (Exception $e) {
123::echoit(123::formatStringForSite('Нет отпусков на '.$paramDateString));
// fwrite($fileLog, "Нет отпусков на эту дату".PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";
}

// Удаление ранее автоматически загруженных отсутсвий на дату
123::deleteIBlockEl(CKLIBlock::getArFilterForIBlockDate("absence", $paramDateString));
// CRLBizproc::deleteDocument(CKLIBlock::getArFilterForIBlockDate("bitrix_auto_vacation", $paramDateString));

foreach ($jsResult->ROW as $el){

// Поиск сотрудника
// * * * Без убирания пробелов сравнения в запросе часто не срабатывают * * *
// $lastName = CLyalyaev::formatStringForSite(explode(' ', $el->FullName)[0]);
$code = 123::formatStringForSite($el->Code);
$arUserID = 123::getArUserIDByField('UF_EMPLOYEE_ID', $code);
// echo CLyalyaev::formatStringForSite($el->Condition).' '.$arAbsenceTypes[trim($el->Condition)].' - ';

$arUserID = CLyalyaev::getArUserIDByField('UF_EMPLOYEE_ID', $code);

foreach ($arUserID as $userID){
CKLIBlock::createIBlockEl("absence", "ABSENCE_TYPE", $userID, $el);

}

}

1234::echoit(CLyalyaev::formatStringForSite('Операция выполнена'));
// fwrite($fileLog, "Отпуска загружены".PHP_EOL);
// fwrite(PHP_EOL);
fclose($fileLog);
return "LoadVacations1C();";

}

?>
читатьтвой код - одно удовольствие, понимать - другое.
вопросто в чем?
отпуска в график отсутствий загрузил?
какую именно инфу в профиль пользователя надо загружать?
источник

Т

Танос in Bitrix24dev
Alexander Ostrovsky
читатьтвой код - одно удовольствие, понимать - другое.
вопросто в чем?
отпуска в график отсутствий загрузил?
какую именно инфу в профиль пользователя надо загружать?
Да. Нужно чтобы в пользовательское поле выводилась инфа об отсутствии(до какого числа) и что за отсутствие (в общем также, как и в графике отсутствий, только в списке сотрудников)
источник

AO

Alexander Ostrovsky in Bitrix24dev
Танос
Да. Нужно чтобы в пользовательское поле выводилась инфа об отсутствии(до какого числа) и что за отсутствие (в общем также, как и в графике отсутствий, только в списке сотрудников)
отсутствия - это инфоблоки.
лови события добавления и прописывай эту инфу в профиль.
источник

AN

Andrey Nikolaev in Bitrix24dev
use \Bitrix\Main\CLyalyaev; 

Еба....ться
источник

Т

Танос in Bitrix24dev
Andrey Nikolaev
use \Bitrix\Main\CLyalyaev; 

Еба....ться
Не весь путь
источник

Т

Танос in Bitrix24dev
Alexander Ostrovsky
отсутствия - это инфоблоки.
лови события добавления и прописывай эту инфу в профиль.
Спасибо
источник

Т

Танос in Bitrix24dev
Andrey Nikolaev
use \Bitrix\Main\CLyalyaev; 

Еба....ться
Да и в чем проблема?
источник

Т

Танос in Bitrix24dev
Alexander Ostrovsky
отсутствия - это инфоблоки.
лови события добавления и прописывай эту инфу в профиль.
Я просто думал, можно ли по-другому сделать.
источник

АХ

Андрей Хомишин in Bitrix24dev
Maxim Mesilov
1. потратить денег \ времени и напилить самому
2. воспользоваться готовым и заносить им https://www.bitrix24.ru/apps/?app=b24io.googlespreadsheets
3. посмотреть кто ещё может, например альбато
или не только Альбато есть для таких штук
источник