helpf.pro
Регистрация
 +1 
Распечатать

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

Код 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));
КонецПроцедуры
Разместил:   Версии: | 7.x | 8.x | 8.2 УП |  Дата:   Прочитано: 35199
 +1 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 52
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.
COM-подключение к базе 7.7 из 8.2 1С 7
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь=
Посмотреть все результаты поиска похожих
Комментарии
murenysh
09.05.2024 04:12Комментарий: 2
murenysh

В строке может быть много "от", функция не совсем корректная

Симв3 = Найти(Стр,"от");[/pre]
grin_64
28.07.2012 10:16Комментарий: 1
grin_64
Спасибо!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.