diff --git a/OPI/src/CommonModules/OPI_Notion/Module.bsl b/OPI/src/CommonModules/OPI_Notion/Module.bsl index 29dfb76eff..a972e2b8cb 100644 --- a/OPI/src/CommonModules/OPI_Notion/Module.bsl +++ b/OPI/src/CommonModules/OPI_Notion/Module.bsl @@ -62,13 +62,13 @@ // Возвращаемое значение: // Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - Создать страницу в базу Функция СоздатьСтраницуВБазу(Знач Токен, Знач Родитель, Знач Данные) Экспорт - - Заголовки = СоздатьЗаголовкиЗапроса(Токен); - Параметры = Новый Структура; - - ДобавитьРодителяСтраницы(Родитель, Истина, Параметры); + + Заголовки = СоздатьЗаголовкиЗапроса(Токен); + Параметры = Новый Структура; + + ДобавитьРодителяСтраницы(Родитель, Истина, Параметры); - Свойства = ЗаполнитьДанныеПоСхеме(Родитель, Данные, Токен); + Свойства = ЗаполнитьДанныеПоСхеме(Родитель, Данные, Токен); Параметры.Вставить("properties", Свойства); Ответ = OPI_Инструменты.Post("https://api.notion.com/v1/pages", Параметры, Заголовки); @@ -108,55 +108,58 @@ // // Возвращаемое значение: // Строка, Произвольный, Неопределено, HTTPОтвет, ДвоичныеДанные - Изменить свойства страницы -//@skip-check method-too-many-params +// @skip-check method-too-many-params +// BSLLS:NumberOfOptionalParams-off Функция ИзменитьСвойстваСтраницы(Знач Токен , Знач Страница , Знач Данные = "" , Знач Иконка = "" , Знач Обложка = "" , Знач Архивирована = Ложь) Экспорт - - Заголовки = СоздатьЗаголовкиЗапроса(Токен); - Параметры = Новый Структура; - - Если ЗначениеЗаполнено(Данные) И ТипЗнч(Данные) = Тип("Соответствие") Тогда - Свойства = ЗаполнитьДанныеПоСхеме(Страница, Данные, Токен, Ложь); - Иначе - Свойства = Новый Соответствие; - КонецЕсли; - - Если ЗначениеЗаполнено(Иконка) Тогда - СоответствиеИконки = Новый Соответствие; - СоответствиеИконки.Вставить("Icon", Иконка); - - ОбъектИконка = ПреобразоватьЗначениеПоТипу("files", СоответствиеИконки); - ОбъектИконка = ОбъектИконка["files"][0]; - ОбъектИконка.Удалить("name"); - - Параметры.Вставить("icon", ОбъектИконка); - КонецЕсли; - - Если ЗначениеЗаполнено(Обложка) Тогда - СоответствиеОбложки = Новый Соответствие; - СоответствиеОбложки.Вставить("Cover", Обложка); + + Заголовки = СоздатьЗаголовкиЗапроса(Токен); + Параметры = Новый Структура; + Files = "files"; + + Если ЗначениеЗаполнено(Данные) И ТипЗнч(Данные) = Тип("Соответствие") Тогда + Свойства = ЗаполнитьДанныеПоСхеме(Страница, Данные, Токен, Ложь); + Иначе + Свойства = Новый Соответствие; + КонецЕсли; + + Если ЗначениеЗаполнено(Иконка) Тогда + СоответствиеИконки = Новый Соответствие; + СоответствиеИконки.Вставить("Icon", Иконка); + + ОбъектИконка = ПреобразоватьЗначениеПоТипу(Files, СоответствиеИконки); + ОбъектИконка = ОбъектИконка[Files][0]; + ОбъектИконка.Удалить("name"); + + Параметры.Вставить("icon", ОбъектИконка); + КонецЕсли; + + Если ЗначениеЗаполнено(Обложка) Тогда + СоответствиеОбложки = Новый Соответствие; + СоответствиеОбложки.Вставить("Cover", Обложка); - ОбъектОбложка = ПреобразоватьЗначениеПоТипу("files", СоответствиеОбложки); - ОбъектОбложка = ОбъектОбложка["files"][0]; - ОбъектОбложка.Удалить("name"); + ОбъектОбложка = ПреобразоватьЗначениеПоТипу(Files, СоответствиеОбложки); + ОбъектОбложка = ОбъектОбложка[Files][0]; + ОбъектОбложка.Удалить("name"); - Параметры.Вставить("cover", ОбъектОбложка); - КонецЕсли; + Параметры.Вставить("cover", ОбъектОбложка); + КонецЕсли; - Параметры.Вставить("properties", Свойства); - Параметры.Вставить("archived", Архивирована); - - ПреобразоватьИД(Страница); + Параметры.Вставить("properties", Свойства); + Параметры.Вставить("archived" , Архивирована); + + ПреобразоватьИД(Страница); - Ответ = OPI_Инструменты.Patch("https://api.notion.com/v1/pages/" + Страница, Параметры, Заголовки); + Ответ = OPI_Инструменты.Patch("https://api.notion.com/v1/pages/" + Страница, Параметры, Заголовки); Возврат Ответ; - + КонецФункции +// BSLLS:NumberOfOptionalParams-on #КонецОбласти @@ -186,7 +189,7 @@ // Неактивный : red // Архив : yellow - //Все страницы, которые будут созданы как дочерние, должны иметь свойства базы-родителя + // Все страницы, которые будут созданы как дочерние, должны иметь свойства базы-родителя Если Не ТипЗнч(Свойства) = Тип("Структура") И Не ТипЗнч(Свойства) = Тип("Соответствие") Тогда Свойства = Новый Структура("Наименование", "title"); @@ -194,8 +197,8 @@ Заголовки = СоздатьЗаголовкиЗапроса(Токен); Параметры = Новый Структура; - - ДобавитьРодителяБазы(Родитель, Ложь, Параметры); + + ДобавитьРодителяБазы(Родитель, Ложь, Параметры); ДобавитьЗаголовокБазы(Заголовок, Параметры); ДобавитьСвойстваБазы(Свойства, Параметры); @@ -254,7 +257,7 @@ ДобавитьСвойстваБазы(Свойства, Параметры); КонецЕсли; - Ответ = OPI_Инструменты.Patch("https://api.notion.com/v1/databases/"+ База, Параметры, Заголовки); + Ответ = OPI_Инструменты.Patch("https://api.notion.com/v1/databases/" + База, Параметры, Заголовки); Возврат Ответ; @@ -280,11 +283,11 @@ ПреобразоватьИД(ИДБлока); Заголовки = СоздатьЗаголовкиЗапроса(Токен); - Блок = ВернутьБлок(Токен, ИДБлока); - УдалитьЛишниеПоляБлока(Блок); - - МассивБлоков = Новый Массив; - МассивБлоков.Добавить(Блок); + Блок = ВернутьБлок(Токен, ИДБлока); + УдалитьЛишниеПоляБлока(Блок); + + МассивБлоков = Новый Массив; + МассивБлоков.Добавить(Блок); Параметры = Новый Соответствие; Параметры.Вставить("children", МассивБлоков); @@ -414,7 +417,7 @@ КонецФункции Процедура ПреобразоватьИД(Идентификатор) - + Идентификатор = СтрЗаменить(Идентификатор, "-", ""); КонецПроцедуры @@ -436,8 +439,8 @@ ПолеИдентификатора = ?(РодительБаза, "database_id", "page_id"); СтруктураРодителя = Новый Структура(); - СтруктураРодителя.Вставить("type" , ПолеИдентификатора); - СтруктураРодителя.Вставить(ПолеИдентификатора, Родитель); + СтруктураРодителя.Вставить("type" , ПолеИдентификатора); + СтруктураРодителя.Вставить(ПолеИдентификатора, Родитель); ОсновнаяСтруктура.Вставить("parent", СтруктураРодителя); @@ -449,6 +452,7 @@ СтруктураДанных = Новый Структура; СтруктураТекста = Новый Структура; МассивДанных = Новый Массив; + Title = "title"; СтруктураТекста.Вставить("content", Заголовок); СтруктураТекста.Вставить("link" , Неопределено); @@ -458,17 +462,17 @@ МассивДанных.Добавить(СтруктураДанных); - ПодчиненнаяСтруктура.Вставить("id" , "title"); - ПодчиненнаяСтруктура.Вставить("type" , "title"); - ПодчиненнаяСтруктура.Вставить("title", МассивДанных); + ПодчиненнаяСтруктура.Вставить("id" , Title); + ПодчиненнаяСтруктура.Вставить("type" , Title); + ПодчиненнаяСтруктура.Вставить(Title , МассивДанных); - ОсновнаяСтруктура.Вставить("title", ПодчиненнаяСтруктура); + ОсновнаяСтруктура.Вставить(Title, ПодчиненнаяСтруктура); КонецПроцедуры Процедура ДобавитьЗаголовокБазы(Знач Заголовок, ОсновнаяСтруктура) - Заголовок = ПреобразоватьЗаголовок(Заголовок); + Заголовок = ПреобразоватьЗаголовок(Заголовок); ОсновнаяСтруктура.Вставить("title", Заголовок["title"]); КонецПроцедуры @@ -499,11 +503,11 @@ Или ТипЗнч(Свойство.Значение) = Тип("Соответствие") Тогда ВыборЗначения = СформироватьЗначенияВыбора(Свойство.Значение); - СоответствиеПараметров.Вставить(Свойство.Ключ, Новый Структура("select", ВыборЗначения)) - - Иначе - - СоответствиеПараметров.Вставить(Свойство.Ключ, Свойство.Значение); + СоответствиеПараметров.Вставить(Свойство.Ключ, Новый Структура("select", ВыборЗначения)); + + Иначе + + СоответствиеПараметров.Вставить(Свойство.Ключ, Свойство.Значение); КонецЕсли; @@ -520,7 +524,7 @@ Для Каждого Вариант Из СтруктураВариантов Цикл СоответствиеВарианта = Новый Соответствие; - СоответствиеВарианта.Вставить("name", Вариант.Ключ); + СоответствиеВарианта.Вставить("name" , Вариант.Ключ); СоответствиеВарианта.Вставить("color", Вариант.Значение); МассивВариантов.Добавить(СоответствиеВарианта); @@ -532,253 +536,253 @@ КонецФункции Функция ЗаполнитьДанныеПоСхеме(Знач Схема, Знач Данные, Знач Токен, Знач ЭтоБаза = Истина) - - Если ЭтоБаза Тогда - ДанныеСхемы = ПолучитьБазуДанных(Токен, Схема); - Иначе - ДанныеСхемы = ПолучитьСтраницу(Токен, Схема); - КонецЕсли; - - ПоляБазы = ДанныеСхемы["properties"]; - Свойства = Новый Соответствие; - - Если ЗначениеЗаполнено(ПоляБазы) Тогда - - Для Каждого Поле Из ПоляБазы Цикл - - ДанныеПоля = Поле.Значение; - ТипПоля = ДанныеПоля["type"]; - - ЗаполняемыеДанные = Данные.Получить(Поле.Ключ); - - Если ЗаполняемыеДанные = Неопределено Тогда - Продолжить; - КонецЕсли; - - ПреобразованныеДанные = ПреобразоватьЗначениеПоТипу(ТипПоля, ЗаполняемыеДанные); - - Если ПреобразованныеДанные = Неопределено Тогда - Продолжить; - КонецЕсли; - - Свойства.Вставить(ДанныеПоля["id"], ПреобразованныеДанные); - - КонецЦикла; - - КонецЕсли; + + Если ЭтоБаза Тогда + ДанныеСхемы = ПолучитьБазуДанных(Токен, Схема); + Иначе + ДанныеСхемы = ПолучитьСтраницу(Токен, Схема); + КонецЕсли; + + ПоляБазы = ДанныеСхемы["properties"]; + Свойства = Новый Соответствие; + + Если ЗначениеЗаполнено(ПоляБазы) Тогда + + Для Каждого Поле Из ПоляБазы Цикл + + ДанныеПоля = Поле.Значение; + ТипПоля = ДанныеПоля["type"]; + + ЗаполняемыеДанные = Данные.Получить(Поле.Ключ); + + Если ЗаполняемыеДанные = Неопределено Тогда + Продолжить; + КонецЕсли; + + ПреобразованныеДанные = ПреобразоватьЗначениеПоТипу(ТипПоля, ЗаполняемыеДанные); + + Если ПреобразованныеДанные = Неопределено Тогда + Продолжить; + КонецЕсли; + + Свойства.Вставить(ДанныеПоля["id"], ПреобразованныеДанные); + + КонецЦикла; + + КонецЕсли; - Возврат Свойства; + Возврат Свойства; КонецФункции Процедура УдалитьЛишниеПоляБлока(Знач Блок) - - МассивЛишних = Новый Массив; - МассивЛишних.Добавить("request_id"); - МассивЛишних.Добавить("archived"); - МассивЛишних.Добавить("created_by"); - МассивЛишних.Добавить("last_edited_time"); - МассивЛишних.Добавить("created_time"); - МассивЛишних.Добавить("has_children"); - МассивЛишних.Добавить("parrent"); - МассивЛишних.Добавить("last_edited_by"); - МассивЛишних.Добавить("id"); - - Для Каждого Поле Из МассивЛишних Цикл - - Если Не Блок.Получить(Поле) = Неопределено Тогда - Блок.Удалить(Поле); - КонецЕсли; - КонецЦикла - + + МассивЛишних = Новый Массив; + МассивЛишних.Добавить("request_id"); + МассивЛишних.Добавить("archived"); + МассивЛишних.Добавить("created_by"); + МассивЛишних.Добавить("last_edited_time"); + МассивЛишних.Добавить("created_time"); + МассивЛишних.Добавить("has_children"); + МассивЛишних.Добавить("parrent"); + МассивЛишних.Добавить("last_edited_by"); + МассивЛишних.Добавить("id"); + + Для Каждого Поле Из МассивЛишних Цикл + + Если Не Блок.Получить(Поле) = Неопределено Тогда + Блок.Удалить(Поле); + КонецЕсли; + КонецЦикла; + КонецПроцедуры #Область ПреобразованиеТипов Функция ПреобразоватьЗначениеПоТипу(Знач Тип, Знач Значение) - - Если Тип = "title" Тогда - Возврат ПреобразоватьЗаголовок(Значение); - ИначеЕсли Тип = "rich_text" Тогда - Возврат ПреобразоватьТекст(Значение); - ИначеЕсли Тип = "number" Тогда - Возврат ПреобразоватьЧисло(Значение); - ИначеЕсли Тип = "select" Тогда - Возврат ПреобразоватьВариантВыбора(Значение); - ИначеЕсли Тип = "multi_select" Тогда - Возврат ПреобразоватьМножественныйВыбор(Значение); - ИначеЕсли Тип = "status" Тогда - Возврат ПреобразоватьСтатус(Значение); - ИначеЕсли Тип = "date" Тогда - Возврат ПреобразоватьеДату(Значение); - ИначеЕсли Тип = "relation" Тогда - Возврат ПреобразоватьСвязь(Значение); - ИначеЕсли Тип = "people" Тогда - Возврат ПреобразоватьПользователей(Значение); - ИначеЕсли Тип = "files" Тогда - Возврат ПреобразоватьФайлы(Значение); - ИначеЕсли Тип = "checkbox" Тогда - Возврат ПреобразоватьБулево(Значение); - ИначеЕсли Тип = "url" Тогда - Возврат ПреобразоватьСсылку(Значение); - ИначеЕсли Тип = "email" Тогда - Возврат ПреобразоватьПочту(Значение); - ИначеЕсли Тип = "phone_number" Тогда - Возврат ПреобразоватьТелефон(Значение); - Иначе - Возврат Неопределено; - КонецЕсли; - + + Если Тип = "title" Тогда + Возврат ПреобразоватьЗаголовок(Значение); + ИначеЕсли Тип = "rich_text" Тогда + Возврат ПреобразоватьТекст(Значение); + ИначеЕсли Тип = "number" Тогда + Возврат ПреобразоватьЧисло(Значение); + ИначеЕсли Тип = "select" Тогда + Возврат ПреобразоватьВариантВыбора(Значение); + ИначеЕсли Тип = "multi_select" Тогда + Возврат ПреобразоватьМножественныйВыбор(Значение); + ИначеЕсли Тип = "status" Тогда + Возврат ПреобразоватьСтатус(Значение); + ИначеЕсли Тип = "date" Тогда + Возврат ПреобразоватьДату(Значение); + ИначеЕсли Тип = "relation" Тогда + Возврат ПреобразоватьСвязь(Значение); + ИначеЕсли Тип = "people" Тогда + Возврат ПреобразоватьПользователей(Значение); + ИначеЕсли Тип = "files" Тогда + Возврат ПреобразоватьФайлы(Значение); + ИначеЕсли Тип = "checkbox" Тогда + Возврат ПреобразоватьБулево(Значение); + ИначеЕсли Тип = "url" Тогда + Возврат ПреобразоватьСсылку(Значение); + ИначеЕсли Тип = "email" Тогда + Возврат ПреобразоватьПочту(Значение); + ИначеЕсли Тип = "phone_number" Тогда + Возврат ПреобразоватьТелефон(Значение); + Иначе + Возврат Неопределено; + КонецЕсли; + КонецФункции Функция ПреобразоватьЗаголовок(Знач Заголовок) - - СтруктураДанных = Новый Структура; + + СтруктураДанных = Новый Структура; СтруктураТекста = Новый Структура; МассивДанных = Новый Массив; СтруктураТекста.Вставить("content", Заголовок); СтруктураТекста.Вставить("link" , Неопределено); - - СтруктураДанных.Вставить("type", "text"); + + СтруктураДанных.Вставить("type", "text"); СтруктураДанных.Вставить("text", СтруктураТекста); МассивДанных.Добавить(СтруктураДанных); - Возврат Новый Структура("title", МассивДанных); - + Возврат Новый Структура("title", МассивДанных); + КонецФункции Функция ПреобразоватьТекст(Знач Текст) - - МассивТекста = Новый Массив; - СтруктураТекста = Новый Структура; - - СтруктураТекста.Вставить("type", "text"); - СтруктураТекста.Вставить("text", Новый Структура("content", Текст)); - - МассивТекста.Добавить(СтруктураТекста); - - Возврат Новый Структура("rich_text", МассивТекста); - + + МассивТекста = Новый Массив; + СтруктураТекста = Новый Структура; + + СтруктураТекста.Вставить("type", "text"); + СтруктураТекста.Вставить("text", Новый Структура("content", Текст)); + + МассивТекста.Добавить(СтруктураТекста); + + Возврат Новый Структура("rich_text", МассивТекста); + КонецФункции Функция ПреобразоватьЧисло(Знач Число) - Возврат Новый Структура("number", Число); + Возврат Новый Структура("number", Число); КонецФункции Функция ПреобразоватьВариантВыбора(Знач Вариант) - - СтруктураВыбора = Новый Структура; - СтруктураВыбора.Вставить("select", Новый Структура("name", Вариант)); - - Возврат СтруктураВыбора; - + + СтруктураВыбора = Новый Структура; + СтруктураВыбора.Вставить("select", Новый Структура("name", Вариант)); + + Возврат СтруктураВыбора; + КонецФункции Функция ПреобразоватьСтатус(Знач Статус) - - СтруктураСтатуса = Новый Структура; - СтруктураСтатуса.Вставить("status", Новый Структура("name", Статус)); - - Возврат СтруктураСтатуса; - + + СтруктураСтатуса = Новый Структура; + СтруктураСтатуса.Вставить("status", Новый Структура("name", Статус)); + + Возврат СтруктураСтатуса; + КонецФункции Функция ПреобразоватьМножественныйВыбор(Знач МассивВариантов) - - МассивВариантовВыбора = Новый Массив; - - Для Каждого Вариант Из МассивВариантов Цикл - МассивВариантовВыбора.Добавить(Новый Структура("name", Вариант)); - КонецЦикла; - - Возврат Новый Структура("multi_select", МассивВариантовВыбора); - + + МассивВариантовВыбора = Новый Массив; + + Для Каждого Вариант Из МассивВариантов Цикл + МассивВариантовВыбора.Добавить(Новый Структура("name", Вариант)); + КонецЦикла; + + Возврат Новый Структура("multi_select", МассивВариантовВыбора); + КонецФункции -Функция ПреобразоватьеДату(Знач Дата) - - СтруктураДаты = Новый Структура; - - Если Дата = НачалоДня(Дата) Тогда - ФорматДаты = "ДФ=yyyy-MM-dd"; - Иначе - ФорматДаты = "ДФ=yyyy-MM-ddThh:mm:ssZ"; - КонецЕсли; - - Дата = Формат(Дата, ФорматДаты); - СтруктураДаты.Вставить("start", Дата); - - Возврат Новый Структура("date", СтруктураДаты); - +Функция ПреобразоватьДату(Знач Дата) + + СтруктураДаты = Новый Структура; + + Если Дата = НачалоДня(Дата) Тогда + ФорматДаты = "ДФ=yyyy-MM-dd"; + Иначе + ФорматДаты = "ДФ=yyyy-MM-ddThh:mm:ssZ"; + КонецЕсли; + + Дата = Формат(Дата, ФорматДаты); + СтруктураДаты.Вставить("start", Дата); + + Возврат Новый Структура("date", СтруктураДаты); + КонецФункции Функция ПреобразоватьСвязь(Знач Идентификатор) - - МассивСвязи = Новый Массив; - МассивСвязи.Добавить(Новый Структура("id", Идентификатор)); - - Возврат Новый Структура("relation", МассивСвязи); - + + МассивСвязи = Новый Массив; + МассивСвязи.Добавить(Новый Структура("id", Идентификатор)); + + Возврат Новый Структура("relation", МассивСвязи); + КонецФункции Функция ПреобразоватьПользователей(Знач МассивИД) - - Если Не ТипЗнч(МассивИД) = Тип("Массив") Тогда - МассивИД_ = Новый Массив; - МассивИД_.Добавить(МассивИД); - МассивИД = МассивИД_; - КонецЕсли; - - МассивПользователей = Новый Массив; - - Для Каждого Идентификатор Из МассивИД Цикл - - СтруктураПользователя = Новый Структура; - СтруктураПользователя.Вставить("object", "user"); - СтруктураПользователя.Вставить("id" , Идентификатор); - МассивПользователей.Добавить(СтруктураПользователя); - - КонецЦикла; - - Возврат Новый Структура("people", МассивПользователей); - + + Если Не ТипЗнч(МассивИД) = Тип("Массив") Тогда + МассивИД_ = Новый Массив; + МассивИД_.Добавить(МассивИД); + МассивИД = МассивИД_; + КонецЕсли; + + МассивПользователей = Новый Массив; + + Для Каждого Идентификатор Из МассивИД Цикл + + СтруктураПользователя = Новый Структура; + СтруктураПользователя.Вставить("object", "user"); + СтруктураПользователя.Вставить("id" , Идентификатор); + МассивПользователей.Добавить(СтруктураПользователя); + + КонецЦикла; + + Возврат Новый Структура("people", МассивПользователей); + КонецФункции Функция ПреобразоватьФайлы(Знач СоответствиеФайлов) - - МассивФайлов = Новый Массив; - - Для Каждого Файл Из СоответствиеФайлов Цикл - - СтруктураФайла = Новый Структура; - СтруктураФайла.Вставить("type", "external"); - СтруктураФайла.Вставить("name", Файл.Ключ); - СтруктураФайла.Вставить("external", Новый Структура("url", Файл.Значение)); - - МассивФайлов.Добавить(СтруктураФайла); - - КонецЦикла; + + МассивФайлов = Новый Массив; + + Для Каждого Файл Из СоответствиеФайлов Цикл + + СтруктураФайла = Новый Структура; + СтруктураФайла.Вставить("type" , "external"); + СтруктураФайла.Вставить("name" , Файл.Ключ); + СтруктураФайла.Вставить("external", Новый Структура("url", Файл.Значение)); + + МассивФайлов.Добавить(СтруктураФайла); + + КонецЦикла; - Возврат Новый Структура("files", МассивФайлов); - + Возврат Новый Структура("files", МассивФайлов); + КонецФункции Функция ПреобразоватьБулево(Знач Булево) - Возврат Новый Структура("checkbox", Булево); + Возврат Новый Структура("checkbox", Булево); КонецФункции Функция ПреобразоватьСсылку(Знач URL) - Возврат Новый Структура("url", URL); + Возврат Новый Структура("url", URL); КонецФункции Функция ПреобразоватьПочту(Знач Почта) - Возврат Новый Структура("email", Почта); + Возврат Новый Структура("email", Почта); КонецФункции Функция ПреобразоватьТелефон(Знач Телефон) - Возврат Новый Структура("phone_number", Телефон); + Возврат Новый Структура("phone_number", Телефон); КонецФункции #КонецОбласти diff --git a/docs/docs/Notion/Работа с базами/Изменить свойства базы.md b/docs/docs/Notion/Работа с базами/Изменить свойства базы.md new file mode 100644 index 0000000000..db332469f8 --- /dev/null +++ b/docs/docs/Notion/Работа с базами/Изменить свойства базы.md @@ -0,0 +1,188 @@ +--- +sidebar_position: 2 +--- + +# Изменить свойства базы +Изменяет свойства созданной ранее базы + + +*Функция ИзменитьСвойстваБазы(Знач Токен, Знач База, Знач Свойства = "", Знач Заголовок = "", Знач Описание = "") Экспорт* + + | Параметр | Тип | Назначение | + |-|-|-| + | Токен | Строка | Токен интеграции | + | База | Строка | ID базы | + | Свойства | Соответствие | Ключ - Имя изменяемого свойства, Значение - Тип или неопределено. Если неопределено - свойство удаляется | + + Вовзращаемое значение: Соответствие - сериализованный JSON ответа от Notion + +```bsl title="Пример кода" + + Токен = "secret_9RsfMrRMqZwqp0Zl0B..."; + База = "5dd94c34fab04bff9..."; + ЗаголовокБазы = "Обновленный заголовок"; + ОписаниеБазы = "Обновленное описание базы"; + + Свойства = Новый Соответствие; + Свойства.Вставить("Почта", "rich_text"); //Тип поля "Почта" будет изменен с email на текст + Свойства.Вставить("Сайт"); //Поле "Сайт" будет удалено + + Ответ = OPI_Notion.ИзменитьСвойстваБазы(Токен, База, Свойства, ЗаголовокБазы, ОписаниеБазы); + Ответ = OPI_Инструменты.JSONСтрокой(Ответ); + +``` + +![Результат](img/2.png) + +```json title="Результат" + +{ + "request_id": "d42b5700-9325-439e-98ce-252a007f5ed7", + "public_url": null, + "url": "https://www.notion.so/048ba0ce4f474e33900540d249b01949", + "parent": { + "page_id": "5dd94c34-fab0-4bff-986b-7511c0779f77", + "type": "page_id" + }, + "properties": { + "Картинка": { + "files": {}, + "type": "files", + "name": "Картинка", + "id": "r%3Dfa" + }, + "Активен": { + "checkbox": {}, + "type": "checkbox", + "name": "Активен", + "id": "q%3FQF" + }, + "Телефон": { + "phone_number": {}, + "type": "phone_number", + "name": "Телефон", + "id": "hDII" + }, + "Пользователь": { + "people": {}, + "type": "people", + "name": "Пользователь", + "id": "%5D%40Md" + }, + "Описание": { + "rich_text": {}, + "type": "rich_text", + "name": "Описание", + "id": "KnG%3F" + }, + "Статус": { + "select": { + "options": [ + { + "description": null, + "color": "red", + "name": "Удаленный", + "id": "a71d6e8a-4f3e-4dfd-9f0e-4d90e400fde7" + }, + { + "description": null, + "color": "yellow", + "name": "В работе", + "id": "aa6300b4-c635-4ab4-b5cd-87d14e45dd11" + }, + { + "description": null, + "color": "green", + "name": "Новый", + "id": "202b1d30-2095-40f1-8b91-f627d475d560" + } + ] + }, + "type": "select", + "name": "Статус", + "id": "IDW%3C" + }, + "Номер": { + "type": "number", + "name": "Номер", + "number": { + "format": "number" + }, + "id": "CH__" + }, + "Дата создания": { + "date": {}, + "type": "date", + "name": "Дата создания", + "id": "BQN%5B" + }, + "Имя": { + "title": {}, + "type": "title", + "name": "Имя", + "id": "title" + }, + "Почта": { + "rich_text": {}, + "type": "rich_text", + "name": "Почта", + "id": "%3CO%3AD" + } + }, + "last_edited_time": "2024-01-26T18:26:00.000Z", + "description": [ + { + "plain_text": "Обновленное описание базы", + "annotations": { + "color": "default", + "code": false, + "underline": false, + "strikethrough": false, + "italic": false, + "bold": false + }, + "text": { + "link": null, + "content": "Обновленное описание базы" + }, + "href": null, + "type": "text" + } + ], + "created_by": { + "id": "8b07422e-eeea-40d1-8d5e-c784211825b0", + "object": "user" + }, + "archived": false, + "icon": null, + "created_time": "2024-01-26T16:49:00.000Z", + "title": [ + { + "plain_text": "Обновленный заголовок", + "annotations": { + "color": "default", + "code": false, + "underline": false, + "strikethrough": false, + "italic": false, + "bold": false + }, + "text": { + "link": null, + "content": "Обновленный заголовок" + }, + "href": null, + "type": "text" + } + ], + "cover": null, + "is_inline": false, + "id": "048ba0ce-4f47-4e33-9005-40d249b01949", + "last_edited_by": { + "id": "8b07422e-eeea-40d1-8d5e-c784211825b0", + "object": "user" + }, + "object": "database" +} + +```