Списани е задолженности подотчетного лица... Какие есть варианты? задолженность удержали из зарплаты Как правильно удержать задолженность? какими документами
Категория:
1С ERP Управление предприятием 2.0 ЗаписатьДатуJSON() в 1С 8.3: Код 1C v 8.3 Процедура Преобразовани еДатыВДатуJSON() // Пример: 12.08.2023 09:15:29 ТестДата = Дата("20230812091529"); // Вариант записи - "ЛокальнаяДата" // Локальная дата без указани я часового пояса. // // Преобразует дату в "2023-08-12T09:15:29" ДатаJSONСтрока = ЗаписатьДатуJSON(ТестДата, ФорматДатыJSON.ISO, ВариантЗаписиДатыJSON.ЛокальнаяДата); // Вариант записи - "ЛокальнаяДатаСоСмещени ем" // Локальная дата с указани е смещени я относительно всемирного координи рованного времени (UTC). // // Преобразует дату в "2023-08-12T09:15:29+03:00" ДатаJSONСтрока = ЗаписатьДатуJSON(ТестДата, ФорматДатыJSON.ISO, ВариантЗаписиДатыJSON.ЛокальнаяДатаСоСмещени ем); // Вариант записи - "Уни версальнаяДата // Дата в поясе UTC. // // Преобразует дату в "2023-08-12T09:15:29Z" ДатаJSONСтрока = ЗаписатьДатуJSON(ТестДата, ФорматДатыJSON.ISO, ВариантЗаписиДатыJSON.Уни версальнаяДата); //////////////////////// // Для формата: JavaScript, Microsoft, - необходимо использовать вариант записи "Уни версальнаяДата"! // Преобразует дату в "new Date(1691820929)" ДатаJSONСтрока = ЗаписатьДатуJSON(ТестДата, ФорматДатыJSON.JavaScript, ВариантЗаписиДатыJSON.Уни версальнаяДата); // Преобразует дату в "/Date(1691820929)/" ДатаJSONСтрока = ЗаписатьДатуJSON(ТестДата, ФорматДатыJSON.Microsoft, ВариантЗаписиДатыJSON.Уни версальнаяДата);КонецПроцедуры // Преобразовани еДатыВДатуJSON()
Категория:
WEB-сервисы, WS-ссылки, XDTO-пакеты Слияни е журнал арегистрации 1С Скачать обработку 1С для слияни я журналов регистрации.
В основе обработки лежит платформенный метод:
СкопироватьЖурналРегистрации(<ИмяВходногоФайла>, <ИмяВыходногоФайла>, <Отбор>)[/pre]Подробнее
Категория:
1С Общие вопросы - Управляемые формы и Такс… Произошла ошибка при работе с SMTP. Код ошибки: 27 (Ошибка установки защищенного SSL/TLS соединени я. После обновлени я на платформу 8.3.23 и далее 8.3.24. При рассылке сообщени й на электронную почту появляется ошибка:
Произошла ошибка при работе с SMTP. Код ошибки: 27 (Ошибка установки защищенного SSL/TLS соединени я.)"
Произошла ошибка при работе с IMAP ...
Это ошибка1С https://bugboard.v8.1c.ru/error/000142347
Описани е:
При использовани и почтового сервера imap.gmail.ru происходит ошибка
Произошла ошибка соединени я с сервером при работе с IMAP. Код ошибки: 43 Ошибка установки защищенного SSL/TLS соединени я
Способ обхода:
В conf.cfg добавить опцию IgnoreInternetMailServerCertificateVerificationList:
Код Batch File (DOS, CMD, BAT) IgnoreInternetMailServerCertificateVerificationList=imap.gmail.com;smtp.gmail.com
В баг репорте ошибка описана для почты gmail, но у нас свой почтовый сервер и ошибка та же самая, и попутно было обнаружено, что и с mail.ru такая же есть ошибка, а вот Yandex.ru ошибку не дает.
Файл conf.cfg находится в папке C:\Program Files\1cv8\conf (для 64 платформы).
Сделайте запись по примеру выше. только замени те gmail.com на свой сервер
Категория:
Работа с Интернет, Почтой (Mail), FTP Функция получени е содержимого адреса url (веб-страни цы) методом GET // Возвращает содержимое ответа HTTP-сервера, полученного методом GET, в виде строки или двоичных данных
// ** Coded by Sergey (aka Porutchik) * 2014 http://forum.aeroion.ru/cat1.html //
// Параметры
// СерверПриемни к - - доменное имя сервера или полный адрес (url) запрашиваемой ссылки.
// Может включать протокол (http://, https://) и порт.
// АдресСтрани цы - - опционально. Адрес страни цы на сервере без протокола (http://, https://),
// доменного имени сервера (хоста) и порта.
// Если не указано, адрес страни цы будет извлечён из параметра СерверПриемни к
// ПараметрыСоединени я - - опционально. Структура, содержащая дополни тельные параметры для HTTPСоединени е.
// Назначени е ключей:
// Логин или Пользователь - Тип Строка - Имя пользователя на указанном сервере.
// Пароль - Тип Строка - Пароль пользователя на указанном сервере.
// Прокси - Тип ИнтернетПрокси - Прокси, используемый для соединени я с сервером.
// Таймаут - Тип Число - Таймаут осуществляемого соединени я и операций, в секундах. 0 - не устанавливать таймаут..
// ЗаголовкиHTTP - - опционально.
// Заголовки, которые будут отправлены на сервер в виде соответствия: "Заголовок" - "Значени е".
// Если указано, функция возвратит в программу заголовки HTTP-ответа с кодом состояни я в ключе StatusCode,
// имя файла в ключе FileName, url-кодированное имя в ключе EncodeFileName
// ПолучитьКакДвоичныеДанные - - опционально. Определяет, в каком виде получить содержимое ответа сервера
// По умолчани ю Ложь.
// ЗащищенноеСоединени е - - опционально. По умолчани ю Ложь.
// Если Истина, соединени е будет происходить по протоколу https://
//
// Возвращаемое значени е:
// , - содержимое ответа сервера, если ресурс найден по указанному адресу.
//
Функция ПолучитьСодержимоеВебАдреса(Знач СерверПриемни к, Знач АдресСтрани цы = "",
Знач ПараметрыСоединени я = Неопределено, ЗаголовкиHTTP = Неопределено,
Знач ПолучитьКакДвоичныеДанные = Ложь, Знач ЗащищенноеСоединени е = Ложь) Экспорт
Перем ИмяФайлаОтветаКодированное, ИмяФайлаОтвета, Порт, Логин, Пользователь, Пароль, Прокси, Таймаут;
Если Не Значени еЗаполнено(СерверПриемни к) Тогда Возврат Неопределено; КонецЕсли;
Если ТипЗнч(ЗаголовкиHTTP) Тип("Соответствие") Тогда ЗаголовкиHTTP = Новый Соответствие; КонецЕсли;
Если Найти(Нрег(СерверПриемни к), "https://") = 1 Тогда ЗащищенноеСоединени е = Истина; КонецЕсли;
Протокол = ?(Найти(Нрег(СерверПриемни к), "https://") = 1 ИЛИ ЗащищенноеСоединени е, "https://", "http://");
Если Лев(НРег(СерверПриемни к), СтрДлина(Протокол)) = Протокол Тогда
СерверПриемни к = Сред(СерверПриемни к, СтрДлина(Протокол) + 1);
КонецЕсли;
Если НЕ Значени еЗаполнено(АдресСтрани цы) Тогда
Позиция = Найти(СерверПриемни к, "/");
Если Позиция > 0 Тогда
АдресСтрани цы = Сред(СерверПриемни к, Позиция, СтрДлина(СерверПриемни к));
СерверПриемни к = Лев(СерверПриемни к, Позиция - 1);
Иначе
АдресСтрани цы = "/";
КонецЕсли;
КонецЕсли;
СерверПриемни к = СтрЗамени ть(СерверПриемни к, "/", "");
//Выделяем порт из доменного имени
ПозицияДвоеточия = Найти(СерверПриемни к, ":");
Если ПозицияДвоеточия > 0 Тогда
Порт = Число(Сред(СерверПриемни к, ПозицияДвоеточия + 1));
СерверПриемни к = Лев(СерверПриемни к, ПозицияДвоеточия - 1);
КонецЕсли;
Если ТипЗнч(ПараметрыСоединени я) = Тип("Структура") Тогда
Для каждого КлючЗначени е из ПараметрыСоединени я Цикл
Значени е = КлючЗначени е.Значени е; Выполни ть(КлючЗначени е.Ключ + " = Значени е;");
КонецЦикла;
Пользователь = ?(Значени еЗаполнено(Пользователь), Пользователь, Логин);
КонецЕсли;
НТТР = Новый HTTPСоединени е(СерверПриемни к, Порт, Пользователь, Пароль, Прокси, Таймаут,
?(ЗащищенноеСоединени е, Новый ЗащищенноеСоединени еOpenSSL(), Неопределено));
//Ответ от сервера получим в возвращаемом значени и типа HTTPОтвет
ОтветHTTP = НТТР.Получить(Новый HTTPЗапрос(АдресСтрани цы, ЗаголовкиHTTP)); //
ОшибкаЗапроса = (ОтветHTTP.КодСостояни я >= 400);
//После получени я ответа сервера необходимо проверить статус или код состояни я.
//http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.... //Если сервер вернул один из статусов переадресации
//301 Moved Permanently («перемещено навсегда») или 302 Moved Temporarily («перемещено временно»),
//то в этом случае можно попытаться перейти на ресурс, на который переадресовал сервер
Если ОтветHTTP.КодСостояни я = 301 или ОтветHTTP.КодСостояни я = 302 Тогда
Если ОтветHTTP.Заголовки.Количество() > 0 Тогда
//Адрес страни цы переадресации содержится в поле Location заголовка ответа
АдресСтрани цы = ОтветHTTP.Заголовки["Location"]; //
Если Значени еЗаполнено(АдресСтрани цы) Тогда
Если Найти(НРег(АдресСтрани цы), "http://") = 0 И Найти(НРег(АдресСтрани цы), "https://") = 0 Тогда
АдресСтрани цы = ?(Лев(АдресСтрани цы, 1) = "/", Сред(АдресСтрани цы, 2), АдресСтрани цы);
Если Найти(АдресСтрани цы, СерверПриемни к + "/") = 0 Тогда
АдресСтрани цы = Протокол + СерверПриемни к + ?(Значени еЗаполнено(Порт), ":" + Порт, "") + "/" + АдресСтрани цы;
КонецЕсли;
КонецЕсли;
//Если сервер вернул cookies (http://ru.wikipedia.org/wiki/HTTP_cookie, http://www.faqs.org/rfcs/rfc6265.html?#41;, //вставим их в заголовки для передачи на страни цу перехода
Куки = ОтветHTTP.Заголовки["Set-Cookie"];//
Если Значени еЗаполнено(Куки) Тогда ЗаголовкиHTTP.Вставить("Cookie", Куки); КонецЕсли;
//Рекурсивный вызов
Возврат ПолучитьСодержимоеВебАдреса(АдресСтрани цы, , , ЗаголовкиHTTP, ПолучитьКакДвоичныеДанные, ЗащищенноеСоединени е);//
КонецЕсли;
КонецЕсли;
ИначеЕсли ОтветHTTP.КодСостояни я >= 100 И ОтветHTTP.КодСостояни я 0 Тогда
ТипСодержимого = ОтветHTTP.Заголовки["Content-Type"];
//http://ru.wikipedia.org/wiki/Список_MIME-типов Если Найти(ТипСодержимого, "text/") = 1 ИЛИ Найти(ТипСодержимого, "/javascript")
ИЛИ Найти(ТипСодержимого, "+xml") ИЛИ Найти(ТипСодержимого, "/xml") 0 ИЛИ Найти(ТипСодержимого, "/json") 0 Тогда
ПолучитьКакДвоичныеДанные = Ложь;
ИначеЕсли Найти(ТипСодержимого, "image/") = 1 ИЛИ Найти(ТипСодержимого, "video/") = 1
ИЛИ Найти(ТипСодержимого, "application/") = 1 ИЛИ Найти(ТипСодержимого, "audio/") = 1 Тогда
//Если содержимое полученного ответа представляет собой изображени е, видео, приложени е,
//возвращаем двоичные данные, так как возвращать в виде строки не имеет смысла.
ПолучитьКакДвоичныеДанные = Истина;
КонецЕсли;
//Некоторые сервера возвращают в типе содержимого имя отданного файла, например image/png; name="Имя файла.png"
//или отдают в заголовке Content-Disposition: attachment; filename=Имя файла.png (http://www.http11.ru/post.php?post=2) Если ОтветHTTP.Заголовки["Content-Disposition"] Неопределено Тогда
ТипСодержимого = ОтветHTTP.Заголовки["Content-Disposition"];
КонецЕсли;
ТипСодержимого = СтрЗамени ть(СтрЗамени ть(ТипСодержимого, """", ""), "'", "");
//в ключе filename*=UTF-8'' содержится url-кодированное имя файла
ПозицияИмени Файла = Найти(ТипСодержимого, "filename*=UTF-8");
Если ПозицияИмени Файла 0 Тогда
ИмяФайлаОтветаКодированное = Сред(ТипСодержимого, ПозицияИмени Файла + СтрДлина("filename*=UTF-8"));
ПозицияДвоеточия = Найти(ИмяФайлаОтветаКодированное, ";");
Если ПозицияДвоеточия 0 Тогда
ИмяФайлаОтветаКодированное = Лев(ИмяФайлаОтветаКодированное, ПозицияДвоеточия - 1);
КонецЕсли;
КонецЕсли;
//в ключе filename= содержится обычное имя файла
ПозицияИмени Файла = Найти(ТипСодержимого, "name=");
Если ПозицияИмени Файла 0 Тогда
ИмяФайлаОтвета = Сред(ТипСодержимого, ПозицияИмени Файла + СтрДлина("name="));
ПозицияДвоеточия = Найти(ИмяФайлаОтвета, ";");
Если ПозицияДвоеточия 0 Тогда
ИмяФайлаОтвета = Лев(ИмяФайлаОтвета, ПозицияДвоеточия - 1);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ЗаголовкиHTTP = ОтветHTTP.Заголовки;
//Добавляем в заголовки ответа код состояни я (ответа) HTTP-сервера и имя файла содержимого, если есть.
ЗаголовкиHTTP.Вставить("StatusCode", ОтветHTTP.КодСостояни я);
Если Значени еЗаполнено(ИмяФайлаОтвета) Тогда ЗаголовкиHTTP.Вставить("FileName", ИмяФайлаОтвета); КонецЕсли;
Если Значени еЗаполнено(ИмяФайлаОтветаКодированное) Тогда
ЗаголовкиHTTP.Вставить("EncodeFileName", ИмяФайлаОтветаКодированное);
КонецЕсли;
Если ОшибкаЗапроса ИЛИ НЕ ПолучитьКакДвоичныеДанные Тогда Возврат ОтветHTTP.ПолучитьТелоКакСтроку(); КонецЕсли;
Возврат ОтветHTTP.ПолучитьТелоКакДвоичныеДанные();
КонецФункции // ПолучитьСодержимоеВебАдреса()
//Источни к: http://forum.aeroion.ru/topic749.html [/pre]Примеры использовани я:
// Получени е содержимого в виде строки//
СодержимоеАдреса = ПолучитьСодержимоеВебАдреса("ние содержимого в виде строки и с указани ем реферера HTTP referer
//
ЗаголовкиHTTP = Новый Соответствие;
ЗаголовкиHTTP.Вставить("Referer", "a href="http://some_site.com/" )"="">http://some_site.com/") ;
СодержимоеАдреса = ПолучитьСодержимоеВебАдреса(" Категория: Нет
Нумерация документов в 1С Добрый день, коллеги!
Помогите, пожалуйста, разобраться с таким вопросом:В УТ 11.5 при формировани и документа счет-фактура выданный номер документа создается видом МФУТ-0008606
Как сделать номер без префикса, чтобы он имел вид 08606/1, то есть слева убрать префикс органи зации и ИБ и в конце номера добавить фиксированное значени е "/1", которое нужно во всех номерах документов. Итоговый номер 0008606/1 или 0000-08606/1
Заранее благодарю
Категория:
1С Управление торговлей 11 Как декодировать (преобразовать) Unicode в 1С При разработке очередного обмена с интернет магазином через API столкнулисть что сайт возвращает ответ в виде:
Код VBS {"ok":"true","description":"\u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d"}
из кода ясно что это JSON и используя код ПрочитатьJSON
Код 1C v 8.3 Чтени е = Новый Чтени еJSON;
Чтени е.УстановитьСтроку(стрВходящая);
ДанныеЛога = ПрочитатьJSON(Чтени е);
Чтени е.Закрыть();
В переменной ДанныеЛога будет структура в виде
В результате получилась функция с 2-мя вариантами возрата, в зависимости от того как нужно
Код 1C v 8.3 //Функция читает полученный JSON декадируя текст юни код
Функция ДекодироватьUniCodeВJSON(стрВходящая)
// стрВходящая содержит {"ok":"true","description":"\u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d"}
Чтени е = Новый Чтени еJSON;
Чтени е.УстановитьСтроку(стрВходящая);
ДанныеЛога = ПрочитатьJSON(Чтени е);
Чтени е.Закрыть();
// Вариант 1 используя перебор структуры и вывод в текстовую переменную
Текст = "";
Для каждого Элемент Из ДанныеЛога Цикл
//добавим разделитель после предыдущего значени я
Текст = Текст + ?(НЕ ПустаяСтрока(Текст), Символы.ПС, "");
//добавим представлени е ключа и значени я:
Текст = Текст + Элемент.Ключ + " = " + Элемент.Значени е;
КонецЦикла;
Возврат Текст; //Вернет ok = true description = Статус заказа изменен
// Вариант 2 мспользуя ЗаписьJSON
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));
ЗаписатьJSON(Запись, ДанныеЛога,);
Возврат Запись.Закрыть(); // Вернет JSON {"ok":"true","description":"Статус заказа изменен"}
КонецФункции
На просторах интернета была найдена еще одна функция:
Код 1C v 8.3 //Параметры: Строка в Юни код (обязательный) Тип: Строка. Исходная строка.
//Возвращаемое значени е: Тип: Строка. Строка обработанных символов.
//Описани е: Возвращает преобразованную строку из формата Unicod.
//Автор: Александр Кияни ца (treedo)
Функция ПереобразоватьЮни код(Строка)
ГотововаяСтрока = "" ;
МасУкр = Новый Массив(66) ;
МасУкр[0]="А"; МасУкр[1]="Б"; МасУкр[2]="В"; МасУкр[3]="Г"; МасУкр[4]="Ґ"; МасУкр[5]="Д";
МасУкр[6]="Е"; МасУкр[7]="Є"; МасУкр[8]="Ж"; МасУкр[9]="З"; МасУкр[10]="И"; МасУкр[11]="І";
МасУкр[12]="Ї"; МасУкр[13]="Й"; МасУкр[14]="К"; МасУкр[15]="Л"; МасУкр[16]="М"; МасУкр[17]="Н";
МасУкр[18]="О"; МасУкр[19]="П"; МасУкр[20]="Р"; МасУкр[21]="С"; МасУкр[22]="Т"; МасУкр[23]="У";
МасУкр[24]="Ф"; МасУкр[25]="Х"; МасУкр[26]="Ц"; МасУкр[27]="Ч"; МасУкр[28]="Ш"; МасУкр[29]="Щ";
МасУкр[30]="Ь"; МасУкр[31]="Ю"; МасУкр[32]="Я";
МасУкр[33]="а"; МасУкр[34]="б"; МасУкр[35]="в"; МасУкр[36]="г"; МасУкр[37]="ґ"; МасУкр[38]="д";
МасУкр[39]="е"; МасУкр[40]="є"; МасУкр[41]="ж"; МасУкр[42]="з"; МасУкр[43]="и"; МасУкр[44]="і";
МасУкр[45]="ї"; МасУкр[46]="й"; МасУкр[47]="к"; МасУкр[48]="л"; МасУкр[49]="м"; МасУкр[50]="н";
МасУкр[51]="о"; МасУкр[52]="п"; МасУкр[53]="р"; МасУкр[54]="с"; МасУкр[55]="т"; МасУкр[56]="у";
МасУкр[57]="ф"; МасУкр[58]="х"; МасУкр[59]="ц"; МасУкр[60]="ч"; МасУкр[61]="ш"; МасУкр[62]="щ";
МасУкр[63]="ь"; МасУкр[31]="ю"; МасУкр[65]="я";
МасКод = Новый Массив(66) ;
МасКод[0]="0410"; МасКод[1]="0411"; МасКод[2]="0412"; МасКод[3]="0413"; МасКод[4]="0490"; МасКод[5]="0414";
МасКод[6]="0415"; МасКод[7]="0404"; МасКод[8]="0416"; МасКод[9]="0417"; МасКод[10]="0418"; МасКод[11]="0406";
МасКод[12]="0407"; МасКод[13]="0419"; МасКод[14]="041A"; МасКод[15]="041B"; МасКод[16]="041C"; МасКод[17]="041D";
МасКод[18]="041E"; МасКод[19]="041F"; МасКод[20]="0420"; МасКод[21]="0421"; МасКод[22]="0422"; МасКод[23]="0423";
МасКод[24]="0424"; МасКод[25]="0425"; МасКод[26]="0426"; МасКод[27]="0427"; МасКод[28]="0428"; МасКод[29]="0429";
МасКод[30]="042C"; МасКод[31]="042E"; МасКод[32]="042F";
МасКод[33]="0430"; МасКод[34]="0431"; МасКод[35]="0432"; МасКод[36]="0413"; МасКод[37]="0491"; МасКод[38]="0434";
МасКод[39]="0435"; МасКод[40]="0454"; МасКод[41]="0436"; МасКод[42]="0437"; МасКод[43]="0438"; МасКод[44]="0456";
МасКод[45]="0457"; МасКод[46]="0439"; МасКод[47]="043A"; МасКод[48]="043B"; МасКод[49]="043C"; МасКод[50]="043D";
МасКод[51]="043E"; МасКод[52]="043F"; МасКод[53]="0440"; МасКод[54]="0441"; МасКод[55]="0442"; МасКод[56]="0443";
МасКод[57]="0444"; МасКод[58]="0445"; МасКод[59]="0446"; МасКод[60]="0447"; МасКод[61]="0448"; МасКод[62]="0449";
МасКод[63]="044C"; МасКод[31]="044E"; МасКод[65]="044F";
тмпСтрока = "" ;
Для Счетчик = 1 По СтрДлина(Строка) Цикл
Если Лев(Строка, 1) = "\" Тогда
Если Лев(Строка, 2) = "\u" Тогда
тмпСтрока = Прав(Лев(Строка, 6),4) ;
Если МасКод.Найти(тмпСтрока) = Неопределено Тогда
СтрокаЗамены = Прав(тмпСтрока, 1) ;
тмпСтрока = СтрЗамени ть(тмпСтрока,СтрокаЗамены,ТРег(СтрокаЗамены));
Если МасКод.Найти(тмпСтрока) = Неопределено Тогда
Сообщить("Код символа не найден: " + тмпСтрока) ;
Иначе
ГотововаяСтрока = ГотововаяСтрока + МасУкр[МасКод.Найти(тмпСтрока)] ;
КонецЕсли;
Иначе
ГотововаяСтрока = ГотововаяСтрока + МасУкр[МасКод.Найти(тмпСтрока)] ;
КонецЕсли;
Строка = Прав(Строка, (СтрДлина(Строка)-6)) ;
Иначе
Строка = Прав(Строка, (СтрДлина(Строка)-2)) ;
КонецЕсли;
Иначе
ГотововаяСтрока = ГотововаяСтрока + Лев(Строка, 1) ;
Строка = Прав(Строка, (СтрДлина(Строка)-1)) ;
КонецЕсли;
КонецЦикла;
Возврат ГотововаяСтрока ;
КонецФункции
Категория:
WEB-сервисы, WS-ссылки, XDTO-пакеты Как строку вида 2023-07-24T15:35:34+03:00 (формат ISO 8601) преобразовать в дату? Стандарт ISO 8601, составлен таким образом, что:
Строка даты-времени сплошная без пробельных разделителей Латинские символы используются в качестве разделителей/идентификаторов: D - дни , Y - годы, Z - идентификатор UTC и т.д., например можно задать промежуток времени : P4Y3M2D1H - 4 года, 3 месяца, 2 дня и 1 час. Буква T выбрана в качестве уни кального разделителя времени , остальные буквы латинского алфавита (почти все) задействованы под разные цели и они не пересекаются. Соответственно упрощается парсинг ISO-8601 строки: имеется заранее известный набор флагов/символов/маркеров, опираясь на которые, можно достаточно быстро разбить строку на нужные составляющие и при этом сохраняется требовани е к human readability самой строки. Конвертация даты из формата ISO8601 в дату 1С:
Код 1C v 8.3 //Простой пример
Дата1С = XMLЗначени е(Тип("Дата"), "2023-07-24T15:35:34+03:00");
// еще Функция Возвращает структуру с полями "Дата" и "Миллисекунды", стандартный способ преобразовани я даты округляет время, а в некоторых случаях важна особая точность
Функция КонвертироватьДатуISO8601ВДату(Дата) Экспорт
КонвертированнаяДата = Новый Структура("Дата, Миллисекунды");
АвтоконвертированнаяДата = XMLЗначени е(Тип("Дата"), Дата);
Миллисекунды = Сред(Дата, 21);
Миллисекунды = СокрЛП(СтрЗамени ть(Миллисекунды, "Z", ""));
Если НЕ ПустаяСтрока(Миллисекунды) Тогда
ЧислоМиллисекунд = Число(Миллисекунды);
Если ЧислоМиллисекунд >= 500 Тогда
АвтоконвертированнаяДата = АвтоконвертированнаяДата - 1;
КонецЕсли;
КонецЕсли;
КонвертированнаяДата.Дата = АвтоконвертированнаяДата;
КонвертированнаяДата.Миллисекунды = Миллисекунды;
Возврат КонвертированнаяДата;
КонецФункци
Категория:
Работа с Датами (Временем) Как установить отбор в табличной части программно? Часто требуется в табличной части установить отбор по нужному значени ю.
Ниже приведены 2 примера:
Код 1C v 8.3 // В ТЧ "Товары" отображать только те строки, у которых в колонке "КолВо" содержится значени е 10
Элементы.Товары.ОтборСтрок = Новый ФиксированнаяСтруктура("КолВо", 10);
// При позициони ровани и на строке ТЧ "Контрагенты" в событии ПриАктивизацииСтроки()
// накладывать отбор на ТЧ "Договоры": отображать только договоры по текущему контрагенту
&НаКлиенте
Процедура КонтрагентыПриАктивизацииСтроки(Элемент)
ТекущиеДанные = Элементы.Контрагенты.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
// ТЧ Контрагенты пустая
Элементы.Договоры.ОтборСтрок = Неопределено;
Иначе
// Для ТЧ Договоры устанавливаем отбор по текущему контрагенту
ТекущийКонтрагент = ТекущиеДанные.Контрагент;
Элементы.Договоры.ОтборСтрок = Новый ФиксированнаяСтруктура("Контрагент", ТекущийКонтрагент);
КонецЕсли;
КонецПроцедуры
Посмотрите более подробную статью Табличная часть ~ Как настроить отбор строк?
Категория:
Работа с Формой (Диалог) и её элементами Ограни чени е пользователей по органи зациям. Прошу помощи. Всем доброго дня.
Прошу помощи.
Конфигурация - Бухгалтерия для Беларуси, редакция 2.1 Локализация для Республики Беларусь (2.1.41.3)
Есть задача - ограни чить доступ пользователей в 1С к определённым органи зациям. То есть чтобы определённые пользователи не видели определённые органи зации и документы этих органи зация (реализация, поступлени е и все остальные).
База на MSQL Server.
Само ограни чени е не работает просто если включить "Ограни чить доступ на уровне записей". Сначала нужно включить Константу "Использовать группы пользователей", добавить создать нового пользователя в отдельной группе, присвоить ему права.
Затем включить "Ограни чить доступ на уровне записей" и настроить ограни чени я через "Группы доступа".
Проблема в том, что, если ограни чить для пользователя какую-либо органи зацию - он всё равно будет видеть её в списках. При этом документы этой органи зации для пользователя видны не будут.
Подскажите пожалуйста, как сделать так, чтобы сама органи зация тоже не была видна.
Категория:
1С Бухгалтерия 3.0 Программная проверка счета на "групповой" Как известно делать проводки по счетам-группам нельзя. Однако жизнь течет и после введени я бухгалтером очередного нового счета какой либо старый, который ранее не являлся счетом-группы, теперь становится групповым. И соответственно все проводки на этот счет становятся ошибочными. Для предупреждени я подобной ситуации целесообразно перед записью данных по счетам имеет смысл всегда проверять счета на предмет группы. Один из возможных вариантов такой проверки привожу ни же:
Код 1C v 8.3
Процедура ПриЗаписи(Отказ, РежимЗаписи)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Хозрасчетный.Код КАК Код,
| Хозрасчетный.Родитель.Код КАК РодительКод
|ИЗ
|ПланСчетов.Хозрасчетный КАК Хозрасчетный
|ГДЕ
|Хозрасчетный.Родитель В (&СчетДт,СчетКт)";
СчетДт = ЭтотОбъект[0].СчетДт;
СчетКт = ЭтотОбъект[0].СчетКт;
Запрос.УстановитьПараметр("СчетДт", СчетДт);
Запрос.УстановитьПараметр("СчетКт", СчетКт);
РезультатЗапроса = Запрос.Выполни ть();
Если НЕ РезультатЗапроса.Пустой() Тогда
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если СтрНайти(ВыборкаДетальныеЗаписи.Код, ".") Тогда
Отказ = Истина;
Сообщить("Некорретный номер счета - " + ВыборкаДетальныеЗаписи.РодительКод);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Категория:
Регистры бухгалтерии Комиссионная торговля Добрый день. УТ11 (11.4.13.46) Наша органи зация прини мает товар на комиссию. В отчете комитенту цена комитента - ставится последняя, а нужно по фактическому поступлени ю. Подскажите пожалуйста, может кто то сталкивался с подобной проблемой. Спасибо.
Категория:
1С Управление торговлей 11 Подчиненные строки в обычной форме Есть необходимость номенклатуру отмеченных строк в соответствии с количеством отправить на формировани е нового документа после нажатия на кнопку "Запуск". Вопрос: как выделить подчиненные строки на менклатуры кодом?
Категория:
1С Управление производственным предприят… Восстановлени е пароля с версии 8.3.17 Бывают случаи когда нужно восстановить доступ к 1С, но пароль утерян или прошлый программист уволился и прочее. Доступные методы в интернете не работают с версии 8.3.17, а некоторые методы полностью вычищают список пользователей. Данный метод позволит просто смени ть пароль админи стратора и восстановить доступ к 1С, но для его исполнени я Вам нужен доступ к MS SQL
Пункт 1. Открываем Microsoft Management Studios, выбираем нужную базу, нажимаем правой кнопкой мыши, выбираем Новый запрос (New Query)
Пункт 2. Вставляем запрос, который указан ни же
EXEC sp_rename 'v8users', 'v8users_passwords_data'GOUPDATE ParamsSET FileName = 'users.usr_pd'WHERE FileName = 'users.usr'GO
DROP TABLE v8usersGO
create table v8users(ID binary(16) NOT NULL,Name nvarchar(64) NOT NULL,Descr nvarchar(128) NOT NULL,OSName nvarchar(128) NULL,Changed datetime2(0) NOT NULL,RolesID numeric(10,0) NOT NULL,Show binary(1) NOT NULL,Data varbinary(max) NOT NULL,EAuth binary(1) NULL,AdmRole binary(1) NULL,UsSprH numeric(10,0) NULL,PRIMARY KEY (ID));
Пункт 3. Открываем конфигуратор 1С (откроется сразу, без пароля и логина), не закрывая конфигуратор выполняем пункт 1 снова и вставляем запрос ни же:
DROP TABLE v8usersGOEXEC sp_rename 'v8users_passwords_data', 'v8users'GOUPDATE ParamsSET FileName = 'users.usr'WHERE FileName = 'users.usr_pd'GO
Пункт 4. Открываем в конфигураторе список пользователей (Админи стрировани е - пользователи) и меняем пароль нужного пользователя. Закрываем конфигуратор и запускаем 1С, теперь пароль изменен.
Категория:
Администрирование Разни цаДат в уни версальном отчете УПП 1.3. Делаю отчет с помощью Уни версального отчета. Как вывести количество дней в выбранном периоде?
РАЗНОСТЬДАТ(&ДатаНач,ДатаКон, ДЕНЬ) не подошло. Не видит параметров ДатаНач и ДатаКон.
Категория:
1С Управление производственным предприят…