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

Автор Тема: Помогите пожалуйста разобраться с ошибкой в коде  (Прочитано 5015 раз)

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

Оффлайн ildarik_58

  • *
  • Сообщений: 43
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-26
  • Сайт: 
  • Профессия: Ученик 1С
Помогите пожалуйста исправить ошибку
вот код
Запрос=Новый Запрос;
   Если Режим=РежимПроведенияДокумента.Оперативный Тогда
      Запрос.Текст =
      "ВЫБРАТЬ
      |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
      |   ОказаниеУслугиПереченьНоменклатуры.Количество,
      |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
      |   ОказаниеУслугиПереченьНоменклатуры.Сумма КАК Сумма1,
      |   ОстаткиМатериаловОстатки.КоличествоОстаток,
      |   СтоимостьМатериаловОстатки.СтоимостьОстаток,
      |   ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
      |ИЗ
      |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
      |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
      |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Склад
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
      |            &МоментВремени,
      |            Материал В (&СписокНоменклатурыДокумента)
      |               И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе
      |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал
      |ГДЕ
      |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
      |
      |ДЛЯ ИЗМЕНЕНИЯ
      |   РегистрНакопления.ОстаткиМатериалов.Остатки,
      |   РегистрНакопления.СтоимостьМатериалов.Остатки";
      
      Запрос.УстановитьПараметр("СкладВДокументе",Склад);
   Иначе
      
      Запрос.Текст =
      "ВЫБРАТЬ
      |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
      |   ОказаниеУслугиПереченьНоменклатуры.Количество,
      |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
      |   ОказаниеУслугиПереченьНоменклатуры.Сумма КАК Сумма,
      |   ОстаткиМатериаловОстатки.КоличествоОстаток,
      |   СтоимостьМатериаловОстатки.СтоимостьОстаток
      |ИЗ
      |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
      |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
      |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Склад
      |ГДЕ
      |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
      |ДЛЯ ИЗМЕНЕНИЯ
      
      |   РегистрНакопления.СтоимостьМатериалов.Остатки,
      |   РегистрНакопления.ОстаткиМатериалов.Остатки";
      
   КонецЕсли;
   
   
   Запрос.УстановитьПараметр("МоментВремени",МоментВремени());
   Запрос.УстановитьПараметр("СписокНоменклатурыДокумента",ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
   Запрос.УстановитьПараметр("Ссылка",Ссылка);
   ВыборкаРезультатаЗапроса=Запрос.Выполнить().Выбрать();
   Пока ВыборкаРезультатаЗапроса.Следующий()Цикл
      //Проверить остаток при оперативном проведении.
      Если Режим=РежимПроведенияДокумента.Оперативный Тогда
         Если ВыборкаРезультатаЗапроса.ВидНоменклатуры=Перечисления.ВидыНоменклатур.Материал Тогда
            Остаток=?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе=Null,0,ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе);
            Если Остаток<ВыборкаРезультатаЗапроса.Количество Тогда
               Сообщить("Материала"+СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура)+"имеется только"+Остаток);
               Отказ=Истина;
               Возврат;
         КонецЕсли;
         КонецЕсли;
      КонецЕсли;
      //Сформировать движения.
      Если ВыборкаРезультатазапроса.ВидНоменклатуры=Перечисления.ВидыНоменклатур.Материал Тогда
         //По Регистру Управленческий 
         
         //Первая Проводка:
         //Д62(ДебиторскаяЗадолженность)-К90(Капитал)
         //Розничная сумма
         Движение=Движения.Управленческий.Добавить();
         Движение.СчетДт=ПланыСчетов.Основной.ДебиторскаяЗадолженость;
         Движение.СчетКт=ПланыСчетов.Основной.Капитал;
         Движение.Период=Дата;
         Движение.Сумма=ВыборкаРезультатаЗапроса.Сумма;
         Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Клиенты]=Клиент;
         
         //Втораяпроводка:
         //Д90(Капитал)-К41(Товары)-себестоимость
         Движение=Движения.Управленческий.Добавить();
         Движение.СчетДт=ПланыСчетов.Основной.Капитал;
         Движение.СчетКт=ПланыСчетов.Основной.Товары;
         Движение.Период=Дата;
         Движение.Сумма=СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество;
         Движение.КоличествоКт=ВыборкаРезультатаЗапроса.Количество;
         Движение.СубконтоКт[ПланыВидовХарактеристика.ВидыСубконто.Материалы]=ВыборкаРезультатаЗапроса.Номенклатура;
      КонецЕсли;

                  
         //РегистрОстаткиМатериалов Расход
         Движение=Движения.ОстаткиМатериалов.Добавить();
         Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
         Движение.Период=Дата;
         Движение.Материал=ВыборкаРезультатаЗапроса.Номенклатура;
         Движение.Склад=Склад;
         Движение.Количество=ВыборкаРезультатаЗапроса.Количество;
         
         //РегистрСтоимостьМатериаловРасход.
         Движение=Движения.СтоимостьМатериалов.Добавить();
         Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
         Движение.Период=Дата;
         Движение.Материал=ВыборкаРезультатаЗапроса.Номенклатура;
         //Рассчитать стоимость материала.
         СтоимостьМатериала=?(ВыборкаРезультатаЗапроса.КоличествоОстаток=Null,0,ВыборкаРезультатаЗапроса.СтоимостьОстаток/ВыборкаРезультатаЗапроса.КоличествоОстаток);
         Движение.Стоимость=СтоимостьМатериала*ВыборкаРезультатазапроса.Количество;
      КонецЕсли;
      
      //Регистр Продажи.
      Движение=Движения.Продажи.Добавить();
      Движение.Период=Дата;
      Движение.Номенклатура=ВыборкаРезультатазапроса.Номенклатура;
      Движение.Клиент=Клиент;
      Движение.Мастер=Мастер;
      Движение.Количество=ВыборкаРезультатазапроса.Количество;
      Движение.Выручка=ВыборкаРезультатазапроса.Сумма;
      Если ВыборкаРезультатаЗапроса.ВидНоменклатуры=Перечисления.ВидыНоменклатур.Материал Тогда
         Движение.Стоимость=СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество();
      Иначе
         Движение.Стоимость=0;
      КонецЕсли;
   
   КонецЦикла;
   //Записать движения регистров
   Движения.ОстаткиМатериалов.Записать();
   Движения.СтоимостьМатериалов.Записать();
   Движения.Продажи.Записать();
   


Оффлайн ildarik_58

  • *
  • Сообщений: 43
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-26
  • Сайт: 
  • Профессия: Ученик 1С
вот ошибка
{Документ.ОказаниеУслуги.МодульОбъекта(117,3)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
      <<?>>КонецЕсли; (Проверка: Толстый клиент (обычное приложение))
{Документ.ОказаниеУслуги.МодульОбъекта(133,2)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
   <<?>>КонецЦикла; (Проверка: Толстый клиент (обычное приложение))

Оффлайн ls600

  • ****
  • Сообщений: 328
  • РЕПУТАЦИЯ: 21
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
     //РегистрСтоимостьМатериаловРасход.
         Движение=Движения.СтоимостьМатериалов.Добавить();
         Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
         Движение.Период=Дата;
         Движение.Материал=ВыборкаРезультатаЗапроса.Номенклатура;
         //Рассчитать стоимость материала.
         СтоимостьМатериала=?(ВыборкаРезультатаЗапроса.КоличествоОстаток=Null,0,ВыборкаРезультатаЗапроса.СтоимостьОстаток/ВыборкаРезультатаЗапроса.КоличествоОстаток);
         Движение.Стоимость=СтоимостьМатериала*ВыборкаРезультатазапроса.Количество;
      КонецЕсли;

КОНЕЦ ЕСЛИ убери.


Оффлайн ildarik_58

  • *
  • Сообщений: 43
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-26
  • Сайт: 
  • Профессия: Ученик 1С
Помогите пожалуйста исправить ошибки в коде:
{ОбщийМодуль.ПроведениеРасчетов.Модуль(73,2)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
   <<?>>КонецЦикла; (Проверка: Толстый клиент (обычное приложение))
Добавлено: 17 Май 2013, 11:04

Процедура РассчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников)Экспорт
   
   Регистратор=НаборЗаписейРегистра.Отбор.Регистратор.Значение;
   
   //Рассчитать первичные записи
   Если  ТребуемыйВидРасчета=ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
      
      Запрос = НовыйЗапрос;
      Запрос.Текст =
      "ВЫБРАТЬ
      |   НачисленияДанныеГрафика.ЗначениеПериодДействия,
      |   НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия,
      |   НачисленияДанныеГрафика.НомерСтроки,
      |ИЗ
      |   РегистрРасчета.Начисления.ДанныеГрафика (Регистатор=&Регистратор И
      |   ВидРасчета=&ВидРасчета И Сотрудник В (&СписокСотрудников))
      |                              КАК НачисленияДанныеГрафика";
      
      Запрос.УстановитьПараметр("Регистратор", Регистратор);
      Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);
      Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);
      
      ВыборкаРезультата=Запрос.Выполнить().Выбрать();
      
      Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
         СтруктураНомер=Новый Структура("НомерСтроки");
         СтруктураНомер.НомерСтроки=ЗаписьРегистра.НомерСтроки;
         ВыборкаРезультата.Сбросить();                       
         Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда
            Если ВыборкаРезультата.Норма=0 тогда
               Сообщить("Вид расчета: Оклад - Нет рабочих дней в заданном периоде",);
               ЗаписьРегистра.Результат=0;
            Иначе
               //Рассчитать оклад по фактическому периоду и исходным данным
               ЗаписьРегистра.Результат=(ЗаписьРегистра.ИсходныеДанные/ВыборкаРезультата.Норма)*ВыборкаРезультата.Факт;
               Сообщить("Выполнен расчет"+ЗаписьРегистра.Регистратор + "-" + ЗаписьРегистра.ВидРасчета + "-" +ЗаписьРегистра.Сотрудник,);
            КонецЕсли;
         КонецЕсли;
      КонецЦикла;
      
      
      //Рассчитать вторичные записи
   ИначеЕсли ТребуемыйВидРасчета=ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда
      
      Запрос=НовыйЗапрос;
      Запрос.Текст="ВЫБРАТЬ
      |   НачисленияБазаНачисления.РезультатБаза КАК База,
      |   НачисленияБазаНачисления.НомерСтроки
      |ИЗ
      |   РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОснового,&ИзмеренияБазвого,Регистратор=&Регистратор И ВидРасчета=&ВидРасчета И
      |   Сотрудник В (&СписокСотрудникоов)) КАК НачисленияБазаНачисления";
      
      
      Измер=НовыйМассив(1);
      Измер[0]="Сотрудник";
      
      Запрос.УстановитьПараметр("ИзмеренияОсновного",Измер);
      Запрос.УстановитьПараметр("ИзмеренияБазового",Измер);
      Запрос.УстановитьПараметр("Регистратор",Регистратор);
      Запрос.УстановитьПараметр("ВидРасчета",ТребуемыйВидРасчета);
      Запрос.УстановитьПараметр("СписокСотрудник",СписокСотрудник);
      
      ВыборкаРезультата=Запрос.Выполнить().Выбрать();
      
      СтруктураНомер.НомерСтроки=ЗаписьРегистра.НомерСтроки;
      ВыборкаРезультата.Сбросить();
      Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер)
         Тогда
         ЗаписьРегистра.Результат=ВыборкаРезультата.База* (10/100);
         Сообщить("Выполнен расчет"+ Запись.Регистра.Регистратор+ "-" + ЗаписьРегистра.ВидРасчета + "-" + ЗаписьРегистра.Сотрудник,);
         
      КонецЕсли;
   КонецЦикла;
   
   
КонецПроцедуры




Добавлено: 17 Май 2013, 11:22

{ОбщийМодуль.ПроведениеРасчетов.Модуль(78,3)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
      <<?>>КонецЕсли; (Проверка: Толстый клиент (обычное приложение))

Последний раз редактировалось: ildarik_58; 17 Май 2013, 11:22. Причина: Объединение сообщений

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2861
  • РЕПУТАЦИЯ: 548
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Вместо последнего КонецЦикла; нужно КонецЕсли;

  КонецЕсли;
   КонецЦикла;
   
   
КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн ildarik_58

  • *
  • Сообщений: 43
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-02-26
  • Сайт: 
  • Профессия: Ученик 1С
вот какую ошибку выводит
{ОбщийМодуль.ПроведениеРасчетов.Модуль(22)}: Ошибка при вызове метода контекста (Выполнить)
      ВыборкаРезультата=Запрос.Выполнить().Выбрать();
по причине:
{(5, 2)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ

Оффлайн Yura063

  • *****
  • Сообщений: 1050
  • РЕПУТАЦИЯ: 137
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: 
  • Профессия: Программист 1С
Цитировать
      |   НачисленияДанныеГрафика.НомерСтроки,
             |ИЗ

Уберите запятую!
Помогли, отблагодари!


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4725
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 5999
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 6318
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

Автор Dm109Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 5171
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

Автор Vasya PovarРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2244
Последний ответ 07 Дек 2016, 15:53
от Kironten

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

AIFrame AIFrame
125 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
116 Сообщений
alexandr_ll
65 Сообщений
pavl_vs
40 Сообщений
alex0402
28 Сообщений
buketov.av buketov.av
24 Сообщений
magnifico61
21 Сообщений
wise wise
16 Сообщений
ilyay ilyay
15 Сообщений
mixei
14 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal