Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 15:53
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как вставить в обмен с сайтом проверку?!  (Прочитано 8983 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
УПП Ликероводочный и винный завод. Для УТ всего полно, а вот только не ставится на нашу УПП. Сразу оговорюсь в 1С я ламер... Поэтому не судите строго за допущенные ошибки и непонимание  :nhsrm:

Хочу добавить проверку на наличие символа ":" в поле комментарий и соответственно не проводить ЕСЛИ символ есть.
В конфигураторе 1С нашел следующее:

// если документы нужно проводить, то попытаемся их провести
РежимПроведения = ?(ПроводитьДокументыОперативно, РежимПроведенияДокумента.Оперативный, РежимПроведенияДокумента.Неоперативный);
Для Каждого ДокументПроведения Из МассивДокументовДляПроведения Цикл

Если МассивОтклоненныхДокументов.Найти(ДокументПроведения.Ссылка) <> Неопределено Тогда
Продолжить;
КонецЕсли;

Попытка

ДокументПроведения.ПометкаУдаления = Ложь;
ДокументПроведения.Записать(РежимЗаписиДокумента.Проведение, РежимПроведения);

Исключение

СообщитьОбИсключительнойОшибке(Ложь, "Ошибка при проведении документа: " + Строка(ДокументПроведения) + Символы.ПС + ОписаниеОшибки());
Возврат Ложь;

КонецПопытки;

КонецЦикла;

Для Каждого ДокументПроведения Из МассивОтклоненныхДокументов Цикл

Попытка

ДокОбъект = ДокументПроведения.ПолучитьОбъект();
ДокОбъект.ПометкаУдаления = Истина;
ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);

Исключение

СообщитьОбИсключительнойОшибке(Ложь, "Ошибка при отмене проведения документа: " + Строка(ДокументПроведения) + Символы.ПС + ОписаниеОшибки());
Возврат Ложь;

КонецПопытки;

КонецЦикла;

Однако, как мне кажется проверка строк XML файла на наличие комментария происходит гораздо позже:
Функция ОбработатьЗначениеЭлемента(Знач ИмяЭлемента, Знач ЗначениеЭлемента, ДеревоДокументов);

Успешно = Истина;
КоличествоДокументов = ДеревоДокументов.Строки.Количество();
ИмяТекущегоЭлемента  = ПолучитьИмяЭлементаИзПоследовательности(ИмяЭлемента);
ДеревоАдресов = Неопределено;
ТаблицаКонтактов = Неопределено;
ТаблицаКонтактныхЛиц = Неопределено;

Если КоличествоДокументов > 0 Тогда

ТекущаяСтрокаДерева       = ДеревоДокументов.Строки[КоличествоДокументов - 1];
    ТекущийДокумент       = ТекущаяСтрокаДерева.ДокументОбъект;

ТекущаяСтрокаТоваровУслуг = Неопределено;
ТекущаяСтрокаСкидок   = Неопределено;

КоличествоТоваровУслуг    = ТекущаяСтрокаДерева.Строки.Количество();

Если КоличествоТоваровУслуг > 0 Тогда

ТекущаяСтрокаТоваровУслуг = ТекущаяСтрокаДерева.Строки[КоличествоТоваровУслуг - 1];

КоличествоСкидок      = ТекущаяСтрокаТоваровУслуг.Строки.Количество();

Если КоличествоСкидок > 0 Тогда
ТекущаяСтрокаСкидок = ТекущаяСтрокаТоваровУслуг.Строки[КоличествоСкидок - 1];
КонецЕсли;

КонецЕсли;
   
Если ИмяЭлемента = "Документ.Номер" Тогда
ТекущийДокумент.Организация   = Организация;
ТекущийДокумент.Ответственный = Ответственный;
ТекущийДокумент.Подразделение = Подразделение;
//где-то тут....
                        ТекущийДокумент.Комментарий   = "№ " + ЗначениеЭлемента + " " + HTTPОбменСервер;
//т.е. наличие комментарияфиксируется тут?!
ТекущийДокумент.НомерВходящегоДокументаЭлектронногоОбмена = ЗначениеЭлемента;
ТекущаяСтрокаДерева.НомерВходящий = ЗначениеЭлемента;

ОтобразитьСостояние("Обработка документа CML: " + ТекущаяСтрокаДерева.НомерВходящий);



Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
ВАУ.. на просмотре такого не было...((
Перезаписываю свое обращение ---

Хочу добавить проверку на наличие символа ":" в поле комментарий и соответственно не проводить ЕСЛИ символ есть.
В конфигураторе 1С нашел следующее:

// если документы нужно проводить, то попытаемся их провести
   РежимПроведения = ?(ПроводитьДокументыОперативно, РежимПроведенияДокумента.Оперативный,    РежимПроведенияДокумента.Неоперативный);
   Для Каждого ДокументПроведения Из МассивДокументовДляПроведения Цикл
      
      Если МассивОтклоненныхДокументов.Найти(ДокументПроведения.Ссылка) <> Неопределено Тогда
         Продолжить;
      КонецЕсли;
      
         Попытка
         
         ДокументПроведения.ПометкаУдаления = Ложь;
         ДокументПроведения.Записать(РежимЗаписиДокумента.Проведение, РежимПроведения);         
                  
      Исключение
         
         СообщитьОбИсключительнойОшибке(Ложь, "Ошибка при проведении документа: " + Строка(ДокументПроведения) + Символы.ПС + ОписаниеОшибки());
         Возврат Ложь;
                  
      КонецПопытки;
      
   КонецЦикла;
   
   Для Каждого ДокументПроведения Из МассивОтклоненныхДокументов Цикл
      
      Попытка
         
         ДокОбъект = ДокументПроведения.ПолучитьОбъект();
         ДокОбъект.ПометкаУдаления = Истина;
         ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);         
                  
      Исключение
         
         СообщитьОбИсключительнойОшибке(Ложь, "Ошибка при отмене проведения документа: " + Строка(ДокументПроведения) + Символы.ПС + ОписаниеОшибки());
         Возврат Ложь;
                  
      КонецПопытки;
      
   КонецЦикла;

Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
И вторая часть...
Однако, как мне кажется проверка строк XML файла на наличие комментария происходит гораздо позже:

Если ИмяЭлемента = "Документ.Номер" Тогда
   //+1cbit MBerdichevskiy    14.01.2012
         ТекущийДокумент.СкладГруппа                 = бтСклад;
         ТекущийДокумент.ОтражатьВБухгалтерскомУчете = бтОтражатьВБУ;
         ТекущийДокумент.ВидОперации             = Перечисления.ВидыОперацийЗаказПокупателя.ПродажаКомиссия;
   //-1cbit MBerdichevskiy         
         ТекущийДокумент.Организация   = Организация;
         ТекущийДокумент.Ответственный = Ответственный;
         ТекущийДокумент.Подразделение = Подразделение;
         ТекущийДокумент.Комментарий   = "№ " + ЗначениеЭлемента + " " + HTTPОбменСервер;
                  
         ТекущийДокумент.НомерВходящегоДокументаЭлектронногоОбмена = ЗначениеЭлемента;
         ТекущаяСтрокаДерева.НомерВходящий = ЗначениеЭлемента;
         
         ОтобразитьСостояние("Обработка документа CML: " + ТекущаяСтрокаДерева.НомерВходящий);

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Ты найди свой коментарий уже при проведении и если есть твой символ тогда МассивОтклоненныхДокументов.Добавить(СсылкаНаТвойДокумент);
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
++ и здесь СПАСИБО...
буду ваять...

Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
Правильно ли я понял.. Что нужно, ЭТО:
   {   ИначеЕсли ИмяЭлемента = "Документ.Комментарий" Тогда   
      ТекущийДокумент.Комментарий = ТекущийДокумент.Комментарий + ": " + ЗначениеЭлемента; }

Заменить на.. ЭТО:
   {ИначеЕсли ИмяЭлемента = "Документ.Комментарий" Тогда   
          ТекущийДокумент.Комментарий = ТекущийДокумент.Комментарий + ": " + ЗначениеЭлемента;
          Если ТекущийДокумент.Комментарий Тогда
             МассивОтклоненныхДокументов.Добавить(ТекущийДокумент);
         КонецЕсли; }

Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
или правильнее.... так:
   ИначеЕсли ИмяЭлемента = "Документ.Комментарий" Тогда   
         ТекущийДокумент.Комментарий = ТекущийДокумент.Комментарий + ": " + ЗначениеЭлемента;
         Если ТекущийДокумент.Комментарий = ": " Тогда
             МассивОтклоненныхДокументов.Добавить(ТекущийДокумент);
         КонецЕсли;

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Если я правильно понял, то надо если в коментарии есть двоеточие, тогда не даем проводить? Тогда так
Если Найти(ТекущийДокумент.Комментарий, ":") > 0 Тогда
   МассивОтклоненныхДокументов.Добавить(ТекущийДокумент);
КонецЕсли;

Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
Хм... Тогда
ERROR: Переменная не определена (МассивОтклоненныхДокументов)
<<?>>МассивОтклоненныхДокументов.Добавить(ТекущийДокумент);

Оффлайн Kintim

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 2
  • КПД: 7%
  • Регистрация: 2012-01-19
  • Сайт: 
  • Профессия: Ученик 1С
Так.. ну понятно... Они в разных Процедурах... отсюда и ошибка, вот только как запустить проверку на наличие в строке ":" рядом с МассивОтклоненныхДокументов ?!?!


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 251
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal