Временные таблицы 1С

Временные таблицы часто используются как для реализации сложных запросов, так и для их оптимизации.Читать далее →

Загрузка данных из Excel в MySQL с помощью PHP

Не так давно появилась задача — загрузить данные из Ecxel файла в базу сайта, и реализовать механизм так, чтобы быстро можно было обновлять эти данные, т.е. загружать новый файл. Решил попробовать парсер Excel-файлов phpExcelReader, но сколько не бился с ним, получал ошибку типа «… is not readable». Поэтому решил использовать библиотеку PHPExcel.

Загружать будем прайс-лист:

Артикул Наименование Количество Цена Валюта Единица
123456 Апельсин 20 50000 руб килограмм
123457 Мандарин 20 54000 руб килограмм
123458 Яблоко 50 23500 руб килограмм

В таблицу со структурой:

id article name
quantity
price
currency
unit

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

Файл excel можно загрузить в нужную папку на сервере, например uploads, через ftp сервер или создать страницу загрузки с <input type="file" name="upload_file". Для меня конечно второй вариант был в приоритете (как реализовать загрузку файла на сервер я писал в статье «Отправка формы и файлов через Ajax»).

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

 

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

На CyberForum.ru нашел перевод документации к PHPExcel, который сделал SrgKord скачать можно тут: Документация разработчика PHPExcel (RUS).7z

Как перебрать все элементы из определенной группы справочника

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

Вариант 1

Вариант 2

Вариант 3 (с иерархией)

Вариант 4 (с иерархией)

Добавление записей в регистр сведений

Как добавить записи в независимый регистр сведений?
Для добавления отдельной записи в регистр сведений, не подчиненный регистратору, можно использовать объект РегистрСведенийМенеджерЗаписи.<имя>.
Например, для того, чтобы в независимый регистр сведений ЗначенияСвойствОбъектов с измерениями Объект, Свойство и ресурсом Значение добавить одну запись, содержащую значение некоторого свойства выбранной номенклатуры, можно использовать следующий код:

В результате выполнения этого кода новая запись будет добавлена в регистр, или, если регистр уже содержит запись с выбранными значениями измерений Объект и Свойство, — существующая запись будет заменена новой.
Если требуется добавить несколько записей в регистр сведений, можно использовать объект РегистрСведенийНаборЗаписей.<имя>.
Например, для того, чтобы в тот же самый регистр сведений ЗначенияСвойствОбъектов добавить несколько записей о значениях различных свойств выбранной номенклатуры, можно использовать следующий код (предполагается, что свойства и соответствующие им значения находятся в таблице значений ТаблицаСвойств, сформированной заранее):

В результате выполнения этого кода новые записи будут добавлены в регистр, или, если регистр уже содержит записи с указанным значением измерения Объект (по которому установлен отбор в наборе записей), — существующие записи будут заменены новыми.

Как к полю выбора или к полю списка «прицепить» список значений

Как программно заполнить поле выбора или поле списка из списка значений?Читать далее →

Короткие условия и пример работы с ними

В системе 1С присутствуют сокращенные формы условий, используя знак «?», первая похожа на excel и простое условие которое возвращает значение «Истина» или «Ложь».

Читать далее →

Увеличение изображения по клику

Статья устарела! Более интересное решение тут!

UPD от 04.05.2016 Если у вас нет желания разбираться с кодом, то приглашаю к тестированию моего плагина Litezoom!

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

Итак, предположим у нас есть страничка:

Наведем красоту и пропишем стили для нашей картинки:

Осталось написать скрипт, отвечающий за увеличение картинки:

Вот что у нас получилось

See the Pen VeJmmO by Aleksei (@AmateR) on CodePen.0

Пример полностью:

 

Плавное отображение и скрытие блоков на JQuery

Функция, которая скрывает и показывает элементы страницы:

 

Работа функции: если в стиле блока, id которого передается в функцию как переменная «block», стоит значение параметра «display: none», то этот блок необходимо сделать видимым, иначе скрыть его. Аргумент функции animate — 1000 — задержка анимации в мс.
Пример работы функции:

 

Работа с Word из 1С

Для заключения договоров с контрагентами был разработан договор в Word, который менеджеры заполняли вручную. Была поставлена задача автоматизировать этот процесс.
Для начала потребовалось создать шаблон из документа договора, проще говоря — сохранить уже существующий договор с расширением «Шаблон Word 97-2003 (*.dot)». В местах, где необходима подстановка указываем параметры. Например:

[Организация], именуемое в дальнейшем «Исполнитель», в лице директора [ФИОДиректора], действующей на основании Устава, и [Заказчик], именуемое в дальнейшем «Заказчик», в лице директора [ФИОДиректораЗаказчика]

Где [Организация], [ФИОДиректора], [Заказчик] и [ФИОДиректораЗаказчика] это и есть наши параметры. Параметры можно указывать любым удобным нам способом, например можно вместо [] использовать {} или <>.
Оформленный таким образом документ загружаем в 1С в качестве макета с типом макета – Active document.

Далее в соответствующем обработчике события (например, в обработчике нажатия на кнопку Создать договор) размещается следующий код:

Сортировка массива «Пузырьком»

Функция сортировки массива «МассивДляСортировки» по колонке «НомерСтроки»

Читать далее →