Карук Евгения | Руководитель проектов | Центр разработки

«Плюсы и минусы перехода на EDT»

Доклад о преимуществах и недостатках 1С разработки в среде Enterprise Development Tools. - Расскажу о личном опыте работы с этой средой. - Что лично мне в ней нравится, что нет. - Новые возможности среды разработки. - Какие есть проблемы и неудобства при использовании. - В каких случаях и для каких конфигураций с ней имеет смысл работать уже сейчас.

[БП 3.0] Свертка БП 2.0 или БП 3.0 документами "Ввод начальных остатков" в БП 3.0 beta

0. Alex_E 1821 02.04.16 17:53 Сейчас в теме
Новое воплощение старой идеи http://infostart.ru/public/118486/
Много взято отсюда http://infostart.ru/public/303564/
Движок переноса данных http://infostart.ru/public/421541/

04.04.2018 - Версия 6.3.8.4 - Исправлена ошибка создание ВНО по НМА от Erne100 (Спасибо!!!). (Платформа 8.3.11.3034 БП 3.0.60.44)

Перейти к публикации

Комментарии
Сортировка: Древо
206. VasilyErmak 233 06.02.18 11:05 Сейчас в теме
В процессе работы с v6.3.7.5 нашел ошибки:
Вместо
Сообщить("" + ОписаниеОшибки() + " объект " + стрCOM.Nam);

надо
Сообщить("" + ОписаниеОшибки() + " объект " + стрCOM.Name);


В Функция_ПолучитьСотрудника(ФизЛицо)

Вместо
	Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	Сотрудники.Ссылка
	|ИЗ
	|	Справочник.Сотрудники КАК Сотрудники
	|ГДЕ
	|	Сотрудники.ФизическоеЛицо = &ФизическоеЛицо
	|	И Сотрудники.ГоловнаяОрганизация = &Организация";

надо
	Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	Сотрудники.Ссылка
	|ИЗ
	|	Справочник.СотрудникиОрганизаций КАК Сотрудники
	|ГДЕ
	|	Сотрудники.Физлицо = &ФизическоеЛицо
	|	И Сотрудники.Организация = &Организация";
207. Alex_E 1821 06.02.18 11:10 Сейчас в теме
(206) Спасибо большое! Проверю и исправлю.
208. Alex_E 1821 06.02.18 11:20 Сейчас в теме
(206) По запросу, текст должен быть такой:

Если ИмяКонфигурацииИсточника = "БП30" Тогда
		Запрос.Текст =
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	Сотрудники.Ссылка
		|ИЗ
		|	Справочник.Сотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ФизическоеЛицо = &ФизическоеЛицо
		|	И Сотрудники.ГоловнаяОрганизация = &Организация";
	Иначе
		Запрос.Текст =
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|    Сотрудники.Ссылка
		|ИЗ
		|    Справочник.СотрудникиОрганизаций КАК Сотрудники
		|ГДЕ
		|    Сотрудники.Физлицо = &ФизическоеЛицо
		|    И Сотрудники.Организация = &Организация";	
	КонецЕсли;
Показать

(нажимаю оформить в виде текста - ничего не происходит, тех.поддержка, аау!)
209. eugene_a 09.02.18 11:06 Сейчас в теме
В функции _ПеренестиРеквизит
Если ИмяКонфигурацииИсточника = "БП20" Тогда
	Если НовОбъект.Метаданные().ТабличныеЧасти.Найти("КонтактнаяИнформация") <> Неопределено  Тогда
		_ПеренестиКИ82(_СтрокаXML, НовОбъектСсылка);
	КонецЕсли;


должно быть
Если ИмяКонфигурацииИсточника = "БП20" Тогда
	Если НовОбъект.Метаданные().ТабличныеЧасти.Найти("КонтактнаяИнформация") <> Неопределено И НЕ НовОбъект.ЭтоГруппа Тогда
		_ПеренестиКИ82(_СтрокаXML, НовОбъектСсылка);
	КонецЕсли;

а то оно пытается с контактной информацией для группы работать.
210. Alex_E 1821 09.02.18 14:33 Сейчас в теме
211. stepnatti 09.02.18 15:31 Сейчас в теме
Добрый день, Алексей.
С удовольствием работаю с Вашей обработкой, хотя просто бух. Она гораздо удобнее стандартной. И спасибо Вам за оперативные ответы на мои вопросы дилетанта )))
212. Alex_E 1821 09.02.18 15:59 Сейчас в теме
213. VasilyErmak 233 13.02.18 12:32 Сейчас в теме
Здравствуйте Алексей.
при переносе остатков из Бух 2.0 в 3.0
Выдает:
Не найдены остатки по основным средствам, счет учета: 04.01
Не найдены остатки по основным средствам, счет учета: 05
Хотя остатки по этим счетам есть.
В Функция _ПолучитьОстаткиНМА(СчетНМА, СчетАмортизации)
По моему есть ошибка вместо
ВидыСубконто.Добавить(Коннект.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства);

надо
ВидыСубконто.Добавить(Коннект.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НематериальныеАктивы);

Правда это исправление тоже не помогает.
214. Alex_E 1821 13.02.18 12:41 Сейчас в теме
(213) Я сейчас точно не скажу, у меня просто не было баз с НМА, возможно что вообще не прописано получение остатков. Запрос там аналогичен ОС, только другие регистры должны использоваться, просто счета и вид субконто для остатков тут однозначно маловато будет... Сделать надо аналогично ОС, но нужна база, придумывать пример (проверено мин нет) бесполезно ... даже база может оказать каким - то частным случаем, но всё равно лучше искусственного примера с парой НМА. Могу посмотреть через АА - пишите в личку.
215. VasilyErmak 233 13.02.18 14:33 Сейчас в теме
Я пару часов с запросом провозился, но в пустую. Оно того не стоит, там пара позиций. Внесу руками.
Сам текст запроса похоже взят из 3.0?
217. Alex_E 1821 13.02.18 14:45 Сейчас в теме
(215) Текст не помню уже откуда, но сейчас я бы, наверное сделал по другому. С задвоением ОС не сталкивался, задваивает где, в остатках или в справочнике? И ещё, исходная база точно типовая? А то сталкивался с настройками, из-за которых "типовые запросы" (ну в смысле на типовой сделанные) такую лажу выдавали...
216. VasilyErmak 233 13.02.18 14:43 Сейчас в теме
Ещё основные средства почему то задваевает.
218. eugene_a 21.02.18 19:05 Сейчас в теме
Приветствую Алексей. Чтобы при переносе из БП2 в БП3 информация об "ОсновнойДоговорКонтрагента" не терялась, в функции _ПеренестиРеквизит
вместо
Если стрCOM.Name = "ЮрФизЛицо" Тогда
							НовОбъект["ЮридическоеФизическоеЛицо"] = Перечисления.ЮридическоеФизическоеЛицо[?(Коннект.XMLString(РеквCOM[стрCOM.Name]) = "ФизЛицо", "ФизическоеЛицо", "ЮридическоеЛицо")];
						ИначеЕсли стрCOM.Name = "БазоваяЕдиницаИзмерения" Тогда
							НовОбъект.ЕдиницаИзмерения = _ПеренестиРеквизит(РеквCOM[стрCOM.Name]);
Иначе
							Сообщить("Не обнаружен реквизит: " + стрCOM.Name + ", ссылки: " + _ПолныйТипОбъекта);
						КонецЕсли;
						
Показать

добавил кусок кода
Если стрCOM.Name = "ЮрФизЛицо" Тогда
							НовОбъект["ЮридическоеФизическоеЛицо"] = Перечисления.ЮридическоеФизическоеЛицо[?(Коннект.XMLString(РеквCOM[стрCOM.Name]) = "ФизЛицо", "ФизическоеЛицо", "ЮридическоеЛицо")];
						ИначеЕсли стрCOM.Name = "БазоваяЕдиницаИзмерения" Тогда
							НовОбъект.ЕдиницаИзмерения = _ПеренестиРеквизит(РеквCOM[стрCOM.Name]);
						ИначеЕсли стрCOM.Name = "ОсновнойДоговорКонтрагента" Тогда //в свежих версиях БП3 этого реквизита нет , а есть только в БП2 поэтому попробуем перенести информацию"
							ОсновнойДоговор =  _ПеренестиРеквизит(РеквCOM[стрCOM.Name]);
							Если ОсновнойДоговор <> неопределено Тогда
								НаборЗаписейОсновныеДоговоры = РегистрыСведений.ОсновныеДоговорыКонтрагента.СоздатьНаборЗаписей();
								НаборЗаписейОсновныеДоговоры.Отбор.Организация.Установить(ОсновнойДоговор.Организация,Истина);
								НаборЗаписейОсновныеДоговоры.Отбор.Контрагент.Установить(НовОбъект.Ссылка,Истина);
								НаборЗаписейОсновныеДоговоры.Прочитать();
								Если НаборЗаписейОсновныеДоговоры.Количество() = 0 Тогда //Записываем только 1 раз для контрагента
									НовЗаписьОсновныеДоговоры = НаборЗаписейОсновныеДоговоры.Добавить();
									НовЗаписьОсновныеДоговоры.Организация = ОсновнойДоговор.Организация;
									НовЗаписьОсновныеДоговоры.Контрагент = НовОбъект.Ссылка;
									НовЗаписьОсновныеДоговоры.ВидДоговора = ОсновнойДоговор.ВидДоговора;
									НовЗаписьОсновныеДоговоры.Договор = ОсновнойДоговор;
									НаборЗаписейОсновныеДоговоры.УстановитьАктивность(Истина);
									НаборЗаписейОсновныеДоговоры.Записать(Ложь);
								КонецЕсли; 
								
							КонецЕсли;
							
						Иначе
							Сообщить("Не обнаружен реквизит: " + стрCOM.Name + ", ссылки: " + _ПолныйТипОбъекта);
						КонецЕсли;
Показать
219. Alex_E 1821 21.02.18 19:25 Сейчас в теме
(218) Спасибо! Тут тогда уж и про банковский счет нужно посмотреть, наверное...
Включил Ваше добавление в состав версии 6.3.7.9
220. eugene_a 22.02.18 10:39 Сейчас в теме
(219) Алексей доброе время суток.
Основной банковский счет переносится нормально. Ничего делать не нужно.
221. Alex_E 1821 22.02.18 10:42 Сейчас в теме
(220) Ну и отлично, пишите, если ещё что найдётся...
222. Erne100 219 02.03.18 17:04 Сейчас в теме
Нашёл пару ошибочек:
1. В БП 2.0 (ПРОФ) на счете 04.01 нет подразделений, потому результат запроса по НМА пустой.
Решение: Меняем
ХозрасчетныйОстаткиАмортизация.Подразделение КАК Подразделение
на
ЕСТЬNULL(ХозрасчетныйОстаткиАмортизация.Подразделение, ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)) КАК Подразделение

2. В 2.0 Справочник "Пользователи" иерархический, а в 3.0 нет - валится при записи родителя
223. Alex_E 1821 02.03.18 17:16 Сейчас в теме
237. Erne100 219 03.04.18 22:52 Сейчас в теме
Подтверждаю, есть ошибка в запросе в версии 6.3.8.3. Запрос по "ОС" не возвращает порядок некоторых перечислений
Например: Способ приобретения, порядок учета, способ начисления амортизации.
... и потом не удается получить их в приемнике. Заметил подобное ещё где-то при переносе документов.

Кроме того: В запросе по "НМА" ОЧЕНЬ ЗРЯ убрана группировка по подразделениям. Ранее я предлагал не это см. (222)
В результате получилось, что из-за пары слэшей запрос потерял остатки по 05 счету.

Ещё "ВНО" игнорируют "Налоговый учет УСН", "Патент" и всякие там "Принимаются/Не принимаются". Но...
...это можно даже к достоинствам отнести. Исправить ошибки прошлого легче заполняя красные поля.

Одному хорошему главбуху я никак не мог объяснить, зачем в БП3.0 после смены налогового режима(ОСН->УСН)
надо заполнять остатки "посреди учета" и "правда руками"... а этой обработкой свернул и сиди убирай красненькое.
224. Erne100 219 14.03.18 00:17 Сейчас в теме
Версия 6.3.7.9 Перенос документов с движениями не работает. Например: Проводки по КУДИР есть но пустые.

В последней версии https://infostart.ru/public/421541/ всё ок.
225. Alex_E 1821 14.03.18 05:57 Сейчас в теме
226. eugene_a 15.03.18 18:11 Сейчас в теме
Алексей приветствую. В 6.3.7.5 не переносится забалансовый счет 003, т.к. там только количественный учет.
Запрос в функции СписокСчетовСОстатками
должен быть таким:
"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ХозрасчетныйОстатки.Счет.Код КАК КодСчетаCOM,
	|	СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК СуммаОстаток
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, Счет В (&МассивСчетов), , Организация = &Организация) КАК ХозрасчетныйОстатки
	|ГДЕ
	|	(ХозрасчетныйОстатки.СуммаОстаток <> 0
	|			ИЛИ ХозрасчетныйОстатки.КоличествоОстаток <> 0)
	|
	|СГРУППИРОВАТЬ ПО
	|	ХозрасчетныйОстатки.Счет.Код"	
Показать
227. Alex_E 1821 15.03.18 18:58 Сейчас в теме
228. Alex_E 1821 25.03.18 18:36 Сейчас в теме
(226) Выложил новую версию, Ваше исправление тоже включено в версию 6.3.8.3. Спасибо всем, кто помогает выявить и исправить косяки!!!
229. Светлый ум 233 25.03.18 20:15 Сейчас в теме
БП 3.0.58.20 - полет нормальный, отработало все. Спасибо
230. Alex_E 1821 25.03.18 20:17 Сейчас в теме
231. Erne100 219 26.03.18 10:33 Сейчас в теме
Забыл добавить не критичное...
ВНО по счету 05 валится при проведении, но...
в БП 3.0 не нужен отдельный документ ВНО по счету 05.
Пред идущий заносит остатки и по 04.01 и по 05.
232. Alex_E 1821 26.03.18 10:50 Сейчас в теме
(231) в версии 6.3.8.3 это учтено
233. Светлый ум 233 27.03.18 10:19 Сейчас в теме
Один нюанс (для тех кто будет делать свертку)

- Сразу после свертки - документы текущего периода переносите этой же обработкой (переносит долго, но все верно 8186 док - за 7 с небольшим часов на мощном компе)

К чему поднял этот вопрос:
- сделал свертку, а документы текущего периода переносил ИТС-совской "ВыгрузкаЗагрузкаДанныхXML", и в итоге получил тысячи дублей (в том числе и предопределенных элемнтов в плане счетов). Пришлось откатится и сделать все данной обработкой.
234. Alex_E 1821 27.03.18 10:57 Сейчас в теме
(233) Выгрузка загрузка с ИТС, наверное, была со старых ИТС, более свежие версии не должны так "плохо себя вести". Но, я давно ей не пользовался, и в этой обработке по умолчанию сделал перенос документов - просто чтобы пользоваться одним инструментом...
235. Al-77 61 03.04.18 16:37 Сейчас в теме
Взял последнию версию попробовал только перенести ОС из БП 3.0 в БП 3.0
Сразу ошибка {ВнешняяОбработка.СверткаИПереносБП_БП30.МодульОбъекта(1150)}: Поле объекта не обнаружено (MetaData)
236. Alex_E 1821 03.04.18 16:44 Сейчас в теме
(235) как вариант в порядке бреда - или попробуйте нажать на создать ВНО ещё раз, или в строке с ошибкой, после metadata поставьте (). Сегодня буду разбираться как раз с ОС, у одного из клиентов косяк обнаружился, если это ошибка - увижу, исправлю. Могу у Вас в базе посмотреть через АА - пишите в личку
238. Erne100 219 03.04.18 23:02 Сейчас в теме
(235) (236) Подтверждаю, есть ошибка в запросе в версии 6.3.8.3. Запрос по "ОС" не возвращает порядок некоторых перечислений
Например: Способ приобретения, порядок учета, способ начисления амортизации.
... и потом не удается получить их в приемнике. Заметил подобное ещё где-то при переносе документов.

Кроме того: В запросе по "НМА" ОЧЕНЬ ЗРЯ убрана группировка по подразделениям. Ранее я предлагал не это см. (222)
В результате получилось, что из-за пары слэшей запрос потерял остатки по 05 счету.

Ещё "ВНО" игнорируют "Налоговый учет УСН", "Патент" и всякие там "Принимаются/Не принимаются". Но...
...это можно даже к достоинствам отнести. Исправить ошибки прошлого легче заполняя красные поля.

Одному хорошему главбуху я никак не мог объяснить, зачем в БП3.0 после смены налогового режима(ОСН->УСН)
надо заполнять остатки "посреди учета" и "правда руками"... а этой обработкой свернул и сиди убирай красненькое.
239. Alex_E 1821 04.04.18 06:00 Сейчас в теме
(238) Про перечисления - посмотрю...
про
В запросе по "НМА" ОЧЕНЬ ЗРЯ убрана группировка по подразделениям. Ранее я предлагал не это см. (222)
не понял, сейчас в запросе (стр. 5682) ЕСТЬNULL(ХозрасчетныйОстаткиАмортизация.Подразделение, ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)) КАК Подразделение, о какой группировке речь? Какие слеши?
Ещё "ВНО" игнорируют "Налоговый учет УСН", "Патент" и всякие там "Принимаются/Не принимаются".
- это да, как то не случилосьпока задачи, чтобы это было обязательно нужно, а придумывать сферического коня в вакууме не хочется... И да, иногда это проще ввести руками, даже не при переходе с ОСНО, а, например, при свёртке базы с .... как бы помягче ... О! "хаотическим" ведением учета в исходной базе))))
240. Erne100 219 04.04.18 18:11 Сейчас в теме
Точно, группировка "По Подразделение" есть...Сорри
Возможно тогда Не тот "Вид субконто" в парамерах
  //ВидыСубконто.Добавить(Коннект.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства);
    ВидыСубконто.Добавить(Коннект.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НематериальныеАктивы); //Замена
    Запрос.УстановитьПараметр("ВидСубконтоНМА", ВидыСубконто);
241. Alex_E 1821 04.04.18 18:16 Сейчас в теме
(240)
ВидыСубконто.Добавить(Коннект.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НематериальныеАктивы);
- точно так, копипаста - враг мой!!!

Спасибо!!!
242. Alex_E 1821 04.04.18 18:24 Сейчас в теме
Выложил новую версию с исправлением по НМА
243. ryutao 50 09.04.18 14:37 Сейчас в теме
Версия 6.3.8.4, Платформа 8.3.11.3034, БП 3.0.59.45.
Создаю ВНО "Основные средства", пишет ошибку:
{ВнешняяОбработка.СверткаИПереносБП_БП30.МодульОбъекта(1150)}: Метод объекта не обнаружен (MetaData)
Меняю MetaData на MetaData(), ВНО создался.
Далее создаю ВНО "Материалы", пишет ошибку:
{ВнешняяОбработка.СверткаИПереносБП_БП30.МодульОбъекта(1150)}: Метод объекта не обнаружен (MetaData).
Я так понимаю, надо скобки теперь удалять?
244. Alex_E 1821 09.04.18 15:02 Сейчас в теме
(243) Если честно, достали уже эти скобки, и надо как-то собраться с духом, и понять, почему то это метод, то реквизит... Есть уже версия 6.3.8.5, пишите почту в личку, могу скинуть, может там это не проявится, но не факт... Вообще - каждая база уникальна (в смысле, что во всех какие-то свои тараканы))))))))))
245. ryutao 50 10.04.18 13:00 Сейчас в теме
(244) Выгрузил остатки из очень проблемной базы. Как оказалось, база - источник была восстановлена из крутого падения. Мне об этом сообщили только сейчас, сам убедился, база практически неработоспособна. Прошлый 1С-ник сбежал от них. Вот привлекли меня. Буквально в паре мест добавил Попытку смены со скобками и без скобок, и остатки перенеслись. Еще раз, большое Вам спасибо! Отличная обработка! Я бы купил эту обработку за деньги.
246. Qwizard 12.04.18 14:24 Сейчас в теме
Алексей, добрый день.

При выполнении любого действия получаю такую ошибку:
{ВнешняяОбработка.СверткаИПереносБП_БП30.МодульОбъекта(2065)}: Значение не является значением объектного типа (Найти)
Найдено = СоответствиеОбъектовИсточникПриемник.Найти(ИдИсточник, "ИдИсточник");

Не нахожу в модуле обработки инициализацию соответствия "СоответствиеОбъектовИсточникПриемник" или заполнение его чем-либо, есть только объявление.
Что я делаю не так?
Прикрепленные файлы:
247. Alex_E 1821 12.04.18 14:27 Сейчас в теме
(246) Пишите в личкцу - посмотрю через АА
248. malikov_pro 28 20.05.18 08:21 Сейчас в теме
В "_ПолучитьТекстЗапросаДляСпискаСсылок" есть упущение по поиску организации.
2.0.66.53 в спр. ПодразделенияОрганизаций нет реквизита "ГоловнаяОрганизация" работает через "Владелец"
Решил через:

Если НетОрганизации Тогда //Проверим реквизиты на вхождение слова организация
		Попытка
		Если ТипЗнч(ПустойОбъект.Владелец) = Тип("СправочникСсылка.Организации") Тогда
			НетОрганизации = Ложь;
			ИмяРеквизитаОрганизация = "Владелец";
		КонецЕсли;
		Исключение
		КонецПопытки;
	КонецЕсли;
Показать
250. Alex_E 1821 20.05.18 09:09 Сейчас в теме
(248) Спасибо, исправлю.
(249) Про это на протяжении всего времени существования обработки говорю (например рядом в (244)).
251. Alex_E 1821 20.05.18 09:19 Сейчас в теме
(248) Сделал так:
	Если ТипОбъекта = "Справочник" И НетОрганизации Тогда //Проверим стандартные реквизиты справочника на вхождение типа организация организация
        Если ТипЗнч(ПустойОбъект.Владелец) = Тип("СправочникСсылка.Организации") Тогда
            НетОрганизации = Ложь;
            ИмяРеквизитаОрганизация = "Владелец";
        КонецЕсли;		
	КонецЕсли;
249. malikov_pro 28 20.05.18 08:48 Сейчас в теме
"Коннект.MetaData.InformationRegisters" заменил на "Коннект.MetaData().InformationRegisters", возможно специфика 8.3.12
Оставьте свое сообщение
Все разделы

Вакансии


Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 150 000 руб.
Полный день