існуючими обробками не вийде, сіль в тому, що довідники якраз і є аналітикою/субконто на синтетичних рахунках. Вам потрібно писати свою обробку, яка буде "перетворювати" одне субконто/довідник в інше.
Ну значіть і довідники перенесу. Я не знаю як сформувати операції, тобто які рахунки по дебеті, а я які по кредиті (хоча головний бух. сказав що потрібно все перенести на один рахунок - 682). Залишки по субконто також не знаю як отримати. Коли я буду формувати відповідні операції, то відразу і буду вигружати в ексель. А потім напишу обробку, яка буде затягувати цей файл і створювати дзеркальні операції.
1. Яка операційна система на компютері? (підозрюю що Win7, або 2008-2012 сервер, і напевне 64-біт) 2. Яка версія платформи 1С. 3. Які ще компоненти, окрім РОМ-МАЙЛ використовуються?
Раніше рядок з атрибутом(?) Таймаут кричав, якщо коментувати , будуть точно наступні рядки кричать.
так точно
Цитата
автор, ви зазначуєте, що це лише в деяких випадках помилка відбувається? ви помітили в яких?
ага, тільки в одного користувача...який підключається по RDP
Цитата
хто день адміна святкує? допоможіть людині ).
ось як розрулиться ситуація, то обов'язково )))
Цитата
може там пароль в різних розкладках для деяких адрес, і аутентифікація не відбувається. з деяких адрес не відбувається відправка, чи адреса відпавки є постійною?
я вже пробував свою адресу і пароль підставляв, не хтіт
І ще раз, доброго дня. Проблема знову ж таки актуальна. Виникає помилка "Поле агрегатного объекта не найдено - ОтправляемоеПисьмо.АдресДляОтвета=СокрЛП(АдресОтправителя); (АдресДляОтвета)". Підкажіть в чому проблема?
Поясніть алгоритм дій. Звідки береться на шк паперовому носії? "Документи вона знаходить" означає, що обробка знаходить документи за шк на паперовому носії? Тоді навіщо генерувати шк "при відпрацювання обробки"?
До нас приходять накладні з головного офіса, в електронному та паперовому вигляді. На паперовому вже існує ШК. Наскільки я розумію то бухгалтерія повинна звіряти їх в кінцці місяця. Повинно находити документ в базі та відповідно щоб був однаковий ШК. Структуру ШК можна побачити в функціях яких я скинув.
Доброго всім дня. Склалась ось така ситуація: Є обробка з допомогою якої звіряють документи по ШК (штрих коду). Документи вона знаходить, а от при виконанні фукції шкПолучитьСтрокуШКПоДокументу(), повертає значення не таке як має бути. Попрацювавши трішки з отладчиком, вияснилось, що не правильнго розраховується CRC32HEX сума.
//вид документа P = ""; Если ВидД = Тип("ДокументСсылка.РеализацияТоваров") Тогда P = ?(ДляПокупателя, "1", "0"); ИначеЕсли ВидД = Тип("ДокументСсылка.ПоступлениеТоваров") Тогда P = "1"; ИначеЕсли ВидД = Тип("ДокументСсылка.ЗаказНаряд") Тогда P = "2"; ИначеЕсли ВидД = Тип("ДокументСсылка.ПеремещениеТоваровВПроизводство") Тогда P = "3"; ИначеЕсли ВидД = Тип("ДокументСсылка.СписаниеТоваров") Тогда P = "4"; ИначеЕсли ВидД = Тип("ДокументСсылка.ВводОстатковТоваров") Тогда P = "6"; ИначеЕсли ВидД = Тип("ДокументСсылка.ИзвлечениеТоваровИзПроизводства") Тогда P = "9"; КонецЕсли;
Если P = "" Тогда Если ТекстОшибки <> "" Тогда ТекстОшибки = ТекстОшибки + Символы.ПС; КонецЕсли; ТекстОшибки = ТекстОшибки + "Вид документа """ + Строка(ВидД) + """ не может быть обработан!"; Возврат 0; КонецЕсли;
//DDMMYY - дата документа Если ВидД = Тип("ДокументСсылка.ПоступлениеТоваров") Тогда ДатаДок = Формат(Док.ВхДокНомер,"ДФ=dd.MM.yy"); Иначе ДатаДок = Формат(Док.Дата,"ДФ=dd.MM.yy"); КонецЕсли;
DD = Сред(ДатаДок,1,2); MM = Сред(ДатаДок,4,2); YY = Сред(ДатаДок,7,2);
//C - CRC32, построенное по выбранным полям документа //CRC32 = ""; CRC32HEX = ""; СимволРазделитель = ";"; Если дкДокументЕстьРеквизитШапки("Контрагент", Док.Метаданные().Имя) Тогда ЕГРПОУ = СокрЛП(Док.Контрагент.ЕДРПОУ); Иначе ЕГРПОУ = ""; КонецЕсли;
Если ВидД = Тип("ДокументСсылка.РеализацияТоваров") Тогда ЕГРПОУ = СокрЛП(Док.Организация.ЕДРПОУ); // т.о. когда это будет ПН там наша фирма будет Контрагент КонецЕсли;
Если ВидД = Тип("ДокументСсылка.ЗаказНаряд") Тогда CRC32 = ДописатьТЧВСтрокуДляCRC32(Док, "Работы", CRC32); КонецЕсли;
CRC32HEX = hex_(Число(шкХеш(CRC32)));
//N - номер документа Если ВидД = Тип("ДокументСсылка.ПоступлениеТоваров") Тогда
N = шкТранслитерация(СокрЛП(Док.ВхДокНомер), "RUEN", ТекстОшибки); Иначе N = шкТранслитерация(СокрЛП(Док.Номер), "RUEN", ТекстОшибки); КонецЕсли;
Если ТекстОшибки = "" Тогда СтрокаШК = VV + P + DD + MM + YY + CRC32HEX + N; Возврат СтрокаШК; Иначе Возврат 0; КонецЕсли; КонецФункции // глПолучитьСтрокуШКПоДокументу
Ось сама функція шкХеш()
Функция шкХеш(СтрокаХэш) Экспорт Строка_ = СокрЛП(Строка(СтрокаХэш)); //Получаем строку и убираем ведущие и ведомые пробелы НачПозиция = 1; //Переменная начальной позиции блока hash=0; //Переменная хеша; M=33; //Переменная точности ДлинаСтроки = СтрДлина(Строка_); //Получаем длину входной строки //Организовываем цикл обработки по блокам из 10 символов Пока НачПозиция <= ДлинаСтроки Цикл СтрокаБлока = Сред(Строка_, НачПозиция, 10); //Получае блок //Цикл получения хеша блока Для к = 1 По СтрДлина(СтрокаБлока) Цикл hash = M * hash + КодСимволаASCII(Сред(СтрокаБлока, к,1)); КонецЦикла; hash = hash % 4294967296; //Остаток от деления определяет разрядность хеша (4294967296 - 4 байт,18446744073709551616 - 8 байт) НачПозиция = НачПозиция + 10; //Начальная позиция следующего блока КонецЦикла; Результат = hash; Возврат Результат; КонецФункции //Хеш
В результаті на паперовому носії ШК - 011050514BA71C97EZAP1405008; При відпрацювання обробки ШК - 0110505145480487EZAP1405008;
Чому різні CRC32 суми. Допоможіть розібратись. Дякую. Конфа - "Альфа" 1С-8.2.17.143
Если (РазницаНДС = 0) И (СчетУчета = СчетПоКоду("683")) Тогда глПроводка(Контекст,"643","6415",НДС,"НДС",, Субконто,Заказ,ГруппаМСФО, ВидНДС,,, ,,"БК"); КонецЕсли;
Після цього в операції попадає сумма НДС і записується.
Цитата(vadim007 @ 18.06.14, 16:41)
Это фрагмент из ПроводкиСтрока(), и если в документе более чем одна строка, то НДС в проводке может не быть равна НДС документа. Протрассируйте все же...
Зараз зробив тестову базу і в документі залишив тільки одину строку.
Змінив тут:
Если (РазницаНДС = 0) И (СчетУчета = СчетПоКоду("683")) Тогда глПроводка(Контекст,"643","6415",НДС,"НДС",, Субконто,Заказ,ГруппаМСФО, ВидНДС,,, ,,"БК"); КонецЕсли;
на ось таке:
Если (РазницаНДС = 0) И (СчетУчета = СчетПоКоду("683")) Тогда глПроводка(Контекст,"643","6415",РазницаНДС,"НДС",, Субконто,Заказ,ГруппаМСФО, ВидНДС,,, ,,"БК"); КонецЕсли;
після ось таких маніпуляцій, в проводці не має НДС 643-6415. Підкажіть чи правильні дії виконав? Дякую.
!
Правила, п.3. Переезжаем в раздел для программистов.
, и, НДС=0 или СчетУчета<>683, т.к. нет проводки от
Если (РазницаНДС = 0) И (СчетУчета = СчетПоКоду("683")) Тогда глПроводка(Контекст,"643","6415",НДС,"НДС",, Субконто,Заказ,ГруппаМСФО, ВидНДС,,, ,,"БК"); КонецЕсли;
Перепрошую, але я повинен знайти НДС яке буде дорівнювати суммі, яка в моєму документі?
Если ДоходИздержка = Перечисление.ПлюсМинусНичего.Плюс Тогда глПроводка(Контекст,"643","6415",-РазницаНДС,"НДС, сторно",, Субконто,Заказ,ГруппаМСФО, ВидНДС,,, ,,"БК"); Иначе Если (Константа.НДСпоВходящимНН = Да) И (РСчет.Валюта = Гривня) Тогда // проводку по налоговому кредиту сделаем в документе ЗаписьКнигиПриобретения глПроводка(Контекст,"6442","6441",РазницаНДС,"НДС",, Субконто,Заказ,ГруппаМСФО, Субконто,Заказ,ГруппаМСФО, ,,"БК"); Иначе // сразу налоговый кредит глПроводка(Контекст,"6415","6441",РазницаНДС,"НДС",, ВидНДС,,, Субконто,Заказ,ГруппаМСФО, ,,"БК"); КонецЕсли; КонецЕсли; ........................ ....................... ..................... Если ДоходИздержка = Перечисление.ПлюсМинусНичего.Минус Тогда Если (Константа.НДСпоВходящимНН = Да) И (РСчет.Валюта = Гривня) Тогда // проводку по налоговому кредиту сделаем в документе ЗаписьКнигиПриобретения глПроводка(Контекст,"6442","6441",-РазницаНДС,"НДС, сторно",, Субконто,Заказ,ГруппаМСФО,Субконто,Заказ,ГруппаМСФО, ,,"БК"); Иначе // сразу налоговый кредит глПроводка(Контекст,"6415","6441",-РазницаНДС,"НДС, сторно",, ВидНДС,,, Субконто,Заказ,ГруппаМСФО, ,,"БК"); КонецЕсли; Иначе глПроводка(Контекст,"643","6415",РазницаНДС,"НДС",, Субконто,Заказ,ГруппаМСФО, ВидНДС,,, ,,"БК"); Если (РазницаНДС = 0) И (СчетУчета = СчетПоКоду("683")) Тогда глПроводка(Контекст,"643","6415",НДС,"НДС",, Субконто,Заказ,ГруппаМСФО, ВидНДС,,, ,,"БК"); КонецЕсли; КонецЕсли;
Щойно перепровів. Спочатку ЗН, потім БВ, але нічого не змінилось.
Мабуть, потрібно було уточнити, що "конфа" дописувалась, а точніше модуль документа Документ.БанковскаяВыписка, по 683 рахунку. Але не можу розібратися де перевіряється на першу подію з іншими рахунками, щоб вставити її по 683 рахунку.
Доброго всім дня. Підкажіть в такій проблемі. Банківська виписка не бачить першу подію по ПДВ і виходить проводка 643-6415, але це тільки по 683 рахунку. Хоча має виписка бачити першу подію передплата і проводки 643-6415 не повинно бути. Підкажіть де знайти в модулі перевірку на першу подію. Дякую.
тбБазы.ВыбратьСтроки(); Пока тбБазы.ПолучитьСтроку() = 1 Цикл ПолучитьНиО(тбБазы.НиО); Если НачалоПериода<'01.12.2011' Тогда //по общей ставке СтавкаИнв = тбНиО.Ставка; КонецЕсли;
СчетЗатрат = тбБазы.СчетЗатрат; Если ПустоеЗначение(СчетЗатрат)=1 Тогда // используем счета по умолчанию СчетЗатрат = тбНиО.СчетЗатрат; КонецЕсли;
Если Константа.ИспользоватьОбеспечениеОтпусков.Получить(КонецПериода) = Да Тогда глПроводка(Контекст,СчетЗатрат,тбНиО.НиО.Счет,СуммаОтчисленийБезОтпуска,тбНиО.НиО.Наименование,, тбБазы.ВидДеятельности,тбБазы.ВидЗатрат,, тбНиО.НиО,,, ,,"ЗП");
//ВидЗатратФондыДляРезерваОтпусков +Релиз 291.04------------------------------------------- кодЗатратОтпуск = 0; Если Лев(СчетЗатрат.Код,2) = "23" Тогда кодЗатратОтпуск = 60; ИначеЕсли Лев(СчетЗатрат.Код,2) = "92" Тогда кодЗатратОтпуск = 121; ИначеЕсли Лев(СчетЗатрат.Код,2) = "93" Тогда кодЗатратОтпуск = 157; ИначеЕсли Лев(СчетЗатрат.Код,2) = "94" Тогда кодЗатратОтпуск = 281; КонецЕсли; ВидЗатратОтпуск = ""; Если СпрВидыЗатрат.НайтиПоКоду(кодЗатратОтпуск,0) = 1 Тогда ВидЗатратОтпуск = СпрВидыЗатрат.ТекущийЭлемент(); КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!