Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.02.2025
Сообщений: 1

Не работает код 1С

17.02.2025, 21:52. Показов 1390. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
krabovich не работает код 1с
Модуль формы документа
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
&НаСервере
Процедура пр_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    
    Элементы.ГруппаВидИСостояние.Видимость = Ложь;
    Элементы.ПланированиеЗаказчикРабота.Видимость = Ложь;
    
    НовыйРеквизитФормы = Новый РеквизитФормы("пр_Статус", Новый ОписаниеТипов("СправочникСсылка.КолонкиКалендарейСотрудников"),,"Статус");
    МассивРеквизитовФормы = Новый Массив;
    МассивРеквизитовФормы.Добавить(НовыйРеквизитФормы);
    ИзменитьРеквизиты(МассивРеквизитовФормы);
 
    НоваяГруппаЦентральнаяКолонка = Элементы.Добавить("пр_ЦентральнаяКолонка", Тип("ГруппаФормы"), Элементы.Шапка);
    НоваяГруппаЦентральнаяКолонка.Вид = ВидГруппыФормы.ОбычнаяГруппа; 
    НоваяГруппаЦентральнаяКолонка.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; 
    
    НовыйЭлементСтатус = Элементы.Добавить("пр_Статус", Тип("ПолеФормы"), Элементы.Шапка.ПодчиненныеЭлементы.ЛеваяКолонка);
    НовыйЭлементСтатус.ПутьКДанным = "пр_Статус";
    НовыйЭлементСтатус.Вид = ВидПоляФормы.ПолеНадписи;
    НовыйЭлементСтатус.ТолькоПросмотр = Истина;
    Элементы.Переместить(НовыйЭлементСтатус, Элементы.Шапка.ПодчиненныеЭлементы.ЛеваяКолонка, Элементы.Шапка.ПодчиненныеЭлементы.ЛеваяКолонка.ПодчиненныеЭлементы.Сотрудник);
    
    Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
        ЭтотОбъект["пр_Статус"] = КолонкаКалендаряЗадачи(Объект.Ссылка, Объект.КалендарьСотрудника);
    КонецЕсли;
            
КонецПроцедуры  
 
&НаСервереБезКонтекста
Функция КолонкаКалендаряЗадачи(Задача, Календарь)
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ЗаписиКалендаряСотрудника.КолонкаКалендаря КАК КолонкаКалендаря
        |ИЗ
        |   Справочник.ЗаписиКалендаряСотрудника КАК ЗаписиКалендаряСотрудника
        |ГДЕ
        |   ЗаписиКалендаряСотрудника.Календарь = &Календарь
        |   И ЗаписиКалендаряСотрудника.Источник = &Источник";
    
    Запрос.УстановитьПараметр("Источник", Задача);
    Запрос.УстановитьПараметр("Календарь", Календарь);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
        Возврат ВыборкаДетальныеЗаписи.КолонкаКалендаря;
    КонецЕсли;  
    
    Возврат Справочники.КолонкиКалендарейСотрудников.ПустаяСсылка();
     
КонецФункции
Модуль объекта документа
1C
1
2
3
4
5
6
7
8
&После("ПередЗаписью")
Процедура К_ПередЗаписьюПосле(Отказ, РежимЗаписи, РежимПроведения)     
    
    Если Не ЗначениеЗаполнено(Сотрудник) Тогда  
         Сотрудник = Константы.пр_Бэклог.Получить();
    КонецЕсли;
        
КонецПроцедуры
Модуль объекта записи календаря сотр
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
&После("ПередЗаписью")
Процедура К_ПередЗаписьюПосле(Отказ)
    
    ВипЛимит = 3;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаписиКалендаряСотрудника.Источник) КАК КоличествоЗадачВКолонке
    |ИЗ
    |   Справочник.ЗаписиКалендаряСотрудника КАК ЗаписиКалендаряСотрудника
    |ГДЕ
    |   ЗаписиКалендаряСотрудника.Источник <> &Источник
    |   И ЗаписиКалендаряСотрудника.КолонкаКалендаря = &КолонкаКалендаря
    |   И ЗаписиКалендаряСотрудника.Календарь = &Календарь
    |   И ЗаписиКалендаряСотрудника.Ссылка <> &Ссылка
    |   И НЕ ЗаписиКалендаряСотрудника.ПометкаУдаления";
    
    Запрос.УстановитьПараметр("Источник", Источник);
    Запрос.УстановитьПараметр("Календарь", Календарь);
    Запрос.УстановитьПараметр("КолонкаКалендаря", КолонкаКалендаря);
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    Выборка = Запрос.Выполнить().Выбрать();   
    Выборка.Следующий();
    
    Если Выборка.КоличествоЗадачВКолонке > ВипЛимит И КолонкаКалендаря.Наименование = "Анализ" Тогда
        ОбщегоНазначения.СообщитьПользователю("Превышен VIP-лимит, переместить новую задачу нельзя",,,,Отказ);                        
        Отказ = Истина;
    КонецЕсли;
    
КонецПроцедуры
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
&НаКлиенте
Функция ОтправитьЗапросGETКартинку()
    
    HTTP = Новый HTTPСоединение("gitlab.com",,,,,, Новый ЗащищенноеСоединениеOpenSSL);
    ЗапросHTTP = Новый HTTPЗапрос("api/v4/projects/66840636");
    ОтветHTTP = HTTP.Получить(ЗапросHTTP);
    JSON = ОтветHTTP.ПолучитьТелоКакСтроку();
    Результат = ДесериализоватьJSON(JSON);
    Возврат Результат;
    
КонецФункции
 
&НаКлиенте
Функция СериализоватьВJSON(ДанныеОКлиенте)
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, ДанныеОКлиенте);
    СтрокаДляТела = ЗаписьJSON.Закрыть();
    Возврат СтрокаДляТела;
    
КонецФункции
 
&НаКлиенте
Функция ДесериализоватьJSON(JSON)
    
    ЧтениеJSON = Новый ЧтениеJSON();
    ЧтениеJSON.УстановитьСтроку(JSON);
    Результат = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
    Возврат Результат;
    
КонецФункции
 
&НаКлиенте
Процедура ПроверитьДоступКПроекту(Команда)
    
    Результат = ОтправитьЗапросGETКартинку(); 
    Сообщить(Результат["message"]);
    
КонецПроцедуры 
 
&НаКлиенте
Процедура СоздатьСобытие(Команда)
    
    Структура = СфомироватьСтруктуру();
    СтрокаДляТела = СериализоватьВJSON(Структура);
    Результат = Отправить(СтрокаДляТела);
    
КонецПроцедуры 
 
&НаКлиенте
функция СфомироватьСтруктуру()  
    
    title="Программное создание";
    descriptions="Программное создание описания";
    labels="Необработано";
    СтруктураЗапроса=Новый Структура("title,descriptions,labels",title,descriptions,labels); 
    Возврат СтруктураЗапроса; 
    
КонецФункции         
 
&НаКлиенте
функция Отправить(СтрокаДляТела)  
    
    HTTP = Новый HTTPСоединение("gitlab.com",,,,,, Новый ЗащищенноеСоединениеOpenSSL);
    
    ЗаголовокЗапроса = Новый Структура; 
    ЗаголовокЗапроса.Вставить("PRIVATE-TOKEN", "glpat-LaVCrVLRkyrR9z1SStYo");
    ЗаголовокЗапроса.Вставить("Content-Type","application/json");
    
    ЗапросHTTP = Новый HTTPЗапрос("api/v4/projects/66840636/issues",ЗаголовокЗапроса);
    ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаДляТела);
    
    ОтветHTTP = HTTP.ОтправитьДляОбработки(ЗапросHTTP);
    JSON = ОтветHTTP.ПолучитьТелоКакСтроку();
    Результат = ДесериализоватьJSON(JSON);
    Возврат Результат;
    
КонецФункции
СКД отчёта
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ВЫБРАТЬ
    ЗаказПокупателя.Контрагент КАК Контрагент,
    ЗаданиеНаРаботу.К_Проект КАК К_Проект,
    ЗаданиеНаРаботу.Сотрудник КАК Сотрудник,
    ЗаданиеНаРаботу.К_Оценка КАК К_Оценка,
    ЗаданиеНаРаботу.К_Факт КАК К_Факт,
    ЗаданиеНаРаботу.К_Оценка - ЗаданиеНаРаботу.К_Факт КАК К_Разница
ИЗ
    Документ.ЗаданиеНаРаботу КАК ЗаданиеНаРаботу,
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
 
СГРУППИРОВАТЬ ПО
    ЗаказПокупателя.Контрагент,
    ЗаданиеНаРаботу.К_Проект,
    ЗаданиеНаРаботу.Сотрудник,
    ЗаданиеНаРаботу.К_Оценка,
    ЗаданиеНаРаботу.К_Факт,
    ЗаданиеНаРаботу.К_Оценка - ЗаданиеНаРаботу.К_Факт
Ресурсы отчёта: оценка, факт, разница
Настройки -> детальные записи. Выбранные поля -> Все. Условное оформление -> К_Разница Меньше "0" в группировке

Дополнительные материалы: https://its.1c.ru/db/intgr83/content/41/hdoc

Объединение:
1. Создать access token пользователя или проекта api read_api роль developer (желательно)
2. Создать доску Plan -> Issue bords... add time entry
Тот же самый документ: Модуль объекта
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
&После("ПередЗаписью")
Процедура пр_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    ТокенGitLab = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(пр_Проект,"пр_ТокенGitLab");
    
    Если Не ЗначениеЗаполнено(ТокенGitLab) Тогда
        Возврат;
    КонецЕсли;
    
    Если ЗначениеЗаполнено(пр_ИдентификаторGitLab) Тогда
        Возврат;
    КонецЕсли;
    
    АдресСервера = "gitlab.com";
    ПутьНаСервере = "/api/v4/projects/61127527/issues";
    
    Соединение = Новый HTTPСоединение(АдресСервера,,,,,, Новый ЗащищенноеСоединениеOpenSSL);
    
    ДанныеЗапроса = Новый Структура;
    ДанныеЗапроса.Вставить("title", СтрШаблон("№%1 от %2", Номер, Формат(Дата, "ДЛФ=D")));
    ДанныеЗапроса.Вставить("labels", Строка(пр_ДанныеКалендаря.КолонкаКаландаряЗадачи(Ссылка, КалендарьСотрудника)));
    
    ТелоЗапроса = ЗаписатьЗначениеJSON(ДанныеЗапроса);
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("PRIVATE-TOKEN", ТокенGitLab);
    Заголовки.Вставить("Content-Type", "application/json");
    
    Запрос = Новый HTTPЗапрос(ПутьНаСервере, Заголовки);
    Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    
    Попытка
        Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    Исключение
        ОбщегоНазначения.СообщитьПользователю("Не удалось отправить задачу в GitLab, повторная попытка будет выполнена при следующей записи");
        Возврат;
    КонецПопытки;
    
    Если Ответ.КодСостояния >= 300 Тогда
        ОбщегоНазначения.СообщитьПользователю("Не удалось отправить задачу в GitLab, повторная попытка будет выполнена при следующей записи");
        Возврат;
    КонецЕсли;
    
    ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
    
    ДанныеОтвета = ПрочитатьЗначениеJSON(ТелоОтвета);
    
    пр_ИдентификаторGitLab = ДанныеОтвета.iid;
    
КонецПроцедуры
Справочнику проекта можно создать реквизит пр_ТокенGitLab (быстрее раскопировать токен в код)
пр_ДанныеКалендаря - общий модуль с процедурой КолонкаКаландаряЗадачи
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.02.2025, 21:52
Ответы с готовыми решениями:

Работа с реквизитами документов в 1С 8.0
Подскажите, плыз, как задавать значения реквизитам документов, считываемых с элементов формы? Помогите, Пожалуйста

1c77 работа с датой
Задача вот в чём надо выполнить какое то действие со справочником при условии что в определённой колонке дата будет равна текущая дата - 10...

Работа с областью печатной формы документа
Есть например отчет по инвентарицации. Нажали на печать и сформировалась таблица на 3 страници. Итоги я получаю по всем 3 страницам. Как...

1
Модератор
Эксперт 1С
 Аватар для Yulunga
4138 / 945 / 265
Регистрация: 22.04.2013
Сообщений: 6,589
Записей в блоге: 1
18.02.2025, 06:03
спасибо за токен. переписал на листочек. в каком месте не работает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2025, 06:03
Помогаю со студенческими работами здесь

Работа с регистром сведений
И снова доброго времени суток! Всплыл такой вопрос... Есть документ ПриёмНаРаботу, у него реквизиты - ФИО, ДатаПриёма, и табличная...

Работа с датой
Здравствуйте! Помогите пожалуйста... Имеется документ в котором есть табличная часть В табличной части 2 столбца: в 1 мы вводим...

Работа с формами 7.7
Здравствуйте! Есть Справочник Товары с такими реквизитами - Склад, ТипТовара, Цена. Также есть документ СписаниеТоваров форма которого...

1C 8.2 Работа с формами
Здравствуйте, в общем проблема такая: есть 2 обработки, ну или 2 формы(управляемые) у одной обработки. Нужно программно из одной формы...

Работа с модулем
Посчитать время работы пользователя в системе.Если проработал менее 8часов ,то выводит соответствубщий ворос &quot;вы пропаботали менее 8...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru