1с параметр не опциональный
между базами бух 30 и зуп 31 была настроена синхронизация, но не верно.
физлица и их счета были есть в обеих базах
при попытке настроить заново с нуля не сопоставляется часть данных,
например, есть физлицо с одинаковым ФИО, датой рождения и кодом или его банковский счет. эти данные одинаковые и их можно найти в обеих базах.
Однако в окне синхронизации программа видит их только в одной базе, причем некоторые только в бух, некоторые в зуп.
пробовал сделать автоматическое сопоставление только по ФИО для физлиц или по номеру для банковских счетов — не помогло.
релиз зуп 31 3.1.6.38
релиз бух 30 3.0.61.37
Попробуйте предварительно очистить регистр Соответствия объектов информационных баз в обеих базах.
Тогда сопоставление должно пройти автоматически. Проверьте, возможно, Вы используете не типовые правила? Также можно сопоставить объекты вручную.
—Тогда сопоставление должно пройти автоматически. Проверьте, возможно, Вы используете не типовые правила? Также можно сопоставить объекты вручную.
в форме сопоставления программа не подтягивает аналоги данных из второй базы для сопоставления вручную.
я пробовал менять отборы по реквизитам (оставлять только Фио для физлиц или номер для банковских счетов), это не помогало отобразить аналоги в этой форме.
при этом в обеих базах в обычной форме списка справочника аналоги есть с точностью до символа.
если настраиваю из ЗУП, то только некоторые, хотя по странной логике, одних физлиц программа не видит (только при сопоставлении для синхронизации) с одной стороны, а других — с другой.
если — из Бух, то большинство физлиц не видны на стороне ЗУП.
— в форме сопоставления программа не подтягивает аналоги данных из второй базы для сопоставления вручную.
Это очень странно. А что выбрано в реквизите Выводить ? (см.скрин-шот).
Точно ли совпадает ФИО? Я один раз столкнулась, что в ЗУП в ФИО было русское «С», а в БУХ — латинское «С», визуально это не видно, но можно попробовать скопировать ФИО из одной базы и записать для элемента в другой базе.
—А что выбрано в реквизите Выводить ? (см.скрин-шот).
я проверял, в поле Выводить стоит Несопоставленные данные
Что интересно, когда выбираю Все данные, новые аналоги для несопоставленных не появляются в противоположном списке.
попробовал заменить ФИО в БУХ на фио из ЗУП, не помогло.
самое интересное: попробовал сделать синхронизацию с этими настройками, дубли не возникли.
А синхронизация у Вас с точностью до физиков, может быть сводный режим выгрузки включен? Пришлите скрин-шоты настроек, м.б. мой глаз зацепится за что-то.
Еще смотрите какая история — при синхронизации в очередь к выгрузке «встают» же только те элементы справочника Физические лица , которые «задействованы» в документах Отражение зарплаты в бухучете и Ведомости…
Может быть в этом дело? Т.е. не все «физики» фигурируют в документах?
здесь пример сопоставления счетов сотрудников (втч. на гпх)
посмотрел в бухгалтерии у сотрудников указаны счета и в справочнике Контрагенты, и в справочнике Физические лица
Здравствуйте!
Пришлите пожалуйста ещё скрин настроек синхронизации из ЗУП и из Бухгалтерии.
Администрирование — Синхронизация данных — Настройки синхронизации данных — кнопка Настроить — скрин открывшейся формы.
убрал название компании. оно одинаковое в бух и зуп до символа
У меня такое подозрение, что это либо какая-то платформенная ошибка, либо ошибка релиза. Всегда, когда настраивал синхронизацию в окне сопоставления можно было просмотреть все объекты двух баз (которые синхронизируется) и они либо сами сопоставлялись, либо их можно было сопоставить вручную, поскольку они были доступны в списке.
Уточните пожалуйста, а Вы в итоге пытались запустить синхронизацию в таком неправильно сопоставленном виде? Хоть что-то синхронизировались? Хоть какие-то данные переносились? Если нет, то попробуйте, только сделайте копии баз, чтобы потом откатиться к этим копиям, а то ведь несопоставленные физ. лица и счета по идеи должны задвоится. Напишите тогда, что получилось, действительно ли они задвоились?
Проверьте ещё на всякий случай — пути к базам в синхронизации верно указаны.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Спасибо Марии за умение доходчиво донести информацию!
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
1) даты больше 3999 2) задовоение уник. индекса. скорее всего проще в коде обработки ,создающей записи , найти доки с неправильной датой можно отключить индекс если (он может быть создан для первичного ключа) и потом разбираться.
"можно отключить индекс если (он может быть создан для первичного ключа) " а где его взять и как отключить?
в em или в ssms . ПЕРЕД изменением запомнить начальное состояние. проще всего на таблице правой кнопкой мыши- криате скрипт- - альтер табле и полученный скрипт сохранить далее в дереве таблиц есть поддерево сопутствующих объектов там есть indexex на нем дисабле или отключить. если рагается на первичный ключ то в таблица-изменить убрать ключик индекс сам исчезнет. но потом его надо будет восстановить.
отключил индекс, но когда пытаешься отредактировать таблицу он говорит ошибка индекс отключен. Нашел документы которые вызывали ошибку-документы "Операции(бухгалтерский и налоговый учет)" т.е. документы где вручную забивали остатки на конец года. Смотрел по коду набор записей который он формирует, то у них дата нормальное 2009 год. Когда их удаляешь то все норм.
проблема простая, скорее всего меняли состав субконт. Теперь в sql ной таблице почему то остались записи не с теми видами субконто какие нужно. Я не раз исправлял эту проблему, но вменяемая и понятная инструкция слишком длинная будет
rs_trade, строк одинаковых там штук 20, 3 штуки удаляются остальные говорят что записят от других 11 и не удаляются
так мне что зайти в таблицу изменить выбору из SELECT TOP 1000 [_Period] ,[_AccountRRef] на TRUNCATE TABLE [OtdelStroyTriumfAstany2].[dbo].[_AccRgAT35649] так?
Берем таблицу SQL которая хранит занчения субконто от того регистра который _AccRg35649 джойним ее с самой таблицей _AccRg35649, джойн делаешь по _RecorderRRef _LineNo и выставляешь _Correspond=0x00 для дебета или _Correspond=0x01 для кредита. (надо сделать по очереди вначале для дебета, потом для кредита) Из этого джойна отбираем _KindRRef и _AccountDtRRef для дебета или AccountCtRRef для кредита.
Грохание итогов не поможет, т.к. ошибка вызывает именно тем что в итоги пытается записаться нехорошая запись при обработке документов, а не в итогах сидит нехорошая запись
поставил обновление, появились записи с датами в таблице очистил через TRUNCATE TABLE [OtdelStroyTriumfAstany2].[dbo].[_AccRgAT35649], запустил опять и опять записи появились
я сделал такой запрос SELECT [_Period] ,[_AccountRRef] Теперь он ругается на то что нет такого столбца. И Правильно, там нет такого, где его взять.
Исполняемые операторы выполняют непосредственную обработку данных. К ним относят системные процедуры и функции, заложенные разработчиками платформы, а также вспомогательные процедуры и функции, описанные разработчиком конфигурации (прикладной задачи).
Под описание системных процедур и функций отведен целый раздел. Здесь же мне хотелось бы рассказать о вспомогательных исполняемых операторах, которые может определять разработчик конфигурации. Основное назначение вспомогательных исполняемых операторов — повторное многократное использование кода и оптимизация модульной структуры конфигурации.
Во встроенном языке 1С:Предприятие 7.7 определены два варианта реализации вспомогательных вычислений:
- Реализация вычислений через процедуры, не возвращающие каких-либо значений;
- Реализация вычислений через функции, возвращающие результат вычислений в точку вызова;
По сути, процедуры и функции представляют собой блоки операторов, заключенные в специальные операторные скобки:
Для вызова оператора достаточно указать его символьный идентификатор:
Поскольку, встроенный язык 1С:Предприятие 7.7 является регистронезависимым, идентификатор оператора можно писать в любом регистре. Но лучше использовать оригинальные имена операторов — это повысит читаемость кода не только для Вас, но и для Ваших последователей.
Программист может располагать процедуры и функции в любом модуле на свое усмотрение. Но хорошим тоном считается расположение общеиспользуемых процедур и функций в глобальном модуле, чтобы в остальных модулях была доступна только одна версия этой процедуры или функции. Все остальные процедуры и функции принято располагать по месту их использования — в программных модулях форм или объектов конфигурации.
Параметры исполняемых операторов
Поскольку процедуры и функции, определяемые разработчиком, могут располагаться в произвольных модулях конфигурации, для передачи данных в исполняемые операторы используются параметры. Для этого в определении процедуры или функции задаются формальные параметры, которыми можно оперировать внутри процедуры или функции:
где Параметр1. ПараметрN — перечисление формальных параметров, отделенных друг от друга разделителем , (запятая).
В точке вызова исполняемого оператора, формальные параметры заменяются фактическими параметрами — значениями, передаваемыми внутрь исполняемого оператора:
В качестве параметров могут выступать литералы базовых типов, имена переменных, имена других исполняемых операторов или выражения с их участием.
По-умолчанию, все формальные параметры исполняемого оператора являются обязательными. Это значит, что в вызове процедуры или функции необходимо заменить каждый формальный параметр на фактический.
Если вы перечислите не все фактический параметры, синтаксический анализатор выдаст ошибку: «Недостаточно фактических параметров» .
Необязательные (опциональные) параметры
Несмотря на то, что все формальные параметры являются обязательными, допускается не указывать их значения. В этом случае формальный параметр получит пустое значение (значение неопределенного типа).
Также имеется возможность задать для формального параметра значение по умолчанию одного из простых типов. Для этого в определении параметра, после знака присваивания, указывается литерал значения:
Передача параметров по значению. Передача параметров по ссылке
По-умолчанию, значения всех фактических параметров передаются в процедуру или функцию по ссылке. Это приводит к тому, что изменение формального параметра в теле процедуры или функции, также изменяет значение фактического параметра. Чтобы избежать этого, используется передача параметров по значению. Таким образом, изменение формального параметра не повлечет за собой изменения фактического. Для этого к описанию параметра добавляется ключевое слово Знач :
Предварительное объявление процедур и функций
Поскольку трансляция кода на встроенном языке выполняется за один проход, обязательным требованием является предварительное объявление процедур и функций перед их вызовом. Попытка вызова процедуры или функции без ее предварительного описания приведет к синтаксической ошибке: «Процедура не обнаружена (ИмяПроцедуры)» . Для предварительного объявления процедур и функций используется ключевое слово Далее :
При этом следует учесть, что предварительное описание должно включать все параметры исходных процедур и функций, включая ключевые слова Знач и Экспорт
Досрочное завершение исполняемого оператора
Для досрочного завершения выполнения операторов в теле процедуры или функции используется оператор Возврат , который передает управление на первый оператор, следующий за процедурой или функцией.
Всем доброго времени суток, столкнулся с такой задачей - мне нужно из одной базы делать выгрузки по разным правилам в несколько других баз.
Сделал обработку, в ней в цикле пускаю :
Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать();
.
Обработка.ВыполнитьВыгрузку();
При этом для одной(любой) базы обработка работает, для двух и более - нет. Более того, чтобы сделать выгрузку в другую базу приходится открывать и закрывать текущую, потом запускать обработку заново.
Подскажите, что делать? Может мне деструктора какого не хватает, или временные файлы не убиваются?
Приблизительно так:
//В эту комендную строку можно включить любуе дополнительные параметры,
//которые передаются как параметры запуска сеанса
//мой параметр имеет имя КодНастройкиОбменаДанными и передаю я код узла обмена,
//но можно и по-другому
ДополнительнаяКоманднаяСтрока = "/C" + "КодНастройкиОбменаДанными=""" + СокрЛП(КодУзлаОбменаКоторыйНужноЗапуститьПослеПерезапускаСеанса);
//В модуле приложения ПриНачалеРаботыСистемы() этот параметр нужно обработать:
Если Найти(ПараметрЗапуска, "КодНастройкиОбменаДанными") > 0 Тогда
// Проверим необходимость обмена
ПроцедурыОбменаДанными.ПроверкаНеобходимостиОбмена();
КонецЕсли;
//В модуле ПроцедурыОбменаДанными
Процедура ПроверкаНеобходимостиОбмена()
// Если в параметре запуска ничего не передано.
Если ПараметрЗапуска = "" Тогда
Возврат;
КонецЕсли;
// Формируем доп. командную строку для перезапуска клиента
СтрокаПараметра = ПараметрЗапуска;
// Если в параметре командной строки не передан код элемента справочника НастройкиОбменаДанными
//КодНастройкиОбменаДанными
КодУзлаОбмена = ИзвлечьПараметрИзСтрокиПараметраКоманднойСтроки("КодНастройкиОбменаДанными", СтрокаПараметра);
Если КодНастройкиОбменаДанными = Неопределено Тогда
Возврат;
КонецЕсли;
//Вызываем необходимые процедуры обмена
//.
Функция ИзвлечьПараметрИзСтрокиПараметраКоманднойСтроки(ИмяПараметра, Знач СтрокаПараметра)
Префикс = СтрДлина(ИмяПараметра + "=""");
ДлинаПрефикса = СтрДлина(ИмяПараметра + "=""");
ПозицияИмяПараметра = Найти(СтрокаПараметра, ИмяПараметра);
ДлинаСтрокаПараметра = СтрДлина(СтрокаПараметра);
Если ДлинаСтрокаПараметра Возврат Неопределено;
КонецЕсли;
ПозицияЗапятой = Найти(СтрокаПараметра, """,");
Пока 1=1 Цикл
Если ПозицияЗапятой = 0 ИЛИ ПозицияЗапятой > ПозицияИмяПараметра Тогда
Прервать;
КонецЕсли;
//СтрокаПараметра = Лев(СтрокаПараметра, ПозицияЗапятой - 1) + Сред(СтрокаПараметра, ПозицияЗапятой + 1,
КонецЦикла;
ДлинаКода = ?(ПозицияЗапятой = 0, СтрДлина(СтрокаПараметра), ПозицияЗапятой - 1) - ДлинаПрефикса;
Частой причиной ошибок при обмене выступает разрыв между обновлениями конфигураций ЗУП 3.1 и БП 3.0.
Помните, что для корректного обмена конфигурации должны быть актуальных релизов.
2) Проверка корректности подключения
Заходим в раздел Администрирование – Синхронизация данных – Настройка синхронизации данных.
Встаем мышкой на нужный обмен - кнопка Настроить – кнопка Ещё – Настройки подключения:
В открывшемся окне производим проверку подключения по одноименной кнопке:
Данную проверку следует произвести как в ЗУП 3.1, так и в БП 3.0.
Распространенные ошибки подключения:
При подключении через сетевой каталог – разные папки для обмена в ЗУП 3.1 и БП 3.0 (в данном случае нужно проверить оба пути и указать верный); отсутствие доступа до папки (обратиться к системному администратору для настройки общего доступа);
При прямом подключении – смена пароля у пользователя, используемого для подключения (следует обновить данные для подключения).
Обмен проходит, документы не переносятся
Документы регистрируются к обмену в автоматическом режиме при добавлении, изменении. Бывают случаи, когда документ по какой-то причине не переносится.
1) Убедиться, что нужный документ по дате попадает в период, с которого начинается обмен данными:
Если необходимо, следует провести корректировку настроек обмена.
2) Проверить Предупреждения при обмене, раздел Непринятые по дате запрета:
Если нужный документ попадает в данный список, то необходимо подкорректировать дату запрета и повторно выполнить обмен.
3) Зарегистрировать документ к обмену вручную
Для этого необходимо перейти по кнопке Состав отправляемых данных, выбрать нужный вид документа, затем по кнопке Зарегистрировать или правой кнопкой мыши в соседней табличной части зарегистрировать нужный документ к обмену:
Затем следует повторить проведение обмена между конфигурациями.
Для успешного завершения обмена при настройке подключения через каталог необходимо поэтапно запускать обмен в каждой из конфигураций.
Статью подготовила старший консультант «ИнфоСофт» Анастасия Ткаченко
Читайте также: