Не хочет менять проводку через Подписку на событие

1. Shecurok 06.05.19 11:24 Сейчас в теме
Добрый день всем.
Суть в том, что после после перехода с БП 2.0 на 3.0 пришлось затереть доработку. Заключалась она в том, что где стоит в дополнительных сведениях у номенклатуры СчетМЦ05 должен на такой счет и падать. Но если бы подходила старая доработка, то и темы (к счастью) бы не было.
Делаю через ПодпискуНаСобытия. Источником указал документ сам (ПередачаМатериалаВЭксплуатацию), событие ОбработкаПроведения, обработчиком созданный ОбщийМодуль (СчетМЦ05).
Делаю запросомпроверку есть ли в Источнике (это сам документ получается) такая номенклатура, у которой в доп.сведениях стоит СчетМЦ05 и если есть, то Дт=МЦ05. Выглядит код следующим образом:
Процедура СчетМЦ05ОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
		
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
|    ПередачаМатериаловВЭксплуатациюСпецодежда.Номенклатура
|ПОМЕСТИТЬ Материалы
|
|ВЫБРАТЬ
|    ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности.Номенклатура
|ИЗ
|    Документ.ПередачаМатериаловВЭксплуатацию.ИнвентарьИХозяйственныеПринадлежности КАК ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности
|ГДЕ
|    ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности.Ссылка = &Ссылка
|;
|
|ВЫБРАТЬ
|    Материалы.Номенклатура
|ИЗ
|    Материалы КАК Материалы
|ГДЕ
|    Материалы.Номенклатура.ДополнительныеРеквизиты.Значение = &СчетМЦ05";

	Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
	Запрос.УстановитьПараметр("Имя", "СчетМЦ05");
	Запрос.УстановитьПараметр("СчетМЦ05",ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("МЦ.05"));
	Выбор = Запрос.Выполнить().Выбрать();
	
	Пока Выбор.Следующий() Цикл
        
        Для Каждого ТекДвижение ИЗ Источник.Движения.Хозрасчетный Цикл
            Если ТекДвижение.СчетДт = ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации И ТекДвижение.СубконтоДт.Номенклатура = Выбор.Номенклатура  Тогда
                ТекДвижение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("СчетМЦ05");
                Источник.Движения.Хозрасчетный.Записать();
            КонецЕсли;
        КонецЦикла;

Показать


Не выходит. Пробую другой текст запроса:

	  "ВЫБРАТЬ
	  |    ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности.Номенклатура КАК Номенклатура
	  |ИЗ
	  |    Документ.ПередачаМатериаловВЭксплуатацию.ИнвентарьИХозяйственныеПринадлежности КАК ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности
	  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
	  |        ПО ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка
	  |ГДЕ
	  |    ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности.Ссылка = &Ссылка
	  |    И НоменклатураДополнительныеРеквизиты.Свойство.Имя = &Имя
	  |
	  |СГРУППИРОВАТЬ ПО
	  |    ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринад­лежности.Номенклатура" ;
	Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
	Запрос.УстановитьПараметр("Имя", "СчетМЦ05"); //имя у тебя может отличатся
	
	Выбор = Запрос.Выполнить().Выбрать();

Показать


Тоже ничего. Честно пару дней пытался что-то сделать, менял названия Счета, но в итоге безрезультатно.

1 скрин: сам код.
2 скрин: сведения о доп. реквизите
3 скрин: что у данной номенклатуры реально стоит СчетМЦ05 ДА.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
86. spacecraft 07.05.19 14:17 Сейчас в теме
(85)
ТЗ = Источник.ИнвентарьИХозяйственныеПринадлежности.Выгрузить(,"Номенклатура");     

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
		|	ТЗ.Номенклатура КАК Номенклатура
		|ПОМЕСТИТЬ вт_тз
		|ИЗ
		|	&ТЗ КАК ТЗ
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	вт_тз.Номенклатура КАК Номенклатура
		|ИЗ
		|	вт_тз КАК вт_тз
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
		|		ПО вт_тз.Номенклатура = ДополнительныеСведения.Объект
		|			И (ДополнительныеСведения.Свойство = &Свойство)
		|			И (ДополнительныеСведения.Значение = ИСТИНА)
		|";
    
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("СчетМЦ05 (Номенклатура)")); // тут нужно посмотреть точно как называется свойство в плане видов характеристик
    
    Выбор = Запрос.Выполнить().Выбрать();
    
    
Показать
Shecurok; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 06.05.19 11:33 Сейчас в теме
(1) на момент запроса движения еще могут быть не записаны. Следовательно в запросе данные по ссылке на документ могут быть неверными.
Проще через Источник получить всю номенклатуру и в запросе отобрать нужную номенклатуру из имеющейся, без использования ссылки на документ.
Ну, или перед запросом сделать запись движений источника. Но первый вариант лучше.
alex-l19041; +1 Ответить
3. ZergKRSK 129 06.05.19 11:47 Сейчас в теме
(1) попробуй так:
НаборЗаписей = Источник.Движения["Хозрасчетный"];
Если НаборЗаписей.Количество() = 0 Тогда
НаборЗаписей.Прочитать();
КонецЕсли;
ТаблицаДвижений = НаборЗаписей.Выгрузить();
Для Каждого ЗаписьТаблицы Из ТаблицаДвижений Цикл
//по нужному условию меняй счет:
ЗаписьТаблицы[СчетДт] = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("СчетМЦ05");
КонецЦикла;
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
НаборЗаписей.Загрузить(ТаблицаДвижений);
НаборЗаписей.Записать(Ложь);
Shecurok; +1 Ответить
4. Shecurok 06.05.19 11:51 Сейчас в теме
(3) Переменная не определена (СчетДт). Что странно.
5. ZergKRSK 129 06.05.19 11:53 Сейчас в теме
(4) ЗаписьТаблицы["СчетДт"]
Shecurok; +1 Ответить
6. Shecurok 06.05.19 11:57 Сейчас в теме
(5) при проведении:
Запись не верна! Не заполнены оба счета! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 2)
7. ZergKRSK 129 06.05.19 11:59 Сейчас в теме
(6) отладчиком смотрите в подписке ДО замены счета на МЦ - заполнены ли счета дт и кт.
Shecurok; +1 Ответить
9. Shecurok 06.05.19 12:06 Сейчас в теме
(7)
получается при вашем способе надо будет ещё дописывать проводку для Кт?
10. ZergKRSK 129 06.05.19 12:08 Сейчас в теме
(9) мой способ проверенный и дописывать ничего не надо. Мы просто делаем подмену счетаДт и всё.
Проверьте что все ваши остальные дописки по этому поводу отключены.
Shecurok; +1 Ответить
11. Shecurok 06.05.19 12:16 Сейчас в теме
(10) я удаляю полностью свой текст, вставляю Ваш и происходит данная ошибка. До этого же всё заполняло. Остальных дописок нет никаких. Ни здесь, ни где либо ещё. Странно как то
Прикрепленные файлы:
12. ZergKRSK 129 06.05.19 12:17 Сейчас в теме
(11) где условие по которому должна быть замена счетаДт? У вас в каждой строке меняется счетДт!
Shecurok; +1 Ответить
15. Shecurok 06.05.19 12:33 Сейчас в теме
(12) Так. Извиняюсь конечно, я во все это только вникаю, ооочень сложно всё это понять пока что. Надо оставить текст запроса? Или как мне ещё сделать это условие? По идее же именно запросом выбираю номенклатуру из документа в которой стоит доп. реквизит и там уже подменяю. Но я сейчас попробовал, естественно не сработало. Как тогда написать данное условие?
16. spacecraft 06.05.19 15:16 Сейчас в теме
(15) теперь все же прочитать (2).
Вариант выполнения:
1. Выгрузить номенклатуру из ТЧ документа через Источник:
ТЗ = Источник.ИнвентарьИХозяйственныеПринадлежности.Выгрузить(,"НомерСтроки, Номенлатура");
2. Загрузить в запрос полученную ТЗ.
3. Из временной таблицы с загруженной ТЗ выбрать те записи, которые соответствуют нужным параметрам.
4. Полученный результат обрабатываем.
18. Shecurok 06.05.19 16:44 Сейчас в теме
(16) знать бы как всё это делать. Я же только стажируюсь. С 1С знаком 1,5мес. только
23. Shecurok 07.05.19 10:05 Сейчас в теме
(16) не могли бы подсказать каким кодом это делается всё? Я правда вчера сидел, чо то пытался сделать, смотрел как всё это делается в стандартных доках, но не получается.
25. spacecraft 07.05.19 11:00 Сейчас в теме
(23) что именно не получается?
В ТЗ выгрузили номенклатуру из документа?
В запрос поместить ТЗ и получить нужную выборку. Пример:
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТЗ.Номенклатура КАК Номенклатура
		|ПОМЕСТИТЬ вт_тз
		|ИЗ
		|	&ТЗ КАК ТЗ
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	вт_тз.Номенклатура КАК Номенклатура
		|ИЗ
		|	вт_тз КАК вт_тз
		|ГДЕ
		|	вт_тз.Номенклатура.Артикул = ""М2"" ";
	
	Запрос.УстановитьПараметр("ТЗ", ТЗ);
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Показать

Далее уже обрабатываете выборку.
Конструктором запроса будет невозможно работать при таком запросе. Будет ругаться. Но это всего лишь ограничение конструктора запроса. Работать будет и опыт набирать запрос без конструктора пригодится.
Но если вообще никак без конструктора, тогда можно выразить номенклатуру в запросе:
|ГДЕ
		|	ВЫРАЗИТЬ(вт_тз.Номенклатура КАК Справочник.Номенклатура).Артикул = ""М2""";

Соответственно условие заменить на свое.
27. Shecurok 07.05.19 11:09 Сейчас в теме
(25) не получается написать код, не хватает опыта, не знаю как. Сейчас попробую по Вашему примеру, хотя и это будет не легко. Мне сейчас сложно ещё понять как это писать и как потом делать обработку результата. Какими командами и пр.
31. Shecurok 07.05.19 11:21 Сейчас в теме
(25) вот например мне не понятно, что значит
вт_тз
. Что тут писать, как тут писать я хз. Только учусь. И чую все праздники на это задание убью :D
33. spacecraft 07.05.19 11:24 Сейчас в теме
(31) вт_тз это произвольное имя которое дается временной таблице. Можно оставить как есть. Можно свое присвоить.
Весь запрос можно оставить как есть, только условие в секции ГДЕ свое поставить:

|ГДЕ
|    вт_тз.Номенклатура.ДополнительныеРеквизиты.Значение = &СчетМЦ05
34. Shecurok 07.05.19 11:28 Сейчас в теме
(33)
Это вот которое М2? Вместо него я так понимаю наименование этого счета МЦ05? В моем случае это "Автомобильные шины для..."?

(33)
Прикрепленные файлы:
35. Shecurok 07.05.19 11:29 Сейчас в теме
Понял, невнимателен, извиняюсь
36. Shecurok 07.05.19 11:33 Сейчас в теме
(33) Пишет, что переменная ТЗ не определена в Запрос.УстановитьПараметр("ТЗ", ТЗ); Что не так?
38. spacecraft 07.05.19 11:35 Сейчас в теме
(36) я выше приводил код получения переменной ТЗ
ТЗ = Источник.ИнвентарьИХозяйственныеПринадлежности.Выгрузить(,"Номенлатура"); 
Shecurok; +1 Ответить
39. Shecurok 07.05.19 11:43 Сейчас в теме
(38) при проведении пишет
Не задано значение параметра "СчетМЦ05"
вт_тз.Номенклатура.ДополнительныеРеквизиты.Значение = <<?>>&СчетМЦ05
40. spacecraft 07.05.19 11:45 Сейчас в теме
(39) так ведь нужно передать этот параметр в запрос. Он же в (0) приведен. Я думал это очевидно.
Запрос.УстановитьПараметр("СчетМЦ05",ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("МЦ.05"));
Shecurok; +1 Ответить
41. Shecurok 07.05.19 11:50 Сейчас в теме
(40) ну да.
Сразу извиняюсь за глупый вопрос, но мне так понятнее будет, сразу избежим много ошибок.
Запрос который Вы мне дали мы пишем внутри
 НаборЗаписей = Источник.Движения["Хозрасчетный"]; 
Если НаборЗаписей.Количество() = 0 Тогда 
НаборЗаписей.Прочитать(); 
КонецЕсли; 
ТаблицаДвижений = НаборЗаписей.Выгрузить(); 
Для Каждого ЗаписьТаблицы Из ТаблицаДвижений Цикл 
//по нужному условию меняй счет: 
ЗаписьТаблицы[СчетДт] = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("СчетМЦ05"); 
КонецЦикла; 
НаборЗаписей.Очистить(); 
НаборЗаписей.Записать(); 
НаборЗаписей.Загрузить(ТаблицаДвижений); 
НаборЗаписей.Записать(Ложь);
Показать


Или где? Правильно же я сейчас делаю?
43. spacecraft 07.05.19 11:57 Сейчас в теме
(41) это уже не ко мне. Я этот код не приводил.
Shecurok; +1 Ответить
44. Shecurok 07.05.19 12:02 Сейчас в теме
(43) Это то я понимаю. Но запрос то внутри писать? Или для чего он мне?
45. Shecurok 07.05.19 12:03 Сейчас в теме
(43) Или можно попробовать как я изначально делал, только с Вашим запросом?
46. spacecraft 07.05.19 12:04 Сейчас в теме
(45) именно. Только не нужно в цикле делать каждый раз запись. Запись после цикла.
Shecurok; +1 Ответить
47. Shecurok 07.05.19 12:09 Сейчас в теме
(46) я сейчас попробую и отпишусь
49. Shecurok 07.05.19 12:17 Сейчас в теме
(46) не сработало. Наимнование в плане счетов именно такое. Заходил, копировал и вставлял. Но всё равно встаёт МЦ04. Есть какая нибудь мысль почему? Написано то всё верно вроде.

ТЗ = Источник.ИнвентарьИХозяйственныеПринадлежности.Выгрузить(,"Номенклатура"); 	

Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ТЗ.Номенклатура КАК Номенклатура
        |ПОМЕСТИТЬ вт_тз
        |ИЗ
        |    &ТЗ КАК ТЗ
        |;
        |
        |////////////////////////////////////////////////////////////­////////////////////
        |ВЫБРАТЬ
        |    вт_тз.Номенклатура КАК Номенклатура
        |ИЗ
        |    вт_тз КАК вт_тз
        |ГДЕ
        |    вт_тз.Номенклатура.ДополнительныеРеквизиты.Значение = &СчетМЦ05";
    
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
	Запрос.УстановитьПараметр("СчетМЦ05",ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Автомобильные шины для летнего (зимнего) сезона"));
    РезультатЗапроса = Запрос.Выполнить();
    Выбор = Запрос.Выполнить().Выбрать();
    
    Пока Выбор.Следующий() Цикл
        
        Для Каждого ТекДвижение ИЗ Источник.Движения.Хозрасчетный Цикл
            Если ТекДвижение.СчетДт = ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации И ТекДвижение.СубконтоДт.Номенклатура = Выбор.Номенклатура  Тогда
                ТекДвижение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Автомобильные шины для летнего (зимнего) сезона");
                
            КонецЕсли;
        КонецЦикла;
КонецЦикла;

Источник.Движения.Хозрасчетный.Записать();
Показать


прошу, подкиньте идею или укажите на ошибку в коде. Может в Запрос.УстановитьПараметр("СчетМЦ05"...)? Там надо устанавдивать параметр откуда?
51. spacecraft 07.05.19 12:22 Сейчас в теме
(49) в условие Если заходит? Еще подписки на это событие есть?
Shecurok; +1 Ответить
52. Shecurok 07.05.19 12:24 Сейчас в теме
(51) Подписок точно нет. В условие сейчас гляну.
53. Shecurok 07.05.19 12:29 Сейчас в теме
(51) Поставил ТочкуОстанова на КонецЕсли, но при проведении документа не остановилось ничего. Значит нет?
54. spacecraft 07.05.19 12:32 Сейчас в теме
(53) значит какое-то условие не выполняется.
Поставить условие на Если и смотреть ТекДвижение.СчетДт и ТекДвижение.СубконтоДт.Номенклатура.
55. Shecurok 07.05.19 12:35 Сейчас в теме
(54) Это точка останова с условием? И если да, то какое вписывать?
56. spacecraft 07.05.19 12:37 Сейчас в теме
(55) можно без условия. Там много наименований в документе?
57. Shecurok 07.05.19 12:39 Сейчас в теме
(56) нет, одно всего. Если ставить точку останова на Если, то тоже ничего, проводит. Если на Пока, то тогда останавливает
58. spacecraft 07.05.19 12:44 Сейчас в теме
(57) на Пока останавливается один раз? Тогда запрос возвращает пустую выборку.
Что покажет в отладчике ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Автомобильные шины для летнего (зимнего) сезона") ?
59. Shecurok 07.05.19 12:49 Сейчас в теме
(58) странно, но при наведении мышкой ничего не показывает. Только при наведении на СчетМЦ05 показывает ОбщийМодуль. На остальных вообще ничего. Ну и на ТЗ таблица значений.
60. Shecurok 07.05.19 12:51 Сейчас в теме
(59) Это не из за того, что у меня модуль так же называется?
61. spacecraft 07.05.19 12:51 Сейчас в теме
(59) выделить ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Автомобильные шины для летнего (зимнего) сезона") и нажать Shift-F9
62. Shecurok 07.05.19 12:54 Сейчас в теме
(61) сделал, продолжил отладку, при проведении останавливается на данной строчке и всё. Опять при наведении мышкой ничего.
Прикрепленные файлы:
63. spacecraft 07.05.19 12:56 Сейчас в теме
(62) Shift+F9 или Вычислить выражение из меню
64. Shecurok 07.05.19 12:57 Сейчас в теме
(63) Ага, поле объекта не обнаружено
Прикрепленные файлы:
65. spacecraft 07.05.19 12:59 Сейчас в теме
(64) еще раз. Выделить полностью:
ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Автомобильные шины для летнего (зимнего) сезона")
66. Shecurok 07.05.19 13:00 Сейчас в теме
(65) извиняюсь
Прикрепленные файлы:
67. spacecraft 07.05.19 13:04 Сейчас в теме
(66) В точке останова на Пока вызвать тоже меню Вычислить выражение и ввести в поле следующий код:
Запрос.Пустой()
68. Shecurok 07.05.19 13:08 Сейчас в теме
(67) Метод объекта не обнажружен... Я на всякий случай все повыделял (и сразу все, и по оттдельности, и вообще не выделял) и в поле Выражение вводил Запрос.Пустой(), но всё то же, метод не обнаружен. Что именно надо сделать?
69. spacecraft 07.05.19 13:11 Сейчас в теме
(68) выделять ничего не надо. Да, неправильно указал. Ввести в поле Выражение:
Запрос.Выполнить().Пустой()
70. Shecurok 07.05.19 13:13 Сейчас в теме
(69) ПКМ либо на точке останова, либо на пустом месте перед пока
Прикрепленные файлы:
71. spacecraft 07.05.19 13:14 Сейчас в теме
(70) в точке остановки на слове Пока !
72. Shecurok 07.05.19 13:15 Сейчас в теме
(71) я скорее всего дурак, но реально не хочет. Я щелкал на пока и дальше тоже самое
Прикрепленные файлы:
73. spacecraft 07.05.19 13:18 Сейчас в теме
(72) на скрите остановка произошла на Запрос.УстановитьПараметр....
Нужно продолжить пока остановка не произойдет на строке начала цикла.
74. Shecurok 07.05.19 13:20 Сейчас в теме
(73) я понял о чем Вы. Вот на каплю стал умнее. Значение Истина пишет.
75. spacecraft 07.05.19 13:20 Сейчас в теме
(74) теперь там же.
ТЗ.Количество()
76. Shecurok 07.05.19 13:22 Сейчас в теме
(75) 1 пишет (ну как и в доке)
77. spacecraft 07.05.19 13:24 Сейчас в теме
(76) теперь смотрим саму номенклатуру и убеждаемся, что для нее не выполняется условие ДополнительныеРеквизиты.Значение = нужный счет.
78. Shecurok 07.05.19 13:25 Сейчас в теме
79. spacecraft 07.05.19 13:28 Сейчас в теме
(78) что? открыть элемент справочника номенклатуры где? В режиме предприятия конечно. Странный вопрос учитывая "Заключалась она в том, что где стоит в дополнительных сведениях у номенклатуры СчетМЦ05" Вот это и проверить для номенклатуры из документа.
80. Shecurok 07.05.19 13:31 Сейчас в теме
(79) А, это то да. Ну в общем да. Я специально делал (на копии естс) тренеровочный документ с нужным типом номенклатуры
Прикрепленные файлы:
81. spacecraft 07.05.19 13:34 Сейчас в теме
(80) а теперь внимательно посмотрите, что находится в дополнительных сведениях и условие в запросе. Чему там Значение равно? Причем тут счет?
82. Shecurok 07.05.19 13:44 Сейчас в теме
(81) Тогда строчку
Запрос.УстановитьПараметр("СчетМЦ05",ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Автомобильные шины для летнего (зимнего) сезона"));

заменить на
Запрос.УстановитьПараметр("СчетМЦ05",Истина);
?
В правильном хоть направлении думаю?
84. spacecraft 07.05.19 14:05 Сейчас в теме
(82) не так все просто. Нужно делать соединение с регистром сведений ДополнительныеСведения
85. Shecurok 07.05.19 14:07 Сейчас в теме
(84)Я не могу просить, но придётся. Не мог бы помочь с написанием этого "соединения". Я даже отдаленно не представляю как это делается. А заодно посмторю и в будущем уже будет меньше вопросов.
86. spacecraft 07.05.19 14:17 Сейчас в теме
(85)
ТЗ = Источник.ИнвентарьИХозяйственныеПринадлежности.Выгрузить(,"Номенклатура");     

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
		|	ТЗ.Номенклатура КАК Номенклатура
		|ПОМЕСТИТЬ вт_тз
		|ИЗ
		|	&ТЗ КАК ТЗ
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	вт_тз.Номенклатура КАК Номенклатура
		|ИЗ
		|	вт_тз КАК вт_тз
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
		|		ПО вт_тз.Номенклатура = ДополнительныеСведения.Объект
		|			И (ДополнительныеСведения.Свойство = &Свойство)
		|			И (ДополнительныеСведения.Значение = ИСТИНА)
		|";
    
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("СчетМЦ05 (Номенклатура)")); // тут нужно посмотреть точно как называется свойство в плане видов характеристик
    
    Выбор = Запрос.Выполнить().Выбрать();
    
    
Показать
Shecurok; +1 Ответить
87. Shecurok 07.05.19 14:20 Сейчас в теме
(86) Спасибо большое. Ушел пробовать
88. Shecurok 07.05.19 14:31 Сейчас в теме
(86)"Запись не верна! Вид субконто "Работники организаций" не доступен для данной записи!"
Кстати говоря я посмотрел, у счета МЦ04 этот вид есть. Там всего 3. У МЦ05 такие же два и этого не хвататет
89. Shecurok 07.05.19 14:41 Сейчас в теме
(86) Добавил идентичный вид Субконто в МЦ05, на что ругалось. Теперь Вылезает следующая ошибка:
Хотя я создавал и сответственно проводил документ с поступланием этих шин на этот склад, да и до этого не ругалось. Как то странно.
А название свойства Вы правильно написали, идентично.
Прикрепленные файлы:
90. spacecraft 07.05.19 14:46 Сейчас в теме
(89) это уже на пальцах не проверить. Нужно подробно смотреть саму базу.
91. Shecurok 07.05.19 14:49 Сейчас в теме
(90) да, шерстю вот. Но по идее все должно быть правильно. Но до обращения к регистру сведений все считалось отлично. Буду смотреть в общем.
92. spacecraft 07.05.19 14:52 Сейчас в теме
(91) возможно где-то проверяется количество по старому МЦ04 счету.
93. Shecurok 07.05.19 14:53 Сейчас в теме
94. Shecurok 07.05.19 15:18 Сейчас в теме
(92) А смотреть проверяется ли количество остатков надо где то в конифгураторе? Ибо в самой проге не нашёл.
95. Shecurok 07.05.19 15:28 Сейчас в теме
(92) я думаю в этом направлении и надо двигаться. Ибо на основании старого документа (с такой же номенклатурой) сделал списание материалов из экспуатации. И как раз вылезла ошиюка с проверкой кол-ва по счету МЦ04
Прикрепленные файлы:
96. Shecurok 07.05.19 15:50 Сейчас в теме
(92) и в оборотно-сальдовой ведомости по счету МЦ04 тоже моих шин нет.
83. Shecurok 07.05.19 13:48 Сейчас в теме
(81) Менял либо на Истина, либо на "Да", но это не спасло.
42. Shecurok 07.05.19 11:55 Сейчас в теме
(40)
Запись не верна! Вид субконто "Статьи затрат" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)

Теперь то что 1С-ке не нравится? Чего она от меня хочет. (я вижу конечно, но как это то поправить)
8. ben19791010 06.05.19 12:03 Сейчас в теме
такое подозрение, что источник.Организация не хватает
13. user633533_encantado 11 06.05.19 12:21 Сейчас в теме
Нужно делать подписку на событие набора записей регистра.
Там ловить набор записей, анализировать его и подменять нужный счет.
SlavaKron; +1 Ответить
14. ZergKRSK 129 06.05.19 12:23 Сейчас в теме
(13) набор записей прекрасно отлавливается и в подписке объекта-документа.
17. user633533_encantado 11 06.05.19 15:25 Сейчас в теме
(14) Не всегда и не везде. Во многих современных типовых отражение в рег. учете идет уже после проведения документа.

И даже если проводки будут сделаны в момент проведения документа это не значит что они не будут в последсвии переотражены в рамках закрытия месяца или проведения отложенных расчетов.
19. ZergKRSK 129 07.05.19 03:45 Сейчас в теме
(17) мы сейчас работаем в рамках конкретного вопроса и документа. В данном случае нет смысла постоянно дергать подписку регистра т.к. она будет вызываться при проведении кучи документов.
24. user633533_encantado 11 07.05.19 10:55 Сейчас в теме
(19) Тут очень конктретно названа конфигурация БП 3.0 в которой есть отложенный пересчет. Вы гарантируете что в последствии движения по этому регистратору не будут записаны заново после расчета стоимости материалов ?

Вообще эту задачу (с заменой счета учета в зависимости от условий) можно решить без изменений конфигурации, но это уже другая история.
26. ZergKRSK 129 07.05.19 11:01 Сейчас в теме
(24) что вы подразумеваете под "расчетом стоимости материалов" ?
28. user633533_encantado 11 07.05.19 11:14 Сейчас в теме
(26) Определение стоимости МПЗ, зачет авансов и расчеты с контрагентами могут происходить в рамках закрытия месяца, а не в момент проведения документа.

Общая идея такая что часть проводок могут быть иногда перезаписаны без проведения документа и чтобы при этом не потерять свои изменения, такие как подмена счетов учета стоит работать с набор записи в момент записи регистра, а не с моментом проведения документа.
48. ZergKRSK 129 07.05.19 12:09 Сейчас в теме
(28) в данном документе проводки пишутся при проведении.
29. Shecurok 07.05.19 11:15 Сейчас в теме
(24) я смотерел как поменять счет учета штатными средставми, но информации не нашёл. Если есть можете поделиться?
30. user633533_encantado 11 07.05.19 11:17 Сейчас в теме
(29) Можно сделать свое регламентное задание из внешней обработки, БСП БУХ 3 это позволяет. И уже с помощью рег. задания анализировать движения определенных документов по определенным счетам и подменять счет учета и аналитику если нужно.
Никаких изменений конфигурации.
32. Shecurok 07.05.19 11:24 Сейчас в теме
(30) внешнюю обработку писать с нуля для меня сейчас это мрак будет. Я с простейшей колупался пару недель, и то у меня образец был, а тут ещё такое.
20. meriferi 07.05.19 07:34 Сейчас в теме
Этот запрос должен выполняться в последнюю очередь, т.е после записи и проведения документа, лучше сделать просто вызов общего модуля в последней строчке, а так все отладчиком смотреть надо
21. Shecurok 07.05.19 09:45 Сейчас в теме
(20) вызов сделать уже в самом документе?
22. Shecurok 07.05.19 09:46 Сейчас в теме
(20) и я почему то думал, что как раз проводки формируются во время проведения документа и соответственно в этот самый момент
должен счет Дт подменяться
37. meriferi 07.05.19 11:33 Сейчас в теме
Я писала в самом конце Процедуры ОбработкаПроведения()
50. SlavaKron 07.05.19 12:19 Сейчас в теме
Делайте подписку на запись набора.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот