Строки настраиваемых числовых форматовcustom numeric format strings

Групповая проверка доработок

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР.
Выдает список обнаруженных ошибок.
Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям.
В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем.
Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.

2 стартмани

05.05.2019   
15501   
104   
sapervodichka   

23
   

Непечатные символы

В си определён ряд символов, которые не выводятся на печать, но позволяют производить форматирование вывода. Эти символы
можно задавать в виде численных значений, либо в виде эскейп-последовательностей: символа, экранированного обратным слешем.

#include <stdio.h>
#include <conio.h>

void main() {
	char backspace = 0x08;
	//Выводим с использованием символа переноса строки
	printf("Hello\nWorld\n");
	//Выводим символ переноса строки через его значение
	printf("Hello%cWorld\n", 0x0a);
	//"Выводим" сигнал
	printf("\a");
	//Выводим сигнал, как символ
	printf("%c", '\a');
	//Выводим сигнал через шестнадцатеричное значение
	printf("%c", 0x07);
	printf("This is sparta!!!\b\b%c", backspace);
	printf("   ");
	getch();
}

Q&A

Всё ещё не понятно? – пиши вопросы на ящик

Buffer, BufferView и Accessor

Под объектом Buffer подразумевается хранилище бинарных, не обработанных, данных без структуры, без наследования, без значения. В буфере хранится информация о геометрии, анимациях и скиннинге. Главное преимущество бинарных данных в том, что они крайне эффективно обрабатываются GPU, т.к. не требуют дополнительного парсинга, кроме, возможно, декомпрессии. Данные в буфере могут быть найдены по атрибуту URI, который явно дает понять где находятся данные и здесь всего 2 варианта: либо данные хранятся во внешнем файле с форматом .bin, либо они встроены внутрь самого JSON. В первом случае URI содержит ссылку на внешний файл, в этом случае папка, в которой находится GLTF файл, считается корневой. Во втором случае файл будет иметь формат .glb, отсылающий нас к более компактному, с точки зрения количества файлов, брату-близнецу GLTF, формату GLB. Данные в бинарном файле хранятся как есть, побайтово.

JSON в нашем примере с треугольником будет выглядеть следующим образом:
Пример буфера, закодированного в base64:

Если же у вас будет внеший файл, то JSON преобразует свой вид в следующий:

Блок Buffers также имеет дополнительный атрибут byteLength, который хранит в себе значение размера буфера.

Первым шагом в структуризации данных из буфера служит объект BufferView. BufferView можно назвать «срезом» информации из Buffer, который характеризуется определенным сдвигом байт от начала буфера. Данный «срез» описывается при помощи 2х атрибутов: отсчет “сдвига” от начала буфера для считывания и длинной самого среза. Простой пример нескольких объектов BufferView для наглядности их использования на основе нашего примера:

Как вы видите, в данном примере содержится 4 основных атрибута:

  1. Buffer указывает на индекс буфера (порядковый номер в массиве буферов, начинается с 0).
  2. byteOffset — определяет “сдвиг” начала отсчета в байтах для данного “среза”
  3. byteLength — определяет длину “среза”
  4. target — определяет тип данных, содержащихся в bufferView
    Первый BufferView содержит первые 6 байт буфера и не имеет сдвига. Со вторым «срезом» все немного сложнее: как видите, его сдвиг находится на 8м байте, вместо ожидаемого 6го. Данные 2 байта являются пустыми и были добавлены в процессе формирования буфера благодаря процессу под названием «padding». Оно нужно, чтобы значение подогнать значение байт границы в 4 байта. Такой трюк нужен для более быстрого и легкого считывания данных из буфера.

Стоит сказать еще пару слов об атрибуте target. Он используется для классификации типа информации на которую ссылается bufferView. Здесь всего 2 варианта: либо это будет значение 34962, которое используется для ссылки на атрибуты вертексов (vertex attributes — 34962 — ARRAY_BUFFER) или же 34963, которое используется для индексов вертексов (vertex indices — 34963 — ELEMENT_ARRAY_BUFFER). Последним штрихом при для понимания и структуризации всей информации в Buffer является объект Accessor.

Accessor — это объект, который обращается к BufferView и содержит атрибуты, которые определяют тип и расположение данных из BufferView. Тип данных аксессора кодируется в type и componentType. Значением атрибута type является строка и имеет следующие значения: SCALAR для скалярных значений, VEC3 для 3х мерных векторов и MAT4 для матрицы размерностью 4х4 или же кватерниона, который используется для описания rotation (поворота).

В свою очередь componentType указывает тип компонентов этих данных. Это GL константа, которая может иметь такие значение, как, к примеру, 5126 (FLOAT) или 5123 (UNSIGNED_SHORT), для указания того, что элементы имеют плавающую запятую и т.п.

Различные комбинации этих свойств могут использоваться для описания произвольных типов данных. Пример основанный на нашем треугольнике.

Разберём атрибуты, представленные в JSON:

  1. bufferView — указывает порядковый номер BufferView из массива BufferView, который использует Accessor. BufferView же, в свою очередь, хранит информацию об индексах.
  2. byteOffset — сдвиг байт для начала считывания данных текущим Accessor. На один BufferView может ссылаться несколько объектов типа Accessor.
  3. componentType — константа, указывающая на тип элементов. Может иметь значения 5123, которой соответствует тип данных UNSIGNED_SHORT или же 5126 для FLOAT.
  4. count — отображает как много элементов хранится в buffer.
  5. type — определяет тип данных: скаляр, вектор, матрица.
  6. max и min — атрибуты, которые определяют минимальное и максимальное значение положение данных элементов в пространстве.

Faster — многофункциональный ускоритель работы программиста 1С и других языков программирования Промо

Программа Faster 9.4 позволяет ускорить процесс работы программиста
(работает в любом текстовом редакторе).
Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов.
Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код.
Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке.
Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования.
Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода.
Настройка любых шорткатов под себя с помощью скриптов.
Никаких установок и лицензий, все бесплатно.

1 стартмани

24.05.2012   
78348   
212   
moolex   

147
   

Сохранение форматированного документа в БД

На текущий момент мы создали форматированный документ на форме. Более того, у нас есть реквизит объекта с типом «ХранилищеЗначения». И сейчас предстоит настроить связь между двумя этими объектами, между двумя этими реквизитами.

Во-первых, при открытии формы необходимо будет обращаться к реквизиту объекта и заполнять тем значением, которое там хранится – значением форматированного документа. Во-вторых, при записи элемента мы берем содержимое форматированного документа и помещаем в хранилище значения. Таким образом у нас будет возникать эффект того, что все действия, которые пользователь делает с нашим форматированным документом сохраняются в базе данных.

Теперь давайте разберемся какие же обработчики событий нам необходимо будет выбрать. В частности, первое событие. В момент открытия формы мы должны обратиться к значению, которое содержится в хранилище значения. Итак, какие у нас обработчики есть вообще.

Обработчики событий в порядке их вызова для модуля формы элемента справочника

Как видим, обработчики событий указаны в порядке вызова. Первый обработчик «ПриСозданииНаСервере», потом «ПриОткрытии». Отличаются они тем, что первый исполняется на сервере, а второй на клиенте. Возможно, что возникнет желание использовать обработчик события «ПриСозданииНаСервере». Но этот обработчик не подходит для нашего случая. Нужно не забывать, что на форме есть кнопка «Перечитать» (Еще -> Перечитать).

Допустим, пользователь открыл форму договора. И начинал что-то в ней менять. И вдруг понял, что неплохо бы вернуться к исходной версии. Нажал на кнопку «Перечитать», чтобы вернуться к исходным данным. И система возвращает то значение, которое было изначально.

Так вот, нам нужно будет тоже присоединиться к этому событию, то есть к чтению данных из базы. Поэтому идеальным вариантом для этого действия было бы событие «ПриЧтенииНаСервере». Это событие будет возникать и в момент создания формы, и в момент нажатия на кнопку «Перечитать».

Обратите внимание, что сам текущий объект передается через параметр, то есть мы указываем текст договора. Далее обращаемся к текущему объекту и свойству текста

Обратите внимание: чтобы получить данные, содержащиеся в хранилище, нужно использовать метод «Получить». Тогда система извлечет данные, которые хранятся внутри хранилища.

В тот момент, когда пользователь решит записать сделанные изменения, нам нужно записать данные в хранилище. Для этого нужно использовать обработчик событий «ПередЗаписьюНаСервере». Сначала нужно обратиться к параметру «ТекущийОбъект.Текст» и присвоить ему значение. Какое значение можно присвоить? Есть реквизит формы «ТекстДоговора».  К нему можно обращаться напрямую. И это присваивание будет неправильным.

То есть, нельзя взять и напрямую присвоить реквизиту с типом «ХранилищеЗначения» какой-либо тип данных. Нужно сделать преобразование. Нужно поместить объект в хранилище и для этого нужно воспользоваться следующим приёмом: использовать конструктор для типа данных «ХранилищеЗначения».

Итак, с помощью конструктора «Новый ХранилищеЗначения» создан объект с типом «ХранилищеЗначения», который будет содержать переданные в параметре данные. И теперь это сохранение будет корректно отрабатываться.

Использование функций при работе с датами и временем

При работе с датами и временем пользователь может использовать более 20 самых разнообразных функций. И хотя кому-то этого количества может быть слишком много, все они могут использоваться для достижения определенных целей.

Чтобы получить доступ ко всем возможным функциям, необходимо перейти в категорию «Дата и время» группы «Библиотека функций». Мы же рассмотрим только некоторые основные функции, дающие возможность извлекать разные параметры из дат и времени.

ГОД()

Дает возможность получить год, который соответствует определенной дате. Как вы уже знаете, это значение может быть в пределах от 1900 до 9999.

В ячейке 1 видно дату, представленную в формате ДДДД ДД.ММ.ГГГГ чч:мм:cc. Это тот формат, который мы создали ранее. Давайте приведем в качестве примера формулу, которая определяет, сколько лет прошло между двумя датами.

При этом если более внимательно посмотреть, то окажется, что функция не вычислила полностью правильного результата. Причина кроется в том, что она использует только даты в своих вычислениях.

МЕСЯЦ()

С помощью этой функции можно выделить номер месяца, соответствующий определенной дате. Возвращает результат, колеблющийся в пределах от 1 до 12. Это число в свою очередь соответствует номеру месяца.

ДЕНЬ()

Аналогично предыдущим функциям, эта выдает номер дня, в определенной дате. Результат вычислений может колебаться от 1 до 31.

МИНУТЫ()

Функция, возвращающая количество минут в определенной ячейке. Возможные значения, которые возвращаются – от 0 до 59.

ДЕНЬНЕД()

С помощью этой функции можно узнать номер дня недели, который используется в этой дате. Возможные значения от 1 до 7, но стоит учитывать, что отсчет начинается с воскресенья, а не понедельника, как у нас принято.

При этом с помощью второго аргумента эта функция позволяет настроить формат. Например, если передать значение 2 в качестве второго параметра, то можно настроить формат, при котором число 1 означает понедельник, а не воскресенье. Это значительно удобнее для отечественного пользователя.

Если во втором аргументе написать 2, то в нашем случае функция вернет значение 6, что соответствует субботе.

СЕГОДНЯ()

Эта функция очень проста: чтобы она работала, не требуется вводить никаких аргументов. Ею возвращается порядковый номер даты, которая выставлена на компьютере. Если ее применить к ячейке, для которой выставлен формат Общий, то автоматически он будет сконвертирован в формат «Дата».

ТДАТА()

Эта функция также не требует ввода аргументов. Действует таким же образом, как и предыдущая, только с датой и временем. Используется, если надо вставить в ячейку текущую дату и время, которые выставлены в компьютере. И точно так же, как и в предыдущей функции, при применении этой, ячейка автоматически конвертируется в формат даты и времени при условии, что до этого был выставлен формат «Общий».

Как предыдущая, так и эта функция при каждом пересчете листа автоматически изменяются, что дает возможность отображать самое актуальное время и дату. 

Например, такая формула может определить нынешнее время.

=ТДАТА()-СЕГОДНЯ() 

В этом случае формула определит долю суток в десятичном формате. Правда, придется к ячейке, в которую записывается формула, применить формат времени, если нужно отобразить именно время, а не число.

ДАТА()

Эта функция имеет три аргумента, каждый из которых необходимо обязательно ввести. После расчетов этой функцией возвращается порядковый номер даты. Ячейка автоматически конвертируется в формат «Дата», если до этого у нее был «Общий» формат.

Аргумент «День» или «Месяц» можно делать как положительным, так и отрицательным. В первом случае дата увеличивается, а во втором – уменьшается.

Также можно использовать математические операции в аргументах функции ДАТА. Например, эта формула позволяет добавить 1 год 5 месяцев и 17 дней к дате, указанной в ячейке A1.

А такая формула дает возможность превратить текстовую строку в полноценную рабочую дату, которая может использоваться и в других функциях.

ВРЕМЯ()

Точно так же, как и функция ДАТА(), в этой функции есть три обязательных параметра – часы, минуты и секунды. После того, как ее использовать, в результирующей ячейке появится десятичное число, но сама ячейка будет отформатирована в формат «Время», если до этого у нее был формат «Общий».

По своему принципу работы у функции ВРЕМЯ() и ДАТА() очень много чего схожего. Поэтому особого внимания на ней акцентировать нет смысла. 

Важно учесть, что эта функция не способна вернуть время, которое больше 23:59:59. Если получится больший, чем этот, результат, функция автоматически обнуляется

Функции ДАТА() и ВРЕМЯ() могут применяться вместе.

На этом скриншоте ячейка D1, в которой использовались обе эти функции, имеет формат даты и времени. 

Некоторые нюансы, связанные с запуском форматирования

Несколько отвлекаясь от описания команды «format c:», хотелось бы поднять читателям настроение. Есть такой хороший анекдот, когда в службе поддержки раздается телефонный звонок:

— У меня Word не работает, что делать?

— У Вас Word на диске «С»?

— Пишите: «format c:» и жмите Enter.

— Еще и как! Самое действенное средство!

Но это, конечно же, шутка. Дело в том, что в загруженной (работающей) системе, как бы вы ни старались, форматирование диска (системного раздела) запустить невозможно. Windows просто не даст этого сделать (ну не будет же система давать разрешение на самоуничтожение?).

Таким образом, вопрос того, как сделать «format c:», сводится только к тому, чтобы изначально загрузиться со съемного носителя, после чего вызвать консоль и использовать команду уже в ее среде. Иногда, правда, можно встретить и нестандартные ситуации.

Например, у пользователя инсталлировано две Windows-системы разных модификаций. Одна находится на диске «С», вторая установлена на диске «D». Форматирование раздела «С» можно произвести, если загрузиться в среде второй системы с вызовом командной консоли именно в ней.

То же самое можно наблюдать и в случае, когда на компьютере установлена какая-то виртуальная машина с тестируемой «операционкой», представляющая собой полное подобие реального компьютера, но в виртуальном виде.

Проблематика и её решение

Изначально GLTF формат был задуман Khronos Group как решение для передачи 3D контента по интернету и был призван минимизировать количество импортеров и конвертеров, разные виды которых создаются при работе с графическими API.

На текущий момент GLTF и его бинарный брат GLB используются как унифицированные форматы и в CAD программах (Autodesk Maya, Blender и т. д.), в игровых движках (Unreal Engine, Unity и прочих), AR/VR приложениях, соц. сетях и т.д.

Представители Khronos Group утрвеждают следующее:

  1. GLTF универсален — может использоваться одинаково хорошо как для простой геометрии, так и для сложных сцен с анимацией, различными материалами и т. д.
  2. Он достаточно компактен. Да, это можно оспорить, ведь всё зависит от от алгоритмов конвертации и я лично знаю случаи, когда GLTF был больше размером, чем оригинальный, к примеру, FBX файл, но в большинстве случаев это так.
  3. Простота анализа данных – это корневой плюс данного формата. GLTF иерархия использует JSON, а геометрия хранится в бинарном виде, никакого декодинга не нужно!

Инструктор. Прототип инструмента создания быстрых пользовательских инструкций

Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций.
Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7).

«Инструктор» не требует никакой установки и дополнительных библиотек!
Это означает, что инструмент будет работать и на домашнем ПК и на «чужом ноутбуке» и на терминальном win-сервере у заказчика, где ваши права сильно ограничены.
Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью…

1 стартмани

15.02.2019   
13563   
42   
ROM_NN   

8
   

Выделение и копирование

Табличный редактор платформы 1С:Предприятие не позволяет осуществлять выделение прямоугольных областей, в которые входят несколько строк с различными форматами. Для копирования части документа, в которой присутствует более чем один формат строк, следует выделять строки целиком. Для этого можно с помощью мыши выделить заголовки строк, которые необходимо скопировать, либо воспользоваться комбинацией клавиш Alt+Shift+Вверх/Вниз.

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

Вся выше сказанная информация о копировании строк с установленным форматом актуальна и для программного вывода строк в табличный документ — выводимые строки, которые в исходном документе имели одинаковый формат строк, будут выведены в результирующий документ с одним форматом строк.

Описание формата внутреннего представления данных 1С в контексте обмена данными +200 –

Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на «внутреннюю кухню» платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа.

Так, именно на использовании внутреннего представления был построен алгоритм «быстрого массива», который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно «на лету» программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

1 стартмани

Как отформатировать диск через командную строку с помощью команды format

В инструменте Командная строка (CMD) имеется команда «format», с помощью которой выполняется форматирование диска в указанную файловую систему. В работающей операционной системе, с помощью данной команды получится отформатировать разделы на диске, на которых не установлена Windows.

Если на жестком диске имеется несколько разделов (система находится на диске «C»), например, диски «D» и «E», которые необходимо отформатировать, то при помощи команды «format» сначала проводится форматирование диска «D», а затем диска «E». В случае подключения к компьютеру другого дополнительного жесткого диска, этот диск можно отформатировать полностью, потому что на нем нет операционной системы.

Вам также может быть интересно:

  • Команды командной строки Windows: список
  • Как запустить командную строку от имени администратора — 7 способов

1 вариант. Выполняем форматирование диска через командную строку Windows (стандартный вариант):

  1. Запустите командную строку от имени администратора.
  2. Введите команду для форматирования диска:
format d: /FS:NTFS

В этой команде «d» — имя локального диска на компьютере, который нужно отформатировать. «FS:NTFS» — выбранная файловая система, вместо файловой системы «NTFS» можно выбрать другую подходящую файловую систему. В подавляющем большинстве случаев, происходит выбор между файловыми системами «NTFS» и «FAT32».

  1. Введите метку тома для диска, который будет отформатирован.

Присвойте метку тома (имя диска) для диска. Можно выбрать любое удобное имя, которое можно поменять в дальнейшем из настроек Windows.

  1. Далее необходимо нажать на клавишу «Y» для согласия с условиями форматирования диска, а затем нажать на клавишу «Enter». Вас предупреждают, что все данные на диске будут уничтожены.

После этого начнется процесс форматирования диска.

2 вариант. Если добавить дополнительные ключи в команду «format», можно настроить параметры форматирования.

  1. Запустите командную строку от имени администратора.
  2. В окне интерпретатора командной строки выполните команду:
format d: /FS:NTFS /x /q

В данную команду добавлены ключи: /x — отключение тома, /q — быстрое форматирование. Первый ключ отключает внешнее воздействие на диск от работающей операционной системы, чтобы все прошло удачно. Второй ключ запускает быстрое форматирование. При быстром форматировании Windows помечает все пространство диска как неиспользованное. Данные остаются на диске, операционная система их не видит, на это место постепенно записываются новые файлы. При обычном, полном форматировании все данные на диске удаляются, но этот процесс занимает гораздо больше времени, чем быстрое форматирование.

  1. Для того, чтобы приступить к форматированию нажмите на клавишу «Y».

После завершению процесса, в окне командной строки появится информация об окончании данной операции.

Мы рассмотрели вариант форматирования в командной строке отдельных разделов жесткого диска, или другого жесткого диска, на котором не установлена Windows.

Какую версию программы выбрать?

Сегодня имеется несколько версий SDFormatter (32/64-bit), среди которых чаще всего можно встретить выпуски 3.1, 4.0 и 5.0. Несмотря на минимальные различия в обновлениях, касающиеся в основном пользовательского интерфейса, настоятельно рекомендуется использовать последнюю версию продукта. Именно в ней разработчики смогли добиться наиболее стабильных показателей работы при запуске на современных ОС Windows 7, 8, 10. В данной статье рассматривается последний выпуск программы – 5.0, а также размещена подробная инструкция по его правильной эксплуатации и описание настроек. К сожалению, программа для форматирования SD карт не поставляется на русском языке, однако, как показывает практика, благодаря высокой простоте использования, русская версия вряд ли понадобится.

Что умеет делать программа?

  1. Производить комплексную очистку виртуального пространства памяти;
  2. Полностью удалять различные вредоносные файлы вирусов;
  3. Восстанавливать поврежденные участки памяти;
  4. Возобновлять работу устройства в случае неисправности.

В зависимости от вида подключаемого носителя, SDFormatter подбирает соответствующий алгоритм для обработки его внутренней памяти. Процедура форматирования совершенно безопасна для оборудования и очень часто становится вынужденной мерой по обеспечению его нормального функционирования. Единственным минусом является полная потеря всех существующих файлов на носителе, которые не подлежат восстановлению. Поэтому рекомендуется предварительно скопировать их в другое надежное место при возможности.

Exec — Выполнение кода, консоль запросов и не только!

Незаменимый инструмент администратора БД и программиста:
Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме «ОбменДанными.Загрузка = Истина»; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!

5 стартмани

10.11.2015   
41318   
75   
catsam   

11
   

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий