mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
Add 1C (BSL) language support
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -758,3 +758,6 @@ url = https://github.com/austinwagner/sublime-sourcepawn
|
|||||||
[submodule "vendor/grammars/language-asn1"]
|
[submodule "vendor/grammars/language-asn1"]
|
||||||
path = vendor/grammars/language-asn1
|
path = vendor/grammars/language-asn1
|
||||||
url = https://github.com/ajLangley12/language-asn1
|
url = https://github.com/ajLangley12/language-asn1
|
||||||
|
[submodule "vendor/grammars/atom-language-1c-bsl"]
|
||||||
|
path = vendor/grammars/atom-language-1c-bsl
|
||||||
|
url = https://github.com/xDrivenDevelopment/atom-language-1c-bsl.git
|
||||||
|
|||||||
@@ -181,6 +181,9 @@ vendor/grammars/atom-fsharp/:
|
|||||||
- source.fsharp.fsi
|
- source.fsharp.fsi
|
||||||
- source.fsharp.fsl
|
- source.fsharp.fsl
|
||||||
- source.fsharp.fsx
|
- source.fsharp.fsx
|
||||||
|
vendor/grammars/atom-language-1c-bsl:
|
||||||
|
- source.bsl
|
||||||
|
- source.sdbl
|
||||||
vendor/grammars/atom-language-clean:
|
vendor/grammars/atom-language-clean:
|
||||||
- source.clean
|
- source.clean
|
||||||
vendor/grammars/atom-language-purescript/:
|
vendor/grammars/atom-language-purescript/:
|
||||||
|
|||||||
@@ -27,6 +27,15 @@
|
|||||||
#
|
#
|
||||||
# Please keep this list alphabetized. Capitalization comes before lower case.
|
# Please keep this list alphabetized. Capitalization comes before lower case.
|
||||||
|
|
||||||
|
1C Enterprise:
|
||||||
|
type: programming
|
||||||
|
color: "#814CCC"
|
||||||
|
extensions:
|
||||||
|
- .bsl
|
||||||
|
- .os
|
||||||
|
tm_scope: source.bsl
|
||||||
|
ace_mode: text
|
||||||
|
|
||||||
ABAP:
|
ABAP:
|
||||||
type: programming
|
type: programming
|
||||||
color: "#E8274B"
|
color: "#E8274B"
|
||||||
|
|||||||
@@ -0,0 +1,265 @@
|
|||||||
|
&НаСервереБезКонтекста
|
||||||
|
Функция ПолучитьКонтактноеЛицоПоЭлектроннойПочте(ЭлектроннаяПочта)
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ КонтактноеЛицо ИЗ Справочник.Контрагенты ГДЕ ЭлектроннаяПочта = &ЭлектроннаяПочта";
|
||||||
|
Запрос.Параметры.Вставить("ЭлектроннаяПочта", СокрЛП(ЭлектроннаяПочта));
|
||||||
|
Выборка = Запрос.Выполнить().Выбрать();
|
||||||
|
КонтактноеЛицо = "";
|
||||||
|
Если Выборка.Следующий() Тогда
|
||||||
|
КонтактноеЛицо = Выборка.КонтактноеЛицо;
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат КонтактноеЛицо;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаСервереБезКонтекста
|
||||||
|
Функция ПолучитьКонтактноеЛицоПоПолучателю(Получатель)
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ КонтактноеЛицо ИЗ Справочник.Контрагенты ГДЕ Ссылка = &Получатель";
|
||||||
|
Запрос.Параметры.Вставить("Получатель", Получатель);
|
||||||
|
Выборка = Запрос.Выполнить().Выбрать();
|
||||||
|
КонтактноеЛицо = "";
|
||||||
|
Если Выборка.Следующий() Тогда
|
||||||
|
КонтактноеЛицо = Выборка.КонтактноеЛицо;
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат КонтактноеЛицо;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаСервереБезКонтекста
|
||||||
|
Процедура ДобавитьПолучателей(Получатель, Получатели)
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ ЭлектроннаяПочта ИЗ Справочник.Контрагенты ГДЕ Ссылка ";
|
||||||
|
Если ТипЗнч(Получатели) = Тип("Массив") Тогда
|
||||||
|
Запрос.Текст = Запрос.Текст + "В (&Получатели)";
|
||||||
|
Иначе
|
||||||
|
Запрос.Текст = Запрос.Текст + "= &Получатели";
|
||||||
|
КонецЕсли;
|
||||||
|
Запрос.Параметры.Вставить("Получатели", Получатели);
|
||||||
|
Выборка = Запрос.Выполнить().Выбрать();
|
||||||
|
Пока Выборка.Следующий() Цикл
|
||||||
|
Если Получатель <> "" Тогда
|
||||||
|
Получатель = Получатель + "; ";
|
||||||
|
КонецЕсли;
|
||||||
|
Получатель = Получатель + Выборка.ЭлектроннаяПочта;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||||
|
Если Параметры.Ключ.Пустая() Тогда
|
||||||
|
Заголовок = "Исходящее письмо (Создание)";
|
||||||
|
Объект.Дата = ТекущаяДата();
|
||||||
|
ПоШаблону = Параметры.Свойство("ПоШаблону");
|
||||||
|
ВходящееПисьмо = Параметры.ВходящееПисьмо;
|
||||||
|
Если ПоШаблону = Истина Тогда
|
||||||
|
Элементы.ЗаполнитьПоШаблону.Видимость = Истина;
|
||||||
|
РаботаСПочтой.ЗаполнитьПисьмоПоШаблону(Объект, Содержимое);
|
||||||
|
ИначеЕсли Не ВходящееПисьмо.Пустая() Тогда
|
||||||
|
РаботаСПочтой.ЗаполнитьОтветНаПисьмо(ВходящееПисьмо, Объект, Содержимое);
|
||||||
|
КонецЕсли;
|
||||||
|
Адресаты = Параметры.Адресаты;
|
||||||
|
Если Адресаты <> Неопределено Тогда
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ
|
||||||
|
| Контрагенты.ЭлектроннаяПочта
|
||||||
|
|ИЗ
|
||||||
|
| Справочник.Контрагенты КАК Контрагенты
|
||||||
|
|ГДЕ
|
||||||
|
| Контрагенты.Ссылка В(&Адресаты)
|
||||||
|
| И Контрагенты.ЭлектроннаяПочта <> """"";
|
||||||
|
Запрос.УстановитьПараметр("Адресаты", Адресаты);
|
||||||
|
Получатель = "";
|
||||||
|
Выборка = Запрос.Выполнить().Выбрать();
|
||||||
|
Пока Выборка.Следующий() Цикл
|
||||||
|
Если Получатель <> "" Тогда
|
||||||
|
Получатель = Получатель + "; ";
|
||||||
|
КонецЕсли;
|
||||||
|
Получатель = Получатель + Выборка.ЭлектроннаяПочта;
|
||||||
|
КонецЦикла;
|
||||||
|
Объект.Получатель = Получатель;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||||
|
Содержимое = ТекущийОбъект.Содержимое.Получить();
|
||||||
|
Заголовок = ТекущийОбъект.Наименование + " (Исходящее письмо)";
|
||||||
|
Если РаботаСПочтой.ПисьмоОтправлено(ТекущийОбъект.Ссылка) Тогда
|
||||||
|
Заголовок = Заголовок + " - Отправлено";
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
|
||||||
|
ТекущийОбъект.Содержимое = Новый ХранилищеЗначения(Содержимое, Новый СжатиеДанных());
|
||||||
|
ТекущийОбъект.Текст = Содержимое.ПолучитьТекст();
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Функция ОтправитьПисьмо(Ошибка)
|
||||||
|
Если Не Записать() Тогда
|
||||||
|
Ошибка = "ОшибкаЗаписи";
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
Если Не РаботаСПочтой.ОтправитьПисьмо(Объект.Ссылка) Тогда
|
||||||
|
Ошибка = "ОшибкаОтправки";
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
Заголовок = Заголовок + " - Отправлено";
|
||||||
|
Возврат Истина;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Функция ОтправитьПисьмоКлиент()
|
||||||
|
Ошибка = "";
|
||||||
|
Если Не ОтправитьПисьмо(Ошибка) Тогда
|
||||||
|
Если Ошибка = "ОшибкаОтправки" Тогда
|
||||||
|
Кнопки = Новый СписокЗначений;
|
||||||
|
Кнопки.Добавить(1, "Настроить почту");
|
||||||
|
Кнопки.Добавить(2, "Закрыть");
|
||||||
|
|
||||||
|
Оп = Новый ОписаниеОповещения(
|
||||||
|
"ОтправитьПисьмоКлиентВопросЗавершение",
|
||||||
|
ЭтотОбъект);
|
||||||
|
ПоказатьВопрос(Оп,
|
||||||
|
"Не указаны настройки интернет почты!",
|
||||||
|
Кнопки, , 1);
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Объект.Ссылка);
|
||||||
|
ПоказатьОповещениеПользователя("Письмо отправлено", НавигационнаяСсылка, Объект.Наименование);
|
||||||
|
ОповеститьОбИзменении(Объект.Ссылка);
|
||||||
|
Возврат Истина;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОтправитьПисьмоКлиентВопросЗавершение(Результат, Параметры) Экспорт
|
||||||
|
Если Результат = 1 Тогда
|
||||||
|
ОткрытьФорму("ОбщаяФорма.НастройкаПочты");
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура Отправить(Команда)
|
||||||
|
ОтправитьПисьмоКлиент();
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОтправитьИЗакрыть(Команда)
|
||||||
|
Если Не ОтправитьПисьмоКлиент() Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
Закрыть();
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ВставитьСтрокуВТекущуюПозицию(Поле, Документ, Строка)
|
||||||
|
Перем Начало, Конец;
|
||||||
|
Поле.ПолучитьГраницыВыделения(Начало, Конец);
|
||||||
|
Позиция = Документ.ПолучитьПозициюПоЗакладке(Начало);
|
||||||
|
Документ.Удалить(Начало, Конец);
|
||||||
|
Начало = Документ.ПолучитьЗакладкуПоПозиции(Позиция);
|
||||||
|
Документ.Вставить(Начало, Строка);
|
||||||
|
Позиция = Позиция + СтрДлина(Строка);
|
||||||
|
Закладка = Документ.ПолучитьЗакладкуПоПозиции(Позиция);
|
||||||
|
Поле.УстановитьГраницыВыделения(Закладка, Закладка);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ВставитьКонтактноеЛицо(Команда)
|
||||||
|
Если Объект.Контрагент.Пустая() Тогда
|
||||||
|
Сообщить("Выберите контрагента");
|
||||||
|
Иначе
|
||||||
|
КонтактноеЛицо = ПолучитьКонтактноеЛицоПоПолучателю(Объект.Контрагент);
|
||||||
|
ВставитьСтрокуВТекущуюПозицию(Элементы.Содержимое, Содержимое, КонтактноеЛицо + " ");
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
|
||||||
|
Заголовок = ТекущийОбъект.Наименование + " (Исходящее письмо)";
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура КонтрагентПриИзменении(Элемент)
|
||||||
|
ДобавитьПолучателей(Объект.Получатель, Объект.Контрагент);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ВыделитьВажное(Команда)
|
||||||
|
Перем Начало, Конец;
|
||||||
|
ВсеВажное = Истина;
|
||||||
|
Элементы.Содержимое.ПолучитьГраницыВыделения(Начало, Конец);
|
||||||
|
Если Начало = Конец Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НаборТекстовыхЭлементов = Новый Массив();
|
||||||
|
Для Каждого ТекстовыйЭлемент Из Содержимое.СформироватьЭлементы(Начало, Конец) Цикл
|
||||||
|
Если Тип(ТекстовыйЭлемент) = Тип("ТекстФорматированногоДокумента") Тогда
|
||||||
|
НаборТекстовыхЭлементов.Добавить(ТекстовыйЭлемент);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого ТекстовыйЭлемент Из НаборТекстовыхЭлементов Цикл
|
||||||
|
Если ТекстовыйЭлемент.Шрифт.Жирный <> Истина И
|
||||||
|
ТекстовыйЭлемент.ЦветТекста <> Новый Цвет(255, 0, 0) Тогда
|
||||||
|
ВсеВажное = Ложь;
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого ТекстовыйЭлемент Из НаборТекстовыхЭлементов Цикл
|
||||||
|
ТекстовыйЭлемент.Шрифт = Новый Шрифт(ТекстовыйЭлемент.Шрифт, , , Не ВсеВажное);
|
||||||
|
ТекстовыйЭлемент.ЦветТекста = Новый Цвет(?(ВсеВажное, 0, 255), 0, 0);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗаполнитьПоШаблону(Команда)
|
||||||
|
Если Объект.Контрагент.Пустая() Тогда
|
||||||
|
Сообщить("Выберите контрагента");
|
||||||
|
Иначе
|
||||||
|
НайтиИЗаменить("[Контрагент]", Объект.Контрагент);
|
||||||
|
НайтиИЗаменить("[КонтактноеЛицо]", ПолучитьКонтактноеЛицоПоПолучателю(Объект.Контрагент));
|
||||||
|
КонецЕсли;
|
||||||
|
НайтиИЗаменить("[ДатаПисьма]", Объект.Дата);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура НайтиИЗаменить(СтрокаДляПоиска, СтрокаДляЗамены)
|
||||||
|
Перем ВставленныйТекст, ШрифтОформления, ЦветТекстаОформления, ЦветФонаОформления, НавигационнаяСсылкаОформления;
|
||||||
|
РезультатПоиска = Содержимое.НайтиТекст(СтрокаДляПоиска);
|
||||||
|
Пока ((РезультатПоиска <> Неопределено) И (РезультатПоиска.ЗакладкаНачала <> Неопределено) И (РезультатПоиска.ЗакладкаКонца <> Неопределено)) Цикл
|
||||||
|
ПозицияНачалаСледующегоЦиклаПоиска = Содержимое.ПолучитьПозициюПоЗакладке(РезультатПоиска.ЗакладкаНачала) + СтрДлина(СтрокаДляЗамены);
|
||||||
|
МассивЭлементовДляОформления = Содержимое.ПолучитьЭлементы(РезультатПоиска.ЗакладкаНачала, РезультатПоиска.ЗакладкаКонца);
|
||||||
|
Для Каждого ЭлементДляОформления Из МассивЭлементовДляОформления Цикл
|
||||||
|
Если Тип(ЭлементДляОформления) = Тип("ТекстФорматированногоДокумента") Тогда
|
||||||
|
ШрифтОформления = ЭлементДляОформления.Шрифт;
|
||||||
|
ЦветТекстаОформления = ЭлементДляОформления.ЦветТекста;
|
||||||
|
ЦветФонаОформления = ЭлементДляОформления.ЦветФона;
|
||||||
|
НавигационнаяСсылкаОформления = ЭлементДляОформления.НавигационнаяССылка;
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
Содержимое.Удалить(РезультатПоиска.ЗакладкаНачала, РезультатПоиска.ЗакладкаКонца);
|
||||||
|
ВставленныйТекст = Содержимое.Вставить(РезультатПоиска.ЗакладкаНачала, СтрокаДляЗамены);
|
||||||
|
Если ВставленныйТекст <> Неопределено И ШрифтОформления <> Неопределено Тогда
|
||||||
|
ВставленныйТекст.Шрифт = ШрифтОформления;
|
||||||
|
КонецЕсли;
|
||||||
|
Если ВставленныйТекст <> Неопределено И ЦветТекстаОформления <> Неопределено Тогда
|
||||||
|
ВставленныйТекст.ЦветТекста = ЦветТекстаОформления;
|
||||||
|
КонецЕсли;
|
||||||
|
Если ВставленныйТекст <> Неопределено И ЦветФонаОформления <> Неопределено Тогда
|
||||||
|
ВставленныйТекст.ЦветФона = ЦветФонаОформления;
|
||||||
|
КонецЕсли;
|
||||||
|
Если ВставленныйТекст <> Неопределено И НавигационнаяСсылкаОформления <> Неопределено Тогда
|
||||||
|
ВставленныйТекст.НавигационнаяССылка = НавигационнаяСсылкаОформления;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РезультатПоиска = Содержимое.НайтиТекст(СтрокаДляПоиска, Содержимое.ПолучитьЗакладкуПоПозиции(ПозицияНачалаСледующегоЦиклаПоиска));
|
||||||
|
КонецЦикла;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
&НаСервере
|
||||||
|
Функция ПечатнаяФорма(ПараметрКоманды)
|
||||||
|
ТабличныйДокумент = Новый ТабличныйДокумент;
|
||||||
|
ТабличныйДокумент.ОтображатьСетку = Истина;
|
||||||
|
ТабличныйДокумент.ОтображатьЗаголовки = Истина;
|
||||||
|
|
||||||
|
Сформирован = Ложь;
|
||||||
|
ТабМакет = Справочники.Товары.ПолучитьМакет("МакетПрайсЛиста");
|
||||||
|
|
||||||
|
Шапка = ТабМакет.ПолучитьОбласть("Шапка");
|
||||||
|
ТабличныйДокумент.Вывести(Шапка);
|
||||||
|
|
||||||
|
ОбластьНоменклатура = ТабМакет.ПолучитьОбласть("ОбластьНоменклатура");
|
||||||
|
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ
|
||||||
|
| Товары.Код КАК Код,
|
||||||
|
| Товары.Наименование КАК Наименование,
|
||||||
|
| Товары.Артикул КАК Артикул,
|
||||||
|
| Товары.ФайлКартинки КАК Картинка,
|
||||||
|
| Товары.Описание КАК Описание,
|
||||||
|
| Товары.Вид КАК Вид,
|
||||||
|
| ЦеныТоваров.Цена КАК Цена
|
||||||
|
|ИЗ
|
||||||
|
| РегистрСведений.ЦеныТоваров КАК ЦеныТоваров
|
||||||
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товары
|
||||||
|
| ПО ЦеныТоваров.Товар = Товары.Ссылка
|
||||||
|
|ГДЕ
|
||||||
|
| Товары.ЭтоГруппа = ЛОЖЬ
|
||||||
|
| И ЦеныТоваров.ВидЦен = &ВидЦен
|
||||||
|
|
|
||||||
|
|УПОРЯДОЧИТЬ ПО
|
||||||
|
| Вид,
|
||||||
|
| Товары.Родитель.Код,
|
||||||
|
| Код";
|
||||||
|
|
||||||
|
Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.НайтиПоНаименованию("Розничная"));
|
||||||
|
|
||||||
|
Выборка = Запрос.Выполнить().Выбрать();
|
||||||
|
Пока Выборка.Следующий() Цикл
|
||||||
|
ОбластьНоменклатура.Параметры.Заполнить(Выборка);
|
||||||
|
|
||||||
|
Описание = "";
|
||||||
|
|
||||||
|
Чтение = Новый ЧтениеHTML();
|
||||||
|
Чтение.УстановитьСтроку(Выборка.Описание);
|
||||||
|
|
||||||
|
ДокDOM = Новый ПостроительDOM();
|
||||||
|
HTML = ДокDOM.Прочитать(Чтение);
|
||||||
|
|
||||||
|
Если Не HTML.ЭлементДокумента = Неопределено Тогда
|
||||||
|
Для Каждого Узел из HTML.ЭлементДокумента.ДочерниеУзлы Цикл
|
||||||
|
Если Узел.ИмяУзла = "body" Тогда
|
||||||
|
Для Каждого ЭлементОписания из Узел.ДочерниеУзлы Цикл
|
||||||
|
Описание = Описание + ЭлементОписания.ТекстовоеСодержимое;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
ОбластьНоменклатура.Параметры.Описание = Описание;
|
||||||
|
|
||||||
|
Если (Выборка.Картинка <> Null) Тогда
|
||||||
|
ОбластьНоменклатура.Параметры.ПараметрКартинки = Новый Картинка(Выборка.Картинка.ДанныеФайла.Получить());
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТабличныйДокумент.Вывести(ОбластьНоменклатура, Выборка.Уровень());
|
||||||
|
Сформирован = Истина;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если Сформирован Тогда
|
||||||
|
Возврат ТабличныйДокумент;
|
||||||
|
Иначе
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
|
||||||
|
ТабличныйДокумент = ПечатнаяФорма(ПараметрКоманды);
|
||||||
|
|
||||||
|
Если ТабличныйДокумент <> Неопределено Тогда
|
||||||
|
ТабличныйДокумент.Показать();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
// Процедура на основании анализа типа данных заменяет их на данные, удаляющие
|
||||||
|
// информацию из узла в котором их не должно быть
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Данные – Объект, набор записей,... который нужно преобразовать
|
||||||
|
//
|
||||||
|
Процедура УдалениеДанных(Данные)
|
||||||
|
|
||||||
|
// Получаем объект описания метаданного, соответствующий данным
|
||||||
|
ОбъектМетаданных = ?(ТипЗнч(Данные) = Тип("УдалениеОбъекта"), Данные.Ссылка.Метаданные(), Данные.Метаданные());
|
||||||
|
// Проверяем тип, интересуют только те типы, которые реализованы на мобильной платформе
|
||||||
|
Если Метаданные.Справочники.Содержит(ОбъектМетаданных)
|
||||||
|
ИЛИ Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
|
||||||
|
|
||||||
|
// Перенос удаления объекта для объектных
|
||||||
|
Данные = Новый УдалениеОбъекта(Данные.Ссылка);
|
||||||
|
|
||||||
|
ИначеЕсли Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных)
|
||||||
|
ИЛИ Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных)
|
||||||
|
ИЛИ Метаданные.Последовательности.Содержит(ОбъектМетаданных) Тогда
|
||||||
|
|
||||||
|
// Очищаем данные
|
||||||
|
Данные.Очистить();
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Функция формирует пакет обмена, который будет отправлен узлу "УзелОбмена"
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// УзелОбмена – узел плана обмена "мобильные", с которым осуществляется обмен
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// сформированный пакет, помещенный в хранилище значения
|
||||||
|
Функция СформироватьПакетОбмена(УзелОбмена) Экспорт
|
||||||
|
|
||||||
|
ЗаписьXML = Новый ЗаписьXML;
|
||||||
|
|
||||||
|
ЗаписьXML.УстановитьСтроку("UTF-8");
|
||||||
|
ЗаписьXML.ЗаписатьОбъявлениеXML();
|
||||||
|
|
||||||
|
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
|
||||||
|
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
|
||||||
|
|
||||||
|
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
|
||||||
|
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data");
|
||||||
|
|
||||||
|
ТипДанныхУдаления = Тип("УдалениеОбъекта");
|
||||||
|
|
||||||
|
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
|
||||||
|
Пока ВыборкаИзменений.Следующий() Цикл
|
||||||
|
|
||||||
|
Данные = ВыборкаИзменений.Получить();
|
||||||
|
|
||||||
|
// Если перенос данных не нужен, то, возможно, необходимо записать удаление данных
|
||||||
|
Если Не ОбменМобильныеПереопределяемый.НуженПереносДанных(Данные, УзелОбмена) Тогда
|
||||||
|
|
||||||
|
// Получаем значение с возможным удалением данных
|
||||||
|
УдалениеДанных(Данные);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Записываем данные в сообщение
|
||||||
|
ОбменМобильныеПереопределяемый.ЗаписатьДанные(ЗаписьXML, Данные);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ЗаписьСообщения.ЗакончитьЗапись();
|
||||||
|
|
||||||
|
Возврат Новый ХранилищеЗначения(ЗаписьXML.Закрыть(), Новый СжатиеДанных(9));
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Процедура вносит в информационную базу данные, которые присланы из узла "УзелОбмена"
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// УзелОбмена – узел плана обмена "мобильные", с которым осуществляется обмен
|
||||||
|
// ДанныеОбмена - пакет обмена полученный из узла УзелОбмена, помещен в ХранилищеЗначения
|
||||||
|
//
|
||||||
|
Процедура ПринятьПакетОбмена(УзелОбмена, ДанныеОбмена) Экспорт
|
||||||
|
|
||||||
|
ЧтениеXML = Новый ЧтениеXML;
|
||||||
|
ЧтениеXML.УстановитьСтроку(ДанныеОбмена.Получить());
|
||||||
|
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
|
||||||
|
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
|
||||||
|
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель,ЧтениеСообщения.НомерПринятого);
|
||||||
|
|
||||||
|
НачатьТранзакцию();
|
||||||
|
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
|
||||||
|
|
||||||
|
Данные = ОбменМобильныеПереопределяемый.ПрочитатьДанные(ЧтениеXML);
|
||||||
|
|
||||||
|
Если Не Данные = Неопределено Тогда
|
||||||
|
|
||||||
|
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
|
||||||
|
Данные.ОбменДанными.Загрузка = Истина;
|
||||||
|
|
||||||
|
Данные.Записать();
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
ЗафиксироватьТранзакцию();
|
||||||
|
|
||||||
|
ЧтениеСообщения.ЗакончитьЧтение();
|
||||||
|
ЧтениеXML.Закрыть();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
302
samples/1C Enterprise/Document.РасходТовара.ObjectModule.bsl
Normal file
302
samples/1C Enterprise/Document.РасходТовара.ObjectModule.bsl
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ПРОЦЕДУРЫ И ФУНКЦИИ
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Формирование печатной формы документа
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
// Параметры:
|
||||||
|
|
||||||
|
// Нет.
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
|
||||||
|
// ТабличныйДокумент - Сформированный табличный документ.
|
||||||
|
|
||||||
|
Процедура ПечатнаяФорма(ТабличныйДокумент) Экспорт
|
||||||
|
|
||||||
|
|
||||||
|
Макет = Документы.РасходТовара.ПолучитьМакет("МакетПечати");
|
||||||
|
|
||||||
|
|
||||||
|
// Заголовок
|
||||||
|
|
||||||
|
Область = Макет.ПолучитьОбласть("Заголовок");
|
||||||
|
|
||||||
|
ТабличныйДокумент.Вывести(Область);
|
||||||
|
|
||||||
|
|
||||||
|
// Шапка
|
||||||
|
|
||||||
|
Шапка = Макет.ПолучитьОбласть("Шапка");
|
||||||
|
|
||||||
|
Шапка.Параметры.Заполнить(ЭтотОбъект);
|
||||||
|
|
||||||
|
ТабличныйДокумент.Вывести(Шапка);
|
||||||
|
|
||||||
|
|
||||||
|
// Товары
|
||||||
|
|
||||||
|
Область = Макет.ПолучитьОбласть("ТоварыШапка");
|
||||||
|
|
||||||
|
ТабличныйДокумент.Вывести(Область);
|
||||||
|
|
||||||
|
ОбластьТовары = Макет.ПолучитьОбласть("Товары");
|
||||||
|
|
||||||
|
|
||||||
|
Для каждого ТекСтрокаТовары Из Товары Цикл
|
||||||
|
|
||||||
|
|
||||||
|
ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
|
||||||
|
|
||||||
|
ТабличныйДокумент.Вывести(ОбластьТовары);
|
||||||
|
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
// Формирование печатной формы документа
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Нет.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// ТабличныйДокумент - Сформированный табличный документ.
|
||||||
|
Процедура Пересчитать() Экспорт
|
||||||
|
|
||||||
|
Для каждого ТекСтрокаТовары Из Товары Цикл
|
||||||
|
|
||||||
|
ТекСтрокаТовары.Сумма = ТекСтрокаТовары.Количество * ТекСтрокаТовары.Цена;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ОБРАБОТЧИКИ СОБЫТИЙ ОБЪЕКТА
|
||||||
|
|
||||||
|
|
||||||
|
Процедура ОбработкаПроведения(Отказ, Режим)
|
||||||
|
|
||||||
|
// Формирование движений регистров накопления ТоварныеЗапасы и Продажи.
|
||||||
|
Движения.ТоварныеЗапасы.Записывать = Истина;
|
||||||
|
Движения.Продажи.Записывать = Истина;
|
||||||
|
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
|
||||||
|
Движения.ТоварныеЗапасы.БлокироватьДляИзменения = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Создадим запрос, чтобы получать информацию об услугах
|
||||||
|
Запрос = Новый Запрос("ВЫБРАТЬ
|
||||||
|
| ТоварыВДокументе.НомерСтроки КАК НомерСтроки
|
||||||
|
|ИЗ
|
||||||
|
| Документ.РасходТовара.Товары КАК ТоварыВДокументе
|
||||||
|
|ГДЕ
|
||||||
|
| ТоварыВДокументе.Ссылка = &Ссылка
|
||||||
|
| И ТоварыВДокументе.Товар.Вид = ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Услуга)");
|
||||||
|
|
||||||
|
Запрос.УстановитьПараметр("Ссылка", Ссылка);
|
||||||
|
РезультатУслуги = Запрос.Выполнить().Выгрузить();
|
||||||
|
РезультатУслуги.Индексы.Добавить("НомерСтроки");
|
||||||
|
|
||||||
|
Для каждого ТекСтрокаТовары Из Товары Цикл
|
||||||
|
|
||||||
|
Строка = РезультатУслуги.Найти(ТекСтрокаТовары.НомерСтроки, "НомерСтроки");
|
||||||
|
Если Строка = Неопределено Тогда
|
||||||
|
|
||||||
|
// Не услуга
|
||||||
|
Движение = Движения.ТоварныеЗапасы.Добавить();
|
||||||
|
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
|
||||||
|
Движение.Период = Дата;
|
||||||
|
Движение.Товар = ТекСтрокаТовары.Товар;
|
||||||
|
Движение.Склад = Склад;
|
||||||
|
Движение.Количество = ТекСтрокаТовары.Количество;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Движение = Движения.Продажи.Добавить();
|
||||||
|
Движение.Период = Дата;
|
||||||
|
Движение.Товар = ТекСтрокаТовары.Товар;
|
||||||
|
Движение.Покупатель = Покупатель;
|
||||||
|
Движение.Количество = ТекСтрокаТовары.Количество;
|
||||||
|
Движение.Сумма = ТекСтрокаТовары.Сумма;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
// Формирование движения регистра накопления Взаиморасчеты.
|
||||||
|
Движения.Взаиморасчеты.Записывать = Истина;
|
||||||
|
Движение = Движения.Взаиморасчеты.Добавить();
|
||||||
|
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
|
||||||
|
Движение.Период = Дата;
|
||||||
|
Движение.Контрагент = Покупатель;
|
||||||
|
Движение.Валюта = Валюта;
|
||||||
|
|
||||||
|
Если Валюта.Пустая() Тогда
|
||||||
|
Движение.Сумма = Товары.Итог("Сумма");
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Курс = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Новый Структура("Валюта", Валюта)).Курс;
|
||||||
|
|
||||||
|
Если Курс = 0 Тогда
|
||||||
|
Движение.Сумма = Товары.Итог("Сумма");
|
||||||
|
Иначе
|
||||||
|
Движение.Сумма = Товары.Итог("Сумма") / Курс;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
//Запишем движения
|
||||||
|
Движения.Записать();
|
||||||
|
|
||||||
|
//Контроль остатков при оперативном проведении
|
||||||
|
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
|
||||||
|
// Создадим запрос, чтобы контролировать остатки по товарам
|
||||||
|
Запрос = Новый Запрос("ВЫБРАТЬ
|
||||||
|
| ТоварыВДокументе.Товар КАК Товар,
|
||||||
|
| СУММА(ТоварыВДокументе.Количество) КАК Количество,
|
||||||
|
| МАКСИМУМ(ТоварыВДокументе.НомерСтроки) КАК НомерСтроки
|
||||||
|
|
|
||||||
|
|ПОМЕСТИТЬ ТребуетсяТовара
|
||||||
|
|
|
||||||
|
|ИЗ
|
||||||
|
| Документ.РасходТовара.Товары КАК ТоварыВДокументе
|
||||||
|
|
|
||||||
|
|ГДЕ
|
||||||
|
| ТоварыВДокументе.Ссылка = &Ссылка
|
||||||
|
| И ТоварыВДокументе.Товар.Вид = ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Товар)
|
||||||
|
|
|
||||||
|
|СГРУППИРОВАТЬ ПО
|
||||||
|
| ТоварыВДокументе.Товар
|
||||||
|
|
|
||||||
|
|ИНДЕКСИРОВАТЬ ПО
|
||||||
|
| Товар
|
||||||
|
|;
|
||||||
|
|
|
||||||
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|ВЫБРАТЬ
|
||||||
|
| ПРЕДСТАВЛЕНИЕ(ТребуетсяТовара.Товар) КАК ТоварПредставление,
|
||||||
|
| ВЫБОР
|
||||||
|
| КОГДА - ЕСТЬNULL(ТоварныеЗапасыОстатки.КоличествоОстаток, 0) > ТоварыВДокументе.Количество
|
||||||
|
| ТОГДА ТоварыВДокументе.Количество
|
||||||
|
| ИНАЧЕ - ЕСТЬNULL(ТоварныеЗапасыОстатки.КоличествоОстаток, 0)
|
||||||
|
| КОНЕЦ КАК Нехватка,
|
||||||
|
| ТоварыВДокументе.Количество - ВЫБОР
|
||||||
|
| КОГДА - ЕСТЬNULL(ТоварныеЗапасыОстатки.КоличествоОстаток, 0) > ТоварыВДокументе.Количество
|
||||||
|
| ТОГДА ТоварыВДокументе.Количество
|
||||||
|
| ИНАЧЕ - ЕСТЬNULL(ТоварныеЗапасыОстатки.КоличествоОстаток, 0)
|
||||||
|
| КОНЕЦ КАК МаксимальноеКоличество,
|
||||||
|
| ТребуетсяТовара.НомерСтроки КАК НомерСтроки
|
||||||
|
|
|
||||||
|
|ИЗ
|
||||||
|
| ТребуетсяТовара КАК ТребуетсяТовара
|
||||||
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварныеЗапасы.Остатки(
|
||||||
|
| ,
|
||||||
|
| Товар В
|
||||||
|
| (ВЫБРАТЬ
|
||||||
|
| ТребуетсяТовара.Товар
|
||||||
|
| ИЗ
|
||||||
|
| ТребуетсяТовара)
|
||||||
|
| И Склад = &Склад) КАК ТоварныеЗапасыОстатки
|
||||||
|
| ПО ТребуетсяТовара.Товар = ТоварныеЗапасыОстатки.Товар
|
||||||
|
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходТовара.Товары КАК ТоварыВДокументе
|
||||||
|
| ПО ТребуетсяТовара.Товар = ТоварыВДокументе.Товар
|
||||||
|
| И ТребуетсяТовара.НомерСтроки = ТоварыВДокументе.НомерСтроки
|
||||||
|
|
|
||||||
|
|ГДЕ
|
||||||
|
| ТоварыВДокументе.Ссылка = &Ссылка И
|
||||||
|
| 0 > ЕСТЬNULL(ТоварныеЗапасыОстатки.КоличествоОстаток, 0)
|
||||||
|
|
|
||||||
|
|УПОРЯДОЧИТЬ ПО
|
||||||
|
| НомерСтроки");
|
||||||
|
|
||||||
|
Запрос.УстановитьПараметр("Склад", Склад);
|
||||||
|
Запрос.УстановитьПараметр("Ссылка", Ссылка);
|
||||||
|
РезультатСНехваткой = Запрос.Выполнить();
|
||||||
|
|
||||||
|
ВыборкаРезультатаСНехваткой = РезультатСНехваткой.Выбрать();
|
||||||
|
|
||||||
|
// Выдадим ошибки для строк, в которых не хватает остатка
|
||||||
|
Пока ВыборкаРезультатаСНехваткой.Следующий() Цикл
|
||||||
|
|
||||||
|
Сообщение = Новый СообщениеПользователю();
|
||||||
|
Сообщение.Текст = НСтр("ru = 'Не хватает '", "ru")
|
||||||
|
+ ВыборкаРезультатаСНехваткой.Нехватка
|
||||||
|
+ НСтр("ru = ' единиц товара'", "ru") + """"
|
||||||
|
+ ВыборкаРезультатаСНехваткой.ТоварПредставление
|
||||||
|
+ """"
|
||||||
|
+ НСтр("ru = ' на складе'", "ru")
|
||||||
|
+ """"
|
||||||
|
+ Склад
|
||||||
|
+ """."
|
||||||
|
+ НСтр("ru = 'Максимальное количество: '", "ru")
|
||||||
|
+ ВыборкаРезультатаСНехваткой.МаксимальноеКоличество
|
||||||
|
+ ".";
|
||||||
|
Сообщение.Поле = НСтр("ru = 'Товары'", "ru")
|
||||||
|
+ "["
|
||||||
|
+ (ВыборкаРезультатаСНехваткой.НомерСтроки - 1)
|
||||||
|
+ "]."
|
||||||
|
+ НСтр("ru = 'Количество'", "ru");
|
||||||
|
Сообщение.УстановитьДанные(ЭтотОбъект);
|
||||||
|
Сообщение.Сообщить();
|
||||||
|
Отказ = Истина;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||||||
|
// Проверим заполненность поля "Покупатель"
|
||||||
|
|
||||||
|
Если Покупатель.Пустая() Тогда
|
||||||
|
|
||||||
|
|
||||||
|
// Если поле Покупатель не заполнено, сообщим об этом пользователю
|
||||||
|
|
||||||
|
Сообщение = Новый СообщениеПользователю();
|
||||||
|
|
||||||
|
Сообщение.Текст = НСтр("ru = 'Не указан Покупатель, для которого выписывается накладная!'", "ru");
|
||||||
|
|
||||||
|
Сообщение.Поле = НСтр("ru = 'Покупатель'", "ru");
|
||||||
|
Сообщение.УстановитьДанные(ЭтотОбъект);
|
||||||
|
|
||||||
|
|
||||||
|
Сообщение.Сообщить();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Сообщим платформе, что мы сами обработали проверку заполнения поля "Покупатель"
|
||||||
|
|
||||||
|
ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Покупатель"));
|
||||||
|
|
||||||
|
// Так как информация в документе не консистентна, то продолжать работу дальше смысла нет
|
||||||
|
|
||||||
|
Отказ = Истина;
|
||||||
|
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
|
||||||
|
//Если склад не заполнен, то проверим есть ли в документе что-то кроме услуг
|
||||||
|
Если Склад.Пустая() И Товары.Количество() > 0 Тогда
|
||||||
|
|
||||||
|
// Создадим запрос, чтобы получать информацию об товарах
|
||||||
|
Запрос = Новый Запрос("ВЫБРАТЬ
|
||||||
|
| Количество(*) КАК Количество
|
||||||
|
|ИЗ
|
||||||
|
| Справочник.Товары КАК Товары
|
||||||
|
|ГДЕ
|
||||||
|
| Товары.Ссылка В (&ТоварыВДокументе)
|
||||||
|
| И Товары.Вид = ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Товар)");
|
||||||
|
|
||||||
20
samples/1C Enterprise/ci_before_script.os
Normal file
20
samples/1C Enterprise/ci_before_script.os
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Каталог = ОбъединитьПути(ТекущийКаталог(), "libs\oscript-library\src");
|
||||||
|
Загрузчик_Оригинал_ИмяФайла = ОбъединитьПути(Каталог, "package-loader.os");
|
||||||
|
|
||||||
|
Файлы = НайтиФайлы(Каталог, , Ложь);
|
||||||
|
Для Каждого ВыбФайл Из Файлы Цикл
|
||||||
|
|
||||||
|
Если ВыбФайл.ЭтоФайл() Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Загрузчик_ИмяФайла = ОбъединитьПути(ВыбФайл.ПолноеИмя, "package-loader.os");
|
||||||
|
Загрузчик_Файл = Новый Файл(Загрузчик_ИмяФайла);
|
||||||
|
|
||||||
|
Если Загрузчик_Файл.Существует() Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КопироватьФайл(Загрузчик_Оригинал_ИмяФайла, Загрузчик_ИмяФайла);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
42
samples/1C Enterprise/test_canCompile.os
Normal file
42
samples/1C Enterprise/test_canCompile.os
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#Использовать "../libs/oscript-library/src/v8runner"
|
||||||
|
#Использовать "../libs/oscript-library/src/tempfiles"
|
||||||
|
|
||||||
|
Перем Лог;
|
||||||
|
Перем КодВозврата;
|
||||||
|
|
||||||
|
Процедура Инициализация()
|
||||||
|
|
||||||
|
Лог = Логирование.ПолучитьЛог("oscript.app.gitlab-test_CanCompile");
|
||||||
|
КодВозврата = 0;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ВыполнитьТест()
|
||||||
|
|
||||||
|
Конфигуратор = Новый УправлениеКонфигуратором();
|
||||||
|
|
||||||
|
ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
|
||||||
|
КомандаЗапуска = "/LoadConfigFromFiles ""%1""";
|
||||||
|
КомандаЗапуска = СтрШаблон(КомандаЗапуска, ТекущийКаталог() + "\source\cf");
|
||||||
|
|
||||||
|
Лог.Информация("Команда обновления конфигурации: " + КомандаЗапуска);
|
||||||
|
|
||||||
|
ПараметрыЗапуска.Добавить(КомандаЗапуска);
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
Конфигуратор.ВыполнитьКоманду(ПараметрыЗапуска);
|
||||||
|
Исключение
|
||||||
|
|
||||||
|
Лог.Ошибка(Конфигуратор.ВыводКоманды());
|
||||||
|
КодВозврата = 1;
|
||||||
|
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
УдалитьФайлы(Конфигуратор.ПутьКВременнойБазе());
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Инициализация();
|
||||||
|
ВыполнитьТест();
|
||||||
|
|
||||||
|
ЗавершитьРаботу(КодВозврата);
|
||||||
1
vendor/grammars/atom-language-1c-bsl
vendored
Submodule
1
vendor/grammars/atom-language-1c-bsl
vendored
Submodule
Submodule vendor/grammars/atom-language-1c-bsl added at 787ea4fd3a
25
vendor/licenses/grammar/atom-language-1c-bsl.txt
vendored
Normal file
25
vendor/licenses/grammar/atom-language-1c-bsl.txt
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
type: grammar
|
||||||
|
name: atom-language-1c-bsl
|
||||||
|
license: mit
|
||||||
|
---
|
||||||
|
Copyright © 2015 xDrivenDevelopment
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
Reference in New Issue
Block a user