Мобильное приложение на платформе 1с 8.3
Ну вот и я могу писать приложения для мобилок и планшеток Android и iOS.
Собрал небольшое приложение для работы торговых представителей
Регистрирует Заказы, обменивается с серверной базой 1с через web-сервис
Приложение на стадии активной разработки. Больше скриншотов будет чуть позже
Читать далее
Я опять фотограф!
Автоматический тунель до MySQL базы MasterHost
В одном из проектов по обмену 1с — CMS сайт располагался на хостинге Masterhost. Прямой доступ в базу MySQL они не открывают, но можно поднять SSH тунель и через него есть доступ в базу.
Тунель открываю через putty, запускаю с параметрами его через VBS.
Т.о. доступ к базе на хостинге открыт на адресе localhost:3306
После обмена убиваю putty.
Обмен 1с с интернет магазином VirtueMart
Обмен спаравочниками
— Номенклатура,
— Цены,
Выгрузка на сайт остатков товаров
Загрузка в 1С Заказов, установка статусов заказа на сайте из 1С
СМС оповещение
Компилируется!
Волшебная процедура Программное изменение формы элемента
Добавляет на форму элемента закладку, на нее помещает таблицу значений с командной панелью
Программное формирование отчета 1с82
Процедура для программного формирования отчета на СКД, обычные формы
Отчет по нескольким периодам на СКД
Отчет по нескольким периодам на Системе Компановки Данных (СКД)
Формирую из 2х наборов данных
первый набор — Запрос по остаткам
второй набор для вывода периодов продаж, генерируется в процедуре, используя «ОБЪЕДИНИТЬ ВСЕ»
сам отчет можно скачать тут http://infostart.ru/public/142953
часть процедуры для формирования Запроса
Запрос с нарастающим итогом
Запрос формирует таблицу с нарастающим итогом
план такой:
1) взять запрос в котором нужен нарастающий итог
2) поместить его во временную таблицу
3) взять эту таблицу в выборку 2 раза
4) связать таблицы по через «>=»
5) сгруппировать и упорадичить
Хитрый текст запроса
Генерирует таблицу с датами, первая дата задается параметром
в результате получается Таблица дат! Не надо выбирать из не из каких календарей!
Кусок кода Получение параметров соединения с базой
File = ""; Srvr = ""; Ref = ""; СтрокаСоединения = СтрокаСоединенияИнформационнойБазы(); Выполнить(СтрокаСоединения);
Волшебный обмен между базами 1с через XML
В процедурах выгрузки/загрузки создается ФабрикаXDTO из схемы, которая хранится в макете как файл. Файл настроек схемы надо использовать один и тот же в обработках Загрузки/Выгрузки
Из Фабрики создается объект, его заполняю выгружаемыми данными
Фабрику сохраняю в XML
В процедуре загрузки из читаю фабрику из XML и пробегаю по объектам
Настройка СКД в макете Обработки
Иногда лень городить программное заполнение схемы.
Я делаю настройку в режиме предприятия, сохраняю в xml.
Этот xml помещаю в макет как двоичные данные
Потом в коде сохраняю xml из макета в tmp и подставляю ее в СКД ))
Волшебный запрос Проверка параметра
Запрос сам проверяет значение Параметра, иначе пришлось бы городить 2 текста запроса (если есть значение параметра и если нет) или «генерировать» текст запроса кусками.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ДоговорыКонтрагентов.Ссылка |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ВЫБОР | КОГДА &Владелец ССЫЛКА Справочник.Контрагенты | ТОГДА ДоговорыКонтрагентов.Владелец = &Владелец | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &Владелец ССЫЛКА Справочник.Контрагенты | ТОГДА ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора | ИНАЧЕ ИСТИНА | КОНЕЦ | И ДоговорыКонтрагентов.Наименование = &Наименование | И ДоговорыКонтрагентов.Организация = &Организация"; Запрос.УстановитьПараметр("Владелец", Контрагент); Запрос.УстановитьПараметр("Наименование", Наименование); Запрос.УстановитьПараметр("ВидДоговора", ВидДоговора); Запрос.УстановитьПараметр("Организация", Организация); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда Договор = Выборка.Ссылка; Иначе Если Контрагент = Неопределено Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Договор '" + Наименование + "' не найден!"); Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка(); Иначе Договор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); Договор.Владелец = Контрагент; Договор.Наименование = Наименование; Договор.ВидДоговора = ВидДоговора; Договор.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить(); Договор.НалоговыйАгентПоОплате = Истина; Договор.Организация = ОбщегоНазначения.ГоловнаяОрганизация(Организация); Договор.Записать(); Договор = Договор.Ссылка; КонецЕсли; КонецЕсли;