HelpF.pro

Как из строки Представления Документа получить его Номер и Дату?

Код 1C v 8.х
 // Функция преобразовывает строку
// вида: "Введен на основании: Счет на оплату № 000415 от 30 июня 2008 г."
// и возвращает массив содержащий название документа, номер и дату
Функция РазбитьСтрокуДокументаНаНомерИДату(Стр)
Симв1 = Найти(Стр,":");
Симв2 = Найти(Стр,"№");
Симв3 = Найти(Стр,"от");
РезМассив = Новый Массив;
РезМассив.Добавить(СокрЛП(Сред(Стр,Симв1+1, Симв2-Симв1-1)));
РезМассив.Добавить(СокрЛП(Сред(Стр,Симв2+1, Симв3-Симв2-1)));
РезМассив.Добавить(СокрЛП(Сред(Стр,Симв3+2, СтрДлина(Стр)-Симв3)));
Возврат РезМассив;
КонецФункции

//Пример обращения
Реквизит1 = "Введен на основании: Счет на оплату № 000415 от 30 июня 2008 г.";
МассивСДанными = РазбитьСтрокуДокументаНаНомерИДату(Реквизит1);
Сообщить("Документ - "+МассивСДанными[0]);
Сообщить("Номер - "+МассивСДанными[1]);
Сообщить("Дата - "+МассивСДанными[2]);

// Результат Будет
// Документ - Счет на оплату
// Номер - 000415
// Дата - 30 июня 2008 г.



Код 1C v 7.x
  // Функция преобразовавает строку
// вида: "Введен на основании: Счет на оплату № 000415 от 30 июня 2008 г."
// и возвращает массив содержащий название документа, номер и дату
Функция РазбитьСтрокуДокументаНаНомерИДату(Стр)
Симв1 = Найти(Стр,":");
Симв2 = Найти(Стр,"№");
Симв3 = Найти(Стр,"от");
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(СокрЛП(Сред(Стр,Симв1+1, Симв2-Симв1-1)));
Список.ДобавитьЗначение(СокрЛП(Сред(Стр,Симв2+1, Симв3-Симв2-1)));
Список.ДобавитьЗначение(СокрЛП(Сред(Стр,Симв3+2, СтрДлина(Стр)-Симв3)));
Возврат Список;
КонецФункции


//*******************************************
Процедура Сформировать()
Реквизит1 = "Введен на основании: Счет на оплату № 000415 от 30 июня 2008 г.";
СпЗсДанными = РазбитьСтрокуДокументаНаНомерИДату(Реквизит1);
Сообщить("Документ - "+ СпЗсДанными.ПолучитьЗначение(1));
Сообщить("Номер - "+ СпЗсДанными.ПолучитьЗначение(2));
Сообщить("Дата - "+ СпЗсДанными.ПолучитьЗначение(3));
КонецПроцедуры

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/946.html