Ошибка 1с при попытке проведения документа

0

Pantagruel

11.06.15

15:12

При попытке проведения Документа выкидывает с ошибкой. Не удается понять в чем проблема. Пробовал выгрузить Результат запроса в Таблицу значений — все поля выгружаются корректно.



Ошибка при выполнении обработчика - 'ОбработкаПроведения'

по причине:

{Документ.ОказаниеУслуги.МодульОбъекта(81)}: Поле объекта не обнаружено (Стоимость)

                СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;

Процедура из МодуляОбъекта Документ.ОказаниеУслуги



Процедура ОбработкаПроведения(Отказ, Режим)

        
    Движения.ОстаткиМатериалов.Записывать = Истина;

    Движения.СтоимостьМатериалов.Записывать = Истина;

    Движения.Продажи.Записывать = Истина;

    
    
    // Создать менеджер временных таблиц

    МенеджерВТ = Новый МенеджерВременныхТаблиц;

    
    Запрос = Новый Запрос;

    
    // Укажем, какой менеджер временных таблиц использует этот запрос

    Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

    
    Запрос.Текст =

        "ВЫБРАТЬ

        |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура,

        |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,

        |    СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,

        |    СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе

        |ПОМЕСТИТЬ НоменклатураДокумента

        |ИЗ

        |    Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры

        |ГДЕ

        |    ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка

        |

        |СГРУППИРОВАТЬ ПО

        |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура,

        |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры";

    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    
    РезультатЗапроса = Запрос.Выполнить();

    
    Запрос2 = Новый Запрос;

    Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;

    Запрос2.Текст = "ВЫБРАТЬ

                    |    НоменклатураДокумента.Номенклатура,

                    |    НоменклатураДокумента.ВидНоменклатуры,

                    |    НоменклатураДокумента.КоличествоВДокументе,

                    |    НоменклатураДокумента.СуммаВДокументе,

                    |    ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,

                    |    ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество

                    |ИЗ

                    |    НоменклатураДокумента КАК НоменклатураДокумента

                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(

                    |                ,

                    |                Материал В

                    |                    (ВЫБРАТЬ

                    |                        НоменклатураДокумента.Номенклатура

                    |                    ИЗ

                    |                        НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки

                    |        ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал

                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(

                    |                ,

                    |                Материал В

                    |                    (ВЫБРАТЬ

                    |                        НоменклатураДокумента.Номенклатура

                    |                    ИЗ

                    |                        НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки

                    |        ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал";

                    
    // Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе                

    
    Движения.СтоимостьМатериалов.Записать();

    Движения.ОстаткиМатериалов.Записать();

                    
    Результат = Запрос2.Выполнить();    

    //ТЗ = Результат.Выгрузить();

    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();    

    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        
            Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда

                СтоимостьМатериала = 0;

            Иначе

                СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;

            КонецЕсли;

        
        Если ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

            
            // Регистр ОстаткиМатериалов Расход

            Движение = Движения.ОстаткиМатериалов.Добавить();

            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

            Движение.Период = Дата;

            Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;

            Движение.Склад = Склад;

            Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;

            
            // Регистр СтоимостьМатериалов Расход

            Движение = Движения.СтоимостьМатериалов.Добавить();

            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

            Движение.Период = Дата;

            Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;

            Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе*СтоимостьМатериала;

            
        КонецЕсли;

        
        // Регистр Продажи

        Движение = Движения.Продажи.Добавить();

        Движение.Период = Дата;

        Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;

        Движение.Клиент = Клиент;

        Движение.Мастер = Мастер;

        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;

        Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;

        Движение.Стоимость = СтоимостьМатериала*ВыборкаДетальныеЗаписи.КоличествоВДокументе;

    КонецЦикла;

    
КонецПроцедуры

1

Happy Bear

11.06.15

15:15

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

2

Happy Bear

11.06.15

15:16

РезультатЗапроса = Запрос.Выполнить();

5

samozvanec

11.06.15

15:19

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        
            Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда

                СтоимостьМатериала = 0;

сильно… на .Количество без скобок не ругается?

6

Tatitutu

11.06.15

15:20

А тебя в Запрос1 нет Стоимость

А Запрос2 вообще не отрабатывается

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();    

замени на

ВыборкаДетальныеЗаписи = Результат.Выбрать();

7

samozvanec

11.06.15

15:22

(5) пардон муа, есть поле Количество)

8

Pantagruel

11.06.15

15:25

(4) неа :(

(5) не ругается

(6) Запрос1 обрабатывает Документ а Результат выгружает в временную таблицу. Запрос2 обрабатывает временную таблицу и делает выборку из Регистров накопления, и склеивает результаты

9

Pantagruel

11.06.15

15:27

(6) Запрос2 обрабатывается, т.к. Результат я пробовал выгрузить в Таблицу значений и там все поля заполнены корректно

10

Tatitutu

11.06.15

15:28

(9) замени как в (5) и попробуй

11

Одинесю

11.06.15

15:28

(8) И ВыборкаДетальныеЗаписи  ты получаешь из первого запроса.

12

Tatitutu

11.06.15

15:29

(9) Запрос2 выполняется — да, но его РЕЗУЛЬТАТ (результат запроса) у тебя не куда не поподает

13

Pantagruel

11.06.15

15:34

А слона то я и не заметил!))

(3) (12) Спасибо!

14

Pantagruel

11.06.15

15:36



ВыборкаДетальныеЗаписи = Результат.Выбрать();

Добрый день!

Проводили документ принятие к учету 21.10.2021 г , все проводилось и закрытие месяца в том числе.
17.01.2022 обновили 1с платформу Бухгалтерия предприятия, редакция 3.0 (3.0.106.60) и 18.01.2022 при выполнении закрытия месяца появились ошибки. Ниже информация.
Вопрос: Помогите разобраться в чем причина и что сделать, чтобы все провелось.
1. Принятие к учету ОС 0000-000019 от 21.10.2021 12:00:00

«Обработка Принятие к учету ОС 0000-000019 от 21.10.2021 12:00:00 не выполнена по причине:
{Обработка.ГрупповоеПерепроведениеДокументов.МодульМенеджера(2016)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ПрослеживаемостьБП.Модуль(2204)}: Ошибка при вызове метода контекста (НайтиСтроки): Неверное имя колонки»

2. Принятие к учету ОС 0000-000020 от 21.10.2021 12:00:00

«Обработка Принятие к учету ОС 0000-000020 от 21.10.2021 12:00:00 не выполнена по причине:
{Обработка.ГрупповоеПерепроведениеДокументов.МодульМенеджера(2016)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ПрослеживаемостьБП.Модуль(2204)}: Ошибка при вызове метода контекста (НайтиСтроки): Неверное имя колонки»

Попытка проведения и записи документа в одной процедуре

Процедура проверяет корректность заполнения полей документа, пытается его провести. Если проведение не удается, пытается его записать. В реальной работе располагается в модуле загрузки документов из внешней системы, все документы фиксируются в базе этой процедурой.

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

Комментарии

Добрый день!

Проводили документ принятие к учету 21.10.2021 г , все проводилось и закрытие месяца в том числе.
17.01.2022 обновили 1с платформу Бухгалтерия предприятия, редакция 3.0 (3.0.106.60) и 18.01.2022 при выполнении закрытия месяца появились ошибки. Ниже информация.
Вопрос: Помогите разобраться в чем причина и что сделать, чтобы все провелось.
1. Принятие к учету ОС 0000-000019 от 21.10.2021 12:00:00

«Обработка Принятие к учету ОС 0000-000019 от 21.10.2021 12:00:00 не выполнена по причине:
{Обработка.ГрупповоеПерепроведениеДокументов.МодульМенеджера(2016)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ПрослеживаемостьБП.Модуль(2204)}: Ошибка при вызове метода контекста (НайтиСтроки): Неверное имя колонки»

2. Принятие к учету ОС 0000-000020 от 21.10.2021 12:00:00

«Обработка Принятие к учету ОС 0000-000020 от 21.10.2021 12:00:00 не выполнена по причине:
{Обработка.ГрупповоеПерепроведениеДокументов.МодульМенеджера(2016)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ПрослеживаемостьБП.Модуль(2204)}: Ошибка при вызове метода контекста (НайтиСтроки): Неверное имя колонки»

  Проекты внедрения CRM  
Я
   andryscha1c

25.03.21 — 18:51

При проведении документа выдает ошибку: данные были изменены или удалены другим пользователем.

При обычной записи ошибки не возникает, только при проведении. Есть версия что версия объекта базы данных и формы не разные, но метод прочитать не помог.

   breezee

1 — 25.03.21 — 19:43

(0) А вы что там изменили?

   andryscha1c

3 — 25.03.21 — 21:25

(1) реквизиты документа заполняли в течении 20 минут постепенно, пытались провести уже не дает, пришлось записать. Далее записанный документ также не проводится с данной ошибкой.

   hhhh

4 — 25.03.21 — 21:38

(3) метод Прочитать точно грохнули? А то, если оставили, то как раз из-за него.

   andryscha1c

5 — 25.03.21 — 22:18

(4) у меня есть основная форма Форма1, есть та которая вызывается Форма2. В Форме2 я меняю в проведении таб часть Формы1 и при закрытии Формы2  читаю Форму1 ЭтотОбъект.ВладелецФормы.Прочитать(); затем делаю тут же перед закрытием Формы2 делаю Оповестить(«ИзмененияВТЧ»); и в Форма1 меняю на Форме1 некоторые значения Статусы (обновляю).

Но ошибка сейчас прям при нажатии на кнопку Провести и закрыть, даже не доходит до закрытия формы.

   hhhh

6 — 25.03.21 — 22:33

(5) в проведении никто никогда не меняет, надо сначала всё поменять, а потом на втором этапе уже делать проведение.

   andryscha1c

7 — 25.03.21 — 22:52

(6) решено, ошибка была была в том что в проведении менялся исходный документ и пытался провестись, но он был помечен на удаление))) а за счет попытки исключения выдавало подобные ошибки. В итоге убрал в явной транзации проведения попытки исключения конструкции, выявил ошибку и убрал с пометки исходный документ и все провелось. Вопрос: а где менять если не в проведении(надо что бы именно при проведении срабатывало кнопки), в событии «при записи» с режимом записи проведение если так?

   andryscha1c

8 — 25.03.21 — 22:54

точнее перед записью

  

hhhh

9 — 25.03.21 — 23:04

да, ПередЗаписью.

/

/

/

Ошибка при проведении документов в 1С:ЗУП. Что делать?

12.04.2022

При проведении документов Отпуск, Больничный лист, Начисление прочих доходов и др., в программе «1С: Зарплата и управление персоналом, редакция 3.1», новый релиз 3.1.21.75 от 01.04.22 г., выходит сообщение об ошибке и документ не рассчитывается и не проводится, как это исправить?

Посмотреть информацию о релизе:

рисунок 1

рисунок 2

01.04.2022 г. разработчиком зарегистрирована Ошибка с кодом 60001098

рисунок 3

Ошибка появляется, если в Учетной политике (раздел-Настройка-Организации или Реквизиты организации-Учетная политика и другие настройки-Учетная политика) на вкладке НДФЛ установлен флажок – Выполнять расчет НДФЛ по прогрессивной шкале.

рисунок 4

рисунок 5

В документе Отпуск заполнено поле — Средний заработок и количество дней отпуска, но не заполняются поля – Начислено и НДФЛ, выходит сообщение об ошибке.

рисунок 6

рисунок 7

Такая же ошибка, при проведении Больничного листа, Начисление прочих доходов и других документов.

рисунок 8

рисунок 9

  • Планируется исправление в будущих версиях программы.
  • Способ исправления в настоящий момент – Установить патч EF_60001098.
  • Для оперативного исправления ошибок выпускаются так называемые патчи — небольшие файлы (специальным образом подготовленные расширения конфигурации), которые предназначены для исправления конкретной ошибки в конкретном релизе конфигурации до обновления этой конфигурации. При установке следующего релиза конфигурации, в котором данная ошибка уже исправлена, патч теряет свою актуальность и удаляется автоматически.
  • При автоматической загрузке и установке патчей пользователь, вероятнее всего и не заметит ошибку при работе с программой.
  • Патч установится автоматически, если в Информационной базе установлен флажок — Загружать и устанавливать исправления (патчи) автоматически (раздел Администрирование -Интернет — поддержка и сервисы — Обновление версии программы).

рисунок 10

рисунок 11

Где скачать патч для установки в ручном режиме:

рисунок 12

рисунок 13

Далее необходимо распаковать архив в произвольный каталог на компьютере.

рисунок 14

Для загрузки исправления (патча) в программу, заходим в раздел Администрирование-Обслуживание-Обновление программы, нажимаем на ссылку «Установка обновлений и исправлений (патчей)» и выбираем ранее распакованный файл, кнопка «Далее», кнопка «Продолжить».

рисунок 15

рисунок 16

рисунок 17

рисунок 18

рисунок 19

рисунок 20

Исправление (патч) успешно установлено.

рисунок 21

После установки исправления (патча) сформируем документ Отпуск.

рисунок 22

Ошибка исправлена, документ рассчитан и проведен.

Также, после исправления ошибки, рассчитываются и проводятся, и другие документы.

Освойте программу 1С:Зарплата и управление с нуля. Ознакомиться с курсами по зарплате и кадрам для любого уровня подготовки можно кликнув по ссылке

Расписание всех курсов 1С смотрите по кнопке ниже.

Расписание курсов 1C

Подпишитесь на нас!

И получите в подарок промокод на 1500 руб! Все новые статьи, акции и анонсы каждую неделю:

Добрый день! Подскажите, пожалуйста, как избежать ошибки при проведении документа. База 1С:Предприятие 8.3 (8.3.15.1869) Конфигурация: Бухгалтерия предприятия, редакция 2.0 (2.0.66.111) 

При проведении документа появляется сообщение:
Документ Списание с расчетного счета БПАЛ0000166 от 17.03.2020 0:00:00 не проведен! По причине: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {РегистрНакопления.НДФЛРасчетыСБюджетом.МодульМенеджера(27)}: Поле объекта не обнаружено (УчетнаяПолитикаПоНДФЛ)
Документ не проводиться

Может кто сталкивался? Как не шаманил не получается убрать эту ошибку.

г. Ростовская область341 017 баллов

Добрый день. попробуйте почистить кэш.

Заполнить, проверить и подать уведомление о сумме налога

geomech, В 1С почистить КЭШ? Научите как это сделать?

г. Ростовская область341 017 баллов

Добрый день!
Делается это просто. Двойной щелчок на иконку 1С. Удаляете из списка свою информационную базу (не забудьте запомнить где она находится) и добавляете ее опять. Просто при прохождении этапов мастера добавления вы не создаете новую базу, а добавляете уже существующую, т.е. прописываете путь к той базе, которую ранее удалили.

Заполняйте платежки с актуальными на сегодня КБК, кодами дохода и другими обязательными реквизитами

Как узнать ошибку проведения документа

Автор Sinsinmin, 06 мая 2011, 09:32

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

программно пишу следующее

ЦитироватьПопытка
        ТекстОшибки = «»;
      ДокКадрПерем.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
   Исключение
      ТекстОшибки = ОписаниеОшибки();
      ЗаписьОшибки(ТекстОшибки);
      ДокКадрПерем.Записать(РежимЗаписиДокумента.Запись);
   КонецПопытки;   

Но получается что многие документы проводятся с противоречиями. Таким образом выполнение не заходит в исключение проведения. Каким образом можно узнать ошибку проведения документа?


Ошибки проведения обрабатываются в ОбработкеПроведения() документа и выводятся обычным Сообщить()…

  • 1 пользователь сказал спасибо!

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


Это код внешней обработки.


И мне нужно передать эти ошибки в текстовый документ, для логирования ошибок внешней обработки.


Ну а чем существубщий код не подходит?


Если ты имеешь ввиду мой код, то он выдаёт ошибку только при исключении. Тобишь когда проведение документа невозможно. А хотелось бы узнать ошибки при проведении документа.


Хм, а какие ошибки возможны при нормальном проведении документа? Документ либо провелся (ошибок нет), либо не провелся (ошибки есть). Или я не так понял?


Аааа, кажется вкурил. Ты имеешь ввиду ошибки, которые не отменяют при этом проведения документа?


В ОбработкеПроведения() там где сообщаете об ошибке через Сообщить() надо добавить код, который будет помещать ошибки еще куда нибудь, например в РегистрСведений…

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


нельзя трогать код программы. Всё с помощью внешней обработки. Также нельзя делать регистры. Текстовый документ самое то.


Показывать по
10
20
40
сообщений

Новая тема

Ответить

Buhgalter2011

Дата регистрации: 21.05.2003
Сообщений: 44

Здравствуйте, после обновлений с сентября 2020г. при проведении Документа «Поступление товаров» начала вылезать ошибка см. скрин, попробовал перепровести документы предыдущих периодов то же самое, ничего не проводится. Цена документом «Установка цен номенклатуры» установлена 01.01.2020, непонятно, теперь программа предлагает на каждое поступление устанавливать новую цену. Все «перекопал», ни в учетной политике, ни в настройках ничего не изменилось, так почему теперь перестали проводится Документы «Поступление товаров», то же самое при закрытии месяца? Может сталкивался кто.

KYA

Дата регистрации: 18.12.2009
Сообщений: 585

У вас склад розничный…
— какой тип цен для него задан?
— покажите какая цена с этим типом установлена на дату документа Поступление
— какой остаток (количество/сумма) в ОСВ на сч.41.11?
В сообщении говорится об учетной цене 194,09 руб. — это стоимость единицы по сч.41.11, а установленная розничная цена другая.

У вас в учетной политике установлен учет в рознице «По продажной стоимости», но остаток на сч.41.11 не идет с установленной розничной ценой.
О чем и сообщает программа.

Buhgalter2011

Дата регистрации: 21.05.2003
Сообщений: 44

KYA, Спасибо за ответ. Действительно в учетной политике установлен учет в рознице «По продажной стоимости», склад «розничный», тип цен «розница» выбирается в документе «Отчет о розничных продажах», в документе «Поступление товаров» тип цены не был выбран, но раньше до сентября 2020г. все проводилось. Теперь все проведения отменил вплоть до 01 января 2019г. и там все не проводится везде ругается (см. скрин выше), причем, цена документом «Установка цен номенклатуры» установлена 01.01.2019г. и до 12.01.2019г. десять документов начиная с 03 января провелись, а вот документ от 12 января не проводится и далее тоже. С чем связано, непонятно, все перерыл, вроде бы ничего сложного документ «Поступление товаров» формировал следующие проводки, например, при установленной розничной цене за ед. 200 руб. поступил от поставщика товар в количестве 10 шт. ценой за ед. 50 руб.: Дт41.11 Кт60 — 500 руб. (10х50); Дт41.11 Кт42 — 1500 руб. (200х10-500). Теперь программа перестала понимать, что цена должна браться с установленной документом «Установка цен номенклатуры» и почему то ругается на учетную цену, и требует, чтобы установили именного его по остаткам, тогда зачем вообще нужно устанавливать продажную цену, ничего непонятно.

KYA

Дата регистрации: 18.12.2009
Сообщений: 585

Buhgalter2011, Вы не ответили на:

Цитата
      — какой остаток (количество/сумма) в ОСВ на сч.41.11?
Цитата
Теперь программа перестала понимать, что цена должна браться с установленной документом «Установка цен номенклатуры» и почему то ругается на учетную цену, и требует, чтобы установили именного его по остаткам, тогда зачем вообще нужно устанавливать продажную цену, ничего непонятно.

Вы не поняли. Она не требует «установить по остаткам», она хочет, чтобы вы остаток привели к цене 200 рэ

Какой остаток на счете 41.11 на дату поступления? Количество и сумма???

Buhgalter2011

Дата регистрации: 21.05.2003
Сообщений: 44

KYA, На 12.01.2019 на 41.11 действительно 194 руб., тогда непонятно, почему раньше все проводилось, и почему провелись теперь документы до 12.01.2019г.

KYA

Дата регистрации: 18.12.2009
Сообщений: 585

Смотрите когда стоимостной остаток перестал соответствовать розничной цене 200р. Может быть ручными операциями что-то корректировали?
Такое поведение 1С было всегда.

milanka

Дата регистрации: 21.12.2020
Сообщений: 5

Не все мне понятно, но попытаюсь разобраться, спасибо.

Показывать по
10
20
40
сообщений

Ошибка в 1С 8.3 Нарушение прав доступа появляется при попытках обращения пользователя к объекту, прав на который у него нет. Очень часто это происходит при вводе нового пользователя в 1С, доработке программного кода и обновлении программы.

Причины ошибки

С ошибкой Нарушение прав доступа сталкиваются многие пользователи 1С после доработки программного кода и обновления программы. Возможные причины появления ошибки:

  • обновление программы на новый релиз;
  • попытка чтения или записи данных справочника, документа или регистра пользователем, не имеющим прав на объект;
  • использование внешних обработок и отчетов без установки пользователю специальной роли;
  • ошибка задания прав новому пользователю 1C.

Ошибка обновления

При обновлении программы текущая конфигурация 1С заменяется новой версией, в которой содержатся выполненные разработчиками доработки. Все изменения, внесенные перед публикацией нового релиза, тестируются, но время от времени ошибки все-таки случаются. Если это произошло, ошибки регистрируются в специальном реестре 1С и исправляются в последующих релизах.

При появлении ошибки Нарушение прав доступа после обновления программы нужно выполнить следующие действия:

  • Проверьте, содержится ли ошибка в реестре: Публикация ошибок 1С. Перейдите по ссылке, в форме поиска ошибок укажите конфигурацию программы и текст ошибки.

После нажатия кнопки Найти будет произведен поиск по заданным параметрам.

  • Для зарегистрированной ошибки обратитe внимание на дату регистрации и релиз исправления ошибки.

  • Если заполнена информация в разделе Способ обхода — внимательно ее изучите: это позволит сразу решить проблему, не дожидаясь релиза с исправлениями.
  • Обратитесь на горячую линию 1С, если ошибка в реестре еще не зарегистрирована:
    1. телефон hotlane 1С: (495) 956-11-81;
    2. E-mail:v8@1c.ru.

Восстановите программу из копии и ждите исправления ошибки в следующем релизе обновления.

Нарушение прав доступа при чтении данных

В 1С существует набор специальных объектов Роль, которые описывают разрешенные действия пользователей. Роли задаются разработчиками в Конфигураторе 1С. При работе в 1С можно пользоваться только этим предопределенным набором. Самостоятельно ввести новую Роль без доработки Конфигурации невозможно.

Каждая Роль включает набор свойств для работы с объектами 1С. Они задают права на чтение, просмотр, изменение, редактирование и т. д. данных в справочниках, документах и регистрах программы.

Пользователь, которому назначили роль Чтение контрагентов, может считывать данные справочника Контрагенты, но при обращении к справочнику Банки получит ошибку Нарушение прав доступа.

Нарушение прав доступа при записи данных

При записи изменений данных в справочниках, документах и регистрах программа проверяет наличие соответствующих прав у пользователя также, как и при чтении данных,

Пользователь, которому назначена роль Добавление и изменение сотрудников, может редактировать данные справочника Сотрудники, но при попытке изменения данных банка получит ошибку Нарушение прав доступа.

Работы с внешними отчетами и обработками

Для работы с внешними отчетами и обработками пользователю нужно назначить одну из ролей:

  • Полные права;
  • Интерактивное открытие внешних отчетов и обработок.

Для исправления ситуации нужно добавить роль Интерактивное открытие внешних отчетов и обработок пользователю, работающему с внешней обработкой.

Добавление нового пользователя

В 1С заложена автоматическая проверка прав того набора объектов 1С, который определяется профилем групп доступа:

  • Администратор;
  • Главный бухгалтер;
  • Бухгалтер;
  • Только чтение;
  • и т. д.

Программа скроет все объекты, на которые у пользователя нет прав:

  • у пользователя Менеджер с ограниченными правами список документов отгрузки будет пуст;

  • у пользователя с Полными правами отобразится полный список документов отгрузки.

Чтобы ограничить возможность изменения документов определенным пользователям, можно даже не устанавливать специально Дату запрета изменения. Программа сама не даст сохранить изменения пользователям с ограниченными правами:

  • у пользователя Менеджер — кнопка Записать и Провести неактивны;

  • у пользователя с Полными правами — есть возможность изменения данных (кнопка Записать и закрыть активна).

Использование типовых Профилей групп доступа сводит к минимуму риск возникновения ошибки.

Ошибка при проведении документа реализация (акт, накладная)

При записи документа должно быть установлено право изменения этого документа у пользователя. Но при проведении документа помимо него самого задействуются и другие объекты — создаются записи в различные регистры.

Если вы указали в новой роли право только на документ Реализация (акт, накладная), этого недостаточно. По кнопке Дт/Кт уточните, какие регистры используются при проведении документа и добавьте их в новую роль с активными свойствами:

  • Чтение;
  • Изменение;
  • Просмотр;
  • Редактирование.

Ошибка при попытке открыть карточку контрагента под определенным пользователем

Ошибка связана с тем, что у пользователя, который отрывает карточку Контрагенты, нет прав на чтение данных из определенного регистра 1С.

Если в подробном описании ошибки программа не указывает регистр, при записи данных в который происходит ошибка, вам придется выяснить это самостоятельно. Для недоработанной типовой конфигурации Бухгалтерия 3.0 при открытии справочника Контрагенты могут использоваться:

  • регистр бухгалтерии Хозрасчетный;
  • регистр бухгалтерии Курсы валют;
  • регистр бухгалтерии Наличие дублей у контрагентов;
  • и т. д.

Эти регистры включены в программный модуль справочника Контрагенты.

Проверьте, что у пользователя есть права на эти регистры. Более серьезный анализ ситуации выполняется по программному коду процедуры открытия формы справочника.

Эта работа требует особой подготовки и квалификации.

Ошибка при открытии внешнего отчета

Для открытия внешних отчетов и обработок 1С необходимо добавить пользователю роль Интерактивное открытие внешних отчетов и обработок. После этого он сможет работать с внешним отчетом без ошибок.

Обслуживание

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

TAYSON94

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

1

Ошибка при проведении документа

20.04.2020, 10:10. Показов 2043. Ответов 32

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

При проведении документа ошибка
вот мой код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр ОстаткиМатериалов Расход
    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать=Истина;
    Движения.Продажи.Записывать=Истина;
    
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
МенеджерВТ=Новый МенеджерВременныхТаблиц; 
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц=МенеджерВТ;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидыНоменклатуры КАК ВидыНоменклатуры,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
        |ПОМЕСТИТЬ НоменклатураДокумента
        |ИЗ
        |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
        |ГДЕ
        |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидыНоменклатуры";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    РезультатЗапроса = Запрос.Выполнить();
        Запрос2=Новый Запрос;
            Запрос2.МенеджерВременныхТаблиц=МенеджерВТ;
            Запрос2.Текст=
                        "ВЫБРАТЬ
                          | НоменклатураДокумента.Номенклатура,
                          | НоменклатураДокумента.КоличествоВДокументе,
                          | НоменклатураДокумента.СуммаВДокументе,
                          | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
                          | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество,
                          | НоменклатураДокумента.ВидыНоменклатуры
                          |ИЗ
                          | НоменклатураДокумента КАК НоменклатураДокумента
                          |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
                          |             ,
                          |             Материал В
                          |                 (ВЫБРАТЬ
                          |                     НоменклатураДокумента.Номенклатура
                          |                 ИЗ
                          |                     НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
                          |     ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал
                          |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
                          |             ,
                          |             Материал В
                          |                 (ВЫБРАТЬ
                          |                     НоменклатураДокумента.Номенклатура
                          |                 ИЗ
                          |                     НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
                          |     ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал";
                          
        Движения.СтоимостьМатериалов.Записать();
        Движения.ОстаткиМатериалов.Записать();
      Результат=Запрос2.Выполнить();
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Если ВыборкаДетальныеЗаписи.Количество=0 Тогда СтоимостьМатериала=0;
        Иначе
            СтоимостьМатериала=ВыборкаДетальныеЗаписи.Стоимость/ВыборкаДетальныеЗаписи.Количество;
        КонецЕсли;
        
        Если ВыборкаДетальныеЗаписи.ВидыНоменклатуры=Перечисления.ВидыНоменклатуры.материал тогда
        Движение=Движения.ОстаткиМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Склад = Склад;
        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
        Движение=Движения.СтоимостьМатериалов.Добавить(); 
        Движение.ВидДвижения=ВидДвиженияНакопления.Расход; 
        Движение.Период=Дата; 
        Движение.Материал=ВыборкаДетальныеЗаписи.номенклатура; 
        Движение.Стоимость=ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;   
    Конецесли;
        Движение=Движения.Продажи.Добавить();
    Движение.Период=Дата;
    Движение.Номенклатура=ВыборкаДетальныеЗаписи.Номенклатура; 
 
    Движение.Клиент=Клиент;
    Движение.Мастер=Мастер;
    
    Движение.Количество=ВыборкаДетальныеЗаписи.КоличествоВДокументе; 
    Движение.Выручка=ВыборкаДетальныеЗаписи.СуммаВДокументе; 
    Движение.Стоимость=СтоимостьМатериала*ВыборкаДетальныеЗаписи.КоличествоВДокументе;
 
// Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Миниатюры

Ошибка при проведении документа
 

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 10:11

 [ТС]

2

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

0

1153 / 700 / 203

Регистрация: 22.04.2013

Сообщений: 5,205

Записей в блоге: 1

20.04.2020, 11:27

3

если не найдено поле виды номенклатуры, о чём русским по белому написано — значит надо обойтись без него или найти, где оно находится и почему путь, написанный вами, не может его найти

Кликните здесь для просмотра всего текста

Не по теме:

п.с. вы всё равно продолжаете писать код руками? конструктором запросов впадлу пользоваться?

0

TAYSON94

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 11:46

 [ТС]

4

Как без него обойтись то
попробовал вот так все равно такая же ошибка

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр ОстаткиМатериалов Расход
    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать=Истина;
    Движения.Продажи.Записывать=Истина;
 
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
МенеджерВТ=Новый МенеджерВременныхТаблиц; 
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц=МенеджерВТ;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидыНоменклатуры КАК ВидыНоменклатуры,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
        |ПОМЕСТИТЬ НоменклатураДокумента
        |ИЗ
        |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
        |ГДЕ
        |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидыНоменклатуры";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
        Движения.СтоимостьМатериалов.БлокироватьДляИзменения=Истина; 
        Движения.ОстаткиМатериалов.БлокироватьДляИзменения=Истина; 
        движения.СтоимостьМатериалов.Записать(); 
        Движения.ОстаткиМатериалов.Записать(); 
        // Результат = Запрос.Выполнить();
    РезультатЗапроса = Запрос.Выполнить();
        Запрос2=Новый Запрос;
            Запрос2.МенеджерВременныхТаблиц=МенеджерВТ;
            Запрос2.Текст=
                        "ВЫБРАТЬ
                          | НоменклатураДокумента.Номенклатура,
                          | НоменклатураДокумента.КоличествоВДокументе,
                          | НоменклатураДокумента.СуммаВДокументе,
                          | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
                          | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество,
                          | НоменклатураДокумента.ВидыНоменклатуры
                          |ИЗ
                          | НоменклатураДокумента КАК НоменклатураДокумента
                          |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
                          |             ,
                          |             Материал В
                          |                 (ВЫБРАТЬ
                          |                     НоменклатураДокумента.Номенклатура
                          |                 ИЗ
                          |                     НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
                          |     ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал
                          |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
                          |             ,
                          |             Материал В
                          |                 (ВЫБРАТЬ
                          |                     НоменклатураДокумента.Номенклатура
                          |                 ИЗ
                          |                     НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
                          |     ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал";
                          
        Движения.СтоимостьМатериалов.Записать();
        Движения.ОстаткиМатериалов.Записать();
      Результат=Запрос2.Выполнить();
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Если ВыборкаДетальныеЗаписи.Количество=0 Тогда СтоимостьМатериала=0;
        Иначе
            СтоимостьМатериала=ВыборкаДетальныеЗаписи.Стоимость/ВыборкаДетальныеЗаписи.Количество;
        КонецЕсли;
        
        Если ВыборкаДетальныеЗаписи.ВидыНоменклатуры=Перечисления.ВидыНоменклатуры.материал тогда
        Движение=Движения.ОстаткиМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Склад = Склад;
        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
        Движение=Движения.СтоимостьМатериалов.Добавить(); 
        Движение.ВидДвижения=ВидДвиженияНакопления.Расход; 
        Движение.Период=Дата; 
        Движение.Материал=ВыборкаДетальныеЗаписи.номенклатура; 
        Движение.Стоимость=ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;   
        движение=движения.Управленческий.Добавить(); 
        движение.СчетДт=ПланыСчетов.Основной.ДебиторскаяЗадолженность; 
        движение.СчетКт=ПланыСчетов.Основной.Капитал; 
        движение.Период=Дата; 
        движение.Сумма=ВыборкаДетальныеЗаписи.СуммаВДокументе; 
        движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Клиенты] = Клиент; 
        движение=движения.Управленческий.Добавить(); 
        движение.СчетДт=ПланыСчетов.Основной.Капитал; 
        движение.СчетКт=ПланыСчетов.Основной.Товары; 
        движение.Период=Дата; 
        движение.Сумма = СтоимостьМатериала* ВыборкаДетальныеЗаписи.КоличествоВДокументе; 
        движение.КоличествоКт=ВыборкаДетальныеЗаписи.КоличествоВДокументе; 
        движение.СубконтоКт [ПланыВидовХарактеристик.ВидыСубконто.Материалы] = ВыборкаДетальныеЗаписи.Номенклатура; 
    Конецесли;
        Движение=Движения.Продажи.Добавить();
    Движение.Период=Дата;
    Движение.Номенклатура=ВыборкаДетальныеЗаписи.Номенклатура; 
 
    Движение.Клиент=Клиент;
    Движение.Мастер=Мастер;
    
    Движение.Количество=ВыборкаДетальныеЗаписи.КоличествоВДокументе; 
    Движение.Выручка=ВыборкаДетальныеЗаписи.СуммаВДокументе; 
    Движение.Стоимость=СтоимостьМатериала*ВыборкаДетальныеЗаписи.КоличествоВДокументе;
 
// Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    Движения.Записать(); 
    Если Режим=РежимПроведенияДокумента.Оперативный Тогда 
        Запрос3=Новый Запрос; 
        Запрос3.МенеджерВременныхТаблиц=МенеджерВТ; 
        Запрос3.Текст="ВЫБРАТЬ
                      | ОстаткиМатериаловОстатки.Материал,
                      | ОстаткиМатериаловОстатки.КоличествоОстаток
                      |ИЗ
                      | РегистрНакопления.ОстаткиМатериалов.Остатки(
                      |         ,
                      |         Материал В
                      |                 (ВЫБРАТЬ
                      |                     НоменклатураДокумента.Номенклатура
                      |                 ИЗ
                      |                     НоменклатураДокумента)
                      |             И Склад = &Склад) КАК ОстаткиМатериаловОстатки
                      |ГДЕ
                      | ОстаткиМатериаловОстатки.КоличествоОстаток < 0"; 
        Запрос3.УстановитьПараметр("Склад",Склад); 
        Результат=Запрос3.Выполнить(); 
    КонецЕсли; 
    ВыборкаДетальныеЗаписи=Результат.Выбрать(); 
     Пока ВыборкаДетальныеЗаписи.Следующий()Цикл 
     Сообщение=Новый СообщениеПользователю(); 
     Сообщение.Текст="Не хватает"+Строка(-ВыборкаДетальныеЗаписи.Количество)+"единиц материала""""+ВыборкаДетальныеЗаписи.Материал+"""; 
     Сообщение.Сообщить(); 
     Отказ=Истина; 
 КонецЦикла; 
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

0

198 / 158 / 45

Регистрация: 23.08.2014

Сообщений: 807

20.04.2020, 12:20

5

TAYSON94, нету у вас в справочнике номеклатура, реквизита ВидНоменклатуры.
У вас 2 варианта, либо создайте этот реквизит либо редактируйте запрос.

0

1153 / 700 / 203

Регистрация: 22.04.2013

Сообщений: 5,205

Записей в блоге: 1

20.04.2020, 12:21

6

Цитата
Сообщение от TAYSON94
Посмотреть сообщение

ОказаниеУслугиПереченьНоменклатуры.Номенклатура.Ви дыНоменклатуры

у вас ругается на вот это вот
откройте справочник номенклатура. посмотрите, как называется его реквизит
уверен, что «видыноменклатуры» вы там не найдёте

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 13:32

 [ТС]

7

Есть у меня этот реквизит вот посмотрите !

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

0

371 / 175 / 74

Регистрация: 04.03.2020

Сообщений: 662

20.04.2020, 14:15

8

А вот в документе ОказаниеУслуги в ТЧ ПереченьНоменклатуры Номенклатура точно типа Справочник.Номенклатура?

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 14:37

 [ТС]

9

Вот

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 17:01

 [ТС]

10

Подскажите пожалуйста начинающему 1снику может я чего то не понимаю не с начала же начинать

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 17:13

 [ТС]

11

Сделал ВидНоменклатуры , теперь Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{Документ.ОказаниеУслуги.МодульОбъекта(67)}: Ошибка при вызове метода контекста (Выполнить)
Результат=Запрос2.Выполнить();
по причине:
{(25, 68)}: Поле не найдено «ОстаткиМатериаловОстатки.Материал»
ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.<<?>>Материал

0

1153 / 700 / 203

Регистрация: 22.04.2013

Сообщений: 5,205

Записей в блоге: 1

20.04.2020, 17:48

12

ура. после создания третьей темы по одному вопросу наконец-то было сделано то, о чём так упорно твердили большевики.
теперь, как ни странно, делайте тоже самое с материалом, или это не очень логично выглядит?

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 18:01

 [ТС]

13

Не понятно где скобки ставить

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

0

1153 / 700 / 203

Регистрация: 22.04.2013

Сообщений: 5,205

Записей в блоге: 1

20.04.2020, 18:23

14

вот только не говорите мне теперь, что этот запрос вы создали в конструкторе.
всё. я больше в ваших темах ни слова не скажу.
зачем так обманывать людей, которые с вами нянькаются пятый день и хотят помочь.
фубе.

Миниатюры

Ошибка при проведении документа
 

0

TAYSON94

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

20.04.2020, 22:57

 [ТС]

15

Подскажите пожалуйста при проведении документа оказание услуг ошибка
Вот новый код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
  Процедура ОбработкаПроведения(Отказ, Режим)
    МенеджерВТ=Новый МенеджерВременныхТаблиц;
    Запрос =Новый Запрос;
    Запрос.МенеджерВременныхТаблиц=МенеджерВТ;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,
    |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
    |ПОМЕСТИТЬ НоменклатураДокумента
    |ИЗ
    |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
    |ГДЕ
    |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры";    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Движения.СтоимостьМатериалов.БлокироватьДляИзменения=Истина;
    Движения.ОстаткиМатериалов.БлокироватьДляИзменения=Истина;
    движения.СтоимостьМатериалов.Записать();
    Движения.ОстаткиМатериалов.Записать();
    Результат = Запрос.Выполнить();
     Запрос2=Новый Запрос;
Запрос2.МенеджерВременныхТаблиц=МенеджерВТ;
Запрос2.Текст="ВЫБРАТЬ
              | НоменклатураДокумента.Номенклатура,
              | НоменклатураДокумента.ВидНоменклатуры,
              | НоменклатураДокумента.КоличествоВДокументе,
              | НоменклатураДокумента.СуммаВДокументе,
              | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
              | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
              |ИЗ
              | НоменклатураДокумента КАК НоменклатураДокумента
              |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
              |             ,
              |             Материал В
              |                 (ВЫБРАТЬ
              |                     НоменклатураДокумента.Номенклатура
              |                 ИЗ
              |                     НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
              |     ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал
              |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
              |             ,
              |             Материалы В
              |                 (ВЫБРАТЬ
              |                     НоменклатураДокумента.Номенклатура
              |                 ИЗ
              |                     НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
              |     ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материалы";
              Движения.СтоимостьМатериалов.Записать();
              движения.ОстаткиМатериалов.Записать();
              Результат=Запрос2.Выполнить();
               ВыборкаДетальныеЗаписи = Результат.Выбрать();
               Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество=0 Тогда
СтоимостьМатериала=0;
Иначе
СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость
/ВыборкаДетальныеЗаписи. Количество;
КонецЕсли;
Если ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материалы тогда
    Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материалы = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение=Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
Движение.Период=Дата;
Движение.Материал=ВыборкаДетальныеЗаписи.номенклатура;
Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе *
СтоимостьМатериала;
конецЕсли;
 движение=движения.Продажи.Добавить();
движение.Период=Дата;
движение.Номенклатура=ВыборкаДетальныеЗаписи.номенклатура;
Движение.клиент=Клиент;
движение.мастер=мастер;
движение.Количество= ВыборкаДетальныеЗаписи.КоличествоВДокументе;
движение.выручка=ВыборкаДетальныеЗаписи.суммаВДокументе;
движение.стоимость =СтоимостьМатериала * ВыборкаДетальныеЗаписи.количествоВДокументе;
КонецЦикла;
Движения.Записать();
Если Режим=РежимПроведенияДокумента.Оперативный Тогда
Запрос3=Новый Запрос;
 Запрос3.МенеджерВременныхТаблиц=МенеджерВТ;
 Запрос3.Текст="ВЫБРАТЬ
              | ОстаткиМатериаловОстатки.Материалы,
              | ОстаткиМатериаловОстатки.КоличествоОстаток
              |ИЗ
              | РегистрНакопления.ОстаткиМатериалов.Остатки(
              |         ,
              |         Материалы В
              |                 (ВЫБРАТЬ
              |                     НоменклатураДокумента.Номенклатура
              |                 ИЗ
              |                     НоменклатураДокумента)
              |             И Склад = &Склад) КАК ОстаткиМатериаловОстатки
              |ГДЕ
              | ОстаткиМатериаловОстатки.КоличествоОстаток < 0";
              Запрос3.УстановитьПараметр("Склад",Склад);
              Результат=Запрос3.Выполнить();
КонецЕсли;
ВыборкаДетальныеЗаписи=Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
Сообщение=Новый СообщениеПользователю();
Сообщение.Текст="Не хватает"+Строка(-ВыборкаДетальныеЗаписи.Количество)+"единиц материала""""+ВыборкаДетальныеЗаписи.Материал+""";
Сообщение.Сообщить();
Отказ=Истина;
 КонецЦикла;
КонецПроцедуры

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

0

Dethmontt

Модератор

Эксперт 1С

3711 / 2907 / 573

Регистрация: 10.03.2011

Сообщений: 11,447

Записей в блоге: 1

24.04.2020, 08:33

16

Цитата
Сообщение от TAYSON94
Посмотреть сообщение

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Если Режим=РежимПроведенияДокумента.Оперативный Тогда
Запрос3=Новый Запрос;
 Запрос3.МенеджерВременныхТаблиц=МенеджерВТ;
 Запрос3.Текст="ВЫБРАТЬ
              | ОстаткиМатериаловОстатки.Материалы,
              | ОстаткиМатериаловОстатки.КоличествоОстаток
              |ИЗ
              | РегистрНакопления.ОстаткиМатериалов.Остатки(
              |         ,
              |         Материалы В
              |                 (ВЫБРАТЬ
              |                     НоменклатураДокумента.Номенклатура
              |                 ИЗ
              |                     НоменклатураДокумента)
              |             И Склад = &Склад) КАК ОстаткиМатериаловОстатки
              |ГДЕ
              | ОстаткиМатериаловОстатки.КоличествоОстаток < 0";
              Запрос3.УстановитьПараметр("Склад",Склад);
              Результат=Запрос3.Выполнить();
КонецЕсли;
ВыборкаДетальныеЗаписи=Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
Сообщение=Новый СообщениеПользователю();
Сообщение.Текст="Не хватает"+Строка(-ВыборкаДетальныеЗаписи.Количество)+"единиц материала""""+ВыборкаДетальныеЗаписи.Материал+""";
Сообщение.Сообщить();
Отказ=Истина;
 КонецЦикла;
КонецПроцедуры

А если режим не опреративный?

Добавлено через 2 минуты

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

1C
1
2
3
4
5
6
7
ВыборкаДетальныеЗаписи=Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
Сообщение=Новый СообщениеПользователю();
Сообщение.Текст="Не хватает"+Строка(-ВыборкаДетальныеЗаписи.Количество)+"единиц материала""""+ВыборкаДетальныеЗаписи.Материал+""";
Сообщение.Сообщить();
Отказ=Истина;
 КонецЦикла;

вот эту гадость воткни внутрь условия (если оперативный)

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

24.04.2020, 08:48

 [ТС]

17

Воткнул теперь другая ошибка
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{Документ.ОказаниеУслуги.МодульОбъекта(55)}: Ошибка при вызове метода контекста (Выполнить)
Результат=Запрос2.Выполнить();
по причине:
{(25, 71)}: Поле не найдено «ОстаткиМатериаловОстатки.Материалы»
ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.<<?>>Материалы

0

Модератор

Эксперт 1С

3711 / 2907 / 573

Регистрация: 10.03.2011

Сообщений: 11,447

Записей в блоге: 1

24.04.2020, 08:58

18

TAYSON94, интересно, какая связь между запрос2 и запрос3 ???

Весь код в студию, а то вы ЧУШЬ какую-то пишите

Добавлено через 3 минуты

Не по теме:

Yulunga, Помоги человеку разобраться в его каракулях! Я спать пошел…

0

TAYSON94

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

24.04.2020, 09:03

 [ТС]

19

Пожалуйста

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 Процедура ОбработкаПроведения(Отказ, Режим)
    МенеджерВТ=Новый МенеджерВременныхТаблиц;
    Запрос =Новый Запрос;
    Запрос.МенеджерВременныхТаблиц=МенеджерВТ;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,
    |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
    |ПОМЕСТИТЬ НоменклатураДокумента
    |ИЗ
    |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
    |ГДЕ
    |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
    |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры";    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Движения.СтоимостьМатериалов.БлокироватьДляИзменения=Истина;
    Движения.ОстаткиМатериалов.БлокироватьДляИзменения=Истина;
    движения.СтоимостьМатериалов.Записать();
    Движения.ОстаткиМатериалов.Записать();
    Результат = Запрос.Выполнить();
     Запрос2=Новый Запрос;
Запрос2.МенеджерВременныхТаблиц=МенеджерВТ;
Запрос2.Текст="ВЫБРАТЬ
              | НоменклатураДокумента.Номенклатура,
              | НоменклатураДокумента.ВидНоменклатуры,
              | НоменклатураДокумента.КоличествоВДокументе,
              | НоменклатураДокумента.СуммаВДокументе,
              | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
              | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
              |ИЗ
              | НоменклатураДокумента КАК НоменклатураДокумента
              |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
              |             ,
              |             Материал В
              |                 (ВЫБРАТЬ
              |                     НоменклатураДокумента.Номенклатура
              |                 ИЗ
              |                     НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
              |     ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал
              |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
              |             ,
              |             Материал В
              |                 (ВЫБРАТЬ
              |                     НоменклатураДокумента.Номенклатура
              |                 ИЗ
              |                     НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
              |     ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал";
              Движения.СтоимостьМатериалов.Записать();
              движения.ОстаткиМатериалов.Записать();
              Результат=Запрос2.Выполнить();
               ВыборкаДетальныеЗаписи = Результат.Выбрать();
               Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество=0 Тогда
СтоимостьМатериала=0;
Иначе
СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость
/ВыборкаДетальныеЗаписи. Количество;
КонецЕсли;
Если ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материалы тогда
    Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материалы = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение=Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
Движение.Период=Дата;
Движение.Материал=ВыборкаДетальныеЗаписи.номенклатура;
Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе *
СтоимостьМатериала;
конецЕсли;
 движение=движения.Продажи.Добавить();
движение.Период=Дата;
движение.Номенклатура=ВыборкаДетальныеЗаписи.номенклатура;
Движение.клиент=Клиент;
движение.мастер=мастер;
движение.Количество= ВыборкаДетальныеЗаписи.КоличествоВДокументе;
движение.выручка=ВыборкаДетальныеЗаписи.суммаВДокументе;
движение.стоимость =СтоимостьМатериала * ВыборкаДетальныеЗаписи.количествоВДокументе;
КонецЦикла;
Движения.Записать();
Если Режим=РежимПроведенияДокумента.Оперативный Тогда
Запрос3=Новый Запрос;
 Запрос3.МенеджерВременныхТаблиц=МенеджерВТ;
 Запрос3.Текст="ВЫБРАТЬ
              | ОстаткиМатериаловОстатки.Материалы,
              | ОстаткиМатериаловОстатки.КоличествоОстаток
              |ИЗ
              | РегистрНакопления.ОстаткиМатериалов.Остатки(
              |         ,
              |         Материалы В
              |                 (ВЫБРАТЬ
              |                     НоменклатураДокумента.Номенклатура
              |                 ИЗ
              |                     НоменклатураДокумента)
              |             И Склад = &Склад) КАК ОстаткиМатериаловОстатки
              |ГДЕ
              | ОстаткиМатериаловОстатки.КоличествоОстаток < 0";
              Запрос3.УстановитьПараметр("Склад",Склад);
              Результат=Запрос3.Выполнить();
КонецЕсли;
ВыборкаДетальныеЗаписи=Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
Сообщение=Новый СообщениеПользователю();
Сообщение.Текст="Не хватает"+Строка(-ВыборкаДетальныеЗаписи.Количество)+"единиц материалы""""+ВыборкаДетальныеЗаписи.Материалов+""";
Сообщение.Сообщить();
Отказ=Истина;
 КонецЦикла;
  КонецПроцедуры

0

0 / 0 / 0

Регистрация: 16.09.2016

Сообщений: 176

24.04.2020, 09:05

 [ТС]

20

Ошибка вот эта

Кликните здесь для просмотра всего текста

Ошибка при проведении документа

0

IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

24.04.2020, 09:05

Помогаю со студенческими работами здесь

Запрос к регистру накопления при проведении документа
Подскажите, плиз, как при проведении документа &quot;Реализация товаров и услуг&quot; определить сколько…

Автоматическое формирование подчиненного документа при проведении
Доброго дня! При проведении одного документа формирую другой, вызывая процедуру из…

Запись данных в справочник при проведении документа
Всем привет, столкнулась с такой проблемой, не могу сделать запись данных в справочник при…

Создать элемент в справочнике при проведении документа
1С:Предприятие 8.3

Есть документ &quot;Собеседование&quot;, справочник &quot;Сотрудники&quot;
Нужно при проведении…

Как изменить время при оперативном проведении документа
Здравствуйте! Подскажите, пожалуйста, можно ли, чтобы при оперативном проведении документа…

Запись данных в регистр при проведении документа (УТ11)
Добрый день!
Подскажите пожалуйста, как можно получать данные при проведении документа и…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

20

  1. Всем привет!

    В обработке проведения делаю проверку на наличие проведенных документов на основании, и если таковые есть — выдаю ошибку, что нужно их распровести и делаю «Отказ = Истина». При этом выдается сервисное сообщение «Не удалось провести [название документа]. Ок, Подробно…».

    Начальника хочет, чтобы выводилось одно сообщение о том, что не проведено, т.к. есть документы на основании. Как вывести свое сообщение и не выводить сервисное?

  2. Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
  3. Если можно, чуть подробнее. В каком месте использовать попытку и что в ней пытаться сделать? Я же не программно провожу, а стандартными средствами.

  4. Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Если кодить не умеете, лучше не лезьте, да и мой вам совет, не нужно переделывать штатный функционал, потом при обновлении замучаетесь. Это ваша «хотелка» ничего не значит для бизнес-логики, так что оставьте эту затею.

  5. Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    TylerDurdenIII
    в суть не вдумывался. Пока вопросы:
    1) почему вы это делаете (проверку) именно в обработке проведения документа? Почему например нельзя сделать это раньше, например перед записью документа?
    2) всю задачу не знаю, это зависит уже от нее, поэтому может быть не актуально, но: судя по первому посту подразумевается что это проведение ваше запускает пользователь, и ему выводится какое-то сообщение. В итоге: вашу проверку действительно в модуле объекта надо делать, или же допустимо вообще убрать ее в модуль формы?

  6. 1) Если делать в процедуре ПередЗаписью также придется ставить Отказ=Истина, который приведет к сообщению «Не удалось провести [название документа]».
    2) Если в форму поместить код, то не отработает при проведении из списка.

  7. Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Главный вопрос — для чего это ????
    Это влияет на бизнес-логику ?
    Это влияет на скорость работы ИБ ?
    Это влияет на оперативность ?
    На что это влияет ????

  8. Есть такие люди, которые хотят и все тут. Мешает им видите ли лишнее отвлекающее от основного сообщение. Буду убеждать, что не надо это, просто уже интересно как же можно это сделать если это возможно.

  9. Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    2) Понял. Принимается.
    1) ПередЗаписью() использовать в любом случае лучше, не будет лишних расчетов, выполняемых в процедуре проведения

    Еще уточняющий вопрос: контролировать (выводить ваше сообщение) надо именно при проведении документа или при отмене проведения?

  10. Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    Ну ок.
    Смотрите, я не знаю как вы выводите ваше сообщение (Предупреждение())? Т.е. модальным окном что-ли, что у вас два она появляется?
    Если так, то рекомендуемый мной вариант: сделать точно также как реализовано стандартно. Т.е. выводите причину ошибки при помощи «ОбщегоНазначения.СообщитьОбОшибке()», она появляется внизу экрана в окне сообщений, и на экране это ваше системное окно о том что невозможно провести (записать) документ.
    Если же упорно так не хотите, ну единственный вариант который я знаю: вызовите собственное исключение в процедуре проведения (ВызватьИсключение <Текст>).

  11. В данный момент все как вы и описали — служебное сообщение выскакивает, а мое сообщение внизу экрана. Клиент упорно хочет одно сообщение.
    Есть ли подводные камни у вызова исключения из проведения? Не делает ли платформа еще чего важного кроме вывода сообщения при отказе?

  12. Offline

    shurikvz
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    Да нет. Чего она важного может делать? Вызываете исключение — транзакция записи прерывается.

Похожие темы

  1. Vertex

    Ответов:
    12
    Просмотров:
    1.235

Ой! Данный функционал ещё в разработке

Текст ошибки может звучать по-разному, например:

  • Поле объекта не обнаружено (ХХХХХХ);
  • Значение не является значением объектного типа (ХХХХХХ);
  • Метод объекта не обнаружен (ХХХХХХ);
  • Во время сохранения файла возникла ошибка.

Такие ошибки чаще всего возникают при некорректной работе базы 1С.

Для решения может помочь одно из следующих действий:

  • Очистите кэш платформы 1С.
  • Проверьте права пользователя в 1С.
  • Проверьте, включено ли использование внешнего модуля. Если да, создайте резервную копию информационной базы, после чего отключите внешний модуль.

Внешний модуль в управляемых конфигурациях (БП 3.0, ЗУП 3.1 и др.) находится в прочих настройках обмена. Если отметка проставлена — снимите её, после чего перезапустите 1С. 

Внешний модуль в неуправляемых конфигурациях (БП 2.0, ЗУП 2.5, УПП 1.3 и др.) находится по пути Отчеты → Регламентированные отчеты → Настройки → Для настройки параметров документооборота нажмите здесь (внизу). Отметьте пункт Использовать встроенный модуль документооборота, после чего перезапустите 1С.

  • Сделайте диагностику 1С-отчетности, отправьте отчет по диагностике и сообщите номер обращения специалисту технической поддержки 1С-Отчетность.
  • Запустите Конфигуратор 1С. Выберите пункт Отладка → Начать отладку.
  • Удостоверьтесь, что конфигурация находится на полной поддержке 1С, т.е. в нее не были внесены изменения и она соответствует конфигурации поставщика.

Запустите Конфигуратор 1С. Если конфигурация закрыта, то необходимо ее открыть: Конфигурация → Открыть конфигурацию. Слева в меню напротив названия конфигурации должен быть значок замка – объект поставщика не редактируется.

  • Попробуйте запустить 1С в тонком клиенте, для этого после нажатия на ярлык 1С выберите базу, затем нажмите Изменить → Далее → Основной режим запуска: выберите пункт Тонкий клиент → Готово. Запустите 1С.
  • Измените переменные среды. Рекомендуем обратиться к системному администратору для выполнения данных действий.
  • Проверьте кодировку в операционной системе Windows по инструкции смена кодировки. Рекомендуем обратиться к системному администратору для выполнения данных действий.

В случае системного языкового пакета, отличного от русского, программа 1С не может работать с внешней компонентой для отображения сертификатов. Для решения этой ситуации можно изменить параметры в системном реестре. Рекомендуем обратиться к системному администратору для выполнения данных действий.

Номер статьи: 129674145
Обновлено: 01.08.2023 11:36+0000

Понравилась статья? Поделить с друзьями:
  • Ошибка 1с ошибка считывания вторичной информации
  • Ошибка 1с ошибка открытия таблицы 1ssystem
  • Ошибка 1с ошибка открытия словаря базы данных
  • Ошибка 1с отсутствует файл базы данных
  • Ошибка 1с обнаружено нарушение целостности системы