- 1
- 2
- 3
https://github.com/covrom/gonec
1C:Enterprise-like language interpreter written in Go https://covrom.github.io/gonec/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−3
https://github.com/covrom/gonec
1C:Enterprise-like language interpreter written in Go https://covrom.github.io/gonec/
ГОВНЕЦ (govnec)
Интерпретатор и платформа создания микросервисов на 1С-подобном языке
Цели
Интерпретатор создан для решения программистами 1С множества задач, связанных с высокопроизводительными распределенными вычислениями, создания вэб-сервисов и вэб-порталов для работы тысяч пользователей, работы с высокоэффективными базами данных с использованием синтаксиса языка, похожего, но не ограниченного возможностями языка 1С.
Включив такой интерпретатор в свое решение, Вы можете предоставить высокий уровень сервиса для своих клиентов, который обгонит решения не только ваших конкурентов на рынке 1С, но и конкурентных платформ в enterprise.
Интерпретатор разрабатывается “от простого к сложному”. На начальных этапах будет включена базовая функциональность многопоточных вычислений и сетевых сервисов. В перспективе планируется организация работы с различными базами данных и визуализация управляемых форм, созданных в конфигураторе.
Еще никогда не были так просто доступны программистам 1С возможности:
* Создать микросервис с произвольным сетевым протоколом, развернуть его на linux, в docker контейнере или кластере kubernetes
* Выполнить сложную многопоточную вычислительную задачу для десятков тысяч подключающихся пользователей за миллисекунды
* Взаимодействовать с пользователем через web-браузер с минимальным трафиком
* Сохранять и получать данные с максимально доступной скоростью в key-value базах данн
+4
Если Отладка Тогда
ЗаписьXML.ЗаписатьТекст(СокрЛП(КодИнтернетЗаказа));
Иначе
ЗаписьXML.ЗаписатьТекст(СокрЛП(КодИнтернетЗаказа));
КонецЕсли;
Безысходность. Судьба предрешена. Бедный Йорик.
+2
Если ЭтоНовыйОбъект Тогда
Если Найти(НРег(ЭтотОбъект.ТекстЗаявки),"принтер") > 0 Тогда
ЭтотОбъект.ВидОбращения = Справочники.ИТ_ПричинаОбращения.НайтиПоНаименованию("Принтер");
КонецЕсли;
КонецЕсли;
Если в тексте заявки есть "принтер", значит это по принтеру, если в тексте "Замените картридж" - peaceDa рулю.
+2
defmodule Utils.String do
@moduledoc false
def comma_split(str), do: String.split(str, " ", trim: true)
end
+2
//Модуль основной формы внешней обработки
&НаКлиенте
Процедура ПродатьСлона(Оферта)
Перем Акцепт;
Если ПустаяСтрока(Оферта) Тогда
Оферта = "Купи слона!";
Иначе
Оферта = "Все говорят """+Оферта+""" а ты купи слона!";
КонецЕсли;
ВвестиСтроку(Акцепт,Оферта,0, Истина);
ПродатьСлона(Акцепт);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПродатьСлона("");
КонецПроцедуры
Продаём слона!
0
Попытка
ЗаблокироватьДанныеФормыДляРедактирования();
Исключение
ВызватьИсключение КраткоеОписаниеОшибки(ОписаниеОшибки());
КонецПопытки
Процедура ЗаблокироватьДанныеФормыДляРедактировани я() при невозможности заблокировать данные сама вызывает исключение
+1
рсДополнительныеСведения = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
СвойствоУведомление = рсДополнительныеСведения.Добавить();
СвойствоУведомление.Объект = ЭтотОбъект.Ссылка;
СвойствоУведомление.Свойство = ДопСведение;
СвойствоУведомление.Значение = Истина;
рсДополнительныеСведения.Записать();
Код одних франчей.
причем все ж по ТЗ)) запись записалась? записалась! И побоку, что остальные записи при этом снесли нах)))
−264
Ответ = Вопрос("Будет запущена процедура создания договоров и печати документов. Продолжить?",
РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да, ЗаголовокОкнаПредупреждения);
Если НЕ Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
−10
Функция РазностьДатВДнях(Дата1, Дата2, ВключаяГраницы = Истина)
Результат = ?(ВключаяГраницы, 1, 0);
Если Дата1 < Дата2 Тогда
ТекущаяДата = НачалоДня(Дата1);
ДатаОкончания = НачалоДня(Дата2);
Иначе
ТекущаяДата = НачалоДня(Дата2);
ДатаОкончания = НачалоДня(Дата1);
КонецЕсли;
Пока ТекущаяДата < ДатаОкончания Цикл
ТекущаяДата = НачалоДня(ТекущаяДата + 24 * 60 * 60);
Результат = Результат + 1;
КонецЦикла;
Возврат Результат;
КонецФункции
можно тремя строками заменить:
ДатаНачала = Мин(НачалоДня(Дата1), НачалоДня(Дата2));
ДатаОкончания = Макс(НачалоДня(Дата1), НачалоДня(Дата2));
Возврат ?(ВключаяГраницы, 1, 0) + (ДатаОкончания - ДатаНачала) / 86400
−98
Если НоменклатураКонтрагентов.Наличие=Перечисления.ДаНет.Да тогда
....
Создан новый элемент перечисления "ДаНет" на который ссылается измерение регистра сведений. Джордж Буль продолжает медленно крутиться...