Документация для разработчиков
Темная тема

crm.invoice.add

Scope: crm Права на выполнение: для всех

crm.invoice.add(fields)

Создаёт новый счет. Если необходимо в счёте указать какие реквизиты покупателя/продавца (т.к. их может быть несколько у компании), то используйте метод crm.requisite.link.register.

В создаваемом счёте обязательно должны быть указаны компании продавца и покупателя:
UF_COMPANY_ID, если покупатель - компания или UF_CONTACT_ID, если покупатель - контакт.
UF_MYCOMPANY_ID - продавец.

Идентификаторы указанные в crm.requisite.link.register и в создаваемом счёте должны соответствовать покупателю и продавцу.

Параметры

Параметр Описание
fields Набор полей - массив вида array("поле"=>"значение"[, ...]), содержащий значения полей счёта.
Примечание: чтобы узнать требуемый формат полей, выполните метод crm.invoice.fields и посмотрите формат пришедших значений этих полей.

Пример

Пример 1

var current = new Date();
var nextMonth = new Date();
nextMonth.setMonth(current.getMonth() + 1);

var date2str = function(d)
{
	return d.getFullYear() + '-' + paddatepart(1 + d.getMonth()) + '-' + paddatepart(d.getDate()) + 'T' + paddatepart(d.getHours()) + ':' + paddatepart(d.getMinutes()) + ':' + paddatepart(d.getSeconds()) + '+03:00';
};

var paddatepart = function(part)
{
	return part >= 10 ? part.toString() : '0' + part.toString();
};

BX24.callMethod(
	"crm.invoice.add",
	{
		"fields": {
			"ORDER_TOPIC": "Счёт для юр. лица",
			"STATUS_ID": "P",
			"DATE_INSERT": date2str(current),
			"PAY_VOUCHER_DATE": date2str(current),
			"PAY_VOUCHER_NUM": "876",
			"DATE_MARKED": date2str(current),
			"REASON_MARKED": "Счёт оплачен сразу.",
			"COMMENTS": "комментарий менеджера",
			"USER_DESCRIPTION": "комментарий для клиента",
			"DATE_BILL": date2str(current),
			"DATE_PAY_BEFORE": date2str(nextMonth),
			"RESPONSIBLE_ID": 1,
			"UF_DEAL_ID": 10,
			"UF_COMPANY_ID": 5,
			"UF_CONTACT_ID": 2,
			"PERSON_TYPE_ID": 2,
			"PAY_SYSTEM_ID": 6,
			"INVOICE_PROPERTIES": {
				"COMPANY": "ООО \"Новые технологии\"",                              // Название компании
				"COMPANY_ADR": "543000 Москва, ул. Песчаная, д. 15, оф. 55 (юр)",   // Юридический адрес
				"INN": "",                                                          // ИНН
				"KPP": "",                                                          // КПП
				"CONTACT_PERSON": "Борис Соколов",                                  // Контактное лицо
				"EMAIL": "pr@logistics-north.com",                                  // E-Mail
				"PHONE": "8 (495) 234-54-32",                                       // Телефон
				"FAX": "",                                                          // Факс
				"ZIP": "",                                                          // Индекс
				"CITY": "",                                                         // Город
				"LOCATION": "",                                                     // Местоположение
				"ADDRESS": ""                                                       // Адрес доставки
			},
			"PRODUCT_ROWS": [
				{"ID": 0, "PRODUCT_ID": 438, "PRODUCT_NAME": "Товар 01", "QUANTITY": 1, "PRICE": 100},
				{"ID": 0, "PRODUCT_ID": 515, "PRODUCT_NAME": "Товар 77", "QUANTITY": 1, "PRICE": 118}
			]
		}
	},
	function(result)
	{
		if(result.error())
			console.error(result.error());
		else
			console.info("Создан счёт с ID " + result.data());
	}
);

Пример 2

var current = new Date();
var nextMonth = new Date();
nextMonth.setMonth(current.getMonth() + 1);

var date2str = function(d)
{
	return d.getFullYear() + '-' + paddatepart(1 + d.getMonth()) + '-' + paddatepart(d.getDate()) + 'T' + paddatepart(d.getHours()) + ':' + paddatepart(d.getMinutes()) + ':' + paddatepart(d.getSeconds()) + '+03:00';
};

var paddatepart = function(part)
{
	return part >= 10 ? part.toString() : '0' + part.toString();
};

BX24.callMethod(
	"crm.invoice.add",
	{
		"fields": {
			"ORDER_TOPIC": "Счёт для физ. лица",
			"STATUS_ID": "P",
			"DATE_INSERT": date2str(current),
			"PAY_VOUCHER_DATE": date2str(current),
			"PAY_VOUCHER_NUM": "876",
			"DATE_MARKED": date2str(current),
			"REASON_MARKED": "оплатили",
			"COMMENTS": "комментарий",
			"USER_DESCRIPTION": "комментарий клиенту",
			"DATE_BILL": date2str(current),
			"DATE_PAY_BEFORE": date2str(nextMonth),
			"RESPONSIBLE_ID": 1,
			"UF_DEAL_ID": 8,
			"UF_COMPANY_ID": 0,
			"UF_CONTACT_ID": 3,
			"PERSON_TYPE_ID": 1,
			"PAY_SYSTEM_ID": 6,
			"INVOICE_PROPERTIES": {
				"FIO": "Глеб Титов",                                                // Ф.И.О.
				"EMAIL": "boss@yt-soft.net",                                        // E-Mail
				"PHONE": "",                                                        // Телефон
				"ZIP": "",                                                          // Индекс
				"CITY": "",                                                         // Город
				"LOCATION": "",                                                     // Местоположение
				"ADDRESS": ""                                                       // Адрес доставки
			},
			"PRODUCT_ROWS": [
				{"ID": 0, "PRODUCT_ID": 438, "PRODUCT_NAME": "Товар 01", "QUANTITY": 1, "PRICE": 100},
				{"ID": 0, "PRODUCT_ID": 515, "PRODUCT_NAME": "Товар 77", "QUANTITY": 1, "PRICE": 118}
			]
		}
	},
	function(result)
	{
		if(result.error())
			console.error(result.error());
		else
			console.info("Создан счёт с ID " + result.data());
	}
);


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх